|
@@ -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);
|
|
|
+ }
|
|
|
}
|