['except' => ['index','login'] ] ]; /** * 移动端登录 * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function login() { $param = get_params(); if (empty($param['username']) || empty($param['password'])) { $this->apiError('参数错误'); } // 校验用户名密码 $user = Db::name('Admin')->where(['username' => $param['username']])->find(); if (empty($user)) { $this->apiError('帐号或密码错误'); } $param['pwd'] = set_password($param['password'], $user['salt']); if ($param['pwd'] !== $user['pwd']) { $this->apiError('帐号或密码错误'); } if ($user['status'] == -1) { $this->apiError('该用户禁止登录,请于平台联系'); } $data = [ 'last_login_time' => time(), 'last_login_ip' => request()->ip(), 'login_num' => $user['login_num'] + 1, ]; $res = Db::name('Admin')->where(['id' => $user['id']])->update($data); if ($res) { $token = self::getToken($user['id']); $this->apiSuccess('登录成功', ['token' => $token,'uid'=>$user['id']]); } } /** * 用户信息 * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function userInfo() { $uid = JWT_UID; $data = Db::name('admin') ->alias('a') ->join('Department d', 'a.did = d.id') ->where(['a.id' => $uid]) ->field('a.id,a.did,a.name,a.email,a.mobile,a.sex,a.nickname,a.thumb,a.desc,d.title as department') ->find(); $this->apiOk($data); } public function info() { $uid = JWT_UID; $data = Db::name('admin') ->alias('a') ->join('Department d', 'a.did = d.id') ->where(['a.id' => $uid]) ->field('a.id,a.did,a.name,a.email,a.mobile,a.sex,a.nickname,a.thumb,a.desc,d.title as department') ->find(); $this->apiOk($data); } //添加任务 public function add() { $param = get_params(); if (request()->isPost()) { if (isset($param['end_time'])) { $param['end_time'] = strtotime(urldecode($param['end_time'])); } if (!empty($param['id']) && $param['id'] > 0) { $task = (new TaskList())->detail($param['id']); try { validate(TaskCheck::class)->scene('edit')->check($param); } catch (ValidateException $e) { // 验证失败 输出错误信息 $this->apiError( $e->getError()); } if (isset($param['flow_status'])) { if ($param['flow_status'] == 3) { $param['over_time'] = time(); $param['done_ratio'] = 100; if($task['before_task']>0){ $flow_status = Db::name('ProjectTask')->where(['id' => $task['before_task']])->value('flow_status'); if($flow_status !=3){ $this->apiError('前置任务未完成,不能设置已完成'); } } } else { $param['over_time'] = 0; $param['done_ratio'] = 0; } } if(isset($param['before_task'])){ $after_task_array = admin_after_task_son($param['id']); //包括自己在内 $after_task_array[] = $param['id']; if (in_array($param['before_task'], $after_task_array)) { $this->apiError('前置任务不能是该任务本身或其后置任务'); } } $param['update_time'] = time(); $res = TaskList::where('id', $param['id'])->strict(false)->save($param); if ($res) { add_log('edit', $param['id'], $param); add_project_log(JWT_UID,'task',$param, $task); } $this->apiOk(); } else { try { validate(TaskCheck::class)->scene('add')->check($param); } catch (ValidateException $e) { // 验证失败 输出错误信息 $this->apiError( $e->getError()); } $param['create_time'] = time(); $param['admin_id'] = JWT_UID; $sid = TaskList::strict(false)->field(true)->insertGetId($param); if ($sid) { add_log('add', $sid, $param); $log_data = array( 'module' => 'task', 'task_id' => $sid, 'new_content' => $param['title'], 'field' => 'new', 'action' => 'add', 'admin_id' => JWT_UID, 'create_time' => time(), ); Db::name('ProjectLog')->strict(false)->field(true)->insert($log_data); //发消息 //$users = $param['director_uid']; //sendMessage($users, 21, ['title' => $param['title'],'from_uid' => $this->uid, 'create_time'=>date('Y-m-d H:i:s',time()), 'action_id' => $sid]); } $this->apiOk(); } } } //任务列表 public function list() { $param = get_params(); $param['uid'] = JWT_UID; $list = (new TaskList())->list($param); $data = $list; if (is_object($data)) { $data = $data->toArray(); } if (!empty($data['total'])) { $res['count'] = $data['total']; } else { $res['count'] = 0; } $res['data'] = $data['data']; $this->apiOk($res); } //详情--->流程? public function detail() { $param = get_params(); $where = array(); $where['a.tid'] = $param['tid']; $where['a.delete_time'] = 0; $list = Db::name('Schedule') ->field('a.*,u.name') ->alias('a') ->join('Admin u', 'u.id = a.admin_id') ->order('a.create_time desc') ->where($where) ->select()->toArray(); foreach ($list as $k => $v) { $list[$k]['start_time'] = empty($v['start_time']) ? '' : date('Y-m-d H:i', $v['start_time']); $list[$k]['end_time'] = empty($v['end_time']) ? '' : date('H:i', $v['end_time']); } $this->apiOk($list); } }