xiangpei
2024-05-27 13a68df58b3f937db5ba6437c814bafdcd8d37f8
登录时如果不是部门管理员则deptIds填充为用户所在部门
5个文件已修改
24 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/configuration/spring/security/RestAuthenticationProvider.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/UserMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/UserService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/UserServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
    }
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);
}
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);
}
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);
    }
}
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>