瀏覽代碼

使用试课单支付

lizhen_gitee 1 年之前
父節點
當前提交
d19774c36c
共有 1 個文件被更改,包括 45 次插入3 次删除
  1. 45 3
      application/api/controller/Lesson.php

+ 45 - 3
application/api/controller/Lesson.php

@@ -331,12 +331,13 @@ class Lesson extends Api
         $slot_id = input('slot_id',0,'intval');
         $number  = input('number',1,'intval');
         $remark  = input('remark','','trim');
-        $paytype = input('paytype',1,'intval');//支付类型:1=课程套餐,2=线上付款,3=购买套餐中
+        $paytype = input('paytype',1,'intval');//支付类型:1=课程套餐,2=线上付款,3=购买套餐中,4=试课单
         $packageorder_id = input('packageorder_id',0,'intval');
+        $trylessonorder_id = input('trylessonorder_id',0,'intval');
         if($number <= 0){
             $this->error('预约人数错误');
         }
-        if(!in_array($paytype,[1,2,3])){
+        if(!in_array($paytype,[1,2,3,4])){
             $this->error();
         }
 
@@ -370,7 +371,7 @@ class Lesson extends Api
             'lesson_id' => $info['lesson_id'],
             'order_amount' => bcmul($info['price'],$number,2),
             'order_status' => 0,
-            'paytype' => $paytype, //支付类型:1=课程套餐,2=线上付款,3=购买套餐中
+            'paytype' => $paytype, //支付类型:1=课程套餐,2=线上付款,3=购买套餐中,4=试课单
             'paytime' => 0,
             'createtime' => time(),
 //            'updatetime' => ,
@@ -503,6 +504,47 @@ class Lesson extends Api
                 'returntype' => 3,
             ];
             $this->success(1,$return);
+        }elseif($paytype == 4){
+            //使用试课单
+            $map = [
+                'id' => $trylessonorder_id,
+                'user_id' =>$this->auth->id,
+                'endtime' => ['gt',time()],
+                'order_status' => 10,
+            ];
+            $trylesson_order = Db::name('trylesson_order')->where($map)->where('find_in_set(:lesson_ids,lesson_ids)', ['lesson_ids' => $info['lesson_id']])->lock(true)->find();
+            if(!$trylesson_order){
+                Db::rollback();
+                $this->error('试课信息不正确,请刷新重试');
+            }
+
+            //修改预约单数据
+            $lesson_order['order_amount'] = 0;
+            $lesson_order['order_status'] = 10;
+            $lesson_order['paytime'] = time();
+            $lesson_order['trylesson_order_id'] = $trylessonorder_id;
+
+            //预约单写入
+            $lesson_order_id = Db::name('lesson_order')->insertGetId($lesson_order);
+            if(!$lesson_order_id){
+                Db::rollback();
+                $this->error('预约失败');
+            }
+
+            //改掉试课单状态
+            $update = [
+                'order_status'    => 20,
+                'updatetime'      => time(),
+                'lesson_order_id' => $lesson_order_id,
+            ];
+            $rs1 = Db::name('trylesson_order')->where('id',$trylessonorder_id)->update($update);
+            if($rs1 === false){
+                Db::rollback();
+                $this->error('扣除套餐余额失败');
+            }
+
+            Db::commit();
+            $this->success('预约成功',['returntype'=>4]);
         }
     }