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']; } /** * Undocumented function *列表 * @return void */ public function index() { $page = $this->request->post('page', 1); $limit = $this->request->post('size', 10); $status= $this->request->post('status'); $where = []; //判断该用户有没有权限审核 if($status){ $where['a.status'] = $status; } $where['a.tb_user_id'] = $this->user_id; // return $this->success('查询成功',$where); $date = Db::name('addition_and_subtraction_records') ->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria') ->alias('a') ->join('user u','a.user_id = u.id','LEFT') ->join('user_group g','a.group_id = g.id','LEFT') ->join('user w','a.zm_user_id = w.id','LEFT') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where($where) ->order('a.id', 'desc') ->page($page, $limit) ->select(); $count = Db::name('addition_and_subtraction_records') ->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname') ->alias('a') ->join('user u','a.user_id = u.id','LEFT') ->join('user_group g','a.group_id = g.id','LEFT') ->join('user w','a.zm_user_id = w.id','LEFT') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where($where) ->count(); $res = [ 'count' => $count, 'data' => $date ]; return $this->success('查询成功',$res); } /** * 详情查询 * @return void */ public function find(){ $id = $this->request->request('id'); if(!$id){ return $this->error('缺少参数'); } $date = Db::name('addition_and_subtraction_records') ->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria') ->alias('a') ->join('user u','a.user_id = u.id','LEFT') ->join('user_group g','a.group_id = g.id','LEFT') ->join('user w','a.zm_user_id = w.id','LEFT') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where('a.id', $id) ->find(); if($date){ return $this->success('查询成功',$date); } return $this->error('查询失败'); } /** * 新增记录 */ public function create() { $data = $this->request->post(); $data['createtime'] = date('Y-m-d H:i:s'); $result = Db::name('addition_and_subtraction_records')->strict(false)->insert($data); if ($result) { return $this->success('添加成功',$result); } else { return $this->error('添加失败',$result); } } /** * 更新记录 * * @param Request $request * @param int $id * @return \think\Response */ public function update() { $id = $this->request->post('id'); $data = $this->request->post(); if(!$id){ return $this->error('缺少参数'); } $if = Db::name('addition_and_subtraction_records') ->where('id', $id) ->value('status'); if($if != 1){ return $this->error('该记录已审核,不能修改'); } $result = Db::name('addition_and_subtraction_records')->where('id', $id)->strict(false)->update($data); if ($result) { return $this->success('更新成功',$result); } else { return $this->error('更新失败',$result); } } /** * 删除记录 * * @param int $id * @return \think\Response */ public function delete() { $id = $this->request->post('id'); if(!$id){ return $this->error('缺少参数'); } $result = Db::name('addition_and_subtraction_records')->delete($id); if ($result) { return $this->success('删除成功',$result); } else { return $this->error('删除失败',$result); } } // -------------------------------------------------------------------------------------------------------------- // 管理部分 public function index_manage(){ $group = $this->request->post('group_id'); $page = $this->request->post('page', 1); $limit = $this->request->post('size', 10); $status= $this->request->post('status'); $fsdate= $this->request->post('fsdate'); $user_id= $this->request->post('user_id'); if(!$group){ return $this->error('缺少参数'); } $where = []; if($group){ $where['a.group_id'] = $group; } if($status){ $where['a.status'] = $status; } if($fsdate){ $where['a.fsdate'] = $fsdate; } if($user_id){ $where['a.user_id'] = $user_id; } // 获取指定科室及其子科室的ID $groupIds = $this->getGroupAndSubGroupIds($group); if($groupIds){ $where['a.group_id'] = ['in', $groupIds]; } // return $this->success('查询成功',$where); $date = Db::name('addition_and_subtraction_records') ->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria,s.nickname as tb_nickname') ->alias('a') ->join('user u','a.user_id = u.id','LEFT') ->join('user_group g','a.group_id = g.id','LEFT') ->join('user w','a.zm_user_id = w.id','LEFT') ->join('user s','a.tb_user_id = s.id','LEFT') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where($where) ->order('a.id', 'desc') ->page($page, $limit) ->select(); $count = Db::name('addition_and_subtraction_records') ->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria') ->alias('a') ->join('user u','a.user_id = u.id','LEFT') ->join('user_group g','a.group_id = g.id','LEFT') ->join('user w','a.zm_user_id = w.id','LEFT') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where($where) ->order('a.id', 'desc') ->count(); //获取该用户是否有审核权限 $level = Db::name('auth_group') ->where('id', $this->auth_group) ->value('level'); foreach($date as $k => $v){ $date[$k]['level'] = $level; } $res = [ 'count' => $count, 'data' => $date ]; return $this->success('查询成功',$res); } private function getGroupAndSubGroupIds($groupId) { if (!$groupId) { return []; } // 获取指定科室及其子科室的ID $groupIds = Db::name('user_group') ->where('id', $groupId) ->whereOr('pid', $groupId) ->column('id'); return $groupIds; } /** * 详情查询 * @return void */ public function find_manage(){ $id = $this->request->request('id'); if(!$id){ return $this->error('缺少参数'); } $date = Db::name('addition_and_subtraction_records') ->field('a.*,u.nickname,g.name as group_name,w.nickname as zm_nickname,p.project_name,p.scoring_criteria,s.nickname as tb_nickname') ->alias('a') ->join('user u','a.user_id = u.id','LEFT') ->join('user_group g','a.group_id = g.id','LEFT') ->join('user w','a.zm_user_id = w.id','LEFT') ->join('user s','a.tb_user_id = s.id','LEFT') ->join('plus_minus_scoring p','a.assessment_project = p.id','LEFT') ->where('a.id', $id) ->find(); if($date){ return $this->success('查询成功',$date); } return $this->error('查询失败'); } /** * 审核 */ public function examine(){ $id = $this->request->post('id'); $status = $this->request->post('status'); //获取该用户是否有审核权限 $level = Db::name('auth_group') ->where('id', $this->auth_group) ->value('level'); if($level == 2){ return $this->error('您没有权限'); } if(!$id || !$status){ return $this->error('缺少参数'); } $where = [ 'id' => $id, ]; $update = [ 'status' => $status, ]; $res = Db::name('addition_and_subtraction_records')->where($where)->update($update); if($res){ return $this->success('审核成功'); } return $this->error('审核失败'); } public function plexamine() { // 接收原始参数 $idsParam = $this->request->post('ids'); $status = $this->request->post('status'); // 权限验证 $level = Db::name('auth_group') ->where('id', $this->auth_group) ->value('level'); if ($level == 2) { return $this->error('您没有审核权限'); } // 参数预处理 $ids = []; if (!empty($idsParam)) { // 将字符串转换为数组并过滤无效ID $ids = array_filter(explode(',', $idsParam), function($id) { return is_numeric($id) && $id > 0; }); } // 参数校验 if (empty($ids) || !$status) { return $this->error('缺少必要参数或包含无效ID'); } // 构造批量更新条件 $where = [ 'id' => ['in', $ids] ]; $update = [ 'status' => $status, // 'updatetime' => time() ]; // 执行批量更新 $affectedRows = Db::name('addition_and_subtraction_records') ->where($where) ->update($update); // 结果处理 if ($affectedRows !== false) { if ($affectedRows > 0) { return $this->success("成功更新{$affectedRows}条记录"); } return $this->error('未找到可更新的记录'); } return $this->error('审核操作失败'); } }