noticeModel = $noticeModel; } /** * 列表 * @time 2021年05月28日 17:16 * @param Request $request */ public function index(Request $request): \think\Response { return CatchResponse::paginate($this->noticeModel->getList()); } /** * 保存信息 * @time 2021年05月28日 17:16 * @param Request $request */ public function save(Request $request): \think\Response { $data = $request->post(); $department_id = end($data['department_id']); // var_dump($data); $depart_type = Department::where('id', $department_id)->value('department_type'); $type_remark = (new SysDictData)->getRemarkByCode('DepartmentType', $depart_type); if ($type_remark != $data['type']) { return CatchResponse::fail('学校/班级/年级选择与类型不一致'); } if ($type_remark == 'school') { if ($data['enable']) { $data['enable'] = 1; //不能重复启用 $where = ['school_id'=>$department_id,'type'=>'school','enable'=>1]; $info = $this->noticeModel->where($where)->find(); if (!empty($info)) { return CatchResponse::fail('该类型公告已有启用'); } }else{ $data['enable'] = 0; } $data['school_id'] = $department_id; } if ($type_remark == 'grade') { if ($data['enable']) { $data['enable'] = 1; //不能重复启用 $where = ['grade_id'=>$department_id,'type'=>'grade','enable'=>1]; $info = $this->noticeModel->where($where)->find(); if (!empty($info)) { return CatchResponse::fail('该类型公告已有启用'); } }else{ $data['enable'] = 0; } $data['grade_id'] = $department_id; $data['school_id'] = Department::where('id', $department_id)->value('parent_id'); } if ($type_remark == 'class') { if ($data['enable']) { $data['enable'] = 1; //不能重复启用 $where = ['class_id'=>$department_id,'type'=>'class','enable'=>1]; $info = $this->noticeModel->where($where)->find(); if (!empty($info)) { return CatchResponse::fail('该类型公告已有启用'); } }else{ $data['enable'] = 0; } $data['class_id'] = $department_id; $data['grade_id'] = Department::where('id', $department_id)->value('parent_id'); $data['school_id'] = Department::where('id', $data['grade_id'])->value('parent_id'); } return CatchResponse::success($this->noticeModel->storeBy($data)); } /** * 读取 * @time 2021年05月28日 17:16 * @param $id */ public function read($id): \think\Response { return CatchResponse::success($this->noticeModel->findBy($id)); } /** * 更新 * @time 2021年05月28日 17:16 * @param Request $request * @param $id */ public function update(Request $request, $id): \think\Response { $data = $request->post(); $department_id = end($data['department_id']); // var_dump($data); $depart_type = Department::where('id', $department_id)->value('department_type'); $type_remark = (new SysDictData)->getRemarkByCode('DepartmentType', $depart_type); if ($type_remark != $data['type']) { return CatchResponse::fail('学校/班级/年级选择与类型不一致'); } // var_dump($type_remark); if ($type_remark == 'school') { if ($data['enable']) { $data['enable'] = 1; //不能重复启用 $where = ['school_id'=>$department_id,'type'=>'school','enable'=>1]; $info = $this->noticeModel->where($where)->find(); if (!empty($info) && $id != $info['id']) { return CatchResponse::fail('该类型公告已有启用'); } }else{ $data['enable'] = 0; } $data['school_id'] = $department_id; } if ($type_remark == 'grade') { if ($data['enable']) { $data['enable'] = 1; //不能重复启用 $where = ['grade_id'=>$department_id,'type'=>'grade','enable'=>1]; $info = $this->noticeModel->where($where)->find(); if (!empty($info) && $id != $info['id']) { return CatchResponse::fail('该类型公告已有启用'); } }else{ $data['enable'] = 0; } $data['grade_id'] = $department_id; $data['school_id'] = Department::where('id', $department_id)->value('parent_id'); } if ($type_remark == 'class') { if ($data['enable']) { $data['enable'] = 1; //不能重复启用 $where = ['class_id'=>$department_id,'type'=>'class','enable'=>1]; $info = $this->noticeModel->where($where)->find(); if (!empty($info) && $id != $info['id']) { return CatchResponse::fail('该类型公告已有启用'); } }else{ $data['enable'] = 0; } $data['class_id'] = $department_id; $data['grade_id'] = Department::where('id', $department_id)->value('parent_id'); $data['school_id'] = Department::where('id', $data['grade_id'])->value('parent_id'); } unset($data['department_id']); return CatchResponse::success($this->noticeModel->updateBy($id, $data)); } /** * 删除 * @time 2021年05月28日 17:16 * @param $id */ public function delete($id): \think\Response { return CatchResponse::success($this->noticeModel->deleteBy($id)); } }