src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/repository/DepartmentMapper.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/UserServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/DepartmentMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/UserMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java
@@ -2,9 +2,11 @@ import com.mindskip.xzs.context.WebContext; import com.mindskip.xzs.domain.Department; import com.mindskip.xzs.domain.enums.DeptAdminEnum; import com.mindskip.xzs.domain.enums.RoleEnum; import com.mindskip.xzs.domain.enums.UserStatusEnum; import com.mindskip.xzs.domain.vo.CascaderDataVO; import com.mindskip.xzs.repository.DepartmentMapper; import com.mindskip.xzs.service.AuthenticationService; import com.mindskip.xzs.service.UserService; @@ -23,6 +25,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** @@ -66,16 +69,23 @@ grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.DEPT_ADMIN.getRoleName())); } grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.fromCode(user.getRole()).getRoleName())); // 获取该用户管理部门及其下级 List<Integer> deptAdminIds = userService.getDeptAdminIds(user.getId()); if (! CollectionUtils.isEmpty(deptAdminIds)) { deptAdminIds = departmentMapper.getChilds(deptAdminIds); // 查询子部门 // 获取该用户管理部门及其下级deptAdminIds List<Department> deptList = userService.getDeptAdminIdAndInfo(user.getId()); List<Integer> deptIds = deptList.stream().map(dept -> dept.getId()).collect(Collectors.toList()); if (! CollectionUtils.isEmpty(deptIds)) { deptIds = departmentMapper.getChilds(deptIds); // 查询子部门 // 如果该部门还被赋予了管理三级单位的的权限,则查出来 if (deptList.stream().anyMatch(Department::getSpecial)) { List<CascaderDataVO> levelDeptList = departmentMapper.getLevelDeptList(3); List<Integer> level3DeptIds = levelDeptList.stream().map(CascaderDataVO::getValue).collect(Collectors.toList()); deptIds.addAll(level3DeptIds); } } if (CollectionUtils.isEmpty(deptAdminIds)) { else if (CollectionUtils.isEmpty(deptIds)) { // 如果是普通学员,查出所在部门 deptAdminIds = userService.getDeptIds(user.getId()); deptIds = userService.getDeptIds(user.getId()); } MyUser authUser = new MyUser(user.getUserName(), user.getPassword(), grantedAuthorities, user.getRole(), deptAdminIds); MyUser authUser = new MyUser(user.getUserName(), user.getPassword(), grantedAuthorities, user.getRole(), deptIds); return new UsernamePasswordAuthenticationToken(authUser, authUser.getPassword(), authUser.getAuthorities()); } src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java
@@ -55,4 +55,12 @@ * @return */ List<Integer> getFather(@Param("deptId") Integer deptId); /** * 获取几级单位 * * @param level * @return */ List<CascaderDataVO> getLevelDeptList(@Param("level") Integer level); } src/main/java/com/mindskip/xzs/repository/UserMapper.java
@@ -167,7 +167,7 @@ void cancelUserDeptAdmin(UpdateDeptAdminVO form); List<Integer> getDeptAdminIds(Integer id); List<Integer> getDeptAdminIds(@Param("userId") Integer userId); List<Department> getDeptAdmins(Integer id); @@ -178,4 +178,12 @@ List<User> getFailExamUser(Integer examPaperId); List<User> getFailTemplateUser(Integer templateId); /** * 获取用户管理的部门信息 * * @param userId * @return */ List<Department> getDeptAdminIdAndInfo(@Param("userId") Integer userId); } src/main/java/com/mindskip/xzs/service/UserService.java
@@ -139,7 +139,9 @@ User getUserByExam(ExamPaper examPaper); List<Integer> getDeptAdminIds(Integer id); List<Integer> getDeptAdminIds(Integer userId); List<Department> getDeptAdminIdAndInfo(Integer userId); List<Department> getDeptAdmins(Integer id); src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java
@@ -187,8 +187,13 @@ } @Override public List<Integer> getDeptAdminIds(Integer id) { return userMapper.getDeptAdminIds(id); public List<Integer> getDeptAdminIds(Integer userId) { return userMapper.getDeptAdminIds(userId); } @Override public List<Department> getDeptAdminIdAndInfo(Integer userId) { return userMapper.getDeptAdminIdAndInfo(userId); } @Override src/main/resources/mapper/DepartmentMapper.xml
@@ -173,4 +173,8 @@ temp_table </select> <select id="getLevelDeptList" resultType="com.mindskip.xzs.domain.vo.CascaderDataVO"> SELECT id as value, name as label, parent_id, special, level FROM t_department WHERE level = #{level} </select> </mapper> src/main/resources/mapper/UserMapper.xml
@@ -538,7 +538,17 @@ </update> <select id="getDeptAdminIds" resultType="java.lang.Integer" parameterType="java.lang.Integer"> select department_id from t_user_department where dept_admin = 1 and user_id = #{id} select department_id from t_user_department where dept_admin = 1 and user_id = #{userId} </select> <select id="getDeptAdminIdAndInfo" resultType="com.mindskip.xzs.domain.Department"> select d.id, d.name, d.special from t_user_department ud INNER JOIN t_department d ON ud.department_id = d.id WHERE dept_admin = 1 and user_id = #{userId} </select> <select id="getDeptAdmins" resultType="com.mindskip.xzs.domain.Department" parameterType="java.lang.Integer">