From 13a68df58b3f937db5ba6437c814bafdcd8d37f8 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 27 五月 2024 16:09:41 +0800 Subject: [PATCH] 登录时如果不是部门管理员则deptIds填充为用户所在部门 --- src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java | 5 +++++ src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java | 5 +++++ src/main/java/com/mindskip/xzs/repository/UserMapper.java | 2 ++ src/main/java/com/mindskip/xzs/service/UserService.java | 8 ++++++++ src/main/resources/mapper/UserMapper.xml | 4 ++++ 5 files changed, 24 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java b/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java index c6c39f9..d11b5d3 100644 --- a/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java +++ b/src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java @@ -19,6 +19,7 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; @@ -67,6 +68,10 @@ grantedAuthorities.add(new SimpleGrantedAuthority(RoleEnum.fromCode(user.getRole()).getRoleName())); // 鑾峰彇璇ョ敤鎴风鐞嗛儴闂� List<Integer> deptAdminIds = userService.getDeptAdminIds(user.getId()); + if (CollectionUtils.isEmpty(deptAdminIds)) { + // 濡傛灉鏄櫘閫氬鍛橈紝鏌ュ嚭鎵�鍦ㄩ儴闂� + deptAdminIds = userService.getDeptIds(user.getId()); + } MyUser authUser = new MyUser(user.getUserName(), user.getPassword(), grantedAuthorities, user.getRole(), deptAdminIds); return new UsernamePasswordAuthenticationToken(authUser, authUser.getPassword(), authUser.getAuthorities()); } diff --git a/src/main/java/com/mindskip/xzs/repository/UserMapper.java b/src/main/java/com/mindskip/xzs/repository/UserMapper.java index a8ef3a0..2bb45b8 100644 --- a/src/main/java/com/mindskip/xzs/repository/UserMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/UserMapper.java @@ -172,4 +172,6 @@ List<Department> getDeptAdmins(Integer id); User getUserByExamByTemplateId(ExamPaper examPaper); + + List<Integer> getDeptIds(@Param("userId") Integer userId); } diff --git a/src/main/java/com/mindskip/xzs/service/UserService.java b/src/main/java/com/mindskip/xzs/service/UserService.java index 7c77c1a..eb652a4 100644 --- a/src/main/java/com/mindskip/xzs/service/UserService.java +++ b/src/main/java/com/mindskip/xzs/service/UserService.java @@ -144,4 +144,12 @@ List<Department> getDeptAdmins(Integer id); User getUserByExamByTemplateId(ExamPaper examPaper); + + /** + * 鑾峰彇鐢ㄦ埛鎵�鍦ㄩ儴闂� + * + * @param id + * @return + */ + List<Integer> getDeptIds(Integer id); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java index 86dfc09..92a8b58 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java @@ -199,4 +199,9 @@ public User getUserByExamByTemplateId(ExamPaper examPaper) { return userMapper.getUserByExamByTemplateId(examPaper); } + + @Override + public List<Integer> getDeptIds(Integer userId) { + return userMapper.getDeptIds(userId); + } } diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 4cdbd6d..1c55b8d 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -565,4 +565,8 @@ ]]> </select> + <select id="getDeptIds" resultType="integer"> + SELECT department_id FROM t_user_department WHERE user_id = #{userId} AND dept_admin != 1 + </select> + </mapper> -- Gitblit v1.8.0