huliguo
2025-05-30 925219ebfda2a480df99ca06a13033c78ae8d81f
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -2,8 +2,18 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.utils.sign.Md5Utils;
import com.ruoyi.system.pojo.dto.AddSysUserDTO;
import com.ruoyi.system.pojo.dto.EditSysUserDTO;
import com.ruoyi.system.pojo.vo.SysUserPageListVO;
import com.ruoyi.system.pojo.vo.SysUserVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -448,7 +458,7 @@
        // 删除用户与角色关联
        userRoleMapper.deleteUserRoleByUserId(userId);
        // 删除用户与岗位表
        userPostMapper.deleteUserPostByUserId(userId);
//        userPostMapper.deleteUserPostByUserId(userId);
        return userMapper.deleteUserById(userId);
    }
@@ -547,4 +557,112 @@
        }
        return successMsg.toString();
    }
    @Override
    public IPage<SysUserPageListVO> getSysUserPageList(IPage<SysUserPageListVO> page, String nickName, Integer phone, String status) {
        return userMapper.getSysUserPageList(page,nickName,phone,status);
    }
    @Override
    public R<SysUserVO> getInfo(Long userId) {
        return userMapper.getSysUserVO(userId);
    }
    @Override
    public void add(AddSysUserDTO dto) {
        //检查手机号是否重复
        SysUser sysUser= userMapper.selectuserByPhone(dto.getPhonenumber());
        if (sysUser != null){
            throw new ServiceException("手机号重复");
        }
        //部门是否存在
        SysDept sysDept = deptService.selectDeptById(dto.getDeptId());
        if (sysDept == null){
            throw new ServiceException("部门不存在");
        }
        //角色是否存在
        SysRole sysRole = roleMapper.selectRoleById(dto.getRoleId());
        if (sysRole == null){
            throw new ServiceException("角色不存在");
        }
        //手机号作为登录
        sysUser = new SysUser();
        sysUser.setUserName(dto.getPhonenumber());
        sysUser.setPhonenumber(dto.getPhonenumber());
        sysUser.setNickName(dto.getNickName());
        //后六位为默认密码
        sysUser.setPassword(SecurityUtils.encryptPassword(Md5Utils.hash(dto.getPhonenumber().substring(6,12))));
        sysUser.setStatus("0");
        sysUser.setDeptId(dto.getDeptId());  //添加用户-部门关系
        userMapper.insertUser(sysUser);
        //添加用户-角色关系
        userRoleMapper.insert(sysUser.getUserId(),dto.getRoleId());
    }
    @Override
    public void edit(EditSysUserDTO dto) {
        //检查用户是否存在
        SysUser sysUser = userMapper.selectUserById(dto.getUserId());
        if (sysUser==null){
            throw new ServiceException("该用户不存在");
        }
        if (!Objects.equals(dto.getPhonenumber(), sysUser.getPhonenumber())){
            //修改手机号
            //检查手机号是否重复
            SysUser phoneUser= userMapper.selectuserByPhone(dto.getPhonenumber());
            if (phoneUser != null){
                throw new ServiceException("手机号重复");
            }
            sysUser.setPhonenumber(dto.getPhonenumber());
            sysUser.setUserName(dto.getPhonenumber());
        }
        if (!Objects.equals(dto.getDeptId(), sysUser.getDeptId())){
            //部门是否存在
            SysDept sysDept = deptService.selectDeptById(dto.getDeptId());
            if (sysDept == null){
                throw new ServiceException("部门不存在");
            }
            sysUser.setDeptId(dto.getDeptId());
        }
        SysRole sysRole= userRoleMapper.selectRoleByUserId(dto.getUserId());
        if (!Objects.equals(sysRole.getRoleId(), dto.getRoleId())){
            //角色是否存在
            SysRole selectRole = roleMapper.selectRoleById(dto.getRoleId());
            if (selectRole == null){
                throw new ServiceException("角色不存在");
            }
            sysUser.setRoleId(dto.getRoleId());
            //修改用户-角色关系
            userRoleMapper.deleteUserRoleByUserId(dto.getUserId());
            userRoleMapper.insert(sysUser.getUserId(),dto.getRoleId());
        }
        sysUser.setNickName(dto.getNickName());
        userMapper.updateUser(sysUser);
    }
    @Override
    public void changeStatus(Long userId) {
        //检查用户是否存在
        SysUser sysUser = userMapper.selectUserById(userId);
        if (sysUser==null){
            throw new ServiceException("该用户不存在");
        }
        sysUser.setStatus(Objects.equals(sysUser.getStatus(), "1") ?"0":"1");
        userMapper.updateUser(sysUser);
    }
    @Override
    public void resetPassword(Long userId) {
        //重置密码
        //检查用户是否存在
        SysUser sysUser = userMapper.selectUserById(userId);
        if (sysUser==null){
            throw new ServiceException("该用户不存在");
        }
        sysUser.setPassword(SecurityUtils.encryptPassword(Md5Utils.hash(sysUser.getPassword().substring(6,12))));
        userMapper.updateUser(sysUser);
    }
}