spzx/spzx-manager/src/main/java/cn/bunny/service/impl/SysUserServiceImpl.java

58 lines
1.9 KiB
Java
Raw Normal View History

2023-12-12 23:48:23 +08:00
package cn.bunny.service.impl;
import cn.bunny.mapper.SysUserMapper;
import cn.bunny.service.SysUserService;
import cn.bunny.spzx.model.dto.system.LoginDto;
import cn.bunny.spzx.model.entity.system.SysUser;
import cn.bunny.spzx.model.vo.system.LoginVo;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Service
public class SysUserServiceImpl implements SysUserService {
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Override
public LoginVo login(LoginDto loginDto) {
// 获取用户提交用户名LoginDto获取到
String userName = loginDto.getUserName();
// 根据用户名查询数据表 sys_user
SysUser sysUser = sysUserMapper.selectUserInfoByUserName(userName);
// 如果用户名查询不到对应信息,用户不存在,返回错误信息
if (sysUser == null) {
throw new RuntimeException("用户名不存在");
}
// 获取输入密码,比较输入密码和数据库密码是否一致
String databases_password = sysUser.getPassword();
String input_password = DigestUtils.md5DigestAsHex(loginDto.getPassword().getBytes());
if (!input_password.equals(databases_password)) {
throw new RuntimeException("密码不正确");
}
String token = UUID.randomUUID().toString().replaceAll("-", "");
redisTemplate.opsForValue().set("user:login" + token, JSON.toJSONString(sysUser), 7, TimeUnit.DAYS);
LoginVo loginVo = new LoginVo();
loginVo.setToken(token);
return loginVo;
}
}