Преглед изворни кода

用户与电视盒子用户发起视频问诊

lizhen_gitee пре 7 месеци
родитељ
комит
6f92594cb8
2 измењених фајлова са 266 додато и 0 уклоњено
  1. 132 0
      application/api/controller/Wenzhen.php
  2. 134 0
      application/api/controller/tvuser/Wenzhen.php

+ 132 - 0
application/api/controller/Wenzhen.php

@@ -492,6 +492,12 @@ class Wenzhen extends Api
 
         $wenzhen_order['doctor_info'] = $doctor_info;
 
+        //视频订单是否能拨打,即时模式才可以
+        $wenzhen_order['video_call_switch'] = 0;
+        if($wenzhen_order['video_model'] == 2 && $wenzhen_order['ordertype'] == 2 && in_array($wenzhen_order['status'],[10,20,25])){  //三个状态都可以,理论上不存在20
+                $wenzhen_order['video_call_switch'] = 1;
+        }
+
         $this->success(1,$wenzhen_order);
     }
 
@@ -611,4 +617,130 @@ class Wenzhen extends Api
         Db::commit();
         $this->success('退珍成功');
     }
+
+///////////////////////////////视频即时问诊///////////////////////////
+
+    //第一次拨打视频之前,20,25可以调用
+    public function before_first_video(){
+
+        //订单详情
+        $order_id = input('order_id',0);
+        $wenzhen_order = Db::name('wenzhen_order')->where('user_id',$this->auth->id)->where('id',$order_id)->find();
+        if(empty($wenzhen_order)){
+            $this->error('不存在的订单');
+        }
+
+        if($wenzhen_order['ordertype'] != 2){
+            $this->error('视频问诊才能拨打视频');
+        }
+        if($wenzhen_order['video_model'] != 2){
+            $this->error('即时视频问诊才能主动拨打视频');
+        }
+
+        if($wenzhen_order['status'] == 30){
+            $this->error('订单已结束');
+        }
+        if($wenzhen_order['status'] == 25){
+            //判断医生在线状态
+            $tenim = new Tenim();
+            $rs_online = $tenim->is_online('doctor'.$wenzhen_order['doctor_id']);
+            if($rs_online != true){
+                $this->error('医生现在不在线,请稍后拨打');
+            }
+
+            $this->success();
+        }
+
+        //20直接忽略
+
+        if($wenzhen_order['status'] != 10){
+            $this->error('订单错误,请刷新重试');
+        }
+
+
+
+        //判断患者在线状态
+        $tenim = new Tenim();
+        $rs_online = $tenim->is_online('doctor'.$wenzhen_order['doctor_id']);
+        if($rs_online != true){
+            $this->error('医生现在不在线,请稍后拨打');
+        }
+
+        $this->success('操作成功');
+    }
+
+    //第一次拨打视频
+    public function first_video(){
+        $apilimit = $this->apiLimit();
+        if(!$apilimit){
+            $this->error('操作频繁');
+        }
+
+        //订单详情
+        $order_id = input('order_id',0);
+        $wenzhen_order = Db::name('wenzhen_order')->where('user_id',$this->auth->id)->where('id',$order_id)->find();
+        if(empty($wenzhen_order)){
+            $this->error('不存在的订单');
+        }
+
+        if($wenzhen_order['ordertype'] != 2){
+            $this->error('视频问诊才能拨打视频');
+        }
+        if($wenzhen_order['video_model'] != 2){
+            $this->error('即时视频问诊才能主动拨打视频');
+        }
+
+        if($wenzhen_order['status'] == 30){
+            $this->error('订单已结束');
+        }
+        if($wenzhen_order['status'] == 25){
+            //倒计时
+            $minute = config('site.firstvideo_videoorder_autofinish_minute');
+            if($wenzhen_order['comefrom'] == 2){
+                $minute = config('site.tv_firstvideo_videoorder_autofinish_minute');
+            }
+
+            $rs = [
+                'video_time'    => $wenzhen_order['video_time'],
+                'video_endtime' => $wenzhen_order['video_time'] + $minute*60,
+            ];
+            $rs['seconds'] = $rs['video_endtime'] - time();
+
+            $this->success('操作成功',$rs);
+        }
+
+        //20直接忽略
+
+        if($wenzhen_order['status'] != 10){
+            $this->error('订单错误,请刷新重试');
+        }
+
+        //判断医生在线状态
+
+        //修改订单
+        $update = [
+            'status' => 25,
+            'video_time' => time(),
+        ];
+
+        $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->where('status',10)->update($update);
+        if(!$update_rs){
+            $this->error('操作失败');
+        }
+
+        //倒计时
+        $minute = config('site.firstvideo_videoorder_autofinish_minute');
+        if($wenzhen_order['comefrom'] == 2){
+            $minute = config('site.tv_firstvideo_videoorder_autofinish_minute');
+        }
+
+        $rs = [
+            'video_time'    => $update['video_time'],
+            'seconds'       => $minute*60,
+            'video_endtime' => $update['video_time'] + $minute*60,
+        ];
+
+        $this->success('操作成功',$rs);
+    }
+
 }

