fxkh-txl-service/src/main/java/com/whdc/service/impl/UserServiceImpl.java

121 lines
3.1 KiB
Java
Raw Normal View History

2024-05-13 10:07:53 +08:00
package com.whdc.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
2024-05-13 14:55:42 +08:00
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.whdc.exception.MyException;
2024-05-13 10:07:53 +08:00
import com.whdc.mapper.UserMapper;
2024-05-13 14:55:42 +08:00
import com.whdc.model.dto.LoginDto;
2024-05-13 10:07:53 +08:00
import com.whdc.model.entity.User;
2024-05-13 14:55:42 +08:00
import com.whdc.model.vo.LoginVo;
2024-05-13 10:07:53 +08:00
import com.whdc.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
2024-05-13 14:55:42 +08:00
import org.springframework.beans.BeanUtils;
2024-05-13 10:07:53 +08:00
import org.springframework.stereotype.Service;
2024-05-13 14:55:42 +08:00
import org.springframework.util.DigestUtils;
2024-05-13 10:07:53 +08:00
2024-05-13 14:55:42 +08:00
import java.util.Date;
2024-05-13 10:07:53 +08:00
import java.util.List;
2024-05-13 14:55:42 +08:00
import java.util.UUID;
2024-05-13 10:07:53 +08:00
/**
* <p>
*
* </p>
* @author xusan
* @date 2024-05-11
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
public static final String DEFAULT_PASSWORD = "Fxkh@123456";
2024-05-13 10:07:53 +08:00
@Override
public IPage<User> page(User dto) {
return baseMapper.page(new Page<>(), dto);
}
@Override
public List<User> find(User dto) {
return baseMapper.find(dto);
}
2024-05-13 14:55:42 +08:00
@Override
2024-05-13 16:44:01 +08:00
public LoginVo login(LoginDto dto) {
2024-05-13 14:55:42 +08:00
2024-05-13 16:44:01 +08:00
User sysUser = findByLoginName(dto.getLoginName());
2024-05-13 14:55:42 +08:00
if (sysUser == null) {
throw new MyException("用户名或密码错误");
}
2024-05-13 16:44:01 +08:00
if (getPassword(sysUser.getSalt() ,dto.getPassword()).equals(sysUser.getPassword())) {
2024-05-13 14:55:42 +08:00
LoginVo out = new LoginVo();
BeanUtils.copyProperties(sysUser, out);
return out;
}
throw new MyException("用户名或密码错误");
}
@Override
public boolean register(User entity) {
// 生成盐值
String salt = UUID.randomUUID().toString().replaceAll("-", "");
// 生成密码
entity.setSalt(salt)
.setPassword(getPassword(salt, DEFAULT_PASSWORD));
return this.save(entity);
}
@Override
public String getRole(Integer id) {
User byId = this.getById(id);
if (byId == null){
throw new MyException("该用户不存在");
}
return byId.getRole();
}
@Override
public boolean register(String phone, Integer abId) {
User user = new User();
user.setAbId(abId)
.setUsername(phone);
return register(user);
}
@Override
public boolean updateLastDate(Integer id) {
return this.lambdaUpdate()
.set(User::getLastLoginDate,new Date())
.eq(User::getId,id)
.update();
}
private User findByLoginName(String loginName) {
if (loginName == null) {
throw new MyException("登录名不能为空");
}
return this.lambdaQuery().eq(User::getUsername, loginName).one();
}
private String getPassword(String salt,String password) {
return DigestUtils.md5DigestAsHex((salt + password).getBytes());
}
2024-05-14 11:00:45 +08:00
public static void main(String[] args) {
String salt = UUID.randomUUID().toString().replaceAll("-", "");
System.out.println(salt);
System.out.println(DigestUtils.md5DigestAsHex((salt + DEFAULT_PASSWORD).getBytes()));
}
2024-05-13 10:07:53 +08:00
}