| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | <?phpnamespace app\common\model;use app\hander\HelpHander;use think\Exception;use think\Db;class PatrolTaskDelay extends Base{    public function dealDelay($userId,$orgId){        $id = input('id/d',0);        $status = input('status/d',0);        $endTime = input('end_time','');        $remark = input('remark','','trim');        if(!in_array($status,[1,2]) || $id <= 0){            $this->error = "参数错误";            return false;        }        if($status == 1 && !$endTime){            $this->error = "延期时间不能为空";            return false;        }        $info = Db::name('patrol_task_delay')->where('id',$id)->where('org_id',$orgId)->find();        if(!$info){            $this->error = "记录不存在";            return false;        }        if($info['status'] != 0){            $this->error = "申请已处理";            return false;        }        if($status == 1 && strtotime($endTime) <= time()){            $this->error = "延期时间不能小于当前时间";          //  Db::name('patrol_task_delay')->where('id',$id)->update(['status'=>3,'update_time'=>date('Y-m-d H:i:s')]);            return false;        }        Db::startTrans();        try{            $ret = Db::name('patrol_task_delay')->where('id',$id)->update([                'deal_user_id'=>$userId,                'status'=>$status,                'remark'=>$remark,                'end_time'=>$endTime,                'update_time'=>date('Y-m-d H:i:s')            ]);            if(!$ret){                \exception('操作失败');            }            if($status == 1){                $task = Db::name('patrol_task')->where('id',$info['task_id'])->find();                // 恢复计划任务                $res = Db::name('patrol_task')->where('id',$info['task_id'])->update([                    'status' => 1,                    'del' => 0,                    'end_time' => $info['end_time']                ]);                if(!$res){                    \exception('操作失败');                }                $userIds = Db::name('patrol_task_user')->where('patrol_task_id',$info['task_id'])->column('user_id');                $arr = [];                foreach ($userIds as $v){                    $arr[] = [                        'org_id'=>$orgId,                        'type'=>(new Task())::TASK_TYPE_PATROL,                        'start_time' => $task['start_time'],                        'create_time'=>getTime(),                        'bus_id'=>$task['id'],                        'user_id'=>$v                    ];                }                $res = Db::name('task')->insertAll($arr);                if($res != count($userIds)){                    \exception('操作失败');                }            }            Db::commit();        }catch (Exception $e){            Db::rollback();            $this->error = $e->getMessage();            return false;        }        return true;    }}
 |