UserServiceImpl.java
3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package org.nafmii.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.nafmii.dto.user.RegisterDto;
import org.nafmii.entity.user.AppUser;
import org.nafmii.enums.UserEnum;
import org.nafmii.exception.BusinessException;
import org.nafmii.mapper.user.AppUserMapper;
import org.nafmii.response.Result;
import org.nafmii.service.UserService;
import org.nafmii.utils.GuavaUtil;
import org.nafmii.utils.JwtUtils;
import org.nafmii.utils.SnowFlakeUtil;
import org.nafmii.vo.UserAndRoleVo;
import org.nafmii.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/4/25 10:20
* @ClassName:app用户实现类
* @version:
* @remark:
*/
@Service
@Slf4j
public class UserServiceImpl implements UserService {
@Autowired
private AppUserMapper appUserMapper;
/**
* 模拟用户登陆
* @return
*/
@Override
public Result<UserVO> login() {
Result result = new Result();
//假设验证数据通过
UserVO userVO = new UserVO();
userVO.setPassword("zzz");
userVO.setUserName("zzz");
List<UserAndRoleVo> roleList =new ArrayList<>();
UserAndRoleVo roleVo = new UserAndRoleVo();
UserAndRoleVo roleTwoVo = new UserAndRoleVo();
roleVo.setRole("a");
roleList.add(roleVo);
roleTwoVo.setRole("b");
roleList.add(roleTwoVo);
userVO.setAuthorities(roleList);
StringBuilder sbf = new StringBuilder();
for (UserAndRoleVo role:roleList
) {
sbf=sbf.append(role.getRole()+",");
}
//处理字符串
String sRole = sbf.toString();
String substring = sRole.substring(0, sRole.lastIndexOf(","));
String token = JwtUtils.createToken(userVO.getUserName(),substring);
userVO.setToken(token);
result.setData(userVO);
return result;
}
/**
* app用户注册接口
* @param registerDto
* @return
*/
@Override
public Result register(RegisterDto registerDto) {
//用户实体类
AppUser appUser = new AppUser();
appUser.setId(SnowFlakeUtil.nextId());
appUser.setFaceidFalg(UserEnum.NOTFACE.getCode());
appUser.setFigerprintFalg(UserEnum.NOTFINGERPRINT.getCode());
appUser.setHeadPicture(registerDto.getHeadPicture());
appUser.setIsEnable(UserEnum.ENABLE.getCode());
appUser.setPhone(registerDto.getPhone());
//判断注册密码和再次输入密码
if (!registerDto.getLoginPwd().equals(registerDto.getConfirmPwd())){
throw new BusinessException("两次密码输入不相同,请再次输入");
}
appUser.setLoginPwd(registerDto.getLoginPwd());
appUser.setCreateTime(new Date());
appUser.setUpdateTime(new Date());
log.info("用户注册实体==============>"+appUser);
//将验证码放入到缓存当中(过期时间60s)test
// GuavaUtil.putTrackGuava(registerDto.getPhone(),registerDto.getCode());
//重缓存中获取(通过手机号获取)
String code = (String) GuavaUtil.getTrackGuava(registerDto.getPhone());
log.info("冲缓存中获取的验证码===============》{}",code);
if (null == code){
throw new BusinessException("验证码已过期");
}
if (!code.equals(registerDto.getCode())){
throw new BusinessException("验证码错误请重新输入");
}
int i = appUserMapper.insertSelective(appUser);
if (i<0){
return Result.failed("新增失败");
}
return Result.success(null);
}
}