|
1 | 1 | package top.cadecode.uniboot.system.serviceimpl; |
2 | 2 |
|
| 3 | +import cn.hutool.core.util.ObjectUtil; |
3 | 4 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
4 | 5 | import lombok.RequiredArgsConstructor; |
5 | 6 | import org.springframework.security.core.userdetails.UserDetails; |
6 | 7 | import org.springframework.stereotype.Service; |
7 | 8 | import top.cadecode.uniboot.common.exception.UniException; |
8 | | -import top.cadecode.uniboot.system.bean.dto.SysUserDto.SysUserDetailsDto; |
9 | | -import top.cadecode.uniboot.system.bean.po.SysRole; |
10 | 9 | import top.cadecode.uniboot.system.bean.po.SysUser; |
| 10 | +import top.cadecode.uniboot.system.bean.vo.SysUserVo.SysUserRolesVo; |
11 | 11 | import top.cadecode.uniboot.system.convert.SysUserConvert; |
12 | | -import top.cadecode.uniboot.system.mapper.SysRoleMapper; |
13 | 12 | import top.cadecode.uniboot.system.mapper.SysUserMapper; |
14 | 13 | import top.cadecode.uniboot.system.service.SysUserService; |
15 | 14 |
|
16 | 15 | import java.util.List; |
17 | | -import java.util.Optional; |
18 | | -import java.util.stream.Collectors; |
19 | 16 |
|
20 | 17 | /** |
21 | 18 | * 系统用户服务实现 |
|
27 | 24 | @RequiredArgsConstructor |
28 | 25 | public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService { |
29 | 26 |
|
30 | | - private final SysRoleMapper sysRoleMapper; |
| 27 | + private final SysUserMapper sysUserMapper; |
31 | 28 |
|
32 | 29 | /** |
33 | 30 | * UserDetailsService 实现 |
34 | 31 | */ |
35 | 32 | @Override |
36 | 33 | public UserDetails loadUserByUsername(String username) { |
37 | | - Optional<SysUser> sysUserOpt = lambdaQuery().eq(SysUser::getUsername, username).oneOpt(); |
| 34 | + List<SysUserRolesVo> userRolesVoList = sysUserMapper.listRolesVoByUsername(username); |
38 | 35 | // 用户账户不存在 |
39 | | - sysUserOpt.orElseThrow(() -> UniException.of("该用户不存在")); |
| 36 | + if (ObjectUtil.isEmpty(userRolesVoList)) { |
| 37 | + throw UniException.of("该用户不存在"); |
| 38 | + } |
| 39 | + SysUserRolesVo userRolesVo = userRolesVoList.get(0); |
40 | 40 | // 用户账号被关闭 |
41 | | - if (!sysUserOpt.get().isEnableFlag()) { |
| 41 | + if (!userRolesVo.getEnableFlag()) { |
42 | 42 | throw UniException.of("账号已被关闭"); |
43 | 43 | } |
44 | | - SysUserDetailsDto sysUserDetailsDto = SysUserConvert.INSTANCE.poToDetailsDto(sysUserOpt.get()); |
45 | | - List<SysRole> sysRoles = sysRoleMapper.listByUserId(sysUserDetailsDto.getId()); |
46 | | - sysUserDetailsDto.setRoles(sysRoles.stream().map(SysRole::getCode).collect(Collectors.toList())); |
47 | | - return sysUserDetailsDto; |
| 44 | + return SysUserConvert.INSTANCE.rolesVoToDetailsDto(userRolesVo); |
| 45 | + } |
| 46 | + |
| 47 | + @Override |
| 48 | + public List<SysUserRolesVo> listRolesVo(List<Long> userIds) { |
| 49 | + return sysUserMapper.listRolesVo(userIds); |
48 | 50 | } |
49 | 51 | } |
0 commit comments