refactor: profile 优化

This commit is contained in:
zccbbg 2024-08-16 18:05:50 +08:00
parent 7cbd6c085e
commit 28f248d4ec
7 changed files with 66 additions and 71 deletions

View file

@ -12,10 +12,11 @@ import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.common.web.core.BaseController;
import com.ruoyi.system.domain.bo.SysUserBo;
import com.ruoyi.system.domain.bo.SysUserProfileBo;
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.SysUserService;
import com.ruoyi.system.service.SysOssService;
import com.ruoyi.system.service.SysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
@ -43,13 +44,13 @@ public class SysProfileController extends BaseController {
* 个人信息
*/
@GetMapping
public R<Map<String, Object>> profile() {
public R<ProfileVo> profile() {
SysUserVo user = userService.selectUserById(LoginHelper.getUserId());
return R.ok(Map.of(
"user", user,
"roleGroup", userService.selectUserRoleGroup(user.getUserName()),
"postGroup", userService.selectUserPostGroup(user.getUserName())
));
ProfileVo profileVo = new ProfileVo();
profileVo.setUser(user);
profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserId()));
profileVo.setPostGroup(userService.selectUserPostGroup(user.getUserId()));
return R.ok(profileVo);
}
/**
@ -59,17 +60,14 @@ public class SysProfileController extends BaseController {
@PutMapping
public R<Void> updateProfile(@Validated @RequestBody SysUserProfileBo profile) {
SysUserBo user = BeanUtil.toBean(profile, SysUserBo.class);
user.setUserId(LoginHelper.getUserId());
String username = LoginHelper.getUsername();
if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
return R.fail("修改用户'" + username + "'失败,手机号码已存在");
}
if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
return R.fail("修改用户'" + username + "'失败,邮箱账号已存在");
}
user.setUserId(LoginHelper.getUserId());
user.setUserName(null);
user.setPassword(null);
user.setAvatar(null);
user.setDeptId(null);
if (userService.updateUserProfile(user) > 0) {
return R.ok();
}
@ -86,16 +84,14 @@ public class SysProfileController extends BaseController {
@PutMapping("/updatePwd")
public R<Void> updatePwd(String oldPassword, String newPassword) {
SysUserVo user = userService.selectUserById(LoginHelper.getUserId());
String userName = user.getUserName();
String password = user.getPassword();
if (StringUtils.equals(oldPassword,newPassword)) {
return R.fail("新密码不能与旧密码相同");
}
if (!BCrypt.checkpw(oldPassword, password)) {
return R.fail("修改密码失败,旧密码错误");
}
if (BCrypt.checkpw(newPassword, password)) {
return R.fail("新密码不能与旧密码相同");
}
if (userService.resetUserPwd(userName, BCrypt.hashpw(newPassword)) > 0) {
if (userService.resetUserPwd(user.getUserId(), BCrypt.hashpw(newPassword)) > 0) {
return R.ok();
}
return R.fail("修改密码异常,请联系管理员");

View file

@ -0,0 +1,29 @@
package com.ruoyi.system.domain.vo;
import lombok.Data;
/**
* 用户个人信息
*
* @author Michelle.Chung
*/
@Data
public class ProfileVo {
/**
* 用户信息
*/
private SysUserVo user;
/**
* 用户所属角色组
*/
private String roleGroup;
/**
* 用户所属岗位组
*/
private String postGroup;
}

View file

