src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/repository/UserMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/UserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/DepartmentMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/UserDepartmentMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/UserMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
@@ -146,7 +146,7 @@ @RequestMapping(value = "/getDeptAdmins", method = RequestMethod.GET) public RestResponse<List<Department>> getDeptAdmins(){ return RestResponse.ok(userService.getDeptAdmins(isDeptAdmin() ? getCurrentUser().getId() : null)); return RestResponse.ok(userService.getDeptAdmins(isDeptAdmin() ? getAdminDeptIds() : null)); } @GetMapping("/cascader") src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
@@ -28,4 +28,6 @@ List<BaseSelect> getDeptUserList(Integer deptId); void insertBatchByDepartmentExamine(DepartmentExamineVO departmentExamine); List<Integer> selectDeptAdmin(Integer id); } src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -165,11 +165,11 @@ void updateUserDeptAdmin(UpdateDeptAdminVO form); void cancelUserDeptAdmin(UpdateDeptAdminVO form); void cancelUserDeptAdmin(List<Integer> userIds); List<Integer> getDeptAdminIds(@Param("userId") Integer userId); List<Department> getDeptAdmins(Integer id); List<Department> getDeptAdmins(List<Integer> ids); User getUserByExamByTemplateId(ExamPaper examPaper); src/main/java/com/mindskip/xzs/service/UserService.java
@@ -143,7 +143,7 @@ List<Department> getDeptAdminIdAndInfo(Integer userId); List<Department> getDeptAdmins(Integer id); List<Department> getDeptAdmins(List<Integer> ids); User getUserByExamByTemplateId(ExamPaper examPaper); src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -58,15 +58,19 @@ if (Objects.isNull(entity)) { throw new RuntimeException("该部门不存在"); } // 先清除之前的管理员标识 List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId()); List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList()); if (! CollectionUtils.isEmpty(userIds)) { userMapper.clearDeptAdmin(userIds, entity.getId()); userMapper.cancelUserDeptAdmin(userIds); } // 设置部门管理员 if (! CollectionUtils.isEmpty(department.getAdminId())) { List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId()); List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList()); if (! CollectionUtils.isEmpty(userIds)) { // 先清除之前的管理员标识 userMapper.clearDeptAdmin(userIds, entity.getId()); } // 标识部门管理员 userMapper.updateDeptAdmin(department.getAdminId(), DeptAdminEnum.YES.getValue(), entity.getId()); UpdateDeptAdminVO updateDeptAdminVO = new UpdateDeptAdminVO(); updateDeptAdminVO.setAdminIds(department.getAdminId()); userMapper.updateUserDeptAdmin(updateDeptAdminVO); } if (Objects.nonNull(department.getParentId())) { // 查出父级的层级 @@ -133,6 +137,7 @@ Collections.reverse(fatherList); vo.setParentIds(fatherList); } vo.setAdminId(userDepartmentMapper.selectDeptAdmin(id)); return vo; } @@ -163,20 +168,20 @@ if (Objects.isNull(entity)) { throw new RuntimeException("该部门不存在"); } List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId()); List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList()); if (! CollectionUtils.isEmpty(userIds)) { // 先清除之前的管理员标识 userMapper.clearDeptAdmin(userIds, entity.getId()); // 修改没被选择的用户并且不是别的部门管理员的用户角色为1 userMapper.cancelUserDeptAdmin(userIds); } if (! CollectionUtils.isEmpty(form.getAdminIds())) { List<BaseSelect> deptUserList = userDepartmentMapper.getDeptUserList(entity.getId()); List<Integer> userIds = deptUserList.stream().map(BaseSelect::getId).collect(Collectors.toList()); if (! CollectionUtils.isEmpty(userIds)) { // 先清除之前的管理员标识 userMapper.clearDeptAdmin(userIds, entity.getId()); } // 标识部门管理员 userMapper.updateDeptAdmin(form.getAdminIds(), DeptAdminEnum.YES.getValue(), entity.getId()); // 修改被选择的用户为部门管理员 userMapper.updateUserDeptAdmin(form); } // 修改被选择的用户为部门管理员 userMapper.updateUserDeptAdmin(form); // 修改没被选择的用户并且不是别的部门管理员的用户角色为1 userMapper.cancelUserDeptAdmin(form); } @Override src/main/java/com/mindskip/xzs/service/impl/SubjectServiceImpl.java
@@ -15,6 +15,7 @@ import com.mindskip.xzs.repository.SubjectMapper; import com.mindskip.xzs.service.SubjectService; import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -112,14 +113,18 @@ @Override @Transactional(rollbackFor = Exception.class) public void edit(EditSubjectForm form) { // 删除原先的课目,再新增 subjectDeptMapper.deleteByDeptId(form.getDeptId()); List<SubjectDept> toAddList = form.getSubjectIds().stream().map(subjectId -> { SubjectDept subjectDept = new SubjectDept(); subjectDept.setDeptId(form.getDeptId()); subjectDept.setSubjectId(subjectId); return subjectDept; }).collect(Collectors.toList()); subjectDeptMapper.add(toAddList); if (ObjectUtils.isNotEmpty(form.getDeptId())) { // 删除原先的课目,再新增 subjectDeptMapper.deleteByDeptId(form.getDeptId()); List<SubjectDept> toAddList = form.getSubjectIds().stream().map(subjectId -> { SubjectDept subjectDept = new SubjectDept(); subjectDept.setDeptId(form.getDeptId()); subjectDept.setSubjectId(subjectId); return subjectDept; }).collect(Collectors.toList()); if (ObjectUtils.isNotEmpty(toAddList)) { subjectDeptMapper.add(toAddList); } } } } src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -197,8 +197,8 @@ } @Override public List<Department> getDeptAdmins(Integer id) { List<Department> list = userMapper.getDeptAdmins(id); public List<Department> getDeptAdmins(List<Integer> ids) { List<Department> list = userMapper.getDeptAdmins(ids); return TreeUtils.build(list); } src/main/resources/mapper/DepartmentMapper.xml
@@ -27,9 +27,6 @@ <if test="name != null"> name = #{name,jdbcType=VARCHAR}, </if> <if test="adminId != null"> admin_id = #{adminId}, </if> <if test="deleted != null"> deleted = #{deleted,jdbcType=VARCHAR}, </if> src/main/resources/mapper/UserDepartmentMapper.xml
@@ -81,4 +81,8 @@ </where> </select> <select id="selectDeptAdmin" resultType="java.lang.Integer"> SELECT user_id FROM t_user_department WHERE dept_admin = 1 AND department_id = #{depId} </select> </mapper> src/main/resources/mapper/UserMapper.xml
@@ -523,18 +523,10 @@ </update> <update id="cancelUserDeptAdmin"> update t_user set role = 1 where id in( select user_id from t_user_department where department_id = #{id} and user_id not in <foreach collection="adminIds" item="id" open="(" separator="," close=")"> #{id} </foreach> and user_id not in (select user_id from t_user_department where dept_admin = 1 and user_id in (select user_id from t_user_department where department_id = #{id} and user_id not in <foreach collection="adminIds" item="id" open="(" separator="," close=")"> #{id} </foreach> ))) update t_user set role = 1 where id in <foreach collection="userIds" item="id" open="(" separator="," close=")"> #{id} </foreach> </update> <select id="getDeptAdminIds" resultType="java.lang.Integer" parameterType="java.lang.Integer"> @@ -551,10 +543,10 @@ dept_admin = 1 and user_id = #{userId} </select> <select id="getDeptAdmins" resultType="com.mindskip.xzs.domain.Department" parameterType="java.lang.Integer"> <if test="id != null"> <select id="getDeptAdmins" resultType="com.mindskip.xzs.domain.Department"> <if test="ids != null and ids.size() != 0"> WITH RECURSIVE temp_table AS ( select a.id, a.name, a.parent_id from t_department a inner join t_user_department b on a.id = b.department_id where a.deleted = 0 and b.dept_admin = 1 and b.user_id = #{id} select a.id, a.name, a.parent_id from t_department a WHERE id IN <foreach collection="ids" item="id" open="(" separator="," close=")"> #{id} </foreach> UNION ALL SELECT so.id, so.name, so.parent_id FROM t_department so INNER JOIN temp_table tb ON so.parent_id = tb.id @@ -564,7 +556,7 @@ FROM temp_table </if> <if test="id == null"> <if test="ids == null or ids.size() == 0"> select a.id, a.name, a.parent_id from t_department a where a.deleted = 0 order by a.id </if> </select>