|
@@ -99,12 +99,15 @@ class Plantask extends Controller
|
|
|
$second = config('site.firstvideo_videoorder_autofinish_minute') * 60;
|
|
|
$lasttime = $nowtime - $second;
|
|
|
|
|
|
- $rs = Db::name('wenzhen_order')->where('status',25)->where('ordertype',2)->where('comefrom',1)->where('video_time','lt',$lasttime)->update([
|
|
|
- 'status' => 30,
|
|
|
- 'finish_time' => $nowtime,
|
|
|
- ]);
|
|
|
+ $list = Db::name('wenzhen_order')->where('status',25)->where('ordertype',2)->where('comefrom',1)->where('video_time','lt',$lasttime)->limit(10)->select();
|
|
|
|
|
|
- echo $rs;
|
|
|
+ if(empty($list)){
|
|
|
+ echo 'empty';exit;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach($list as $key => $order){
|
|
|
+ $this->finish($order['id']);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//TV视频订单,已拨打,通话N分钟后,自动结束
|
|
@@ -113,12 +116,15 @@ class Plantask extends Controller
|
|
|
$second = config('site.tv_firstvideo_videoorder_autofinish_minute') * 60;
|
|
|
$lasttime = $nowtime - $second;
|
|
|
|
|
|
- $rs = Db::name('wenzhen_order')->where('status',25)->where('ordertype',2)->where('comefrom',2)->where('video_time','lt',$lasttime)->update([
|
|
|
- 'status' => 30,
|
|
|
- 'finish_time' => $nowtime,
|
|
|
- ]);
|
|
|
+ $list = Db::name('wenzhen_order')->where('status',25)->where('ordertype',2)->where('comefrom',2)->where('video_time','lt',$lasttime)->limit(10)->select();
|
|
|
|
|
|
- echo $rs;
|
|
|
+ if(empty($list)){
|
|
|
+ echo 'empty';exit;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach($list as $key => $order){
|
|
|
+ $this->finish($order['id']);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//图文订单,已接诊,接诊N分钟后,自动结束
|
|
@@ -127,12 +133,93 @@ class Plantask extends Controller
|
|
|
$second = config('site.accept_textorder_autofinish_minute') * 60;
|
|
|
$lasttime = $nowtime - $second;
|
|
|
|
|
|
- $rs = Db::name('wenzhen_order')->where('status',20)->where('ordertype',1)->where('accept_time','lt',$lasttime)->update([
|
|
|
- 'status' => 30,
|
|
|
- 'finish_time' => $nowtime,
|
|
|
- ]);
|
|
|
+ $list = Db::name('wenzhen_order')->where('status',20)->where('ordertype',1)->where('accept_time','lt',$lasttime)->limit(10)->select();
|
|
|
+ if(empty($list)){
|
|
|
+ echo 'empty';exit;
|
|
|
+ }
|
|
|
|
|
|
- echo $rs;
|
|
|
+ foreach($list as $key => $order){
|
|
|
+ $this->finish($order['id']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function finish($order_id){
|
|
|
+
|
|
|
+ //订单详情
|
|
|
+ Db::startTrans();
|
|
|
+ $wenzhen_order = Db::name('wenzhen_order')->where('id',$order_id)->lock(true)->find();
|
|
|
+ if(empty($wenzhen_order)){
|
|
|
+ Db::rollback();
|
|
|
+ //$this->error('不存在的订单');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($wenzhen_order['ordertype'] == 1){
|
|
|
+ if($wenzhen_order['status'] != 20){
|
|
|
+ Db::rollback();
|
|
|
+ //$this->error('已接诊订单才能完成');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $old_status = 20;
|
|
|
+ }
|
|
|
+ if($wenzhen_order['ordertype'] == 2){
|
|
|
+ if($wenzhen_order['status'] != 25){
|
|
|
+ Db::rollback();
|
|
|
+ //$this->error('尚未发起视频,不能结束');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $old_status = 25;
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改订单
|
|
|
+ $nowtime = time();
|
|
|
+ $update = [
|
|
|
+ 'status' => 30,
|
|
|
+ 'finish_time' => $nowtime,
|
|
|
+ ];
|
|
|
+
|
|
|
+ //给医生结算钱
|
|
|
+ $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']);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单状态
|
|
|
+ $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->where('status',$old_status)->update($update);
|
|
|
+ if(!$update_rs){
|
|
|
+ Db::rollback();
|
|
|
+ //$this->error('操作失败');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //医生接诊量
|
|
|
+ Db::name('doctor')->where('id',$wenzhen_order['doctor_id'])->setInc('ordernum');
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+
|
|
|
+ //发送im消息给用户,让他不能再输入
|
|
|
+ /*if($wenzhen_order['ordertype'] == 1){
|
|
|
+ $tenim = new Tenim();
|
|
|
+ $message = [
|
|
|
+ 'businessID' => 'order_status_doctor_type',
|
|
|
+ 'name' => '',
|
|
|
+ 'status' => '30',
|
|
|
+ 'id' => (string)$order_id,
|
|
|
+ 'content' => '',
|
|
|
+ ];
|
|
|
+ $rs = $tenim->sendCustomMessageToUser('user'.$wenzhen_order['user_id'],'doctor'.$wenzhen_order['doctor_id'],$message);
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
+ //$this->success('操作成功');
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|