浏览代码

视频问诊,即时方式

lizhen_gitee 7 月之前
父节点
当前提交
eccfa72ac0

+ 25 - 25
application/api/controller/Wenzhen.php

@@ -72,7 +72,7 @@ class Wenzhen extends Api
             $price = $doctor_info['video_price'];
             $price = $doctor_info['video_price'];
         }
         }
         if($price <= 0){
         if($price <= 0){
-            $this->error('价格为零');
+            $this->error('问诊价格为零');
         }
         }
 
 
         //排班判断
         //排班判断
@@ -81,30 +81,30 @@ class Wenzhen extends Api
         }
         }
         if($ordertype == 2){
         if($ordertype == 2){
             if($doctor_info['video_model'] == 1){  //排班预约
             if($doctor_info['video_model'] == 1){  //排班预约
-            //检查
-            if($book_time < time() + 7200){
-                //测试临时屏蔽
-                //$this->error('最早只能预约'.date('m-d H:00',time() + 10800)); //最早预约两个小时后的一个整点
-            }
-            //排班状态
-            $doctor_paiban = Db::name('doctor_paiban')->where('doctor_id',$doctor_id)->where('activetime',$book_time)->find();
-            if(empty($doctor_paiban)){
-                $this->error('您预约的时间该医生无法接诊');
-            }
-            if($doctor_paiban['active'] != 1){
-                $this->error('您预约的时间该医生无法接诊');
-            }
-            //是否排满
-            $map = [
-                'doctor_id' => $doctor_id,
-                'book_time' => $book_time,
-                'ordertype' => 2,
-                'status'    => ['IN','10,20,25,30'],//有效订单
-            ];
-            $order_count = Db::name('wenzhen_order')->where($map)->count();
-            if($order_count >= 4){
-                $this->error('该时间点已排满,请重选预约时间');
-            }
+                //检查
+                if($book_time < time() + 7200){
+                    //测试临时屏蔽
+                    //$this->error('最早只能预约'.date('m-d H:00',time() + 10800)); //最早预约两个小时后的一个整点
+                }
+                //排班状态
+                $doctor_paiban = Db::name('doctor_paiban')->where('doctor_id',$doctor_id)->where('activetime',$book_time)->find();
+                if(empty($doctor_paiban)){
+                    $this->error('您预约的时间该医生无法接诊');
+                }
+                if($doctor_paiban['active'] != 1){
+                    $this->error('您预约的时间该医生无法接诊');
+                }
+                //是否排满
+                $map = [
+                    'doctor_id' => $doctor_id,
+                    'book_time' => $book_time,
+                    'ordertype' => 2,
+                    'status'    => ['IN','10,20,25,30'],//有效订单
+                ];
+                $order_count = Db::name('wenzhen_order')->where($map)->count();
+                if($order_count >= 4){
+                    $this->error('该时间点已排满,请重选预约时间');
+                }
             }
             }
             else
             else
             {
             {

+ 2 - 1
application/api/controller/tvuser/Tvdoctor.php

@@ -42,9 +42,10 @@ class Tvdoctor extends Api
         }
         }
 
 
         $field = [
         $field = [
-            'd.id','d.nickname','d.avatar','d.keshi_id','d.level_id','d.hospital','d.goodat',
+            'd.id','d.nickname','d.avatar','d.keshi_id','d.level_id','d.hospital','d.goodat','d.job_status',
             'keshi.name as keshi_name',
             'keshi.name as keshi_name',
             'level.name as level_name',
             'level.name as level_name',
+            'info.video_model',
         ];
         ];
         $list = Db::name('doctor')->alias('d')
         $list = Db::name('doctor')->alias('d')
             ->field($field)
             ->field($field)

+ 49 - 40
application/api/controller/tvuser/Wenzhen.php

@@ -87,59 +87,67 @@ class Wenzhen extends Api
         //问诊患者
         //问诊患者
         $member_data = $this->add_member();
         $member_data = $this->add_member();
 
 
-        //问诊信息
+        //医生信息
         $doctor_id = input('doctor_id',0);
         $doctor_id = input('doctor_id',0);
-        $ordertype = 2;
-
-        $book_time = input('book_time','');
-        if(empty($book_time)){
-            $this->error('没有选择预约时间');
+        $doctor = Db::name('doctor')->where('id',$doctor_id)->find();
+        $doctor_info = Db::name('doctor_info')->where('doctor_id',$doctor_id)->find();
+        if(empty($doctor_info)){
+            $this->error('不存在的医生');
         }
         }
-        $book_time = strtotime($book_time);
 
 
+        if($doctor_info['video_switch'] != 1){
+            $this->error('该医生未开通视频问诊');
+        }
+        if($doctor_info['video_model'] == 2 && $doctor['job_status'] != 1){ //即时方式,需要在上班中
+            $this->error('该医生现在不在上班中');
+        }
 
 
+        //订单信息
         $auth_id = $this->auth->id;
         $auth_id = $this->auth->id;
         $order_no = createUniqueNo('TV',$auth_id);
         $order_no = createUniqueNo('TV',$auth_id);
-
-       //医生信息
-        $doctor_info = Db::name('doctor_info')->where('doctor_id',$doctor_id)->find();
-        if(empty($doctor_info)){
-            $this->error('不存在的医生');
-        }
+        $ordertype = 2;
 
 
         //价格
         //价格
         $price = 0;
         $price = 0;
-        if($ordertype == 2){
-            if($doctor_info['video_switch'] != 1){
-                $this->error('该医生未开通视频问诊');
-            }
-        }
+
 
 
         //排班判断
         //排班判断
         if($ordertype == 2){
         if($ordertype == 2){
-            //检查
-            if($book_time < time() + 7200){
-                //测试临时屏蔽
-                //$this->error('最早只能预约'.date('m-d H:00',time() + 10800)); //最早预约两个小时后的一个整点
-            }
-            //排班状态
-            $doctor_paiban = Db::name('doctor_paiban')->where('doctor_id',$doctor_id)->where('activetime',$book_time)->find();
-            if(empty($doctor_paiban)){
-                $this->error('您预约的时间该医生无法接诊');
-            }
-            if($doctor_paiban['active'] != 1){
-                $this->error('您预约的时间该医生无法接诊');
+            if($doctor_info['video_model'] == 1){  //排班预约
+
+                $book_time = input('book_time','');
+                if(empty($book_time)){
+                    $this->error('没有选择预约时间');
+                }
+                $book_time = strtotime($book_time);
+                //检查
+                if($book_time < time() + 7200){
+                    //测试临时屏蔽
+                    //$this->error('最早只能预约'.date('m-d H:00',time() + 10800)); //最早预约两个小时后的一个整点
+                }
+                //排班状态
+                $doctor_paiban = Db::name('doctor_paiban')->where('doctor_id',$doctor_id)->where('activetime',$book_time)->find();
+                if(empty($doctor_paiban)){
+                    $this->error('您预约的时间该医生无法接诊');
+                }
+                if($doctor_paiban['active'] != 1){
+                    $this->error('您预约的时间该医生无法接诊');
+                }
+                //是否排满
+                $map = [
+                    'doctor_id' => $doctor_id,
+                    'book_time' => $book_time,
+                    'ordertype' => 2,
+                    'status'    => ['IN','10,20,25,30'],//有效订单
+                ];
+                $order_count = Db::name('wenzhen_order')->where($map)->count();
+                if($order_count >= 4){
+                    $this->error('该时间点已排满,请重选预约时间');
+                }
             }
             }
-            //是否排满
-            $map = [
-                'doctor_id' => $doctor_id,
-                'book_time' => $book_time,
-                'ordertype' => 2,
-                'status'    => ['IN','10,20,25,30'],//有效订单
-            ];
-            $order_count = Db::name('wenzhen_order')->where($map)->count();
-            if($order_count >= 4){
-                $this->error('该时间点已排满,请重选预约时间');
+            else
+            {
+                $book_time = time();                //即时预约
             }
             }
 
 
         }
         }
@@ -159,6 +167,7 @@ class Wenzhen extends Api
             'pay_type'     => 'tvvip',
             'pay_type'     => 'tvvip',
             'pay_time'     => time(),
             'pay_time'     => time(),
             'comefrom'     => 2,
             'comefrom'     => 2,
+            'video_model'=> $doctor_info['video_model'],  //视频问诊预约方式
         ];
         ];
 
 
         Db::startTrans();
         Db::startTrans();