UserService.java 3.45 KB
package com.qgutech.service;

import com.qgutech.mapper.UserMapper;
import com.qgutech.model.Page;
import com.qgutech.model.User;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;

import javax.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;

/**
 * @author xxx
 * @date 2024/12/17 12:11
 * @description
 */
@Service
public class UserService {
    @Value("${power.init.password}")
    private String INIT_PASSWORD;
    @Resource
    private UserMapper userMapper;

    public User getUserById(String userId) {
        return userMapper.getUserById(userId);
    }

    public User getUserByMobile(String mobile) {
        return userMapper.getUserByMobile(mobile);
    }

    public void register(User user) {
        //根据用户名查询数据库是否存在该用户名
        User userDB = userMapper.findByLoginName(user.getUserName());
        //判断用户是否存在
        if (!ObjectUtils.isEmpty(userDB)) {//如果userDB不为空
            throw new RuntimeException("用户名已存在");
        }
//        进行注册之前给明文加密
        String passwordSecret = DigestUtils.md5DigestAsHex(user.getPassword().getBytes(StandardCharsets.UTF_8));
        user.setPassword(passwordSecret);
        userMapper.save(user);
    }

    public User login(String loginName, String password) {
        //根据用户输入的用户名查询数据是否存在
        User userDB = userMapper.findByLoginName(loginName);
        //判断对象是否存在
        if (ObjectUtils.isEmpty(userDB)) {
            throw new RuntimeException("用户名输入错误");
        }
        if (!userDB.getPassword().equals(DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8)))) {
            throw new RuntimeException("密码输入错误");
        }
        return userDB;
    }

    public void updateUser(User user) {
        user.setLastModifyTime(new Date());
        userMapper.updateUser(user);
    }

    public void saveUser(User user) {
        String password = user.getPassword();
        if (StringUtils.isEmpty(password)) {
            password = INIT_PASSWORD;
        }
        String passwordSecret = DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8));
        user.setPassword(passwordSecret);
        user.setCreateTime(new Date());
        user.setLastModifyTime(new Date());
        user.setCreateBy("SYSTEM");
        user.setLastModifyBy("SYSTEM");
        userMapper.save(user);
    }

    public List<User> getUserList(String searchName, Page<User> page) {
        List<User> userList = userMapper.getUserList(searchName, page);
        Integer total = userMapper.getTotal(searchName);
        page.setTotal(total);
        Integer pages = (int) Math.ceil((double) total / page.getPageSize());
        page.setPages(pages);
        return userList;
    }

    public void deleteUserById(String userId) {
        userMapper.deleteUser(userId);
    }

    public Boolean isExistMobile(String mobile, String loginName) {
        User user = userMapper.getUserExcludeLoginName(mobile, loginName);
        if (user == null) {
            return false;
        }
        return true;
    }

    public void updatePassword(String userId, String password) {
        userMapper.updatePassword(userId, password);
    }
}