Browse Source

候补也能固定哪个配套了

lizhen_gitee 6 months ago
parent
commit
010871fc5f

+ 2 - 1
application/admin/controller/Lessonorder.php

@@ -265,8 +265,9 @@ class Lessonorder extends Backend
                         'remain' => ['gt',$order['usernumber_hours']],
                         'order_status' => 1,
                         'use_status'   => 1, //已激活的
+                        'id' => $order['package_order_id'],
                     ];
-                    $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $slot['lesson_id']])->order('endtime asc')->lock(true)->find();
+                    $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $slot['lesson_id']])->lock(true)->find();
                     if(!$package_order){
                         continue;
                     }

+ 20 - 5
application/api/controller/Lesson.php

@@ -544,7 +544,10 @@ class Lesson extends Api
                 $this->error(__('候补名额只剩N名',['number'=>$wait_remain]));
             }
             //可以继续
-            $paytype = 5;//强改支付方式,候补
+            if($paytype != 1){
+                $this->error('请选择配套');
+            }
+            $paytype = 5;//强改支付方式,候补,不能去除
         }
 
         //
@@ -592,7 +595,7 @@ class Lesson extends Api
             //课时不足支撑报名人数
             if($package_order['remain'] < $number_hours){
                 Db::rollback();
-                $this->error('该配套余额不足,可以使用其他支付方式');
+                $this->error('该配套余额不足');
             }
             if($package_order['use_status'] != 1){
                 Db::rollback();
@@ -762,18 +765,30 @@ class Lesson extends Api
                 'user_id' =>$this->auth->id,
 
                 'endtime' => ['gt',time()],
-                'remain' => ['gt',$number_hours],
+                'remain' => ['gt',0],
                 'order_status' => 1,
-                'use_status'   => 1, //已激活的
+//                'use_status'   => 1, //已激活的
+                'id' => $packageorder_id,
             ];
             $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $info['lesson_id']])->find();
             if(!$package_order){
                 Db::rollback();
-                $this->error('没有找到足够候补人数的配套');
+                $this->error('配套信息不正确,请刷新重试');
+            }
+
+            //课时不足支撑报名人数
+            if($package_order['remain'] < $number_hours){
+                Db::rollback();
+                $this->error('该配套余额不足');
+            }
+            if($package_order['use_status'] != 1){
+                Db::rollback();
+                $this->error('该配套尚未激活');
             }
 
             //扣除一节。延迟到转正的时候处理
             //修改预约单数据。延迟到转正的时候处理
+            $lesson_order['package_order_id'] = $packageorder_id;
 
             //预约单写入
             $lesson_order_id = Db::name('lesson_order')->insertGetId($lesson_order);

+ 2 - 1
application/api/controller/Usercenter.php

@@ -354,8 +354,9 @@ class Usercenter extends Api
                         'remain' => ['gt',$order['usernumber_hours']],
                         'order_status' => 1,
                         'use_status'   => 1, //已激活的
+                        'id' => $order['package_order_id'],
                     ];
-                    $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $slot['lesson_id']])->order('endtime asc')->lock(true)->find();
+                    $package_order = Db::name('package_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $slot['lesson_id']])->lock(true)->find();
                     if(!$package_order){
                         continue;
                     }

+ 3 - 1
application/api/lang/en/lesson.php

@@ -16,7 +16,7 @@ return [
     '预约名额只剩N名' => 'There are only {:number} reserved spots left',
     '候补名额只剩N名' => 'There are only {:number} waitlist spots left',
     '套餐信息不正确,请刷新重试' => 'The package information is incorrect, please refresh and try again',
-    '该套餐余额不足,可以使用其他支付方式' => 'The balance of this package is insufficient, you can use other payment methods',
+    '该配套余额不足' => 'The balance of this plans is insufficient',
     '扣除套餐余额失败' => 'Failed to deduct package balance',
     '预约失败' => 'Reservation failed',
     '下单失败' => 'Order failed',
@@ -29,4 +29,6 @@ return [
     '没有找到足够候补人数的配套' => 'We could not find a package with enough waitlist',
     '点击太频繁,休息一下吧' => 'Click too frequently, take a break',
     '可预约名额不足' => 'Insufficient available reservation slots',
+    '请选择配套' => 'Please select plans',
+    '该配套尚未激活' => 'This plans has not been activated yet',
 ];