Ver Fonte

扩展用户维护接口,增加配置项mode接口

luoshi há 2 anos atrás
pai
commit
2c71c113f7

+ 10 - 4
src/main/java/com/qmth/ops/api/controller/admin/ConfigController.java

@@ -4,11 +4,9 @@ import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.ops.api.binder.FileFormatBinder;
 import com.qmth.ops.api.constants.OpsApiConstants;
+import com.qmth.ops.api.dto.CodeNameBean;
 import com.qmth.ops.api.security.AdminSession;
-import com.qmth.ops.biz.domain.ConfigGroup;
-import com.qmth.ops.biz.domain.ConfigItem;
-import com.qmth.ops.biz.domain.FileFormat;
-import com.qmth.ops.biz.domain.Role;
+import com.qmth.ops.biz.domain.*;
 import com.qmth.ops.biz.service.*;
 import org.springframework.web.bind.WebDataBinder;
 import org.springframework.web.bind.annotation.*;
@@ -16,6 +14,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 
 @RestController
@@ -51,6 +50,13 @@ public class ConfigController {
         return configGroupService.getConfigGroupList();
     }
 
+    @RequestMapping("/modes")
+    @Aac(auth = BOOL.FALSE)
+    public Object listModes() {
+        return Arrays.stream(ConfigMode.values()).map(model -> new CodeNameBean(model.getCode(), model.getName()))
+                .toArray();
+    }
+
     @PostMapping("/baseline")
     public List<ConfigItem> listBaseline(@RequestAttribute AdminSession accessEntity, @RequestParam Long appId,
             @RequestParam Long versionId, @RequestParam Long moduleId) {

+ 11 - 8
src/main/java/com/qmth/ops/api/controller/admin/UserController.java

@@ -7,12 +7,14 @@ import com.qmth.boot.core.exception.ParameterException;
 import com.qmth.ops.api.constants.OpsApiConstants;
 import com.qmth.ops.api.dto.CodeNameBean;
 import com.qmth.ops.api.dto.LoginResult;
+import com.qmth.ops.api.dto.UserForm;
 import com.qmth.ops.api.security.AdminSession;
 import com.qmth.ops.biz.domain.Role;
 import com.qmth.ops.biz.domain.User;
 import com.qmth.ops.biz.query.UserQuery;
 import com.qmth.ops.biz.service.AppUserService;
 import com.qmth.ops.biz.service.UserService;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -31,12 +33,12 @@ public class UserController {
 
     @PostMapping("/login")
     @Aac(auth = BOOL.FALSE)
-    public LoginResult login(User request) {
-        User user = userService.findByLoginName(request.getLoginName());
+    public LoginResult login(@Validated(UserForm.LoginGroup.class) UserForm form) {
+        User user = userService.findByLoginName(form.getLoginName());
         if (user == null) {
             throw new ParameterException("登录名错误");
         }
-        if (!user.buildPassword(request.getPassword()).equals(user.getPassword())) {
+        if (!user.buildPassword(form.getPassword()).equals(user.getPassword())) {
             throw new ParameterException("密码错误");
         }
         return new AdminSession(user, appUserService).getLoginResult();
@@ -61,16 +63,17 @@ public class UserController {
     }
 
     @PostMapping("/insert")
-    @Aac(auth = BOOL.FALSE)
-    public User insert(@RequestAttribute AdminSession accessEntity, User user) {
+    public User insert(@RequestAttribute AdminSession accessEntity,
+            @Validated(UserForm.InsertGroup.class) UserForm form) {
         accessEntity.validateRole(Role.ADMIN);
-        return userService.insert(user);
+        return userService.insert(form.build());
     }
 
     @PostMapping("/update")
-    public User update(@RequestAttribute AdminSession accessEntity, User user) {
+    public User update(@RequestAttribute AdminSession accessEntity,
+            @Validated(UserForm.UpdateGroup.class) UserForm form) {
         accessEntity.validateRole(Role.ADMIN);
-        return userService.update(user);
+        return userService.update(form.build());
     }
 
     @PostMapping("/change_password")

+ 2 - 2
src/main/java/com/qmth/ops/api/controller/export/ConfigExportController.java

@@ -48,14 +48,14 @@ public class ConfigExportController {
         dataBinder.addCustomFormatter(new FileFormatBinder());
     }
 
-    @GetMapping("/{appCode}/{moduleCode}/{envCode}/{version}.{format}")
+    @RequestMapping("/{appCode}/{moduleCode}/{envCode}/{version}.{format}")
     public void exportVersionConfigFile(@PathVariable String appCode, @PathVariable String moduleCode,
             @PathVariable String envCode, @PathVariable String version, @PathVariable FileFormat format,
             @RequestParam String secret, HttpServletResponse response) throws IOException {
         exportConfigFile(appCode, moduleCode, envCode, version, secret, format, response);
     }
 
-    @GetMapping("/{appCode}/{moduleCode}/{envCode}.{format}")
+    @RequestMapping("/{appCode}/{moduleCode}/{envCode}.{format}")
     public void exportMasterVersionConfigFile(@PathVariable String appCode, @PathVariable String moduleCode,
             @PathVariable String envCode, @PathVariable FileFormat format, @RequestParam String secret,
             HttpServletResponse response) throws IOException {

+ 91 - 0
src/main/java/com/qmth/ops/api/dto/UserForm.java

@@ -0,0 +1,91 @@
+package com.qmth.ops.api.dto;
+
+import com.qmth.ops.biz.domain.Role;
+import com.qmth.ops.biz.domain.User;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+@Validated
+public class UserForm {
+
+    public interface LoginGroup {
+
+    }
+
+    public interface InsertGroup {
+
+    }
+
+    public interface UpdateGroup {
+
+    }
+
+    @NotNull(message = "id不能为空", groups = UpdateGroup.class)
+    private Long id;
+
+    @NotBlank(message = "loginName不能为空", groups = { InsertGroup.class, LoginGroup.class })
+    private String loginName;
+
+    @NotBlank(message = "name不能为空", groups = InsertGroup.class)
+    private String name;
+
+    @NotBlank(message = "password不能为空", groups = { InsertGroup.class, LoginGroup.class })
+    private String password;
+
+    @NotNull(message = "role不能为空", groups = InsertGroup.class)
+    @Size(min = 1, message = "role不能为空", groups = InsertGroup.class)
+    private Role[] role;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public Role[] getRole() {
+        return role;
+    }
+
+    public void setRole(Role[] role) {
+        this.role = role;
+    }
+
+    public User build() {
+        User user = new User();
+        user.setId(id);
+        user.setLoginName(loginName);
+        user.setName(name);
+        user.setPassword(password);
+        user.setRole(role);
+        return user;
+    }
+}

+ 1 - 1
src/main/java/com/qmth/ops/biz/domain/User.java

@@ -11,7 +11,7 @@ import org.apache.commons.lang3.ArrayUtils;
 
 import java.io.Serializable;
 
-@TableName("user")
+@TableName(value = "user", autoResultMap = true)
 public class User implements Serializable {
 
     private static final long serialVersionUID = 3084261544687496032L;

+ 1 - 1
src/main/resources/application.properties

@@ -1,6 +1,6 @@
 server.port=8080
 
-com.qmth.api.global-auth=true
+com.qmth.api.global-auth=false
 
 com.qmth.datasource.url=jdbc:mysql://192.168.10.83:3306/ops_db?useUnicode=true&characterEncoding=UTF-8
 com.qmth.datasource.username=scan