request->header('Token'); if(!$id){ return $this->error('缺少参数'); } $user = Db::name('user')->where('token', $id)->find(); if(!$user){ return $this->error('用户不存在'); } $this->user_id = $user['id']; $this->auth_group = $user['auth_group_id']; $this->user_group = $user['group_id']; } public function index(){ $auth = Db::name('auth_group')->where('id', $this->auth_group)->find(); $group = Db::name('user_group')->where('id', $this->user_group)->find(); if(!$auth){ $this->error('角色无效'); } $where = []; if($auth['level'] == 2){ $where['id'] = $group['id']; } $data = Db::name('user_group')->where($where)->select(); // 构建层级结构 $tree = $this->buildTree($data); $this->success(__('Logged in successful'), $tree ); } /** * 构建树结构 * * @param array $data 数据库查询结果数组 * @param int $parentId 父ID * @return array */ private function buildTree(array $data, $parentId = 0) { $tree = []; foreach ($data as $item) { if ($item['pid'] == $parentId) { $children = $this->buildTree($data, $item['id']); if ($children) { $item['children'] = $children; } $tree[] = $item; } } return $tree; } public function find(){ $group_id = $this->request->post('group_id'); $page = $this->request->post('page', 1); $size = $this->request->post('size', 10); $nickname = $this->request->post('nickname'); $mobile = $this->request->post('mobile'); // 基础条件 $where = ['group_id' => $group_id]; // 模糊搜索处理 if ($nickname) { $where['nickname'] = ['like', "%{$nickname}%"]; // 前后模糊匹配 } if ($mobile) { $where['mobile'] = ['like', "%{$mobile}%"]; // 前后模糊匹配 } // 执行查询 $userList = Db::name('user') ->where($where) ->page($page, $size) ->order('id asc') ->select(); // 获取总数(需移除分页参数) $count = Db::name('user') ->where($where) ->count(); $data = [ 'count' => $count, 'data' => $userList, ]; // 业务逻辑判断 if ($count == 0) { $this->error('未查询到相关数据'); } $this->success(__('查询成功'), $data); } public function personalProfile(){ $id = $this->request->post('user_id'); $time = $this->request->post('time', date('Y')); if (!$id) { $this->error(__('Invalid parameters')); } $ret = Db::name('user')->where('id',$id)->find(); $date = Db::name('addition_and_subtraction_records') ->field('a.*,p.project_name,p.scoring_criteria') ->alias('a') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where('user_id', $id) ->where('YEAR(createtime)', $time) ->where('status',2) ->order('a.id', 'desc') ->select(); $array = [ 'user' => $ret, 'date' => $date, ]; if ($array) { $this->success(__('Logged in successful'), $array); } else { $this->error($this->auth->getError()); } } }