Ver Fonte

fix 用户资料修改

he2802 há 4 anos atrás
pai
commit
a2c616aa7a

+ 9 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/system/SysUserController.java

@@ -1,11 +1,13 @@
 package com.zhongzheng.controller.system;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.DynamicParameter;
 import com.github.xiaoymin.knife4j.annotations.DynamicParameters;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.core.bo.SysUserEditBo;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.domain.entity.SysRole;
@@ -17,6 +19,7 @@ import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.exam.domain.ExamConfig;
 import com.zhongzheng.modules.system.service.ISysPostService;
 import com.zhongzheng.modules.system.service.ISysRoleService;
 import com.zhongzheng.modules.system.service.ISysUserService;
@@ -155,10 +158,15 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@Validated @RequestBody SysUser user)
+    public AjaxResult edit(@Validated @RequestBody SysUserEditBo bo)
     {
+        SysUser user = BeanUtil.toBean(bo, SysUser.class);
         userService.checkUserAllowed(user);
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if(!loginUser.getUser().isAdmin()&&loginUser.getUser().getUserId()!=user.getUserId()){
+            return AjaxResult.error("您无权限修改本信息");
+        }
+
         if (Validator.isNotEmpty(user.getPhonenumber())
                 && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
         {

+ 97 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/core/bo/SysUserEditBo.java

@@ -0,0 +1,97 @@
+package com.zhongzheng.common.core.bo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.zhongzheng.common.annotation.Excel;
+import com.zhongzheng.common.annotation.Excel.ColumnType;
+import com.zhongzheng.common.annotation.Excel.Type;
+import com.zhongzheng.common.annotation.Excels;
+import com.zhongzheng.common.core.domain.entity.SysDept;
+import com.zhongzheng.common.core.domain.entity.SysRole;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户对象 SysUserEditBo
+ *
+ * @author zhongzheng
+ */
+
+@Data
+@ApiModel("考试安排,包含考试指引编辑对象")
+public class SysUserEditBo
+{
+
+    /** 用户ID */
+    @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
+    @TableId(value = "user_id",type = IdType.AUTO)
+    @ApiModelProperty("用户编号")
+    private Long userId;
+
+    /** 部门ID */
+    @Excel(name = "部门编号", type = Type.IMPORT)
+    private Long deptId;
+
+    /** 用户账号 */
+    @NotBlank(message = "用户账号不能为空")
+    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
+    @Excel(name = "登录名称")
+    @ApiModelProperty("用户账号")
+    private String userName;
+
+    /** 用户昵称 */
+    @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
+    @Excel(name = "用户名称")
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    /** 用户邮箱 */
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+    @Excel(name = "用户邮箱")
+    @ApiModelProperty("用户邮箱")
+    private String email;
+
+    /** 手机号码 */
+    @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
+    @Excel(name = "手机号码")
+    @ApiModelProperty("手机号码")
+    private String phonenumber;
+
+    /** 用户性别 */
+    @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
+    @ApiModelProperty("用户性别")
+    private String sex;
+
+    /** 用户头像 */
+    @ApiModelProperty("用户头像")
+    private String avatar;
+
+    /** 密码 */
+    @ApiModelProperty("密码")
+    private String password;
+
+
+    /** 帐号状态(1正常 0停用) */
+    @Excel(name = "帐号状态", readConverterExp = "1=正常,0=停用")
+    @ApiModelProperty("帐号状态(1正常 0停用)")
+    private String status;
+    @ApiModelProperty("角色组")
+    private Long[] roleIds;
+    @ApiModelProperty("岗位组")
+    private Long[] postIds;
+}

+ 2 - 2
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysUser.java

@@ -84,8 +84,8 @@ public class SysUser implements Serializable
     /** 盐加密 */
     private String salt;
 
-    /** 帐号状态(0正常 1停用) */
-    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
+    /** 帐号状态(1正常 0停用) */
+    @Excel(name = "帐号状态", readConverterExp = "1=正常,0=停用")
     private String status;
 
     /** 删除标志(0代表存在 2代表删除) */

+ 4 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java

@@ -212,13 +212,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional
     public int updateUser(SysUser user) {
-        Long userId = user.getUserId();
-        // 删除用户与角色关联
-        userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId,userId));
         // 新增用户与角色管理
         insertUserRole(user);
-        // 删除用户与岗位关联
-        userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId,userId));
         // 新增用户与岗位管理
         insertUserPost(user);
         return baseMapper.updateById(user);
@@ -295,6 +290,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public void insertUserRole(SysUser user) {
         Long[] roles = user.getRoleIds();
         if (Validator.isNotNull(roles)) {
+            // 删除用户与角色关联
+            userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId,user.getUserId()));
             // 新增用户与角色管理
             List<SysUserRole> list = new ArrayList<SysUserRole>();
             for (Long roleId : roles) {
@@ -319,6 +316,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public void insertUserPost(SysUser user) {
         Long[] posts = user.getPostIds();
         if (Validator.isNotNull(posts)) {
+            // 删除用户与岗位关联
+            userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId,user.getUserId()));
             // 新增用户与岗位管理
             List<SysUserPost> list = new ArrayList<SysUserPost>();
             for (Long postId : posts) {