Переглянути джерело

新增用户管理代码更新

赵冬冬 4 роки тому
батько
коміт
0a09cf15fd

+ 7 - 2
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsAdminController.java

@@ -16,12 +16,14 @@ import com.hwrj.cloud.admin.service.UmsAdminService;
 import com.hwrj.cloud.admin.service.UmsRoleService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.stereotype.Controller;
 import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -54,7 +56,7 @@ public class UmsAdminController {
     @ApiOperation(value = "用户注册")
     @RequestMapping(value = "/register", method = RequestMethod.POST)
     @ResponseBody
-    public CommonResult<UmsAdmin> register(@RequestBody UmsAdminParam umsAdminParam, BindingResult result) {
+    public CommonResult<UmsAdmin> register(@RequestBody @Validated UmsAdminParam umsAdminParam, BindingResult result) {
         UmsAdmin umsAdmin = adminService.register(umsAdminParam);
         if (umsAdmin == null) {
             CommonResult.failed();
@@ -153,7 +155,10 @@ public class UmsAdminController {
     @ApiOperation("修改指定用户信息")
     @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
     @ResponseBody
-    public CommonResult update(@PathVariable Long id, @RequestBody UmsAdmin admin) {
+    public CommonResult update(@PathVariable Long id, @RequestBody @Validated UmsAdminParam umsAdminParam) {
+
+        UmsAdmin admin =new UmsAdmin();
+        BeanUtils.copyProperties(umsAdminParam,admin);
         int count = adminService.update(id, admin);
         if (count > 0) {
             return CommonResult.success(count);

+ 11 - 5
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dto/UmsAdminParam.java

@@ -1,24 +1,29 @@
 package com.hwrj.cloud.admin.dto;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
 import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 
 /**
  * 用户登录参数
  * Created by macro on 2018/4/26.
  */
-@Getter
-@Setter
+@Data
 public class UmsAdminParam {
+
+    private Long id;
+
     @ApiModelProperty(value = "用户名", required = true)
-    @NotEmpty(message = "用户名不能为空")
+    @NotBlank(message = "账号不为空")
     private String username;
     @ApiModelProperty(value = "密码", required = true)
-    @NotEmpty(message = "密码不能为空")
+    @NotBlank(message = "密码不能为空")
     private String password;
     @ApiModelProperty(value = "用户头像")
     private String icon;
@@ -26,12 +31,13 @@ public class UmsAdminParam {
     @Email(message = "邮箱格式不合法")
     private String email;
     @ApiModelProperty(value = "用户昵称")
+    @NotBlank(message = "姓名不能为空")
     private String nickName;
     @ApiModelProperty(value = "备注")
     private String note;
 
     @ApiModelProperty(value = "供应商id")
-    private String compId;
+    private Long compId;
 
     @ApiModelProperty(value = "供应商名称")
     private String compName;

+ 31 - 3
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/service/impl/UmsAdminServiceImpl.java

@@ -13,10 +13,10 @@ import com.hwrj.cloud.admin.mapper.UmsAdminMapper;
 import com.hwrj.cloud.admin.mapper.UmsAdminPermissionRelationMapper;
 import com.hwrj.cloud.admin.mapper.UmsAdminRoleRelationMapper;
 import com.hwrj.cloud.admin.model.*;
-import com.hwrj.cloud.common.exception.GlobalException;
-import com.hwrj.cloud.security.util.JwtTokenUtil;
 import com.hwrj.cloud.admin.service.UmsAdminCacheService;
 import com.hwrj.cloud.admin.service.UmsAdminService;
+import com.hwrj.cloud.common.exception.GlobalException;
+import com.hwrj.cloud.security.util.JwtTokenUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -88,6 +88,14 @@ public class UmsAdminServiceImpl implements UmsAdminService {
     public UmsAdmin register(UmsAdminParam umsAdminParam) {
         UmsAdmin umsAdmin = new UmsAdmin();
         BeanUtils.copyProperties(umsAdminParam, umsAdmin);
+        String username = umsAdminParam.getUsername();
+        username = username.toLowerCase();
+        if(username.equals("admin")){
+            Long compId = umsAdminParam.getCompId();
+            if(!StringUtils.isEmpty(compId)){
+                throw new GlobalException("超级管理员不能绑定供应商!");
+            }
+        }
         umsAdmin.setCreateTime(new Date());
         umsAdmin.setStatus(1);
         //查询是否有相同用户名的用户
@@ -96,7 +104,7 @@ public class UmsAdminServiceImpl implements UmsAdminService {
         example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername());
         List<UmsAdmin> umsAdminList = adminMapper.selectByExample(example);
         if (umsAdminList.size() > 0) {
-            return null;
+            throw new GlobalException("该用户已存在!");
         }
         //将密码进行加密操作
         String encodePassword = passwordEncoder.encode(umsAdmin.getPassword());
@@ -179,7 +187,27 @@ public class UmsAdminServiceImpl implements UmsAdminService {
     @Override
     public int update(Long id, UmsAdmin admin) {
         admin.setId(id);
+        //查询是否有相同用户名的用户
+        UmsAdminExample example = new UmsAdminExample();
+        example.createCriteria().andUsernameEqualTo(admin.getUsername());
+        List<UmsAdmin> umsAdminList = adminMapper.selectByExample(example);
+        if (umsAdminList.size() > 0) {
+            for (UmsAdmin umsAdmin : umsAdminList) {
+                Long reid = umsAdmin.getId();
+                if(!id.equals(reid)){
+                    throw new GlobalException("该用户已存在!");
+                }
+            }
+        }
         UmsAdmin rawAdmin = adminMapper.selectByPrimaryKey(id);
+        String username = rawAdmin.getUsername();
+        username = username.toLowerCase();
+        if(username.equals("admin")){
+            Long compId = admin.getCompId();
+            if(!StringUtils.isEmpty(compId)){
+                throw new GlobalException("超级管理员不能绑定供应商!");
+            }
+        }
         if(rawAdmin.getPassword().equals(admin.getPassword())){
             //与原加密密码相同的不需要修改
             admin.setPassword(null);