|
@@ -706,6 +706,12 @@ class Wenzhen extends Api
|
|
|
];
|
|
|
$rs['seconds'] = $rs['video_endtime'] - time();
|
|
|
|
|
|
+ //修改最后拨通时间
|
|
|
+ $update = [
|
|
|
+ 'last_video_time' => time(),
|
|
|
+ ];
|
|
|
+ $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->update($update);
|
|
|
+
|
|
|
$this->success('操作成功',$rs);
|
|
|
}
|
|
|
|
|
@@ -715,12 +721,11 @@ class Wenzhen extends Api
|
|
|
$this->error('订单错误,请刷新重试');
|
|
|
}
|
|
|
|
|
|
- //判断医生在线状态
|
|
|
-
|
|
|
//修改订单
|
|
|
$update = [
|
|
|
'status' => 25,
|
|
|
'video_time' => time(),
|
|
|
+ 'last_video_time' => time(),
|
|
|
];
|
|
|
|
|
|
$update_rs = Db::name('wenzhen_order')->where('id',$order_id)->where('status',10)->update($update);
|
|
@@ -743,4 +748,67 @@ class Wenzhen extends Api
|
|
|
$this->success('操作成功',$rs);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //挂断,医生挂断。这个方法主要用来统计是否已满足一分钟
|
|
|
+ public function video_end(){
|
|
|
+ $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'] != 25){
|
|
|
+ $this->error('订单错误,请刷新重试');
|
|
|
+ }
|
|
|
+
|
|
|
+ $nowtime = time();
|
|
|
+
|
|
|
+ //本次不超过1分钟
|
|
|
+ if($nowtime - $wenzhen_order['last_video_time'] < 60 ){
|
|
|
+ $this->success('已挂断');
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果本次挂断之前已通话超过一分钟,那自动结束
|
|
|
+ Db::startTrans();
|
|
|
+ $wenzhen_order = Db::name('wenzhen_order')->where('id',$order_id)->lock(true)->find();
|
|
|
+ $update = [
|
|
|
+ 'status' => 30,
|
|
|
+ 'finish_time' => $nowtime,
|
|
|
+ ];
|
|
|
+ $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->update($update);
|
|
|
+ if(!$update_rs){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('操作失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ //给医生结算钱
|
|
|
+ $logtype = $wenzhen_order['ordertype'] == 1 ? 111 : 112;
|
|
|
+ if($wenzhen_order['comefrom'] == 1 && $wenzhen_order['total_fee'] > 0){
|
|
|
+ $rs_wallet = model('walletdoctor')->lockChangeAccountRemain($wenzhen_order['doctor_id'],'money',$wenzhen_order['total_fee'],$logtype,$remark='问诊订单','wenzhen_order',$order_id);
|
|
|
+ if($rs_wallet['status'] === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error($rs_wallet['msg']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //医生接诊量
|
|
|
+ Db::name('doctor')->where('id',$wenzhen_order['doctor_id'])->setInc('ordernum');
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+ $this->success('已挂断');
|
|
|
+ }
|
|
|
+
|
|
|
}
|