|
@@ -60,6 +60,8 @@ class Notify extends Api
|
|
|
//充值金币 逻辑
|
|
|
private function recharge_notify_do($out_trade_no){
|
|
|
|
|
|
+ $time = time();
|
|
|
+
|
|
|
Db::startTrans();
|
|
|
$orderInfo = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->lock(true)->find();
|
|
|
if (empty($orderInfo)) {
|
|
@@ -73,17 +75,93 @@ class Notify extends Api
|
|
|
}
|
|
|
|
|
|
//逻辑开始
|
|
|
- $args = json_decode($orderInfo['args'],true);
|
|
|
- $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],'gold',$args['gold'],10, '金币充值','pay_order',$orderInfo['id']);
|
|
|
- if($result['status']===false)
|
|
|
- {
|
|
|
- Db::rollback();
|
|
|
- return false;
|
|
|
+ //试课预约
|
|
|
+ if($orderInfo['table_name'] == 'trylesson_order'){
|
|
|
+ $update = [
|
|
|
+ 'order_status' => 10,
|
|
|
+ 'paytime' => $time,
|
|
|
+ 'updatetime' => $time,
|
|
|
+ ];
|
|
|
+ $rs = Db::name('trylesson_order')->where('id',$orderInfo['table_id'])->update($update);
|
|
|
+ if($rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
+ //售课预约
|
|
|
+ if($orderInfo['table_name'] == 'lesson_order'){
|
|
|
+ $update = [
|
|
|
+ 'order_status' => 10,
|
|
|
+ 'paytime' => $time,
|
|
|
+ 'updatetime' => $time,
|
|
|
+ ];
|
|
|
+ $rs = Db::name('lesson_order')->where('id',$orderInfo['table_id'])->update($update);
|
|
|
+ if($rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //售课预约买套餐
|
|
|
+ if($orderInfo['table_name'] == 'package_order'){
|
|
|
+ //修改套餐单
|
|
|
+ $update = [
|
|
|
+ 'order_status' => 1,
|
|
|
+ 'paytime' => $time,
|
|
|
+ 'updatetime' => $time,
|
|
|
+ ];
|
|
|
+ $rs = Db::name('package_order')->where('order_no',$orderInfo['out_trade_no'])->update($update); //这里不用id,是因为另有赠品单
|
|
|
+ if($rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改预约单。这一块最好搬到计划任务里
|
|
|
+ $args = json_decode($orderInfo['args'],true);
|
|
|
+ if(isset($args['lesson_order_id']) && !empty($args['lesson_order_id'])){
|
|
|
+
|
|
|
+ $package_order = Db::name('package_order')->where('order_no',$orderInfo['out_trade_no'])->where('is_gift',0)->find();
|
|
|
+ $lesson_order = Db::name('lesson_order')->where('id',$args['lesson_order_id'])->find();
|
|
|
+
|
|
|
+ //课时能够支撑报名人数
|
|
|
+ if($package_order['remain'] >= $lesson_order['number']){
|
|
|
+
|
|
|
+ //扣除一节
|
|
|
+ $update = [
|
|
|
+ 'remain' => $package_order['remain'] - $lesson_order['number'],
|
|
|
+ 'updatetime' => time(),
|
|
|
+ ];
|
|
|
+ $rs1 = Db::name('package_order')->where('id',$package_order['id'])->update($update);
|
|
|
+ if($rs1 === false){
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改预约单状态
|
|
|
+ $update = [
|
|
|
+ 'order_status' => 10,
|
|
|
+ 'paytime' => $time,
|
|
|
+ 'updatetime' => $time,
|
|
|
+ 'package_order_id' => $package_order['id'],
|
|
|
+ ];
|
|
|
+ if($lesson_order['number'] > 1){
|
|
|
+ $update['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) . '-' . ($package_order['sessions'] - $package_order['remain'] + $lesson_order['number']) .'/'. $package_order['sessions'];
|
|
|
+ }else{
|
|
|
+ $update['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) .'/'. $package_order['sessions'];
|
|
|
+ }
|
|
|
+ $rs = Db::name('lesson_order')->where('id',$args['lesson_order_id'])->update($update);
|
|
|
+ if($rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
//逻辑结束
|
|
|
|
|
|
//状态
|
|
|
- $ros = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->update(['order_status'=>1,'notifytime'=>time()]);
|
|
|
+ $ros = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->update(['order_status'=>1,'notifytime'=>$time]);
|
|
|
if($ros === false) {
|
|
|
Db::rollback();
|
|
|
return false;
|