|
|
|
|
@@ -1,11 +1,22 @@
|
|
|
|
|
package com.rj.service.sys.impl;
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.rj.common.PasswordUtil;
|
|
|
|
|
import com.rj.entity.sys.User;
|
|
|
|
|
import com.rj.mapper.sys.UserMapper;
|
|
|
|
|
import com.rj.pojo.sys.LoginRequest;
|
|
|
|
|
import com.rj.pojo.sys.LoginResponse;
|
|
|
|
|
import com.rj.service.sys.IUserService;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <p>
|
|
|
|
|
* 用户表 服务实现类
|
|
|
|
|
@@ -17,4 +28,58 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
@Service
|
|
|
|
|
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public LoginResponse login(LoginRequest loginRequest) {
|
|
|
|
|
// 根据用户名查询用户
|
|
|
|
|
User user = getUserByUserName(loginRequest.getUserName());
|
|
|
|
|
|
|
|
|
|
if (user == null) {
|
|
|
|
|
throw new RuntimeException("用户不存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 验证密码
|
|
|
|
|
if (!PasswordUtil.verifyPassword(loginRequest.getPassword(), user.getPassword())) {
|
|
|
|
|
throw new RuntimeException("密码错误");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 生成token
|
|
|
|
|
String token = UUID.randomUUID().toString().replace("-", "");
|
|
|
|
|
|
|
|
|
|
// 更新用户的token
|
|
|
|
|
user.setToken(token);
|
|
|
|
|
this.updateById(user);
|
|
|
|
|
|
|
|
|
|
// 构建登录响应
|
|
|
|
|
LoginResponse loginResponse = new LoginResponse();
|
|
|
|
|
loginResponse.setUserId(user.getUserId());
|
|
|
|
|
loginResponse.setUserName(user.getUserName());
|
|
|
|
|
loginResponse.setEmail(user.getEmail());
|
|
|
|
|
loginResponse.setAvatar(user.getAvatar());
|
|
|
|
|
loginResponse.setToken(token);
|
|
|
|
|
loginResponse.setLoginTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
|
|
|
|
|
|
|
return loginResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public User getUserByUserName(String userName) {
|
|
|
|
|
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
queryWrapper.eq(User::getUserName, userName);
|
|
|
|
|
return this.getOne(queryWrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public User getUserByToken(String token) {
|
|
|
|
|
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
queryWrapper.eq(User::getToken, token);
|
|
|
|
|
return this.getOne(queryWrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public User getUserInfoByToken(String token) {
|
|
|
|
|
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
queryWrapper.eq(User::getToken, token);
|
|
|
|
|
return this.getOne(queryWrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|