Commit 83c72bc0 by LiuJunYi

关联会员

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