Browse Source

候补单也能取消

lizhen_gitee 6 months ago
parent
commit
cf60c554a8
2 changed files with 22 additions and 27 deletions
  1. 0 23
      application/api/controller/Lesson.php
  2. 22 4
      application/api/controller/Usercenter.php

+ 0 - 23
application/api/controller/Lesson.php

@@ -773,24 +773,7 @@ class Lesson extends Api
             }
 
             //扣除一节。延迟到转正的时候处理
-            /*$update = [
-                'remain'     => bcsub($package_order['remain'],$number_hours,1),
-                'updatetime' => time(),
-            ];
-            $rs1 = Db::name('package_order')->where('id',$packageorder_id)->update($update);
-            if($rs1 === false){
-                Db::rollback();
-                $this->error('扣除套餐余额失败');
-            }*/
-
             //修改预约单数据。延迟到转正的时候处理
-            /*$lesson_order['order_amount'] = 0;
-            $lesson_order['order_status'] = 10;
-            $lesson_order['paytime'] = time();
-            $lesson_order['package_order_id'] = $packageorder_id;
-
-            $lesson_order['package_remark'] = ($package_order['sessions'] - $package_order['remain']) . '-' . ($package_order['sessions'] - $package_order['remain'] + $number_hours) .'/'. $package_order['sessions'];*/
-
 
             //预约单写入
             $lesson_order_id = Db::name('lesson_order')->insertGetId($lesson_order);
@@ -800,12 +783,6 @@ class Lesson extends Api
             }
 
             //更新已预约人数。候补就不需要了
-            /*$pay_number = Db::name('lesson_order')->where('slot_id',$slot_id)->where('order_status',10)->sum('usernumber');
-            $rs_slot = Db::name('lesson_slot')->where('id',$slot_id)->update(['bookednum' => $pay_number]);
-            if($rs_slot === false){
-                Db::rollback();
-                $this->error('预约失败');
-            }*/
 
             Db::commit();
             $this->success('预约候补成功',['returntype'=>5]);

+ 22 - 4
application/api/controller/Usercenter.php

@@ -230,19 +230,37 @@ class Usercenter extends Api
             'id' => $order_id,
             'user_id' => $this->auth->id,
         ];
-        $lesson_order = Db::name('lesson_order')->where($map)->find();
+        Db::startTrans();
+        $lesson_order = Db::name('lesson_order')->where($map)->lock(true)->find();
+
+        //取消候补单
+        if($lesson_order['jointype'] == 2){
+
+            $update = [
+                'order_status' => 30,
+                'cancel_time' => time(),
+                'cancel_reason' => __('用户主动取消'),
+            ];
+
+            $rs = Db::name('lesson_order')->where($map)->update($update);
+            Db::commit();
+            $this->success('取消完成');
 
+        }
+
+        //剩下的都是预约单
         if($lesson_order['order_status'] != 10){
+            Db::rollback();
             $this->error('此订单已无法取消');
         }
 
         //还有24小时上课,不能取消
         $slot = Db::name('lesson_slot')->where('id',$lesson_order['slot_id'])->find();
         if($slot['starttime'] - time() <= 86400){
+            Db::rollback();
             $this->error('距离上课时间不足24小时,不能取消');
         }
 
-        Db::startTrans();
 
         //套餐给加回去
         if($lesson_order['paytype'] == 1){
@@ -537,7 +555,7 @@ class Usercenter extends Api
             $order['hours'] = floatval($order['hours']);
 
             //距离开课大于24小时可以申请取消
-            if($order['jointype'] == 1 && $order['starttime'] - time() > 86400){
+            if($order['starttime'] - time() > 86400){
                 $order['can_cancel'] = 1;
             }else{
                 $order['can_cancel'] = 0;
@@ -605,7 +623,7 @@ class Usercenter extends Api
             $order['hours'] = floatval($order['hours']);
 
             //24小时内可以申请取消
-            if($order['jointype'] == 1 && $order['starttime'] - time() > 86400){
+            if($order['starttime'] - time() > 86400){
                 $order['can_cancel'] = 1;
             }else{
                 $order['can_cancel'] = 0;