Browse Source

取消之后,其它候补转正

lizhen_gitee 7 months ago
parent
commit
b7ad8b76dd
2 changed files with 29 additions and 21 deletions
  1. 15 11
      application/admin/controller/Lessonorder.php
  2. 14 10
      application/api/controller/Usercenter.php

+ 15 - 11
application/admin/controller/Lessonorder.php

@@ -161,7 +161,7 @@ class Lessonorder extends Backend
 
             Db::commit();
 
-            $slot_info = Db::name('lesson_slot')->where('id',$info['slot_id'])->find();
+            $slot_info = $slot;
             $lesson_info = Db::name('lesson')->where('id',$slot_info['lesson_id'])->find();
 
             //给用户发通知
@@ -222,6 +222,10 @@ class Lessonorder extends Backend
             ->join('lesson','order.lesson_id = lesson.id','LEFT')
             ->where('order.slot_id',$lesson_order['slot_id'])->where('order.jointype',2)->order('order.id asc')->select();
 
+        //有多少个空位
+        $pay_number = Db::name('lesson_order')->where('slot_id',$lesson_order['slot_id'])->where('order_status',10)->sum('usernumber');
+        $num_remain = $slot['num_max'] - $pay_number;
+
         $coach_name = Db::name('coach')->where('id',$slot['coach_ids'])->value('nickname');
 
         if(!empty($houbu_list)){
@@ -229,7 +233,7 @@ class Lessonorder extends Backend
             $up_usernumber = 0; //此次循环转正的人数
 
             foreach($houbu_list as $key => $order){
-                if($order['usernumber'] + $up_usernumber <= $lesson_order['usernumber']){
+                if($order['usernumber'] + $up_usernumber <= $num_remain){
                     //此订单可以转正
 
                     //检查可用的套餐,找一个就可以
@@ -259,16 +263,16 @@ class Lessonorder extends Backend
                     }
 
                     //修改预约单数据。延迟到转正的时候处理
-                    $lesson_order['order_amount'] = 0;
-                    $lesson_order['order_status'] = 10;
-                    $lesson_order['paytime'] = time();
-                    $lesson_order['package_order_id'] = $package_order['id'];
+                    $update_order['order_amount'] = 0;
+                    $update_order['order_status'] = 10;
+                    $update_order['paytime'] = time();
+                    $update_order['package_order_id'] = $package_order['id'];
 
-                    $lesson_order['package_remark'] = ($package_order['sessions'] - $package_order['remain']) . '-' . ($package_order['sessions'] - $package_order['remain'] + $order['usernumber_hours']) .'/'. $package_order['sessions'];
-                    $lesson_order['paytype']  = 1; //修改支付方式为配套
-                    $lesson_order['jointype'] = 1; //修改加入方式为预约
+                    $update_order['package_remark'] = ($package_order['sessions'] - $package_order['remain']) . '-' . ($package_order['sessions'] - $package_order['remain'] + $order['usernumber_hours']) .'/'. $package_order['sessions'];
+                    $update_order['paytype']  = 1; //修改支付方式为配套
+                    $update_order['jointype'] = 1; //修改加入方式为预约
 
-                    $rs2 = Db::name('lesson_order')->where('id',$order['id'])->update($lesson_order);
+                    $rs2 = Db::name('lesson_order')->where('id',$order['id'])->update($update_order);
                     if($rs2 === false){
                         Db::rollback();
 //                        $this->error('扣除套餐余额失败');
@@ -315,7 +319,7 @@ class Lessonorder extends Backend
                     }
                     //额外的通知
                 }else{
-                    break;//跳出
+                    continue;//跳出
                 }
             }
         }

+ 14 - 10
application/api/controller/Usercenter.php

@@ -278,6 +278,10 @@ class Usercenter extends Api
             ->join('lesson','order.lesson_id = lesson.id','LEFT')
             ->where('order.slot_id',$lesson_order['slot_id'])->where('order.jointype',2)->order('order.id asc')->select();
 
+        //有多少个空位
+        $pay_number = Db::name('lesson_order')->where('slot_id',$lesson_order['slot_id'])->where('order_status',10)->sum('usernumber');
+        $num_remain = $slot['num_max'] - $pay_number;
+
         $coach_name = Db::name('coach')->where('id',$slot['coach_ids'])->value('nickname');
 
         if(!empty($houbu_list)){
@@ -285,7 +289,7 @@ class Usercenter extends Api
             $up_usernumber = 0; //此次循环转正的人数
 
             foreach($houbu_list as $key => $order){
-                if($order['usernumber'] + $up_usernumber <= $lesson_order['usernumber']){
+                if($order['usernumber'] + $up_usernumber <= $num_remain){
                     //此订单可以转正
 
                     //检查可用的套餐,找一个就可以
@@ -315,16 +319,16 @@ class Usercenter extends Api
                     }
 
                     //修改预约单数据。延迟到转正的时候处理
-                    $lesson_order['order_amount'] = 0;
-                    $lesson_order['order_status'] = 10;
-                    $lesson_order['paytime'] = time();
-                    $lesson_order['package_order_id'] = $package_order['id'];
+                    $update_order['order_amount'] = 0;
+                    $update_order['order_status'] = 10;
+                    $update_order['paytime'] = time();
+                    $update_order['package_order_id'] = $package_order['id'];
 
-                    $lesson_order['package_remark'] = ($package_order['sessions'] - $package_order['remain']) . '-' . ($package_order['sessions'] - $package_order['remain'] + $order['usernumber_hours']) .'/'. $package_order['sessions'];
-                    $lesson_order['paytype']  = 1; //修改支付方式为配套
-                    $lesson_order['jointype'] = 1; //修改加入方式为预约
+                    $update_order['package_remark'] = ($package_order['sessions'] - $package_order['remain']) . '-' . ($package_order['sessions'] - $package_order['remain'] + $order['usernumber_hours']) .'/'. $package_order['sessions'];
+                    $update_order['paytype']  = 1; //修改支付方式为配套
+                    $update_order['jointype'] = 1; //修改加入方式为预约
 
-                    $rs2 = Db::name('lesson_order')->where('id',$order['id'])->update($lesson_order);
+                    $rs2 = Db::name('lesson_order')->where('id',$order['id'])->update($update_order);
                     if($rs2 === false){
                         Db::rollback();
 //                        $this->error('扣除套餐余额失败');
@@ -371,7 +375,7 @@ class Usercenter extends Api
                     }
                     //额外的通知
                 }else{
-                    break;//跳出
+                    continue;//跳出
                 }
             }
         }