update 更新 system 相关表接口 (sys_user) 新增 Bo Vo 类 更改请求及响应参数

This commit is contained in:
疯狂的狮子li 2023-02-03 19:03:09 +08:00
parent 296437569c
commit 4d22f5928b
18 changed files with 181 additions and 210 deletions

View File

@ -7,13 +7,13 @@ import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.domain.model.SmsLoginBody; import com.ruoyi.common.core.domain.model.SmsLoginBody;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.system.domain.SysMenu; 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.RouterVo;
import com.ruoyi.system.domain.vo.SysUserVo;
import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.SysLoginService; 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.LoginVo;
import com.ruoyi.web.domain.vo.UserInfoVo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -106,7 +106,7 @@ public class SysLoginController {
public R<UserInfoVo> getInfo() { public R<UserInfoVo> getInfo() {
UserInfoVo userInfoVo = new UserInfoVo(); UserInfoVo userInfoVo = new UserInfoVo();
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
SysUser user = userService.selectUserById(loginUser.getUserId()); SysUserVo user = userService.selectUserById(loginUser.getUserId());
userInfoVo.setUser(user); userInfoVo.setUser(user);
userInfoVo.setPermissions(loginUser.getMenuPermission()); userInfoVo.setPermissions(loginUser.getMenuPermission());
userInfoVo.setRoles(loginUser.getRolePermission()); userInfoVo.setRoles(loginUser.getRolePermission());

View File

@ -1,6 +1,6 @@
package com.ruoyi.web.domain.vo; package com.ruoyi.web.domain.vo;
import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.domain.vo.SysUserVo;
import lombok.Data; import lombok.Data;
import java.util.Set; import java.util.Set;
@ -16,7 +16,7 @@ public class UserInfoVo {
/** /**
* 用户基本信息 * 用户基本信息
*/ */
private SysUser user; private SysUserVo user;
/** /**
* 菜单权限 * 菜单权限

View File

@ -6,14 +6,15 @@ import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.file.MimeTypeUtils; 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.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.satoken.utils.LoginHelper; 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.AvatarVo;
import com.ruoyi.system.domain.vo.ProfileVo; import com.ruoyi.system.domain.vo.ProfileVo;
import com.ruoyi.system.domain.vo.SysOssVo; 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.ISysOssService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -43,7 +44,7 @@ public class SysProfileController extends BaseController {
*/ */
@GetMapping @GetMapping
public R<ProfileVo> profile() { public R<ProfileVo> profile() {
SysUser user = userService.selectUserById(LoginHelper.getUserId()); SysUserVo user = userService.selectUserById(LoginHelper.getUserId());
ProfileVo profileVo = new ProfileVo(); ProfileVo profileVo = new ProfileVo();
profileVo.setUser(user); profileVo.setUser(user);
profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName())); profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName()));
@ -56,7 +57,7 @@ public class SysProfileController extends BaseController {
*/ */
@Log(title = "个人信息", businessType = BusinessType.UPDATE) @Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public R<Void> updateProfile(@RequestBody SysUser user) { public R<Void> updateProfile(@RequestBody SysUserBo user) {
if (StringUtils.isNotEmpty(user.getPhonenumber()) if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
@ -85,7 +86,7 @@ public class SysProfileController extends BaseController {
@Log(title = "个人信息", businessType = BusinessType.UPDATE) @Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping("/updatePwd") @PutMapping("/updatePwd")
public R<Void> updatePwd(String oldPassword, String newPassword) { 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 userName = user.getUserName();
String password = user.getPassword(); String password = user.getPassword();
if (!BCrypt.checkpw(oldPassword, password)) { if (!BCrypt.checkpw(oldPassword, password)) {

View File

@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser; 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.excel.utils.ExcelUtil;
import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.satoken.utils.LoginHelper; 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.SysDept;
import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.domain.bo.SysRoleBo; 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.DeptTreeSelectVo;
import com.ruoyi.system.domain.vo.SysRoleVo; 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.ISysDeptService;
import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
@ -111,9 +112,9 @@ public class SysRoleController extends BaseController {
if (roleService.updateRole(role) > 0) { if (roleService.updateRole(role) > 0) {
// 更新缓存用户权限 // 更新缓存用户权限
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
SysUser sysUser = userService.selectUserById(loginUser.getUserId()); SysUserVo sysUser = userService.selectUserById(loginUser.getUserId());
if (ObjectUtil.isNotNull(sysUser) && !LoginHelper.isAdmin()) { if (ObjectUtil.isNotNull(sysUser) && !LoginHelper.isAdmin()) {
loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser)); loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser.getUserId(), sysUser.isAdmin()));
LoginHelper.setLoginUser(loginUser); LoginHelper.setLoginUser(loginUser);
} }
return R.ok(); return R.ok();
@ -171,7 +172,7 @@ public class SysRoleController extends BaseController {
*/ */
@SaCheckPermission("system:role:list") @SaCheckPermission("system:role:list")
@GetMapping("/authUser/allocatedList") @GetMapping("/authUser/allocatedList")
public TableDataInfo<SysUser> allocatedList(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> allocatedList(SysUserBo user, PageQuery pageQuery) {
return userService.selectAllocatedList(user, pageQuery); return userService.selectAllocatedList(user, pageQuery);
} }
@ -180,7 +181,7 @@ public class SysRoleController extends BaseController {
*/ */
@SaCheckPermission("system:role:list") @SaCheckPermission("system:role:list")
@GetMapping("/authUser/unallocatedList") @GetMapping("/authUser/unallocatedList")
public TableDataInfo<SysUser> unallocatedList(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> unallocatedList(SysUserBo user, PageQuery pageQuery) {
return userService.selectUnallocatedList(user, pageQuery); return userService.selectUnallocatedList(user, pageQuery);
} }

View File

@ -10,7 +10,6 @@ import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; 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.core.ExcelResult;
import com.ruoyi.common.excel.utils.ExcelUtil; import com.ruoyi.common.excel.utils.ExcelUtil;
import com.ruoyi.common.log.annotation.Log; 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.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.satoken.utils.LoginHelper; 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.SysDept;
import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.bo.SysUserBo;
import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.domain.vo.*;
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.listener.SysUserImportListener; 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 jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType; 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.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; 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") @SaCheckPermission("system:user:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<SysUser> list(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> list(SysUserBo user, PageQuery pageQuery) {
return userService.selectPageUserList(user, pageQuery); return userService.selectPageUserList(user, pageQuery);
} }
@ -67,11 +67,11 @@ public class SysUserController extends BaseController {
@Log(title = "用户管理", businessType = BusinessType.EXPORT) @Log(title = "用户管理", businessType = BusinessType.EXPORT)
@SaCheckPermission("system:user:export") @SaCheckPermission("system:user:export")
@PostMapping("/export") @PostMapping("/export")
public void export(SysUser user, HttpServletResponse response) { public void export(SysUserBo user, HttpServletResponse response) {
List<SysUser> list = userService.selectUserList(user); List<SysUserVo> list = userService.selectUserList(user);
List<SysUserExportVo> listVo = BeanUtil.copyToList(list, SysUserExportVo.class); List<SysUserExportVo> listVo = BeanUtil.copyToList(list, SysUserExportVo.class);
for (int i = 0; i < list.size(); i++) { 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); SysUserExportVo vo = listVo.get(i);
if (ObjectUtil.isNotEmpty(dept)) { if (ObjectUtil.isNotEmpty(dept)) {
vo.setDeptName(dept.getDeptName()); 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.setRoles(LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
userInfoVo.setPosts(postService.selectPostAll()); userInfoVo.setPosts(postService.selectPostAll());
if (ObjectUtil.isNotNull(userId)) { if (ObjectUtil.isNotNull(userId)) {
SysUser sysUser = userService.selectUserById(userId); SysUserVo sysUser = userService.selectUserById(userId);
userInfoVo.setUser(sysUser); userInfoVo.setUser(sysUser);
userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId)); userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRoleVo::getRoleId));
userInfoVo.setPostIds(postService.selectPostListByUserId(userId)); userInfoVo.setPostIds(postService.selectPostListByUserId(userId));
} }
return R.ok(userInfoVo); return R.ok(userInfoVo);
@ -131,7 +131,7 @@ public class SysUserController extends BaseController {
@SaCheckPermission("system:user:add") @SaCheckPermission("system:user:add")
@Log(title = "用户管理", businessType = BusinessType.INSERT) @Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping @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))) { if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); return R.fail("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
} else if (StringUtils.isNotEmpty(user.getPhonenumber()) } else if (StringUtils.isNotEmpty(user.getPhonenumber())
@ -151,7 +151,7 @@ public class SysUserController extends BaseController {
@SaCheckPermission("system:user:edit") @SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public R<Void> edit(@Validated @RequestBody SysUser user) { public R<Void> edit(@Validated @RequestBody SysUserBo user) {
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) { if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user))) {
@ -187,7 +187,7 @@ public class SysUserController extends BaseController {
@SaCheckPermission("system:user:resetPwd") @SaCheckPermission("system:user:resetPwd")
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/resetPwd") @PutMapping("/resetPwd")
public R<Void> resetPwd(@RequestBody SysUser user) { public R<Void> resetPwd(@RequestBody SysUserBo user) {
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
user.setPassword(BCrypt.hashpw(user.getPassword())); user.setPassword(BCrypt.hashpw(user.getPassword()));
@ -200,7 +200,7 @@ public class SysUserController extends BaseController {
@SaCheckPermission("system:user:edit") @SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus") @PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestBody SysUser user) { public R<Void> changeStatus(@RequestBody SysUserBo user) {
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
return toAjax(userService.updateUserStatus(user)); return toAjax(userService.updateUserStatus(user));
@ -214,7 +214,7 @@ public class SysUserController extends BaseController {
@SaCheckPermission("system:user:query") @SaCheckPermission("system:user:query")
@GetMapping("/authRole/{userId}") @GetMapping("/authRole/{userId}")
public R<SysUserInfoVo> authRole(@PathVariable Long userId) { public R<SysUserInfoVo> authRole(@PathVariable Long userId) {
SysUser user = userService.selectUserById(userId); SysUserVo user = userService.selectUserById(userId);
List<SysRoleVo> roles = roleService.selectRolesByUserId(userId); List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
SysUserInfoVo userInfoVo = new SysUserInfoVo(); SysUserInfoVo userInfoVo = new SysUserInfoVo();
userInfoVo.setUser(user); userInfoVo.setUser(user);

View File

@ -3,18 +3,11 @@ package com.ruoyi.system.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; 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.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 用户对象 sys_user * 用户对象 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; private String userName;
/** /**
* 用户昵称 * 用户昵称
*/ */
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
private String nickName; 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; private String email;
/** /**
* 手机号码 * 手机号码
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String phonenumber; private String phonenumber;
/** /**
@ -119,35 +103,6 @@ public class SysUser extends BaseEntity {
*/ */
private String remark; 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) { public SysUser(Long userId) {
this.userId = userId; this.userId = userId;

View File

@ -1,17 +1,19 @@
package com.ruoyi.system.domain.bo; package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.xss.Xss;
import com.ruoyi.common.core.validate.EditGroup; 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.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import lombok.NoArgsConstructor;
import java.util.Date; import java.util.Date;
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import lombok.NoArgsConstructor;
/** /**
* 用户信息业务对象 sys_user * 用户信息业务对象 sys_user
* *
@ -27,7 +29,6 @@ public class SysUserBo extends BaseEntity {
/** /**
* 用户ID * 用户ID
*/ */
@NotNull(message = "用户ID不能为空", groups = { EditGroup.class })
private Long userId; 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; private String userName;
/** /**
* 用户昵称 * 用户昵称
*/ */
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
private String nickName; 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; private String email;
/** /**
* 手机号码 * 手机号码
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String phonenumber; private String phonenumber;
/** /**
@ -91,11 +100,6 @@ public class SysUserBo extends BaseEntity {
*/ */
private Date loginDate; private Date loginDate;
/**
* 创建部门
*/
private Long createDept;
/** /**
* 备注 * 备注
*/ */

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.domain.vo; package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.SysUser;
import lombok.Data; import lombok.Data;
/** /**
@ -14,7 +13,7 @@ public class ProfileVo {
/** /**
* 用户信息 * 用户信息
*/ */
private SysUser user; private SysUserVo user;
/** /**
* 用户所属角色组 * 用户所属角色组

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.domain.vo; package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.SysUser;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -16,7 +15,7 @@ public class SysUserInfoVo {
/** /**
* 用户信息 * 用户信息
*/ */
private SysUser user; private SysUserVo user;
/** /**
* 角色ID列表 * 角色ID列表

View File

@ -11,8 +11,9 @@ import com.ruoyi.common.core.utils.ValidatorUtils;
import com.ruoyi.common.excel.core.ExcelListener; import com.ruoyi.common.excel.core.ExcelListener;
import com.ruoyi.common.excel.core.ExcelResult; import com.ruoyi.common.excel.core.ExcelResult;
import com.ruoyi.common.satoken.utils.LoginHelper; 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.SysUserImportVo;
import com.ruoyi.system.domain.vo.SysUserVo;
import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -50,11 +51,11 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
@Override @Override
public void invoke(SysUserImportVo userVo, AnalysisContext context) { public void invoke(SysUserImportVo userVo, AnalysisContext context) {
SysUser user = this.userService.selectUserByUserName(userVo.getUserName()); SysUserVo sysUser = this.userService.selectUserByUserName(userVo.getUserName());
try { try {
// 验证是否存在这个用户 // 验证是否存在这个用户
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(sysUser)) {
user = BeanUtil.toBean(userVo, SysUser.class); SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
ValidatorUtils.validate(user); ValidatorUtils.validate(user);
user.setPassword(password); user.setPassword(password);
user.setCreateBy(operUserId); user.setCreateBy(operUserId);
@ -62,8 +63,8 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
successNum++; successNum++;
successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功");
} else if (isUpdateSupport) { } else if (isUpdateSupport) {
Long userId = user.getUserId(); Long userId = sysUser.getUserId();
user = BeanUtil.toBean(userVo, SysUser.class); SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class);
user.setUserId(userId); user.setUserId(userId);
ValidatorUtils.validate(user); ValidatorUtils.validate(user);
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
@ -74,11 +75,11 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功"); successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功");
} else { } else {
failureNum++; failureNum++;
failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(user.getUserName()).append(" 已存在"); failureMsg.append("<br/>").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在");
} }
} catch (Exception e) { } catch (Exception e) {
failureNum++; failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; String msg = "<br/>" + failureNum + "、账号 " + sysUser.getUserName() + " 导入失败:";
failureMsg.append(msg).append(e.getMessage()); failureMsg.append(msg).append(e.getMessage());
log.error(msg, e); log.error(msg, e);
} }

View File

@ -7,6 +7,7 @@ import com.ruoyi.common.mybatis.annotation.DataColumn;
import com.ruoyi.common.mybatis.annotation.DataPermission; import com.ruoyi.common.mybatis.annotation.DataPermission;
import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.domain.SysUser;
import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.system.domain.vo.SysUserVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; 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 = "deptName", value = "d.dept_id"),
@DataColumn(key = "userName", value = "u.user_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 = "deptName", value = "d.dept_id"),
@DataColumn(key = "userName", value = "u.user_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 = "deptName", value = "d.dept_id"),
@DataColumn(key = "userName", value = "u.user_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 = "deptName", value = "d.dept_id"),
@DataColumn(key = "userName", value = "u.user_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 用户名 * @param userName 用户名
* @return 用户对象信息 * @return 用户对象信息
*/ */
SysUser selectUserByUserName(String userName); SysUserVo selectUserByUserName(String userName);
/** /**
* 通过手机号查询用户 * 通过手机号查询用户
@ -74,7 +75,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
* @param phonenumber 手机号 * @param phonenumber 手机号
* @return 用户对象信息 * @return 用户对象信息
*/ */
SysUser selectUserByPhonenumber(String phonenumber); SysUserVo selectUserByPhonenumber(String phonenumber);
/** /**
* 通过用户ID查询用户 * 通过用户ID查询用户
@ -82,6 +83,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
* @param userId 用户ID * @param userId 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
SysUser selectUserById(Long userId); SysUserVo selectUserById(Long userId);
} }

View File

@ -2,7 +2,8 @@ package com.ruoyi.system.service;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; 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; import java.util.List;
@ -14,7 +15,7 @@ import java.util.List;
public interface ISysUserService { 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 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
List<SysUser> selectUserList(SysUser user); List<SysUserVo> selectUserList(SysUserBo user);
/** /**
* 根据条件分页查询已分配用户角色列表 * 根据条件分页查询已分配用户角色列表
@ -30,7 +31,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
TableDataInfo<SysUser> selectAllocatedList(SysUser user, PageQuery pageQuery); TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery);
/** /**
* 根据条件分页查询未分配用户角色列表 * 根据条件分页查询未分配用户角色列表
@ -38,7 +39,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
TableDataInfo<SysUser> selectUnallocatedList(SysUser user, PageQuery pageQuery); TableDataInfo<SysUserVo> selectUnallocatedList(SysUserBo user, PageQuery pageQuery);
/** /**
* 通过用户名查询用户 * 通过用户名查询用户
@ -46,7 +47,7 @@ public interface ISysUserService {
* @param userName 用户名 * @param userName 用户名
* @return 用户对象信息 * @return 用户对象信息
*/ */
SysUser selectUserByUserName(String userName); SysUserVo selectUserByUserName(String userName);
/** /**
* 通过手机号查询用户 * 通过手机号查询用户
@ -54,7 +55,7 @@ public interface ISysUserService {
* @param phonenumber 手机号 * @param phonenumber 手机号
* @return 用户对象信息 * @return 用户对象信息
*/ */
SysUser selectUserByPhonenumber(String phonenumber); SysUserVo selectUserByPhonenumber(String phonenumber);
/** /**
* 通过用户ID查询用户 * 通过用户ID查询用户
@ -62,7 +63,7 @@ public interface ISysUserService {
* @param userId 用户ID * @param userId 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
SysUser selectUserById(Long userId); SysUserVo selectUserById(Long userId);
/** /**
* 根据用户ID查询用户所属角色组 * 根据用户ID查询用户所属角色组
@ -86,7 +87,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
String checkUserNameUnique(SysUser user); String checkUserNameUnique(SysUserBo user);
/** /**
* 校验手机号码是否唯一 * 校验手机号码是否唯一
@ -94,7 +95,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
String checkPhoneUnique(SysUser user); String checkPhoneUnique(SysUserBo user);
/** /**
* 校验email是否唯一 * 校验email是否唯一
@ -102,14 +103,14 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
String checkEmailUnique(SysUser user); String checkEmailUnique(SysUserBo user);
/** /**
* 校验用户是否允许操作 * 校验用户是否允许操作
* *
* @param user 用户信息 * @param user 用户信息
*/ */
void checkUserAllowed(SysUser user); void checkUserAllowed(SysUserBo user);
/** /**
* 校验用户是否有数据权限 * 校验用户是否有数据权限
@ -124,7 +125,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
int insertUser(SysUser user); int insertUser(SysUserBo user);
/** /**
* 注册用户信息 * 注册用户信息
@ -132,7 +133,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
boolean registerUser(SysUser user); boolean registerUser(SysUserBo user);
/** /**
* 修改用户信息 * 修改用户信息
@ -140,7 +141,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
int updateUser(SysUser user); int updateUser(SysUserBo user);
/** /**
* 用户授权角色 * 用户授权角色
@ -156,7 +157,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
int updateUserStatus(SysUser user); int updateUserStatus(SysUserBo user);
/** /**
* 修改用户基本信息 * 修改用户基本信息
@ -164,7 +165,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
int updateUserProfile(SysUser user); int updateUserProfile(SysUserBo user);
/** /**
* 修改用户头像 * 修改用户头像
@ -181,7 +182,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
int resetPwd(SysUser user); int resetPwd(SysUserBo user);
/** /**
* 重置用户密码 * 重置用户密码

View File

@ -8,31 +8,28 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.Constants; 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.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.DeviceType;
import com.ruoyi.common.core.enums.LoginType; import com.ruoyi.common.core.enums.LoginType;
import com.ruoyi.common.core.enums.UserStatus; 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.CaptchaException;
import com.ruoyi.common.core.exception.user.CaptchaExpireException; import com.ruoyi.common.core.exception.user.CaptchaExpireException;
import com.ruoyi.common.core.exception.user.UserException; import com.ruoyi.common.core.exception.user.UserException;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.core.utils.*;
import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.log.event.LogininforEvent;
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.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 com.ruoyi.system.mapper.SysUserMapper;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.servlet.http.HttpServletRequest;
import java.time.Duration; import java.time.Duration;
import java.util.List; import java.util.List;
import java.util.function.Supplier; import java.util.function.Supplier;
@ -73,7 +70,7 @@ public class SysLoginService {
if (captchaEnabled) { if (captchaEnabled) {
validateCaptcha(username, code, uuid, request); validateCaptcha(username, code, uuid, request);
} }
SysUser user = loadUserByUsername(username); SysUserVo user = loadUserByUsername(username);
checkLogin(LoginType.PASSWORD, username, () -> !BCrypt.checkpw(password, user.getPassword())); checkLogin(LoginType.PASSWORD, username, () -> !BCrypt.checkpw(password, user.getPassword()));
// 此处可根据登录用户的数据不同 自行创建 loginUser // 此处可根据登录用户的数据不同 自行创建 loginUser
LoginUser loginUser = buildLoginUser(user); LoginUser loginUser = buildLoginUser(user);
@ -87,7 +84,7 @@ public class SysLoginService {
public String smsLogin(String phonenumber, String smsCode) { public String smsLogin(String phonenumber, String smsCode) {
// 通过手机号查找用户 // 通过手机号查找用户
SysUser user = loadUserByPhonenumber(phonenumber); SysUserVo user = loadUserByPhonenumber(phonenumber);
checkLogin(LoginType.SMS, user.getUserName(), () -> !validateSmsCode(phonenumber, smsCode)); checkLogin(LoginType.SMS, user.getUserName(), () -> !validateSmsCode(phonenumber, smsCode));
// 此处可根据登录用户的数据不同 自行创建 loginUser // 此处可根据登录用户的数据不同 自行创建 loginUser
@ -106,7 +103,7 @@ public class SysLoginService {
// todo 以下自行实现 // todo 以下自行实现
// 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key openid // 校验 appid + appsrcret + xcxCode 调用登录凭证校验接口 获取 session_key openid
String openid = ""; String openid = "";
SysUser user = loadUserByOpenid(openid); SysUserVo user = loadUserByOpenid(openid);
// 此处可根据登录用户的数据不同 自行创建 loginUser // 此处可根据登录用户的数据不同 自行创建 loginUser
XcxLoginUser loginUser = new XcxLoginUser(); 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>() SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserName, SysUser::getStatus) .select(SysUser::getUserName, SysUser::getStatus)
.eq(SysUser::getUserName, username)); .eq(SysUser::getUserName, username));
@ -198,7 +195,7 @@ public class SysLoginService {
return userMapper.selectUserByUserName(username); return userMapper.selectUserByUserName(username);
} }
private SysUser loadUserByPhonenumber(String phonenumber) { private SysUserVo loadUserByPhonenumber(String phonenumber) {
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>() SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getPhonenumber, SysUser::getStatus) .select(SysUser::getPhonenumber, SysUser::getStatus)
.eq(SysUser::getPhonenumber, phonenumber)); .eq(SysUser::getPhonenumber, phonenumber));
@ -212,10 +209,10 @@ public class SysLoginService {
return userMapper.selectUserByPhonenumber(phonenumber); return userMapper.selectUserByPhonenumber(phonenumber);
} }
private SysUser loadUserByOpenid(String openid) { private SysUserVo loadUserByOpenid(String openid) {
// 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户 // 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
// todo 自行实现 userService.selectUserByOpenid(openid); // todo 自行实现 userService.selectUserByOpenid(openid);
SysUser user = new SysUser(); SysUserVo user = new SysUserVo();
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(user)) {
log.info("登录用户:{} 不存在.", openid); log.info("登录用户:{} 不存在.", openid);
// todo 用户不存在 业务逻辑自行实现 // todo 用户不存在 业务逻辑自行实现
@ -229,14 +226,14 @@ public class SysLoginService {
/** /**
* 构建登录用户 * 构建登录用户
*/ */
private LoginUser buildLoginUser(SysUser user) { private LoginUser buildLoginUser(SysUserVo user) {
LoginUser loginUser = new LoginUser(); LoginUser loginUser = new LoginUser();
loginUser.setUserId(user.getUserId()); loginUser.setUserId(user.getUserId());
loginUser.setDeptId(user.getDeptId()); loginUser.setDeptId(user.getDeptId());
loginUser.setUsername(user.getUserName()); loginUser.setUsername(user.getUserName());
loginUser.setUserType(user.getUserType()); loginUser.setUserType(user.getUserType());
loginUser.setMenuPermission(permissionService.getMenuPermission(user)); loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId(), user.isAdmin()));
loginUser.setRolePermission(permissionService.getRolePermission(user)); loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId(), user.isAdmin()));
loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName()); loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName());
List<RoleDTO> roles = BeanUtil.copyToList(user.getRoles(), RoleDTO.class); List<RoleDTO> roles = BeanUtil.copyToList(user.getRoles(), RoleDTO.class);
loginUser.setRoles(roles); loginUser.setRoles(roles);

View File

@ -1,8 +1,7 @@
package com.ruoyi.system.service; package com.ruoyi.system.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.vo.SysRoleVo;
import com.ruoyi.system.domain.SysUser;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -25,16 +24,17 @@ public class SysPermissionService {
/** /**
* 获取角色数据权限 * 获取角色数据权限
* *
* @param user 用户信息 * @param userId 用户id
* @param isAdmin 是否管理员
* @return 角色权限信息 * @return 角色权限信息
*/ */
public Set<String> getRolePermission(SysUser user) { public Set<String> getRolePermission(Long userId, boolean isAdmin) {
Set<String> roles = new HashSet<>(); Set<String> roles = new HashSet<>();
// 管理员拥有所有权限 // 管理员拥有所有权限
if (user.isAdmin()) { if (isAdmin) {
roles.add("admin"); roles.add("admin");
} else { } else {
roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); roles.addAll(roleService.selectRolePermissionByUserId(userId));
} }
return roles; return roles;
} }
@ -42,25 +42,26 @@ public class SysPermissionService {
/** /**
* 获取菜单数据权限 * 获取菜单数据权限
* *
* @param user 用户信息 * @param userId 用户id
* @param isAdmin 是否管理员
* @return 菜单权限信息 * @return 菜单权限信息
*/ */
public Set<String> getMenuPermission(SysUser user) { public Set<String> getMenuPermission(Long userId, boolean isAdmin) {
Set<String> perms = new HashSet<>(); Set<String> perms = new HashSet<>();
// 管理员拥有所有权限 // 管理员拥有所有权限
if (user.isAdmin()) { if (isAdmin) {
perms.add("*:*:*"); perms.add("*:*:*");
} else { } else {
List<SysRole> roles = user.getRoles(); List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
if (CollUtil.isNotEmpty(roles)) { if (CollUtil.isNotEmpty(roles)) {
// 多角色设置permissions属性以便数据权限匹配权限 // 多角色设置permissions属性以便数据权限匹配权限
for (SysRole role : roles) { for (SysRoleVo role : roles) {
Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId());
role.setPermissions(rolePerms); role.setPermissions(rolePerms);
perms.addAll(rolePerms); perms.addAll(rolePerms);
} }
} else { } else {
perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); perms.addAll(menuService.selectMenuPermsByUserId(userId));
} }
} }
return perms; return perms;

View File

@ -4,23 +4,22 @@ import cn.dev33.satoken.secure.BCrypt;
import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.UserConstants; 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.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.CaptchaException;
import com.ruoyi.common.core.exception.user.CaptchaExpireException; import com.ruoyi.common.core.exception.user.CaptchaExpireException;
import com.ruoyi.common.core.exception.user.UserException; import com.ruoyi.common.core.exception.user.UserException;
import com.ruoyi.common.core.utils.MessageUtils; import com.ruoyi.common.core.utils.MessageUtils;
import com.ruoyi.common.core.utils.ServletUtils; 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.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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.servlet.http.HttpServletRequest;
/** /**
* 注册校验方法 * 注册校验方法
* *
@ -48,7 +47,7 @@ public class SysRegisterService {
if (captchaEnabled) { if (captchaEnabled) {
validateCaptcha(username, registerBody.getCode(), registerBody.getUuid(), request); validateCaptcha(username, registerBody.getCode(), registerBody.getUuid(), request);
} }
SysUser sysUser = new SysUser(); SysUserBo sysUser = new SysUserBo();
sysUser.setUserName(username); sysUser.setUserName(username);
sysUser.setNickName(username); sysUser.setNickName(username);
sysUser.setPassword(BCrypt.hashpw(password)); sysUser.setPassword(BCrypt.hashpw(password));

View File

@ -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.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.system.domain.SysNotice; import com.ruoyi.system.domain.SysNotice;
import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.domain.bo.SysNoticeBo; import com.ruoyi.system.domain.bo.SysNoticeBo;
import com.ruoyi.system.domain.vo.SysNoticeVo; 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.SysNoticeMapper;
import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysNoticeService; 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.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle());
lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType()); lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType());
if (StringUtils.isNotBlank(bo.getCreateByName())) { 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); lqw.eq(SysNotice::getCreateBy, ObjectUtil.isNotNull(sysUser) ? sysUser.getUserId() : null);
} }
return lqw; return lqw;

View File

@ -1,5 +1,6 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; 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.core.page.TableDataInfo;
import com.ruoyi.common.mybatis.helper.DataBaseHelper; import com.ruoyi.common.mybatis.helper.DataBaseHelper;
import com.ruoyi.common.satoken.utils.LoginHelper; 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.SysPostVo;
import com.ruoyi.system.domain.vo.SysRoleVo; import com.ruoyi.system.domain.vo.SysRoleVo;
import com.ruoyi.system.domain.vo.SysUserVo;
import com.ruoyi.system.mapper.*; import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -51,8 +57,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
private final SysUserPostMapper userPostMapper; private final SysUserPostMapper userPostMapper;
@Override @Override
public TableDataInfo<SysUser> selectPageUserList(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
Page<SysUser> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user)); Page<SysUserVo> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@ -63,11 +69,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
public List<SysUser> selectUserList(SysUser user) { public List<SysUserVo> selectUserList(SysUserBo user) {
return baseMapper.selectUserList(this.buildQueryWrapper(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(); Map<String, Object> params = user.getParams();
QueryWrapper<SysUser> wrapper = Wrappers.query(); QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
@ -95,14 +101,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
public TableDataInfo<SysUser> selectAllocatedList(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery) {
QueryWrapper<SysUser> wrapper = Wrappers.query(); QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
.eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId()) .eq(ObjectUtil.isNotNull(user.getRoleId()), "r.role_id", user.getRoleId())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()); .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); return TableDataInfo.build(page);
} }
@ -113,7 +119,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
public TableDataInfo<SysUser> selectUnallocatedList(SysUser user, PageQuery pageQuery) { public TableDataInfo<SysUserVo> selectUnallocatedList(SysUserBo user, PageQuery pageQuery) {
List<Long> userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId()); List<Long> userIds = userRoleMapper.selectUserIdsByRoleId(user.getRoleId());
QueryWrapper<SysUser> wrapper = Wrappers.query(); QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL) 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) .notIn(CollUtil.isNotEmpty(userIds), "u.user_id", userIds)
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()); .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); return TableDataInfo.build(page);
} }
@ -132,7 +138,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Override @Override
public SysUser selectUserByUserName(String userName) { public SysUserVo selectUserByUserName(String userName) {
return baseMapper.selectUserByUserName(userName); return baseMapper.selectUserByUserName(userName);
} }
@ -143,7 +149,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Override @Override
public SysUser selectUserByPhonenumber(String phonenumber) { public SysUserVo selectUserByPhonenumber(String phonenumber) {
return baseMapper.selectUserByPhonenumber(phonenumber); return baseMapper.selectUserByPhonenumber(phonenumber);
} }
@ -154,7 +160,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Override @Override
public SysUser selectUserById(Long userId) { public SysUserVo selectUserById(Long userId) {
return baseMapper.selectUserById(userId); return baseMapper.selectUserById(userId);
} }
@ -195,7 +201,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 结果 * @return 结果
*/ */
@Override @Override
public String checkUserNameUnique(SysUser user) { public String checkUserNameUnique(SysUserBo user) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getUserName, user.getUserName()) .eq(SysUser::getUserName, user.getUserName())
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
@ -211,7 +217,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @param user 用户信息 * @param user 用户信息
*/ */
@Override @Override
public String checkPhoneUnique(SysUser user) { public String checkPhoneUnique(SysUserBo user) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getPhonenumber, user.getPhonenumber()) .eq(SysUser::getPhonenumber, user.getPhonenumber())
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
@ -227,7 +233,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @param user 用户信息 * @param user 用户信息
*/ */
@Override @Override
public String checkEmailUnique(SysUser user) { public String checkEmailUnique(SysUserBo user) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getEmail, user.getEmail()) .eq(SysUser::getEmail, user.getEmail())
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
@ -243,7 +249,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @param user 用户信息 * @param user 用户信息
*/ */
@Override @Override
public void checkUserAllowed(SysUser user) { public void checkUserAllowed(SysUserBo user) {
if (ObjectUtil.isNotNull(user.getUserId()) && user.isAdmin()) { if (ObjectUtil.isNotNull(user.getUserId()) && user.isAdmin()) {
throw new ServiceException("不允许操作超级管理员用户"); throw new ServiceException("不允许操作超级管理员用户");
} }
@ -257,9 +263,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
public void checkUserDataScope(Long userId) { public void checkUserDataScope(Long userId) {
if (!LoginHelper.isAdmin()) { if (!LoginHelper.isAdmin()) {
SysUser user = new SysUser(); SysUserBo user = new SysUserBo();
user.setUserId(userId); user.setUserId(userId);
List<SysUser> users = this.selectUserList(user); List<SysUserVo> users = this.selectUserList(user);
if (CollUtil.isEmpty(users)) { if (CollUtil.isEmpty(users)) {
throw new ServiceException("没有权限访问用户数据!"); throw new ServiceException("没有权限访问用户数据!");
} }
@ -274,9 +280,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @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); insertUserPost(user);
// 新增用户与角色管理 // 新增用户与角色管理
@ -291,10 +298,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean registerUser(SysUser user) { public boolean registerUser(SysUserBo user) {
user.setCreateBy(user.getUserId()); user.setCreateBy(user.getUserId());
user.setUpdateBy(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 @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateUser(SysUser user) { public int updateUser(SysUserBo user) {
Long userId = user.getUserId(); Long userId = user.getUserId();
// 删除用户与角色关联 // 删除用户与角色关联
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); 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)); userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
// 新增用户与岗位管理 // 新增用户与岗位管理
insertUserPost(user); 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 结果 * @return 结果
*/ */
@Override @Override
public int updateUserStatus(SysUser user) { public int updateUserStatus(SysUserBo user) {
return baseMapper.updateById(user); SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
return baseMapper.updateById(sysUser);
} }
/** /**
@ -350,8 +360,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateUserProfile(SysUser user) { public int updateUserProfile(SysUserBo user) {
return baseMapper.updateById(user); SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
return baseMapper.updateById(sysUser);
} }
/** /**
@ -376,8 +387,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 结果 * @return 结果
*/ */
@Override @Override
public int resetPwd(SysUser user) { public int resetPwd(SysUserBo user) {
return baseMapper.updateById(user); SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class);
return baseMapper.updateById(sysUser);
} }
/** /**
@ -400,7 +412,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* *
* @param user 用户对象 * @param user 用户对象
*/ */
public void insertUserRole(SysUser user) { public void insertUserRole(SysUserBo user) {
this.insertUserRole(user.getUserId(), user.getRoleIds()); this.insertUserRole(user.getUserId(), user.getRoleIds());
} }
@ -409,7 +421,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* *
* @param user 用户对象 * @param user 用户对象
*/ */
public void insertUserPost(SysUser user) { public void insertUserPost(SysUserBo user) {
Long[] posts = user.getPostIds(); Long[] posts = user.getPostIds();
if (ArrayUtil.isNotEmpty(posts)) { if (ArrayUtil.isNotEmpty(posts)) {
// 新增用户与岗位管理 // 新增用户与岗位管理
@ -468,7 +480,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int deleteUserByIds(Long[] userIds) { public int deleteUserByIds(Long[] userIds) {
for (Long userId : userIds) { for (Long userId : userIds) {
checkUserAllowed(new SysUser(userId)); checkUserAllowed(new SysUserBo(userId));
checkUserDataScope(userId); checkUserDataScope(userId);
} }
List<Long> ids = List.of(userIds); List<Long> ids = List.of(userIds);

View File

@ -5,18 +5,18 @@
<mapper namespace="com.ruoyi.system.mapper.SysUserMapper"> <mapper namespace="com.ruoyi.system.mapper.SysUserMapper">
<!-- 多结构嵌套自动映射需带上每个实体的主键id 否则映射会失败 --> <!-- 多结构嵌套自动映射需带上每个实体的主键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"/> <id property="userId" column="user_id"/>
<result property="deptId" column="dept_id"/> <result property="deptId" column="dept_id"/>
<association property="dept" column="dept_id" resultMap="deptResult"/> <association property="dept" column="dept_id" resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/> <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap> </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"/> <id property="deptId" column="dept_id"/>
</resultMap> </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"/> <id property="roleId" column="role_id"/>
</resultMap> </resultMap>