+ 134 - 0
application/api/controller/tvuser/Wenzhen.php

@@ -280,6 +280,11 @@ class Wenzhen extends Api
 
         $wenzhen_order['doctor_info'] = $doctor_info;
 
+        //视频订单是否能拨打,即时模式才可以
+        $wenzhen_order['video_call_switch'] = 0;
+        if($wenzhen_order['video_model'] == 2 && $wenzhen_order['ordertype'] == 2 && in_array($wenzhen_order['status'],[10,20,25])){  //三个状态都可以,理论上不存在20
+            $wenzhen_order['video_call_switch'] = 1;
+        }
 
         $this->success(1,$wenzhen_order);
     }
@@ -349,4 +354,133 @@ class Wenzhen extends Api
         Db::commit();
         $this->success('退珍成功');
     }
+
+    ///////////////////////////////视频即时问诊///////////////////////////
+
+    //第一次拨打视频之前,20,25可以调用
+    public function before_first_video(){
+        //判断用户来源
+        if($this->auth->comefrom != 2){
+            $this->error('用户错误');
+        }
+
+        //订单详情
+        $order_id = input('order_id',0);
+        $wenzhen_order = Db::name('wenzhen_order')->where('user_id',$this->auth->id)->where('comefrom',2)->where('id',$order_id)->find();
+        if(empty($wenzhen_order)){
+            $this->error('不存在的订单');
+        }
+
+        if($wenzhen_order['ordertype'] != 2){
+            $this->error('视频问诊才能拨打视频');
+        }
+        if($wenzhen_order['video_model'] != 2){
+            $this->error('即时视频问诊才能主动拨打视频');
+        }
+
+        if($wenzhen_order['status'] == 30){
+            $this->error('订单已结束');
+        }
+        if($wenzhen_order['status'] == 25){
+            //判断医生在线状态
+            $tenim = new Tenim();
+            $rs_online = $tenim->is_online('doctor'.$wenzhen_order['doctor_id']);
+            if($rs_online != true){
+                $this->error('医生现在不在线,请稍后拨打');
+            }
+
+            $this->success();
+        }
+
+        //20直接忽略
+
+        if($wenzhen_order['status'] != 10){
+            $this->error('订单错误,请刷新重试');
+        }
+
+
+
+        //判断患者在线状态
+        $tenim = new Tenim();
+        $rs_online = $tenim->is_online('doctor'.$wenzhen_order['doctor_id']);
+        if($rs_online != true){
+            $this->error('医生现在不在线,请稍后拨打');
+        }
+
+        $this->success('操作成功');
+    }
+
+    //第一次拨打视频
+    public function first_video(){
+        $apilimit = $this->apiLimit();
+        if(!$apilimit){
+            $this->error('操作频繁');
+        }
+
+        //订单详情
+        $order_id = input('order_id',0);
+        $wenzhen_order = Db::name('wenzhen_order')->where('user_id',$this->auth->id)->where('comefrom',2)->where('id',$order_id)->find();
+        if(empty($wenzhen_order)){
+            $this->error('不存在的订单');
+        }
+
+        if($wenzhen_order['ordertype'] != 2){
+            $this->error('视频问诊才能拨打视频');
+        }
+        if($wenzhen_order['video_model'] != 2){
+            $this->error('即时视频问诊才能主动拨打视频');
+        }
+
+        if($wenzhen_order['status'] == 30){
+            $this->error('订单已结束');
+        }
+        if($wenzhen_order['status'] == 25){
+            //倒计时
+            $minute = config('site.firstvideo_videoorder_autofinish_minute');
+            if($wenzhen_order['comefrom'] == 2){
+                $minute = config('site.tv_firstvideo_videoorder_autofinish_minute');
+            }
+
+            $rs = [
+                'video_time'    => $wenzhen_order['video_time'],
+                'video_endtime' => $wenzhen_order['video_time'] + $minute*60,
+            ];
+            $rs['seconds'] = $rs['video_endtime'] - time();
+
+            $this->success('操作成功',$rs);
+        }
+
+        //20直接忽略
+
+        if($wenzhen_order['status'] != 10){
+            $this->error('订单错误,请刷新重试');
+        }
+
+        //判断医生在线状态
+
+        //修改订单
+        $update = [
+            'status' => 25,
+            'video_time' => time(),
+        ];
+
+        $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->where('status',10)->update($update);
+        if(!$update_rs){
+            $this->error('操作失败');
+        }
+
+        //倒计时
+        $minute = config('site.firstvideo_videoorder_autofinish_minute');
+        if($wenzhen_order['comefrom'] == 2){
+            $minute = config('site.tv_firstvideo_videoorder_autofinish_minute');
+        }
+
+        $rs = [
+            'video_time'    => $update['video_time'],
+            'seconds'       => $minute*60,
+            'video_endtime' => $update['video_time'] + $minute*60,
+        ];
+
+        $this->success('操作成功',$rs);
+    }
 }