Skip to content

Commit 63d7b1d

Browse files
committed
feat: 添加登录逻辑
1 parent 538ba33 commit 63d7b1d

8 files changed

Lines changed: 53 additions & 7 deletions

File tree

simple-system/src/main/java/top/cadecode/sra/system/bean/dto/SysUserDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package top.cadecode.sra.system.bean.dto;
22

3+
import com.fasterxml.jackson.annotation.JsonIgnore;
34
import lombok.Data;
45
import org.springframework.security.core.GrantedAuthority;
56
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -30,6 +31,7 @@ public class SysUserDto implements UserDetails {
3031
/**
3132
* 密码
3233
*/
34+
@JsonIgnore
3335
private String password;
3436

3537
/**

simple-system/src/main/java/top/cadecode/sra/system/bean/vo/SysApiVo.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import com.baomidou.mybatisplus.annotation.TableId;
55
import lombok.Data;
66

7-
import java.util.Date;
8-
97
/**
108
* @author Cade Li
119
* @date 2022/5/24

simple-system/src/main/java/top/cadecode/sra/system/bean/vo/SysUserVo.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,17 @@ public class SysUserVo {
1717
*/
1818
@TableId(type = IdType.ASSIGN_ID)
1919
private Long id;
20+
2021
/**
2122
* 用户名
2223
*/
2324
private String username;
24-
/**
25-
* 密码
26-
*/
27-
private String password;
25+
2826
/**
2927
* 昵称
3028
*/
3129
private String nickName;
30+
3231
/**
3332
* 是否启用
3433
*/

simple-system/src/main/java/top/cadecode/sra/system/convert/SysUserConvert.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.mapstruct.Mapper;
44
import org.mapstruct.factory.Mappers;
5+
import top.cadecode.sra.system.bean.dto.SysUserDto;
56
import top.cadecode.sra.system.bean.po.SysUser;
67
import top.cadecode.sra.system.bean.vo.SysUserVo;
78

@@ -17,4 +18,5 @@ public interface SysUserConvert {
1718

1819
SysUserVo poToVo(SysUser po);
1920

21+
SysUserDto poToDto(SysUser po);
2022
}

simple-system/src/main/java/top/cadecode/sra/system/mapper/SysRoleMapper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,19 @@
22

33
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
44
import org.apache.ibatis.annotations.Mapper;
5+
import org.apache.ibatis.annotations.Param;
56
import top.cadecode.sra.system.bean.po.SysRole;
67

8+
import java.util.List;
9+
710
/**
811
* @author Cade Li
912
* @date 2022/5/27
1013
* @description 系统角色 DAO
1114
*/
1215
@Mapper
1316
public interface SysRoleMapper extends BaseMapper<SysRole> {
17+
18+
List<SysRole> listByUserId(@Param("userId") Long userId);
19+
1420
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package top.cadecode.sra.system.service;
22

33
import com.baomidou.mybatisplus.extension.service.IService;
4+
import org.springframework.security.core.userdetails.UserDetailsService;
45
import top.cadecode.sra.system.bean.po.SysUser;
56

67
/**
78
* @author Cade Li
89
* @date 2022/5/27
910
* @description 系统用户服务
1011
*/
11-
public interface SysUserService extends IService<SysUser> {
12+
public interface SysUserService extends IService<SysUser>, UserDetailsService {
1213
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,48 @@
11
package top.cadecode.sra.system.serviceimpl;
22

33
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.security.core.userdetails.UserDetails;
46
import org.springframework.stereotype.Service;
7+
import top.cadecode.sra.common.exception.ApiException;
8+
import top.cadecode.sra.system.bean.dto.SysUserDto;
9+
import top.cadecode.sra.system.bean.po.SysRole;
510
import top.cadecode.sra.system.bean.po.SysUser;
11+
import top.cadecode.sra.system.convert.SysUserConvert;
12+
import top.cadecode.sra.system.mapper.SysRoleMapper;
613
import top.cadecode.sra.system.mapper.SysUserMapper;
714
import top.cadecode.sra.system.service.SysUserService;
815

16+
import java.util.List;
17+
import java.util.Optional;
18+
import java.util.stream.Collectors;
19+
920
/**
1021
* @author Cade Li
1122
* @date 2022/5/27
1223
* @description 系统用户服务实现
1324
*/
1425
@Service
26+
@RequiredArgsConstructor
1527
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
28+
29+
private final SysRoleMapper sysRoleMapper;
30+
31+
/**
32+
* UserDetailsService 实现
33+
*/
34+
@Override
35+
public UserDetails loadUserByUsername(String username) {
36+
Optional<SysUser> sysUserOpt = lambdaQuery().eq(SysUser::getUsername, username).oneOpt();
37+
// 用户账户不存在
38+
sysUserOpt.orElseThrow(() -> ApiException.of("该用户不存在"));
39+
// 用户账号被关闭
40+
if (!sysUserOpt.get().isEnableFlag()) {
41+
throw ApiException.of("账号已被关闭");
42+
}
43+
SysUserDto sysUserDto = SysUserConvert.INSTANCE.poToDto(sysUserOpt.get());
44+
List<SysRole> sysRoles = sysRoleMapper.listByUserId(sysUserDto.getId());
45+
sysUserDto.setRoles(sysRoles.stream().map(SysRole::getCode).collect(Collectors.toList()));
46+
return sysUserDto;
47+
}
1648
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
22
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
33
<mapper namespace="top.cadecode.sra.system.mapper.SysRoleMapper">
4+
<select id="listByUserId" resultType="top.cadecode.sra.system.bean.po.SysRole">
5+
SELECT *
6+
FROM sys_role_user ru
7+
INNER JOIN sys_role r ON ru.role_id = r.id
8+
WHERE ru.user_id = #{userId}
9+
</select>
410
</mapper>

0 commit comments

Comments
 (0)