Commit 83c72bc0 by LiuJunYi

关联会员

parent 45a9d8f4
......@@ -49,7 +49,7 @@ class Order extends Base
'children_age' => 'require',
'sign_limits' => 'require',
]);
$res = $validate->check(input('post.'));
$res = $validate->check(input('post.'));
if (!$res) return ['code' => 1, 'msg' => $validate->getError()];
$project = ProjectModel::get(input('post.pid'));
if (!$project) {
......@@ -68,18 +68,18 @@ class Order extends Base
$res = OrderModel::getGroupNumberByProject(input('post.pid'), input('post.sign_limits'));
if (!$res) throw new \Exception('该活动报名已满!');
//生成订单入库
$order = new OrderModel();
$order->type = config('order_type.project');
$order->uid = $this->userinfo[0];
$order->pid = $project['id'];
$order = new OrderModel();
$order->type = config('order_type.project');
$order->uid = $this->userinfo[0];
$order->pid = $project['id'];
$order->title = $project['title'];
//查看是否为会员
$user = UserModel::get($this->userinfo[0]);
//活动总价
$price = $user['is_vip'] ? $project['vip_price'] : $project['price'];
$price = $user['is_vip'] ? $project['vip_price'] : $project['price'];
$order->total_fee = $price * 100 * input('post.sign_limits') / 100;
$order->status = config('order_status.no_pay');
$order->extras = [
$order->status = config('order_status.no_pay');
$order->extras = [
'nickname' => input('post.nickname'),
'phone' => input('post.phone'),
'adult_number' => input('post.adult_number'),
......@@ -93,13 +93,13 @@ class Order extends Base
if (!$order->save()) {
throw new \Exception('报名失败,请稍后再试');
}
$data['order_id'] = intval($order->id);
$data['order_id'] = intval($order->id);
$data['total_fee'] = doubleval($order->total_fee);
//生成订单
// 更新订单号-防止签名失败
$order->out_trade_no = (new \WxPayConfig())->GetMerchantId() . time() . $order->id;
$config = new \WxPayConfig();
$input = new \WxPayUnifiedOrder();
$config = new \WxPayConfig();
$input = new \WxPayUnifiedOrder();
$input->SetBody($order->title);
$input->SetAttach($order->id);
$input->SetOut_trade_no($order->out_trade_no);
......@@ -139,23 +139,31 @@ class Order extends Base
*/
public function vipOrder()
{
//检验参数
$validate = Validate::make([
'year' => 'require',
'year|时间' => 'require',
'name|姓名' => 'require',
'wx_number|微信号' => 'require',
'address|地址' => 'require',
]);
$res = $validate->check(input('post.'));
$res = $validate->check(input('post.'));
if (!$res) return ['code' => 1, 'msg' => $validate->getError()];
//生成订单
try {
//开始事务
Db::startTrans();
UserModel::update([
'id'=>$this->userinfo[0],
'wx_number'=>input('post.wx_number'),
'name'=>input('post.name'),
'address'=>input('post.address'),
]);
$year = intval(input('post.year'));
//生成订单入库
$order = new OrderModel();
$order->type = config('order_type.vip');
$order->uid = $this->userinfo[0];
$order = new OrderModel();
$order->type = config('order_type.vip');
$order->uid = $this->userinfo[0];
$order->title = config('wx_pay.vip_title');
//活动总价
$order->total_fee = config('wx_pay.vip_price') * 100 * $year / 100;
......@@ -170,7 +178,7 @@ class Order extends Base
} else {
$vip_endtime = strtotime("+{$year} year");
}
$vip_endtime = date('Y-m-d H:i:s', $vip_endtime);
$vip_endtime = date('Y-m-d H:i:s', $vip_endtime);
$order->status = config('order_status.no_pay');
$order->extras = [
'year' => $year,
......@@ -181,13 +189,13 @@ class Order extends Base
if (!$order->save()) {
throw new \Exception('购买失败,请稍后再试');
}
$data['order_id'] = intval($order->id);
$data['order_id'] = intval($order->id);
$data['total_fee'] = doubleval($order->total_fee);
// 生成订单
// // 更新订单号-防止签名失败
$order->out_trade_no = (new \WxPayConfig())->GetMerchantId() . time() . $order->id;
$config = new \WxPayConfig();
$input = new \WxPayUnifiedOrder();
$config = new \WxPayConfig();
$input = new \WxPayUnifiedOrder();
$input->SetBody($order->title);
$input->SetAttach($order->id);
$input->SetOut_trade_no($order->out_trade_no);
......@@ -254,7 +262,7 @@ class Order extends Base
public function callback()
{
$xml = file_get_contents("php://input");
$xml = file_get_contents("php://input");
$data = simplexml_load_string($xml);//将文件转换成 对象
if (empty($data->transaction_id)) {
......@@ -281,21 +289,21 @@ class Order extends Base
try {
// 订单状态更新 - 已支付
$order->status = config("order_status.pay");
$order->status = config("order_status.pay");
$order->trade_status = 'SUCCESS';
$order->save();
if ($order->type == config('order_type.vip')) {
$order = OrderModel::get($data->attach);
$user = UserModel::get($order->uid);
$user->is_vip = 1;
$order = OrderModel::get($data->attach);
$user = UserModel::get($order->uid);
$user->is_vip = 1;
$user->vip_endtime = $order['extras']['vip_endtime'];
$user->save();
} else {
//限制组数加1
//获取订单的项目
$project = ProjectModel::get($order->pid);
$project = ProjectModel::get($order->pid);
$project->sign_num = $project->sign_num + $order['extras']['sign_limits'];
$project->save();
}
......@@ -326,7 +334,7 @@ class Order extends Base
*/
private function Queryorder($transaction_id)
{
$input = new \WxPayOrderQuery();
$input = new \WxPayOrderQuery();
$config = new \WxPayConfig();
$input->SetTransaction_id($transaction_id);
$result = \WxPayApi::orderQuery($config, $input);
......@@ -358,18 +366,18 @@ class Order extends Base
*/
public function index()
{
$p = input('post.p/d', 1);
$page = input('post.page/d', 8);
$p = input('post.p/d', 1);
$page = input('post.page/d', 8);
$status = input('post.status/d', 1);
$uid = $this->userinfo[0];
$order = OrderModel::with('project')
$uid = $this->userinfo[0];
$order = OrderModel::with('project')
->where('status', $status)
->where('uid', $uid)
->where('type', 1)
->page($p, $page)
->order('id', 'desc')
->select();
$order = collection($order);
$order = collection($order);
if ($order->isEmpty()) {
return ['code' => 1, 'msg' => '没有更多'];
}
......@@ -385,7 +393,7 @@ class Order extends Base
*/
public function refundSubmit()
{
$id = input('post.id/d');
$id = input('post.id/d');
$order = OrderModel::where('id', $id)
->where('uid', $this->userinfo[0])
->where('type', config('order_type.project'))
......@@ -436,23 +444,23 @@ class Order extends Base
public function sendTemplate()
{
//查看订单是否存在
$id = input('order_id', 0);
$id = input('order_id', 0);
$order = OrderModel::get($id);
if (!$order) {
return ['code' => 1, 'msg' => '订单不存在'];
}
//发送消息模板
$openId = UserModel::get($order->uid)['openid'];
$openId = UserModel::get($order->uid)['openid'];
$template_id = config('wxapp.template_id_paied');
$page = config('wxapp.page');
$form_id = $order->prepay_id;
$param = [
$page = config('wxapp.page');
$form_id = $order->prepay_id;
$param = [
$order->out_trade_no,
$order->title,
$order->total_fee,
$order->created_at,
];
$result = WXSendMessage::send_template_notice($openId, $template_id, $page, $form_id, $param);
$result = WXSendMessage::send_template_notice($openId, $template_id, $page, $form_id, $param);
if ($result->errcode != 0) {
return ['code' => 1, 'msg' => $result->errmsg];
}
......
......@@ -165,7 +165,13 @@ class User extends Base
if (!$relation) {
return false;
}
UserModel::where('phone', $phone)->update(['is_vip' => 1, 'vip_endtime' => $relation['vip_expire']]);
UserModel::where('phone', $phone)->update([
'is_vip' => 1,
'vip_endtime' => $relation['vip_expire'],
'name'=>$relation['nickname'],
'address'=>$relation['address'],
'wx_number'=>$relation['wx_number'],
]);
$relation->is_relation = 1;
$relation->save();
return true;
......
......@@ -10,12 +10,12 @@ class VipRelation extends BaseModel
protected $table = 'mr_vip_relation';
protected $type = [
'vip_expire' => 'datetime',
'vip_expire' => 'datetime',
];
public function getRelationAttr($v,$data)
public function getRelationAttr($v, $data)
{
$arr = ['未关联','已关联'];
$arr = ['未关联', '已关联'];
return $arr[$data['is_relation']];
}
......@@ -27,11 +27,16 @@ class VipRelation extends BaseModel
public function relationVip(&$data)
{
//先查询数据库手机号,如果没有直接略过
$user = User::get(['phone'=>$data['mobile']]);
if($user){
$user = User::get(['phone' => $data['mobile']]);
if ($user) {
//直接把到期时间替换了
$user->vip_endtime = $data['vip_expire'];
$user->save();
User::where('phone', $data['mobile'])
->update([
'vip_endtime' => $data['vip_expire'],
'address' => $data['address'],
'name' => $data['nickname'],
'wx_number' => $data['wx_number'],
]);
$data['is_relation'] = 1;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment