123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- <?php
- namespace app\index\controller;
- use think\Controller;
- use think\Db;
- use think\Cache;
- use app\common\model\Wenzhenorder;
- class Plantask extends Controller
- {
-
- public function auto_cancel_nopay_order(){
- $nowtime = time();
- $second = config('site.nopay_order_autocancel_minute') * 60;
- $lasttime = $nowtime - $second;
-
- $rs = Db::name('wenzhen_order')->where('status',0)->where('createtime','lt',$lasttime)->update([
- 'status' => 3,
- 'cancel_time' => $nowtime,
- 'cancel_reason' => '超时未支付',
- 'finish_time' => $nowtime,
- ]);
- echo $rs;
- }
-
- public function auto_tuizhen_noaccept_order(){
- $nowtime = time();
- $second = config('site.payorder_noaccept_autotuizhen_minute') * 60;
- $lasttime = $nowtime - $second;
-
- Db::startTrans();
- $wenzhen_order = Db::name('wenzhen_order')->where('status',10)->where('pay_time','lt',$lasttime)->order('id asc')->lock(true)->find();
- if(empty($order_list)){
- Db::rollback();
- echo 'empty';
- exit;
- }
- $order_id = $wenzhen_order['id'];
-
- $update = [
- 'status' => 16,
- 'cancel_time' => $nowtime,
- 'cancel_reason' => '超时未接诊',
- 'finish_time' => $nowtime,
- ];
-
- if($wenzhen_order['pay_type'] == 'wallet'){
-
- $logtype = $wenzhen_order['ordertype'] == 1 ? 13 : 14;
- $rs_wallet = model('wallet')->lockChangeAccountRemain($wenzhen_order['user_id'],'money',$wenzhen_order['total_fee'],$logtype,$remark='超时未接诊','wenzhen_order',$order_id);
- if($rs_wallet['status'] === false){
- Db::rollback();
- echo $rs_wallet['msg'];
- exit;
- }
-
- $update['refund_price'] = $wenzhen_order['total_fee'];
- $update['refund_status'] = 3;
- }else{
- $update['refund_status'] = 1;
-
- $Wenzhenorder_model = new Wenzhenorder;
- $refund_rs = $Wenzhenorder_model->old_refund($wenzhen_order,$wenzhen_order['total_fee']);
- if($refund_rs === true){
- $update['refund_status'] = 3;
- }
- }
- $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->update($update);
- if(!$update_rs){
- Db::rollback();
- echo '退诊失败';
- exit;
- }
- Db::commit();
- echo '退诊成功'.$order_id.'结束';
- exit;
- }
-
- public function auto_finish_firstvideo_videoorder(){
- $nowtime = time();
- $second = config('site.firstvideo_videoorder_autofinish_minute') * 60;
- $lasttime = $nowtime - $second;
- $list = Db::name('wenzhen_order')->where('status',25)->where('ordertype',2)->where('comefrom',1)->where('video_time','lt',$lasttime)->limit(10)->select();
- if(empty($list)){
- echo 'empty';exit;
- }
- foreach($list as $key => $order){
- echo $order['id'].':'.$this->finish($order['id']);
- }
- }
-
- public function auto_finish_firstvideo_videoorder_tv(){
- $nowtime = time();
- $second = config('site.tv_firstvideo_videoorder_autofinish_minute') * 60;
- $lasttime = $nowtime - $second;
- $list = Db::name('wenzhen_order')->where('status',25)->where('ordertype',2)->where('comefrom',2)->where('video_time','lt',$lasttime)->limit(10)->select();
- if(empty($list)){
- echo 'empty';exit;
- }
- foreach($list as $key => $order){
- echo $order['id'].':'.$this->finish($order['id']);
- }
- }
-
- public function auto_finish_accept_textorder(){
- $nowtime = time();
- $second = config('site.accept_textorder_autofinish_minute') * 60;
- $lasttime = $nowtime - $second;
- $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;
- }
- foreach($list as $key => $order){
- echo $order['id'].':'.$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();
-
- return '不存在的订单';
- }
- if($wenzhen_order['ordertype'] == 1){
- if($wenzhen_order['status'] != 20){
- Db::rollback();
-
- return '已接诊订单才能完成';
- }
- $old_status = 20;
- }
- if($wenzhen_order['ordertype'] == 2){
- if($wenzhen_order['status'] != 25){
- Db::rollback();
-
- return '尚未发起视频,不能结束';
- }
- $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();
-
- return $rs_wallet['msg'];
- }
- }
-
- $update_rs = Db::name('wenzhen_order')->where('id',$order_id)->where('status',$old_status)->update($update);
- if(!$update_rs){
- Db::rollback();
-
- return '操作失败';
- }
-
- Db::name('doctor')->where('id',$wenzhen_order['doctor_id'])->setInc('ordernum');
- Db::commit();
-
-
-
- return '操作成功';
- }
-
- public function auto_user_active(){
- $actitime = time() - 7200;
- $sql = 'update `mt_user` set is_active = 0 where is_active = 1 and id in (select user_id from mt_user_active where requesttime < '.$actitime.')';
- db()->query($sql);
- }
-
-
- public function auto_vipend(){
-
- }
- }
|