mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	update 更新 system 相关表接口 (sys_user) 新增 Bo Vo 类 更改请求及响应参数
This commit is contained in:
		@@ -7,13 +7,13 @@ import com.ruoyi.common.core.domain.model.LoginUser;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.SmsLoginBody;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.system.domain.SysMenu;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.vo.RouterVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.service.ISysMenuService;
 | 
			
		||||
import com.ruoyi.system.service.ISysUserService;
 | 
			
		||||
import com.ruoyi.system.service.SysLoginService;
 | 
			
		||||
import com.ruoyi.web.domain.vo.UserInfoVo;
 | 
			
		||||
import com.ruoyi.web.domain.vo.LoginVo;
 | 
			
		||||
import com.ruoyi.web.domain.vo.UserInfoVo;
 | 
			
		||||
import jakarta.validation.constraints.NotBlank;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
@@ -106,7 +106,7 @@ public class SysLoginController {
 | 
			
		||||
    public R<UserInfoVo> getInfo() {
 | 
			
		||||
        UserInfoVo userInfoVo = new UserInfoVo();
 | 
			
		||||
        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
			
		||||
        SysUser user = userService.selectUserById(loginUser.getUserId());
 | 
			
		||||
        SysUserVo user = userService.selectUserById(loginUser.getUserId());
 | 
			
		||||
        userInfoVo.setUser(user);
 | 
			
		||||
        userInfoVo.setPermissions(loginUser.getMenuPermission());
 | 
			
		||||
        userInfoVo.setRoles(loginUser.getRolePermission());
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package com.ruoyi.web.domain.vo;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
@@ -16,7 +16,7 @@ public class UserInfoVo {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户基本信息
 | 
			
		||||
     */
 | 
			
		||||
    private SysUser user;
 | 
			
		||||
    private SysUserVo user;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 菜单权限
 | 
			
		||||
 
 | 
			
		||||
@@ -6,14 +6,15 @@ import com.ruoyi.common.core.constant.UserConstants;
 | 
			
		||||
import com.ruoyi.common.core.domain.R;
 | 
			
		||||
import com.ruoyi.common.core.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.file.MimeTypeUtils;
 | 
			
		||||
import com.ruoyi.common.web.core.BaseController;
 | 
			
		||||
import com.ruoyi.common.log.annotation.Log;
 | 
			
		||||
import com.ruoyi.common.log.enums.BusinessType;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.common.web.core.BaseController;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.AvatarVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.ProfileVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysOssVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.service.ISysOssService;
 | 
			
		||||
import com.ruoyi.system.service.ISysUserService;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
@@ -43,7 +44,7 @@ public class SysProfileController extends BaseController {
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping
 | 
			
		||||
    public R<ProfileVo> profile() {
 | 
			
		||||
        SysUser user = userService.selectUserById(LoginHelper.getUserId());
 | 
			
		||||
        SysUserVo user = userService.selectUserById(LoginHelper.getUserId());
 | 
			
		||||
        ProfileVo profileVo = new ProfileVo();
 | 
			
		||||
        profileVo.setUser(user);
 | 
			
		||||
        profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName()));
 | 
			
		||||
@@ -56,7 +57,7 @@ public class SysProfileController extends BaseController {
 | 
			
		||||
     */
 | 
			
		||||
    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
 | 
			
		||||
    @PutMapping
 | 
			
		||||
    public R<Void> updateProfile(@RequestBody SysUser user) {
 | 
			
		||||
    public R<Void> updateProfile(@RequestBody SysUserBo user) {
 | 
			
		||||
        if (StringUtils.isNotEmpty(user.getPhonenumber())
 | 
			
		||||
            && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
 | 
			
		||||
            return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
 | 
			
		||||
@@ -85,7 +86,7 @@ public class SysProfileController extends BaseController {
 | 
			
		||||
    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
 | 
			
		||||
    @PutMapping("/updatePwd")
 | 
			
		||||
    public R<Void> updatePwd(String oldPassword, String newPassword) {
 | 
			
		||||
        SysUser user = userService.selectUserById(LoginHelper.getUserId());
 | 
			
		||||
        SysUserVo user = userService.selectUserById(LoginHelper.getUserId());
 | 
			
		||||
        String userName = user.getUserName();
 | 
			
		||||
        String password = user.getPassword();
 | 
			
		||||
        if (!BCrypt.checkpw(oldPassword, password)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import com.ruoyi.common.core.constant.UserConstants;
 | 
			
		||||
import com.ruoyi.common.core.domain.R;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.LoginUser;
 | 
			
		||||
import com.ruoyi.common.web.core.BaseController;
 | 
			
		||||
import com.ruoyi.common.excel.utils.ExcelUtil;
 | 
			
		||||
import com.ruoyi.common.log.annotation.Log;
 | 
			
		||||
import com.ruoyi.common.log.enums.BusinessType;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.PageQuery;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.common.web.core.BaseController;
 | 
			
		||||
import com.ruoyi.system.domain.SysDept;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.SysUserRole;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysRoleBo;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.DeptTreeSelectVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysRoleVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.service.ISysDeptService;
 | 
			
		||||
import com.ruoyi.system.service.ISysRoleService;
 | 
			
		||||
import com.ruoyi.system.service.ISysUserService;
 | 
			
		||||
@@ -111,9 +112,9 @@ public class SysRoleController extends BaseController {
 | 
			
		||||
        if (roleService.updateRole(role) > 0) {
 | 
			
		||||
            // 更新缓存用户权限
 | 
			
		||||
            LoginUser loginUser = LoginHelper.getLoginUser();
 | 
			
		||||
            SysUser sysUser = userService.selectUserById(loginUser.getUserId());
 | 
			
		||||
            SysUserVo sysUser = userService.selectUserById(loginUser.getUserId());
 | 
			
		||||
            if (ObjectUtil.isNotNull(sysUser) && !LoginHelper.isAdmin()) {
 | 
			
		||||
                loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser));
 | 
			
		||||
                loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser.getUserId(), sysUser.isAdmin()));
 | 
			
		||||
                LoginHelper.setLoginUser(loginUser);
 | 
			
		||||
            }
 | 
			
		||||
            return R.ok();
 | 
			
		||||
@@ -171,7 +172,7 @@ public class SysRoleController extends BaseController {
 | 
			
		||||
     */
 | 
			
		||||
    @SaCheckPermission("system:role:list")
 | 
			
		||||
    @GetMapping("/authUser/allocatedList")
 | 
			
		||||
    public TableDataInfo<SysUser> allocatedList(SysUser user, PageQuery pageQuery) {
 | 
			
		||||
    public TableDataInfo<SysUserVo> allocatedList(SysUserBo user, PageQuery pageQuery) {
 | 
			
		||||
        return userService.selectAllocatedList(user, pageQuery);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -180,7 +181,7 @@ public class SysRoleController extends BaseController {
 | 
			
		||||
     */
 | 
			
		||||
    @SaCheckPermission("system:role:list")
 | 
			
		||||
    @GetMapping("/authUser/unallocatedList")
 | 
			
		||||
    public TableDataInfo<SysUser> unallocatedList(SysUser user, PageQuery pageQuery) {
 | 
			
		||||
    public TableDataInfo<SysUserVo> unallocatedList(SysUserBo user, PageQuery pageQuery) {
 | 
			
		||||
        return userService.selectUnallocatedList(user, pageQuery);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,6 @@ import com.ruoyi.common.core.constant.UserConstants;
 | 
			
		||||
import com.ruoyi.common.core.domain.R;
 | 
			
		||||
import com.ruoyi.common.core.utils.StreamUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.web.core.BaseController;
 | 
			
		||||
import com.ruoyi.common.excel.core.ExcelResult;
 | 
			
		||||
import com.ruoyi.common.excel.utils.ExcelUtil;
 | 
			
		||||
import com.ruoyi.common.log.annotation.Log;
 | 
			
		||||
@@ -18,15 +17,15 @@ import com.ruoyi.common.log.enums.BusinessType;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.PageQuery;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.common.web.core.BaseController;
 | 
			
		||||
import com.ruoyi.system.domain.SysDept;
 | 
			
		||||
import com.ruoyi.system.domain.SysRole;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysRoleVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserExportVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserImportVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserInfoVo;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.*;
 | 
			
		||||
import com.ruoyi.system.listener.SysUserImportListener;
 | 
			
		||||
import com.ruoyi.system.service.*;
 | 
			
		||||
import com.ruoyi.system.service.ISysDeptService;
 | 
			
		||||
import com.ruoyi.system.service.ISysPostService;
 | 
			
		||||
import com.ruoyi.system.service.ISysRoleService;
 | 
			
		||||
import com.ruoyi.system.service.ISysUserService;
 | 
			
		||||
import jakarta.servlet.http.HttpServletResponse;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.http.MediaType;
 | 
			
		||||
@@ -34,7 +33,8 @@ import org.springframework.validation.annotation.Validated;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 用户信息
 | 
			
		||||
@@ -57,7 +57,7 @@ public class SysUserController extends BaseController {
 | 
			
		||||
     */
 | 
			
		||||
    @SaCheckPermission("system:user:list")
 | 
			
		||||
    @GetMapping("/list")
 | 
			
		||||
    public TableDataInfo<SysUser> list(SysUser user, PageQuery pageQuery) {
 | 
			
		||||
    public TableDataInfo<SysUserVo> list(SysUserBo user, PageQuery pageQuery) {
 | 
			
		||||
        return userService.selectPageUserList(user, pageQuery);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -67,11 +67,11 @@ public class SysUserController extends BaseController {
 | 
			
		||||
    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
 | 
			
		||||
    @SaCheckPermission("system:user:export")
 | 
			
		||||
    @PostMapping("/export")
 | 
			
		||||
    public void export(SysUser user, HttpServletResponse response) {
 | 
			
		||||
        List<SysUser> list = userService.selectUserList(user);
 | 
			
		||||
    public void export(SysUserBo user, HttpServletResponse response) {
 | 
			
		||||
        List<SysUserVo> list = userService.selectUserList(user);
 | 
			
		||||
        List<SysUserExportVo> listVo = BeanUtil.copyToList(list, SysUserExportVo.class);
 | 
			
		||||
        for (int i = 0; i < list.size(); i++) {
 | 
			
		||||
            SysDept dept = list.get(i).getDept();
 | 
			
		||||
            SysDeptVo dept = list.get(i).getDept();
 | 
			
		||||
            SysUserExportVo vo = listVo.get(i);
 | 
			
		||||
            if (ObjectUtil.isNotEmpty(dept)) {
 | 
			
		||||
                vo.setDeptName(dept.getDeptName());
 | 
			
		||||
@@ -117,9 +117,9 @@ public class SysUserController extends BaseController {
 | 
			
		||||
        userInfoVo.setRoles(LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
 | 
			
		||||
        userInfoVo.setPosts(postService.selectPostAll());
 | 
			
		||||
        if (ObjectUtil.isNotNull(userId)) {
 | 
			
		||||
            SysUser sysUser = userService.selectUserById(userId);
 | 
			
		||||
            SysUserVo sysUser = userService.selectUserById(userId);
 | 
			
		||||
            userInfoVo.setUser(sysUser);
 | 
			
		||||
            userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId));
 | 
			
		||||
            userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRoleVo::getRoleId));
 | 
			
		||||
            userInfoVo.setPostIds(postService.selectPostListByUserId(userId));
 | 
			
		||||
        }
 | 
			
		||||
        return R.ok(userInfoVo);
 | 
			
		||||
@@ -131,7 +131,7 @@ public class SysUserController extends BaseController {
 | 
			
		||||
    @SaCheckPermission("system:user:add")
 | 
			
		||||
    @Log(title = "用户管理", businessType = BusinessType.INSERT)
 | 
			
		||||
    @PostMapping
 | 
			
		||||
    public R<Void> add(@Validated @RequestBody SysUser user) {
 | 
			
		||||
    public R<Void> add(@Validated @RequestBody SysUserBo user) {
 | 
			
		||||
        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
 | 
			
		||||
            return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
 | 
			
		||||
        } else if (StringUtils.isNotEmpty(user.getPhonenumber())
 | 
			
		||||
@@ -151,7 +151,7 @@ public class SysUserController extends BaseController {
 | 
			
		||||
    @SaCheckPermission("system:user:edit")
 | 
			
		||||
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
 | 
			
		||||
    @PutMapping
 | 
			
		||||
    public R<Void> edit(@Validated @RequestBody SysUser user) {
 | 
			
		||||
    public R<Void> edit(@Validated @RequestBody SysUserBo user) {
 | 
			
		||||
        userService.checkUserAllowed(user);
 | 
			
		||||
        userService.checkUserDataScope(user.getUserId());
 | 
			
		||||
        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
 | 
			
		||||
@@ -187,7 +187,7 @@ public class SysUserController extends BaseController {
 | 
			
		||||
    @SaCheckPermission("system:user:resetPwd")
 | 
			
		||||
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
 | 
			
		||||
    @PutMapping("/resetPwd")
 | 
			
		||||
    public R<Void> resetPwd(@RequestBody SysUser user) {
 | 
			
		||||
    public R<Void> resetPwd(@RequestBody SysUserBo user) {
 | 
			
		||||
        userService.checkUserAllowed(user);
 | 
			
		||||
        userService.checkUserDataScope(user.getUserId());
 | 
			
		||||
        user.setPassword(BCrypt.hashpw(user.getPassword()));
 | 
			
		||||
@@ -200,7 +200,7 @@ public class SysUserController extends BaseController {
 | 
			
		||||
    @SaCheckPermission("system:user:edit")
 | 
			
		||||
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
 | 
			
		||||
    @PutMapping("/changeStatus")
 | 
			
		||||
    public R<Void> changeStatus(@RequestBody SysUser user) {
 | 
			
		||||
    public R<Void> changeStatus(@RequestBody SysUserBo user) {
 | 
			
		||||
        userService.checkUserAllowed(user);
 | 
			
		||||
        userService.checkUserDataScope(user.getUserId());
 | 
			
		||||
        return toAjax(userService.updateUserStatus(user));
 | 
			
		||||
@@ -214,7 +214,7 @@ public class SysUserController extends BaseController {
 | 
			
		||||
    @SaCheckPermission("system:user:query")
 | 
			
		||||
    @GetMapping("/authRole/{userId}")
 | 
			
		||||
    public R<SysUserInfoVo> authRole(@PathVariable Long userId) {
 | 
			
		||||
        SysUser user = userService.selectUserById(userId);
 | 
			
		||||
        SysUserVo user = userService.selectUserById(userId);
 | 
			
		||||
        List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
 | 
			
		||||
        SysUserInfoVo userInfoVo = new SysUserInfoVo();
 | 
			
		||||
        userInfoVo.setUser(user);
 | 
			
		||||
 
 | 
			
		||||
@@ -3,18 +3,11 @@ package com.ruoyi.system.domain;
 | 
			
		||||
import com.baomidou.mybatisplus.annotation.*;
 | 
			
		||||
import com.ruoyi.common.core.constant.UserConstants;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
 | 
			
		||||
import com.ruoyi.common.core.xss.Xss;
 | 
			
		||||
import com.ruoyi.common.sensitive.annotation.Sensitive;
 | 
			
		||||
import com.ruoyi.common.sensitive.core.SensitiveStrategy;
 | 
			
		||||
import jakarta.validation.constraints.Email;
 | 
			
		||||
import jakarta.validation.constraints.NotBlank;
 | 
			
		||||
import jakarta.validation.constraints.Size;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 用户对象 sys_user
 | 
			
		||||
@@ -42,16 +35,11 @@ public class SysUser extends BaseEntity {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户账号
 | 
			
		||||
     */
 | 
			
		||||
    @Xss(message = "用户账号不能包含脚本字符")
 | 
			
		||||
    @NotBlank(message = "用户账号不能为空")
 | 
			
		||||
    @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
 | 
			
		||||
    private String userName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户昵称
 | 
			
		||||
     */
 | 
			
		||||
    @Xss(message = "用户昵称不能包含脚本字符")
 | 
			
		||||
    @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
 | 
			
		||||
    private String nickName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -62,15 +50,11 @@ public class SysUser extends BaseEntity {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户邮箱
 | 
			
		||||
     */
 | 
			
		||||
    @Sensitive(strategy = SensitiveStrategy.EMAIL)
 | 
			
		||||
    @Email(message = "邮箱格式不正确")
 | 
			
		||||
    @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
 | 
			
		||||
    private String email;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 手机号码
 | 
			
		||||
     */
 | 
			
		||||
    @Sensitive(strategy = SensitiveStrategy.PHONE)
 | 
			
		||||
    private String phonenumber;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -119,35 +103,6 @@ public class SysUser extends BaseEntity {
 | 
			
		||||
     */
 | 
			
		||||
    private String remark;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 部门对象
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    private SysDept dept;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 角色对象
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    private List<SysRole> roles;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 角色组
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    private Long[] roleIds;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 岗位组
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    private Long[] postIds;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 数据权限 当前角色ID
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(exist = false)
 | 
			
		||||
    private Long roleId;
 | 
			
		||||
 | 
			
		||||
    public SysUser(Long userId) {
 | 
			
		||||
        this.userId = userId;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,19 @@
 | 
			
		||||
package com.ruoyi.system.domain.bo;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.common.core.constant.UserConstants;
 | 
			
		||||
import com.ruoyi.common.core.validate.AddGroup;
 | 
			
		||||
import com.ruoyi.common.core.validate.EditGroup;
 | 
			
		||||
import com.ruoyi.common.core.xss.Xss;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
 | 
			
		||||
import com.ruoyi.common.sensitive.annotation.Sensitive;
 | 
			
		||||
import com.ruoyi.common.sensitive.core.SensitiveStrategy;
 | 
			
		||||
import jakarta.validation.constraints.Email;
 | 
			
		||||
import jakarta.validation.constraints.NotBlank;
 | 
			
		||||
import jakarta.validation.constraints.Size;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
import jakarta.validation.constraints.*;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 用户信息业务对象 sys_user
 | 
			
		||||
 *
 | 
			
		||||
@@ -27,7 +29,6 @@ public class SysUserBo extends BaseEntity {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户ID
 | 
			
		||||
     */
 | 
			
		||||
    @NotNull(message = "用户ID不能为空", groups = { EditGroup.class })
 | 
			
		||||
    private Long userId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -38,12 +39,16 @@ public class SysUserBo extends BaseEntity {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户账号
 | 
			
		||||
     */
 | 
			
		||||
    @NotBlank(message = "用户账号不能为空", groups = { AddGroup.class, EditGroup.class })
 | 
			
		||||
    @Xss(message = "用户账号不能包含脚本字符")
 | 
			
		||||
    @NotBlank(message = "用户账号不能为空")
 | 
			
		||||
    @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
 | 
			
		||||
    private String userName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户昵称
 | 
			
		||||
     */
 | 
			
		||||
    @Xss(message = "用户昵称不能包含脚本字符")
 | 
			
		||||
    @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
 | 
			
		||||
    private String nickName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -54,11 +59,15 @@ public class SysUserBo extends BaseEntity {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户邮箱
 | 
			
		||||
     */
 | 
			
		||||
    @Sensitive(strategy = SensitiveStrategy.EMAIL)
 | 
			
		||||
    @Email(message = "邮箱格式不正确")
 | 
			
		||||
    @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
 | 
			
		||||
    private String email;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 手机号码
 | 
			
		||||
     */
 | 
			
		||||
    @Sensitive(strategy = SensitiveStrategy.PHONE)
 | 
			
		||||
    private String phonenumber;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -91,11 +100,6 @@ public class SysUserBo extends BaseEntity {
 | 
			
		||||
     */
 | 
			
		||||
    private Date loginDate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 创建部门
 | 
			
		||||
     */
 | 
			
		||||
    private Long createDept;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 备注
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
package com.ruoyi.system.domain.vo;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -14,7 +13,7 @@ public class ProfileVo {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户信息
 | 
			
		||||
     */
 | 
			
		||||
    private SysUser user;
 | 
			
		||||
    private SysUserVo user;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户所属角色组
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
package com.ruoyi.system.domain.vo;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@@ -16,7 +15,7 @@ public class SysUserInfoVo {
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户信息
 | 
			
		||||
     */
 | 
			
		||||
    private SysUser user;
 | 
			
		||||
    private SysUserVo user;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 角色ID列表
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,9 @@ import com.ruoyi.common.core.utils.ValidatorUtils;
 | 
			
		||||
import com.ruoyi.common.excel.core.ExcelListener;
 | 
			
		||||
import com.ruoyi.common.excel.core.ExcelResult;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserImportVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.service.ISysConfigService;
 | 
			
		||||
import com.ruoyi.system.service.ISysUserService;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
@@ -50,11 +51,11 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void invoke(SysUserImportVo userVo, AnalysisContext context) {
 | 
			
		||||
        SysUser user = this.userService.selectUserByUserName(userVo.getUserName());
 | 
			
		||||
        SysUserVo sysUser = this.userService.selectUserByUserName(userVo.getUserName());
 | 
			
		||||
        try {
 | 
			
		||||
            // 验证是否存在这个用户
 | 
			
		||||
            if (ObjectUtil.isNull(user)) {
 | 
			
		||||
                user = BeanUtil.toBean(userVo, SysUser.class);
 | 
			
		||||
            if (ObjectUtil.isNull(sysUser)) {
 | 
			
		||||
                SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
 | 
			
		||||
                ValidatorUtils.validate(user);
 | 
			
		||||
                user.setPassword(password);
 | 
			
		||||
                user.setCreateBy(operUserId);
 | 
			
		||||
@@ -62,8 +63,8 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
 | 
			
		||||
                successNum++;
 | 
			
		||||
                successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功");
 | 
			
		||||
            } else if (isUpdateSupport) {
 | 
			
		||||
                Long userId = user.getUserId();
 | 
			
		||||
                user = BeanUtil.toBean(userVo, SysUser.class);
 | 
			
		||||
                Long userId = sysUser.getUserId();
 | 
			
		||||
                SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
 | 
			
		||||
                user.setUserId(userId);
 | 
			
		||||
                ValidatorUtils.validate(user);
 | 
			
		||||
                userService.checkUserAllowed(user);
 | 
			
		||||
@@ -74,11 +75,11 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
 | 
			
		||||
                successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功");
 | 
			
		||||
            } else {
 | 
			
		||||
                failureNum++;
 | 
			
		||||
                failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(user.getUserName()).append(" 已存在");
 | 
			
		||||
                failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在");
 | 
			
		||||
            }
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            failureNum++;
 | 
			
		||||
            String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
 | 
			
		||||
            String msg = "<br/>" + failureNum + "、账号 " + sysUser.getUserName() + " 导入失败:";
 | 
			
		||||
            failureMsg.append(msg).append(e.getMessage());
 | 
			
		||||
            log.error(msg, e);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ import com.ruoyi.common.mybatis.annotation.DataColumn;
 | 
			
		||||
import com.ruoyi.common.mybatis.annotation.DataPermission;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@@ -22,7 +23,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
        @DataColumn(key = "deptName", value = "d.dept_id"),
 | 
			
		||||
        @DataColumn(key = "userName", value = "u.user_id")
 | 
			
		||||
    })
 | 
			
		||||
    Page<SysUser> selectPageUserList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
    Page<SysUserVo> selectPageUserList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件分页查询用户列表
 | 
			
		||||
@@ -34,7 +35,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
        @DataColumn(key = "deptName", value = "d.dept_id"),
 | 
			
		||||
        @DataColumn(key = "userName", value = "u.user_id")
 | 
			
		||||
    })
 | 
			
		||||
    List<SysUser> selectUserList(@Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
    List<SysUserVo> selectUserList(@Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件分页查询已配用户角色列表
 | 
			
		||||
@@ -46,7 +47,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
        @DataColumn(key = "deptName", value = "d.dept_id"),
 | 
			
		||||
        @DataColumn(key = "userName", value = "u.user_id")
 | 
			
		||||
    })
 | 
			
		||||
    Page<SysUser> selectAllocatedList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
    Page<SysUserVo> selectAllocatedList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件分页查询未分配用户角色列表
 | 
			
		||||
@@ -58,7 +59,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
        @DataColumn(key = "deptName", value = "d.dept_id"),
 | 
			
		||||
        @DataColumn(key = "userName", value = "u.user_id")
 | 
			
		||||
    })
 | 
			
		||||
    Page<SysUser> selectUnallocatedList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
    Page<SysUserVo> selectUnallocatedList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过用户名查询用户
 | 
			
		||||
@@ -66,7 +67,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
     * @param userName 用户名
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    SysUser selectUserByUserName(String userName);
 | 
			
		||||
    SysUserVo selectUserByUserName(String userName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过手机号查询用户
 | 
			
		||||
@@ -74,7 +75,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
     * @param phonenumber 手机号
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    SysUser selectUserByPhonenumber(String phonenumber);
 | 
			
		||||
    SysUserVo selectUserByPhonenumber(String phonenumber);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过用户ID查询用户
 | 
			
		||||
@@ -82,6 +83,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
 | 
			
		||||
     * @param userId 用户ID
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    SysUser selectUserById(Long userId);
 | 
			
		||||
    SysUserVo selectUserById(Long userId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@ package com.ruoyi.system.service;
 | 
			
		||||
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.PageQuery;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +15,7 @@ import java.util.List;
 | 
			
		||||
public interface ISysUserService {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    TableDataInfo<SysUser> selectPageUserList(SysUser user, PageQuery pageQuery);
 | 
			
		||||
    TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件分页查询用户列表
 | 
			
		||||
@@ -22,7 +23,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 用户信息集合信息
 | 
			
		||||
     */
 | 
			
		||||
    List<SysUser> selectUserList(SysUser user);
 | 
			
		||||
    List<SysUserVo> selectUserList(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件分页查询已分配用户角色列表
 | 
			
		||||
@@ -30,7 +31,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 用户信息集合信息
 | 
			
		||||
     */
 | 
			
		||||
    TableDataInfo<SysUser> selectAllocatedList(SysUser user, PageQuery pageQuery);
 | 
			
		||||
    TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据条件分页查询未分配用户角色列表
 | 
			
		||||
@@ -38,7 +39,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 用户信息集合信息
 | 
			
		||||
     */
 | 
			
		||||
    TableDataInfo<SysUser> selectUnallocatedList(SysUser user, PageQuery pageQuery);
 | 
			
		||||
    TableDataInfo<SysUserVo> selectUnallocatedList(SysUserBo user, PageQuery pageQuery);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过用户名查询用户
 | 
			
		||||
@@ -46,7 +47,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param userName 用户名
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    SysUser selectUserByUserName(String userName);
 | 
			
		||||
    SysUserVo selectUserByUserName(String userName);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过手机号查询用户
 | 
			
		||||
@@ -54,7 +55,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param phonenumber 手机号
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    SysUser selectUserByPhonenumber(String phonenumber);
 | 
			
		||||
    SysUserVo selectUserByPhonenumber(String phonenumber);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 通过用户ID查询用户
 | 
			
		||||
@@ -62,7 +63,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param userId 用户ID
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    SysUser selectUserById(Long userId);
 | 
			
		||||
    SysUserVo selectUserById(Long userId);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据用户ID查询用户所属角色组
 | 
			
		||||
@@ -86,7 +87,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    String checkUserNameUnique(SysUser user);
 | 
			
		||||
    String checkUserNameUnique(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验手机号码是否唯一
 | 
			
		||||
@@ -94,7 +95,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    String checkPhoneUnique(SysUser user);
 | 
			
		||||
    String checkPhoneUnique(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验email是否唯一
 | 
			
		||||
@@ -102,14 +103,14 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    String checkEmailUnique(SysUser user);
 | 
			
		||||
    String checkEmailUnique(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验用户是否允许操作
 | 
			
		||||
     *
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     */
 | 
			
		||||
    void checkUserAllowed(SysUser user);
 | 
			
		||||
    void checkUserAllowed(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 校验用户是否有数据权限
 | 
			
		||||
@@ -124,7 +125,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    int insertUser(SysUser user);
 | 
			
		||||
    int insertUser(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 注册用户信息
 | 
			
		||||
@@ -132,7 +133,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    boolean registerUser(SysUser user);
 | 
			
		||||
    boolean registerUser(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改用户信息
 | 
			
		||||
@@ -140,7 +141,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    int updateUser(SysUser user);
 | 
			
		||||
    int updateUser(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 用户授权角色
 | 
			
		||||
@@ -156,7 +157,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    int updateUserStatus(SysUser user);
 | 
			
		||||
    int updateUserStatus(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改用户基本信息
 | 
			
		||||
@@ -164,7 +165,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    int updateUserProfile(SysUser user);
 | 
			
		||||
    int updateUserProfile(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 修改用户头像
 | 
			
		||||
@@ -181,7 +182,7 @@ public interface ISysUserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    int resetPwd(SysUser user);
 | 
			
		||||
    int resetPwd(SysUserBo user);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 重置用户密码
 | 
			
		||||
 
 | 
			
		||||
@@ -8,31 +8,28 @@ import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.ruoyi.common.core.constant.CacheConstants;
 | 
			
		||||
import com.ruoyi.common.core.constant.Constants;
 | 
			
		||||
import com.ruoyi.common.log.event.LogininforEvent;
 | 
			
		||||
import com.ruoyi.common.core.domain.dto.RoleDTO;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.LoginUser;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.XcxLoginUser;
 | 
			
		||||
import com.ruoyi.common.core.enums.DeviceType;
 | 
			
		||||
import com.ruoyi.common.core.enums.LoginType;
 | 
			
		||||
import com.ruoyi.common.core.enums.UserStatus;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.LoginUser;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.XcxLoginUser;
 | 
			
		||||
import com.ruoyi.common.core.exception.user.CaptchaException;
 | 
			
		||||
import com.ruoyi.common.core.exception.user.CaptchaExpireException;
 | 
			
		||||
import com.ruoyi.common.core.exception.user.UserException;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.MessageUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.ServletUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.*;
 | 
			
		||||
import com.ruoyi.common.log.event.LogininforEvent;
 | 
			
		||||
import com.ruoyi.common.redis.utils.RedisUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.SpringUtils;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.mapper.SysUserMapper;
 | 
			
		||||
import jakarta.servlet.http.HttpServletRequest;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
import jakarta.servlet.http.HttpServletRequest;
 | 
			
		||||
import java.time.Duration;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.function.Supplier;
 | 
			
		||||
@@ -73,7 +70,7 @@ public class SysLoginService {
 | 
			
		||||
        if (captchaEnabled) {
 | 
			
		||||
            validateCaptcha(username, code, uuid, request);
 | 
			
		||||
        }
 | 
			
		||||
        SysUser user = loadUserByUsername(username);
 | 
			
		||||
        SysUserVo user = loadUserByUsername(username);
 | 
			
		||||
        checkLogin(LoginType.PASSWORD, username, () -> !BCrypt.checkpw(password, user.getPassword()));
 | 
			
		||||
        // 此处可根据登录用户的数据不同 自行创建 loginUser
 | 
			
		||||
        LoginUser loginUser = buildLoginUser(user);
 | 
			
		||||
@@ -87,7 +84,7 @@ public class SysLoginService {
 | 
			
		||||
 | 
			
		||||
    public String smsLogin(String phonenumber, String smsCode) {
 | 
			
		||||
        // 通过手机号查找用户
 | 
			
		||||
        SysUser user = loadUserByPhonenumber(phonenumber);
 | 
			
		||||
        SysUserVo user = loadUserByPhonenumber(phonenumber);
 | 
			
		||||
 | 
			
		||||
        checkLogin(LoginType.SMS, user.getUserName(), () -> !validateSmsCode(phonenumber, smsCode));
 | 
			
		||||
        // 此处可根据登录用户的数据不同 自行创建 loginUser
 | 
			
		||||
@@ -106,7 +103,7 @@ public class SysLoginService {
 | 
			
		||||
        // todo 以下自行实现
 | 
			
		||||
        // 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key 与 openid
 | 
			
		||||
        String openid = "";
 | 
			
		||||
        SysUser user = loadUserByOpenid(openid);
 | 
			
		||||
        SysUserVo user = loadUserByOpenid(openid);
 | 
			
		||||
 | 
			
		||||
        // 此处可根据登录用户的数据不同 自行创建 loginUser
 | 
			
		||||
        XcxLoginUser loginUser = new XcxLoginUser();
 | 
			
		||||
@@ -184,7 +181,7 @@ public class SysLoginService {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private SysUser loadUserByUsername(String username) {
 | 
			
		||||
    private SysUserVo loadUserByUsername(String username) {
 | 
			
		||||
        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
 | 
			
		||||
            .select(SysUser::getUserName, SysUser::getStatus)
 | 
			
		||||
            .eq(SysUser::getUserName, username));
 | 
			
		||||
@@ -198,7 +195,7 @@ public class SysLoginService {
 | 
			
		||||
        return userMapper.selectUserByUserName(username);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private SysUser loadUserByPhonenumber(String phonenumber) {
 | 
			
		||||
    private SysUserVo loadUserByPhonenumber(String phonenumber) {
 | 
			
		||||
        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
 | 
			
		||||
            .select(SysUser::getPhonenumber, SysUser::getStatus)
 | 
			
		||||
            .eq(SysUser::getPhonenumber, phonenumber));
 | 
			
		||||
@@ -212,10 +209,10 @@ public class SysLoginService {
 | 
			
		||||
        return userMapper.selectUserByPhonenumber(phonenumber);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private SysUser loadUserByOpenid(String openid) {
 | 
			
		||||
    private SysUserVo loadUserByOpenid(String openid) {
 | 
			
		||||
        // 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
 | 
			
		||||
        // todo 自行实现 userService.selectUserByOpenid(openid);
 | 
			
		||||
        SysUser user = new SysUser();
 | 
			
		||||
        SysUserVo user = new SysUserVo();
 | 
			
		||||
        if (ObjectUtil.isNull(user)) {
 | 
			
		||||
            log.info("登录用户:{} 不存在.", openid);
 | 
			
		||||
            // todo 用户不存在 业务逻辑自行实现
 | 
			
		||||
@@ -229,14 +226,14 @@ public class SysLoginService {
 | 
			
		||||
    /**
 | 
			
		||||
     * 构建登录用户
 | 
			
		||||
     */
 | 
			
		||||
    private LoginUser buildLoginUser(SysUser user) {
 | 
			
		||||
    private LoginUser buildLoginUser(SysUserVo user) {
 | 
			
		||||
        LoginUser loginUser = new LoginUser();
 | 
			
		||||
        loginUser.setUserId(user.getUserId());
 | 
			
		||||
        loginUser.setDeptId(user.getDeptId());
 | 
			
		||||
        loginUser.setUsername(user.getUserName());
 | 
			
		||||
        loginUser.setUserType(user.getUserType());
 | 
			
		||||
        loginUser.setMenuPermission(permissionService.getMenuPermission(user));
 | 
			
		||||
        loginUser.setRolePermission(permissionService.getRolePermission(user));
 | 
			
		||||
        loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId(), user.isAdmin()));
 | 
			
		||||
        loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId(), user.isAdmin()));
 | 
			
		||||
        loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName());
 | 
			
		||||
        List<RoleDTO> roles = BeanUtil.copyToList(user.getRoles(), RoleDTO.class);
 | 
			
		||||
        loginUser.setRoles(roles);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,7 @@
 | 
			
		||||
package com.ruoyi.system.service;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import com.ruoyi.system.domain.SysRole;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysRoleVo;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
@@ -25,16 +24,17 @@ public class SysPermissionService {
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取角色数据权限
 | 
			
		||||
     *
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @param userId  用户id
 | 
			
		||||
     * @param isAdmin 是否管理员
 | 
			
		||||
     * @return 角色权限信息
 | 
			
		||||
     */
 | 
			
		||||
    public Set<String> getRolePermission(SysUser user) {
 | 
			
		||||
    public Set<String> getRolePermission(Long userId, boolean isAdmin) {
 | 
			
		||||
        Set<String> roles = new HashSet<>();
 | 
			
		||||
        // 管理员拥有所有权限
 | 
			
		||||
        if (user.isAdmin()) {
 | 
			
		||||
        if (isAdmin) {
 | 
			
		||||
            roles.add("admin");
 | 
			
		||||
        } else {
 | 
			
		||||
            roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId()));
 | 
			
		||||
            roles.addAll(roleService.selectRolePermissionByUserId(userId));
 | 
			
		||||
        }
 | 
			
		||||
        return roles;
 | 
			
		||||
    }
 | 
			
		||||
@@ -42,25 +42,26 @@ public class SysPermissionService {
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取菜单数据权限
 | 
			
		||||
     *
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     * @param userId  用户id
 | 
			
		||||
     * @param isAdmin 是否管理员
 | 
			
		||||
     * @return 菜单权限信息
 | 
			
		||||
     */
 | 
			
		||||
    public Set<String> getMenuPermission(SysUser user) {
 | 
			
		||||
    public Set<String> getMenuPermission(Long userId, boolean isAdmin) {
 | 
			
		||||
        Set<String> perms = new HashSet<>();
 | 
			
		||||
        // 管理员拥有所有权限
 | 
			
		||||
        if (user.isAdmin()) {
 | 
			
		||||
        if (isAdmin) {
 | 
			
		||||
            perms.add("*:*:*");
 | 
			
		||||
        } else {
 | 
			
		||||
            List<SysRole> roles = user.getRoles();
 | 
			
		||||
            List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
 | 
			
		||||
            if (CollUtil.isNotEmpty(roles)) {
 | 
			
		||||
                // 多角色设置permissions属性,以便数据权限匹配权限
 | 
			
		||||
                for (SysRole role : roles) {
 | 
			
		||||
                for (SysRoleVo role : roles) {
 | 
			
		||||
                    Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId());
 | 
			
		||||
                    role.setPermissions(rolePerms);
 | 
			
		||||
                    perms.addAll(rolePerms);
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId()));
 | 
			
		||||
                perms.addAll(menuService.selectMenuPermsByUserId(userId));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return perms;
 | 
			
		||||
 
 | 
			
		||||
@@ -4,23 +4,22 @@ import cn.dev33.satoken.secure.BCrypt;
 | 
			
		||||
import com.ruoyi.common.core.constant.CacheConstants;
 | 
			
		||||
import com.ruoyi.common.core.constant.Constants;
 | 
			
		||||
import com.ruoyi.common.core.constant.UserConstants;
 | 
			
		||||
import com.ruoyi.common.log.event.LogininforEvent;
 | 
			
		||||
import com.ruoyi.common.core.enums.UserType;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.RegisterBody;
 | 
			
		||||
import com.ruoyi.common.core.enums.UserType;
 | 
			
		||||
import com.ruoyi.common.core.exception.user.CaptchaException;
 | 
			
		||||
import com.ruoyi.common.core.exception.user.CaptchaExpireException;
 | 
			
		||||
import com.ruoyi.common.core.exception.user.UserException;
 | 
			
		||||
import com.ruoyi.common.core.utils.MessageUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.ServletUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.redis.utils.RedisUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.SpringUtils;
 | 
			
		||||
import com.ruoyi.common.core.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.log.event.LogininforEvent;
 | 
			
		||||
import com.ruoyi.common.redis.utils.RedisUtils;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import jakarta.servlet.http.HttpServletRequest;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
import jakarta.servlet.http.HttpServletRequest;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 注册校验方法
 | 
			
		||||
 *
 | 
			
		||||
@@ -48,7 +47,7 @@ public class SysRegisterService {
 | 
			
		||||
        if (captchaEnabled) {
 | 
			
		||||
            validateCaptcha(username, registerBody.getCode(), registerBody.getUuid(), request);
 | 
			
		||||
        }
 | 
			
		||||
        SysUser sysUser = new SysUser();
 | 
			
		||||
        SysUserBo sysUser = new SysUserBo();
 | 
			
		||||
        sysUser.setUserName(username);
 | 
			
		||||
        sysUser.setNickName(username);
 | 
			
		||||
        sysUser.setPassword(BCrypt.hashpw(password));
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,9 @@ import com.ruoyi.common.core.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.PageQuery;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.system.domain.SysNotice;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysNoticeBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysNoticeVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.mapper.SysNoticeMapper;
 | 
			
		||||
import com.ruoyi.system.mapper.SysUserMapper;
 | 
			
		||||
import com.ruoyi.system.service.ISysNoticeService;
 | 
			
		||||
@@ -68,7 +68,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
 | 
			
		||||
        lqw.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle());
 | 
			
		||||
        lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType());
 | 
			
		||||
        if (StringUtils.isNotBlank(bo.getCreateByName())) {
 | 
			
		||||
            SysUser sysUser = userMapper.selectUserByUserName(bo.getCreateByName());
 | 
			
		||||
            SysUserVo sysUser = userMapper.selectUserByUserName(bo.getCreateByName());
 | 
			
		||||
            lqw.eq(SysNotice::getCreateBy, ObjectUtil.isNotNull(sysUser) ? sysUser.getUserId() : null);
 | 
			
		||||
        }
 | 
			
		||||
        return lqw;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
package com.ruoyi.system.service.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import cn.hutool.core.util.ArrayUtil;
 | 
			
		||||
import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
@@ -19,9 +20,14 @@ import com.ruoyi.common.mybatis.core.page.PageQuery;
 | 
			
		||||
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 | 
			
		||||
import com.ruoyi.common.mybatis.helper.DataBaseHelper;
 | 
			
		||||
import com.ruoyi.common.satoken.utils.LoginHelper;
 | 
			
		||||
import com.ruoyi.system.domain.*;
 | 
			
		||||
import com.ruoyi.system.domain.SysDept;
 | 
			
		||||
import com.ruoyi.system.domain.SysUser;
 | 
			
		||||
import com.ruoyi.system.domain.SysUserPost;
 | 
			
		||||
import com.ruoyi.system.domain.SysUserRole;
 | 
			
		||||
import com.ruoyi.system.domain.bo.SysUserBo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysPostVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysRoleVo;
 | 
			
		||||
import com.ruoyi.system.domain.vo.SysUserVo;
 | 
			
		||||
import com.ruoyi.system.mapper.*;
 | 
			
		||||
import com.ruoyi.system.service.ISysUserService;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
@@ -51,8 +57,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
    private final SysUserPostMapper userPostMapper;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TableDataInfo<SysUser> selectPageUserList(SysUser user, PageQuery pageQuery) {
 | 
			
		||||
        Page<SysUser> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
 | 
			
		||||
    public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
 | 
			
		||||
        Page<SysUserVo> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
 | 
			
		||||
        return TableDataInfo.build(page);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -63,11 +69,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 用户信息集合信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<SysUser> selectUserList(SysUser user) {
 | 
			
		||||
    public List<SysUserVo> selectUserList(SysUserBo user) {
 | 
			
		||||
        return baseMapper.selectUserList(this.buildQueryWrapper(user));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Wrapper<SysUser> buildQueryWrapper(SysUser user) {
 | 
			
		||||
    private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) {
 | 
			
		||||
        Map<String, Object> params = user.getParams();
 | 
			
		||||
        QueryWrapper<SysUser> wrapper = Wrappers.query();
 | 
			
		||||
        wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
 | 
			
		||||
@@ -95,14 +101,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 用户信息集合信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public TableDataInfo<SysUser> selectAllocatedList(SysUser user, PageQuery pageQuery) {
 | 
			
		||||
    public TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery) {
 | 
			
		||||
        QueryWrapper<SysUser> wrapper = Wrappers.query();
 | 
			
		||||
        wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
 | 
			
		||||
            .eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId())
 | 
			
		||||
            .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
 | 
			
		||||
            .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
 | 
			
		||||
            .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber());
 | 
			
		||||
        Page<SysUser> page = baseMapper.selectAllocatedList(pageQuery.build(), wrapper);
 | 
			
		||||
        Page<SysUserVo> page = baseMapper.selectAllocatedList(pageQuery.build(), wrapper);
 | 
			
		||||
        return TableDataInfo.build(page);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -113,7 +119,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 用户信息集合信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public TableDataInfo<SysUser> selectUnallocatedList(SysUser user, PageQuery pageQuery) {
 | 
			
		||||
    public TableDataInfo<SysUserVo> selectUnallocatedList(SysUserBo user, PageQuery pageQuery) {
 | 
			
		||||
        List<Long> userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId());
 | 
			
		||||
        QueryWrapper<SysUser> wrapper = Wrappers.query();
 | 
			
		||||
        wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
 | 
			
		||||
@@ -121,7 +127,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
            .notIn(CollUtil.isNotEmpty(userIds), "u.user_id", userIds)
 | 
			
		||||
            .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
 | 
			
		||||
            .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber());
 | 
			
		||||
        Page<SysUser> page = baseMapper.selectUnallocatedList(pageQuery.build(), wrapper);
 | 
			
		||||
        Page<SysUserVo> page = baseMapper.selectUnallocatedList(pageQuery.build(), wrapper);
 | 
			
		||||
        return TableDataInfo.build(page);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -132,7 +138,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public SysUser selectUserByUserName(String userName) {
 | 
			
		||||
    public SysUserVo selectUserByUserName(String userName) {
 | 
			
		||||
        return baseMapper.selectUserByUserName(userName);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -143,7 +149,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public SysUser selectUserByPhonenumber(String phonenumber) {
 | 
			
		||||
    public SysUserVo selectUserByPhonenumber(String phonenumber) {
 | 
			
		||||
        return baseMapper.selectUserByPhonenumber(phonenumber);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -154,7 +160,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 用户对象信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public SysUser selectUserById(Long userId) {
 | 
			
		||||
    public SysUserVo selectUserById(Long userId) {
 | 
			
		||||
        return baseMapper.selectUserById(userId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -195,7 +201,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public String checkUserNameUnique(SysUser user) {
 | 
			
		||||
    public String checkUserNameUnique(SysUserBo user) {
 | 
			
		||||
        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
 | 
			
		||||
            .eq(SysUser::getUserName, user.getUserName())
 | 
			
		||||
            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
 | 
			
		||||
@@ -211,7 +217,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public String checkPhoneUnique(SysUser user) {
 | 
			
		||||
    public String checkPhoneUnique(SysUserBo user) {
 | 
			
		||||
        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
 | 
			
		||||
            .eq(SysUser::getPhonenumber, user.getPhonenumber())
 | 
			
		||||
            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
 | 
			
		||||
@@ -227,7 +233,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public String checkEmailUnique(SysUser user) {
 | 
			
		||||
    public String checkEmailUnique(SysUserBo user) {
 | 
			
		||||
        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
 | 
			
		||||
            .eq(SysUser::getEmail, user.getEmail())
 | 
			
		||||
            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
 | 
			
		||||
@@ -243,7 +249,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @param user 用户信息
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void checkUserAllowed(SysUser user) {
 | 
			
		||||
    public void checkUserAllowed(SysUserBo user) {
 | 
			
		||||
        if (ObjectUtil.isNotNull(user.getUserId()) && user.isAdmin()) {
 | 
			
		||||
            throw new ServiceException("不允许操作超级管理员用户");
 | 
			
		||||
        }
 | 
			
		||||
@@ -257,9 +263,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void checkUserDataScope(Long userId) {
 | 
			
		||||
        if (!LoginHelper.isAdmin()) {
 | 
			
		||||
            SysUser user = new SysUser();
 | 
			
		||||
            SysUserBo user = new SysUserBo();
 | 
			
		||||
            user.setUserId(userId);
 | 
			
		||||
            List<SysUser> users = this.selectUserList(user);
 | 
			
		||||
            List<SysUserVo> users = this.selectUserList(user);
 | 
			
		||||
            if (CollUtil.isEmpty(users)) {
 | 
			
		||||
                throw new ServiceException("没有权限访问用户数据!");
 | 
			
		||||
            }
 | 
			
		||||
@@ -274,9 +280,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public int insertUser(SysUser user) {
 | 
			
		||||
    public int insertUser(SysUserBo user) {
 | 
			
		||||
        SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
 | 
			
		||||
        // 新增用户信息
 | 
			
		||||
        int rows = baseMapper.insert(user);
 | 
			
		||||
        int rows = baseMapper.insert(sysUser);
 | 
			
		||||
        // 新增用户岗位关联
 | 
			
		||||
        insertUserPost(user);
 | 
			
		||||
        // 新增用户与角色管理
 | 
			
		||||
@@ -291,10 +298,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean registerUser(SysUser user) {
 | 
			
		||||
    public boolean registerUser(SysUserBo user) {
 | 
			
		||||
        user.setCreateBy(user.getUserId());
 | 
			
		||||
        user.setUpdateBy(user.getUserId());
 | 
			
		||||
        return baseMapper.insert(user) > 0;
 | 
			
		||||
        SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
 | 
			
		||||
        return baseMapper.insert(sysUser) > 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -305,7 +313,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public int updateUser(SysUser user) {
 | 
			
		||||
    public int updateUser(SysUserBo user) {
 | 
			
		||||
        Long userId = user.getUserId();
 | 
			
		||||
        // 删除用户与角色关联
 | 
			
		||||
        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
 | 
			
		||||
@@ -315,7 +323,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
 | 
			
		||||
        // 新增用户与岗位管理
 | 
			
		||||
        insertUserPost(user);
 | 
			
		||||
        return baseMapper.updateById(user);
 | 
			
		||||
        SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
 | 
			
		||||
        return baseMapper.updateById(sysUser);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -339,8 +348,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public int updateUserStatus(SysUser user) {
 | 
			
		||||
        return baseMapper.updateById(user);
 | 
			
		||||
    public int updateUserStatus(SysUserBo user) {
 | 
			
		||||
        SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
 | 
			
		||||
        return baseMapper.updateById(sysUser);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -350,8 +360,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public int updateUserProfile(SysUser user) {
 | 
			
		||||
        return baseMapper.updateById(user);
 | 
			
		||||
    public int updateUserProfile(SysUserBo user) {
 | 
			
		||||
        SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
 | 
			
		||||
        return baseMapper.updateById(sysUser);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -376,8 +387,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     * @return 结果
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public int resetPwd(SysUser user) {
 | 
			
		||||
        return baseMapper.updateById(user);
 | 
			
		||||
    public int resetPwd(SysUserBo user) {
 | 
			
		||||
        SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
 | 
			
		||||
        return baseMapper.updateById(sysUser);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -400,7 +412,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     *
 | 
			
		||||
     * @param user 用户对象
 | 
			
		||||
     */
 | 
			
		||||
    public void insertUserRole(SysUser user) {
 | 
			
		||||
    public void insertUserRole(SysUserBo user) {
 | 
			
		||||
        this.insertUserRole(user.getUserId(), user.getRoleIds());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -409,7 +421,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
     *
 | 
			
		||||
     * @param user 用户对象
 | 
			
		||||
     */
 | 
			
		||||
    public void insertUserPost(SysUser user) {
 | 
			
		||||
    public void insertUserPost(SysUserBo user) {
 | 
			
		||||
        Long[] posts = user.getPostIds();
 | 
			
		||||
        if (ArrayUtil.isNotEmpty(posts)) {
 | 
			
		||||
            // 新增用户与岗位管理
 | 
			
		||||
@@ -468,7 +480,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public int deleteUserByIds(Long[] userIds) {
 | 
			
		||||
        for (Long userId : userIds) {
 | 
			
		||||
            checkUserAllowed(new SysUser(userId));
 | 
			
		||||
            checkUserAllowed(new SysUserBo(userId));
 | 
			
		||||
            checkUserDataScope(userId);
 | 
			
		||||
        }
 | 
			
		||||
        List<Long> ids = List.of(userIds);
 | 
			
		||||
 
 | 
			
		||||
@@ -5,18 +5,18 @@
 | 
			
		||||
<mapper namespace="com.ruoyi.system.mapper.SysUserMapper">
 | 
			
		||||
 | 
			
		||||
    <!-- 多结构嵌套自动映射需带上每个实体的主键id 否则映射会失败 -->
 | 
			
		||||
    <resultMap type="com.ruoyi.system.domain.SysUser" id="SysUserResult">
 | 
			
		||||
    <resultMap type="com.ruoyi.system.domain.vo.SysUserVo" id="SysUserResult">
 | 
			
		||||
        <id property="userId" column="user_id"/>
 | 
			
		||||
        <result property="deptId" column="dept_id"/>
 | 
			
		||||
        <association property="dept" column="dept_id" resultMap="deptResult"/>
 | 
			
		||||
        <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <resultMap id="deptResult" type="com.ruoyi.system.domain.SysDept">
 | 
			
		||||
    <resultMap id="deptResult" type="com.ruoyi.system.domain.vo.SysDeptVo">
 | 
			
		||||
        <id property="deptId" column="dept_id"/>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
    <resultMap id="RoleResult" type="com.ruoyi.system.domain.SysRole">
 | 
			
		||||
    <resultMap id="RoleResult" type="com.ruoyi.system.domain.vo.SysRoleVo">
 | 
			
		||||
        <id property="roleId" column="role_id"/>
 | 
			
		||||
    </resultMap>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user