@ -30,10 +30,10 @@ public interface SysPostMapper extends BaseMapperPlus<SysPost, SysPostVo> {
/**
* 查询用户所属岗位组
*
* @param userName 用户名
* @param userId 用户ID
* @return 结果
*/
List<SysPostVo> selectPostsByUserName(String userName);
List<SysPostVo> selectPostsByUserId(Long userId);
@DataPermission({
@DataColumn(key = "deptName", value = "dept_id"),

View file

@ -54,14 +54,6 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole, SysRoleVo> {
*/
List<Long> selectRoleListByUserId(Long userId);
/**
* 根据用户ID查询角色
*
* @param userName 用户名
* @return 角色列表
*/
List<SysRoleVo> selectRolesByUserName(String userName);
List<SysRoleVo> selectRolesByUserId(Long userId);
SysRoleVo selectRoleById(Long roleId);

View file

@ -164,11 +164,11 @@ public class SysUserService implements UserService {
/**
* 查询用户所属角色组
*
* @param userName 用户名
* @param userId 用户ID
* @return 结果
*/
public String selectUserRoleGroup(String userName) {
List<SysRoleVo> list = roleMapper.selectRolesByUserName(userName);
public String selectUserRoleGroup(Long userId) {
List<SysRoleVo> list = roleMapper.selectRolesByUserId(userId);
if (CollUtil.isEmpty(list)) {
return StringUtils.EMPTY;
}
@ -178,11 +178,11 @@ public class SysUserService implements UserService {
/**
* 查询用户所属岗位组
*
* @param userName 用户名
* @param userId 用户ID
* @return 结果
*/
public String selectUserPostGroup(String userName) {
List<SysPostVo> list = postMapper.selectPostsByUserName(userName);
public String selectUserPostGroup(Long userId) {
List<SysPostVo> list = postMapper.selectPostsByUserId(userId);
if (CollUtil.isEmpty(list)) {
return StringUtils.EMPTY;
}
@ -379,20 +379,6 @@ public class SysUserService implements UserService {
.eq(SysUser::getUserId, userId));
}
/**
* 重置用户密码
*
* @param userName 用户名
* @param password 密码
* @return 结果
*/
public int resetUserPwd(String userName, String password) {
return userMapper.update(null,
new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getPassword, password)
.eq(SysUser::getUserName, userName));
}
/**
* 新增用户角色信息
*

View file

@ -15,12 +15,12 @@
where u.user_id = #{userId}
</select>
<select id="selectPostsByUserName" parameterType="String" resultMap="SysPostResult">
<select id="selectPostsByUserId" parameterType="Long" resultMap="SysPostResult">
select p.post_id, p.post_name, p.post_code
from sys_post p
left join sys_user_post up on up.post_id = p.post_id
left join sys_user u on u.user_id = up.user_id
where u.user_name = #{userName}
left join sys_user_post up on up.post_id = p.post_id
left join sys_user u on u.user_id = up.user_id
where u.user_id = #{userId}
</select>
<select id="selectPagePostList" resultMap="SysPostResult">

View file

@ -20,10 +20,9 @@
r.create_time,
r.remark
from sys_role r
left join sys_user_role sur on sur.role_id = r.role_id
left join sys_user u on u.user_id = sur.user_id
left join sys_user us on us.user_name = r.create_by
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role sur on sur.role_id = r.role_id
left join sys_user u on u.user_id = sur.user_id
left join sys_dept d on u.dept_id = d.dept_id
</sql>
<select id="selectPageRoleList" resultMap="SysRoleResult">
@ -49,22 +48,15 @@
where u.user_id = #{userId}
</select>
<select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult">
<include refid="selectRoleVo"/>
WHERE r.del_flag = '0' and u.user_name = #{userName}
</select>
<select id="selectRolesByUserId" parameterType="Long" resultMap="SysRoleResult">
select r.role_id,
r.role_name,
r.role_key,
r.role_sort,
r.data_scope,
r.status
r.role_name,
r.role_key,
r.role_sort,
r.data_scope,
r.status
from sys_role r
left join sys_user_role sur on sur.role_id = r.role_id
left join sys_user u on u.user_id = sur.user_id
WHERE r.del_flag = '0' and sur.user_id = #{userId}
WHERE r.del_flag = '0' and r.role_id in (select role_id from sys_user_role where user_id = #{userId})
</select>
<select id="selectRoleById" resultMap="SysRoleResult">