瀏覽代碼

每日课时,不再是按1节来扣,而是按小时数,小数点1位

lizhen_gitee 1 年之前
父節點
當前提交
269ce45dbf

+ 1 - 1
application/admin/view/lessonslot/add.html

@@ -9,7 +9,7 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Hours')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-hours" data-rule="required" class="form-control" name="row[hours]" type="number">
+            <input id="c-hours" data-rule="required" class="form-control" step="0.5" name="row[hours]" type="number" value="0.0">
         </div>
     </div>
     <div class="form-group">

+ 1 - 1
application/admin/view/lessonslot/edit.html

@@ -9,7 +9,7 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Hours')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-hours" data-rule="required" class="form-control" name="row[hours]" type="number" value="{$row.hours|htmlentities}">
+            <input id="c-hours" data-rule="required" class="form-control" name="row[hours]" step="0.5" type="number" value="{$row.hours|htmlentities}">
         </div>
     </div>
     <div class="form-group">

+ 1 - 1
application/admin/view/packageorder/edit.html

@@ -57,7 +57,7 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Remain')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-remain" data-rule="required" class="form-control" name="row[remain]" type="number" value="{$row.remain|htmlentities}">
+            <input id="c-remain" data-rule="required" class="form-control" name="row[remain]" step="0.5" type="number" value="{$row.remain|htmlentities}">
         </div>
     </div>
     <div class="form-group">

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

@@ -251,11 +251,12 @@ class Lesson extends Api
         $info['price'] = bcmul($info['price'],$number,2);
 
         //此课程是否还有未使用的套餐(多个包含赠送的)
+        $number_hours = bcmul($number,$info['hours'],1);//每日课时按小时扣
         $map = [
             'o.user_id' =>$this->auth->id,
 
             'o.endtime' => ['gt',time()],
-            'o.remain' => ['egt',$number], //不能只是大于0,还得大于等于报名人数
+            'o.remain' => ['egt',$number_hours], //不能只是大于0,还得大于等于报名人数
             'o.order_status' => 1,
         ];
         $package_list = Db::name('package_order')->alias('o')
@@ -319,6 +320,7 @@ class Lesson extends Api
             $this->error(__('预约名额只剩N名',['number'=>$num_remain]));
         }
 
+        $number_hours = bcmul($number,$info['hours'],1);//每日课时按小时扣
         $lesson_order = [
             'order_no' => createUniqueNo('S',$this->auth->id),
             'user_id' => $this->auth->id,
@@ -332,6 +334,7 @@ class Lesson extends Api
 //            'updatetime' => ,
 //            'finishtime' => ,
             'usernumber' => $number,
+            'usernumber_hours' => $number_hours,
             'userremark' => $remark,
             'package_order_id' => 0,
             'package_remark' => '',//  比如:5/30,5-7/30
@@ -356,14 +359,14 @@ class Lesson extends Api
             }
 
             //课时不足支撑报名人数
-            if($package_order['remain'] < $number){
+            if($package_order['remain'] < $number_hours){
                 Db::rollback();
                 $this->error('该套餐余额不足,可以使用其他支付方式');
             }
 
             //扣除一节
             $update = [
-                'remain'     => $package_order['remain']-$number,
+                'remain'     => bcsub($package_order['remain'],$number_hours,1),
                 'updatetime' => time(),
             ];
             $rs1 = Db::name('package_order')->where('id',$packageorder_id)->update($update);
@@ -377,8 +380,8 @@ class Lesson extends Api
             $lesson_order['order_status'] = 10;
             $lesson_order['paytime'] = time();
             $lesson_order['package_order_id'] = $packageorder_id;
-            if($number > 1){
-                $lesson_order['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) . '-' . ($package_order['sessions'] - $package_order['remain'] + $number) .'/'. $package_order['sessions'];
+            if($number_hours > 1){
+                $lesson_order['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) . '-' . ($package_order['sessions'] - $package_order['remain'] + $number_hours) .'/'. $package_order['sessions'];
             }else{
                 $lesson_order['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) .'/'. $package_order['sessions'];
             }

+ 4 - 4
application/api/controller/Notify.php

@@ -175,11 +175,11 @@ class Notify extends Controller
                 $lesson_order  = Db::name('lesson_order')->where('id',$args['lesson_order_id'])->find();
 
                 //课时能够支撑报名人数
-                if($package_order['remain'] >= $lesson_order['usernumber']){
+                if($package_order['remain'] >= $lesson_order['usernumber_hours']){
 
                     //扣除一节
                     $update = [
-                        'remain'     => $package_order['remain'] - $lesson_order['usernumber'],
+                        'remain'     => bcsub($package_order['remain'],$lesson_order['usernumber_hours'],1),
                         'updatetime' => time(),
                     ];
                     $rs1 = Db::name('package_order')->where('id',$package_order['id'])->update($update);
@@ -196,8 +196,8 @@ class Notify extends Controller
                         'package_order_id' => $package_order['id'],
                         'paytype' => 1,  //从购买套餐中3,改为 课程套餐1
                     ];
-                    if($lesson_order['usernumber'] > 1){
-                        $update['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) . '-' . ($package_order['sessions'] - $package_order['remain'] + $lesson_order['usernumber']) .'/'. $package_order['sessions'];
+                    if($lesson_order['usernumber_hours'] > 1){
+                        $update['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) . '-' . ($package_order['sessions'] - $package_order['remain'] + $lesson_order['usernumber_hours']) .'/'. $package_order['sessions'];
                     }else{
                         $update['package_remark'] = ($package_order['sessions'] - $package_order['remain'] + 1) .'/'. $package_order['sessions'];
                     }

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

@@ -212,7 +212,7 @@ class Usercenter extends Api
         if($lesson_order['paytype'] == 1){
             $package_order = Db::name('package_order')->where('id',$lesson_order['package_order_id'])->lock(true)->find();
             $update = [
-                'remain' => $package_order['remain'] + $lesson_order['usernumber'],
+                'remain' => $package_order['remain'] + $lesson_order['usernumber_hours'],
                 'updatetime' => time(),
             ];
             $rs_remain = Db::name('package_order')->where('id',$lesson_order['package_order_id'])->update($update);