Browse Source

增加用户相关管理维护接口

luoshi 2 years ago
parent
commit
c2ee46301e

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

@@ -1,5 +1,7 @@
 package com.qmth.ops.api.controller.admin;
 
+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.security.AdminSession;
@@ -43,7 +45,8 @@ public class ConfigController {
         dataBinder.addCustomFormatter(new FileFormatBinder());
     }
 
-    @PostMapping("/groups")
+    @RequestMapping("/groups")
+    @Aac(auth = BOOL.FALSE)
     public List<ConfigGroup> listGroups() {
         return configGroupService.getConfigGroupList();
     }

+ 39 - 5
src/main/java/com/qmth/ops/api/controller/admin/UserController.java

@@ -1,9 +1,11 @@
 package com.qmth.ops.api.controller.admin;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 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.security.AdminSession;
 import com.qmth.ops.biz.domain.Role;
@@ -11,12 +13,11 @@ 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.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
 
 @RestController
 @RequestMapping(OpsApiConstants.ADMIN_URI_PREFIX + "/user")
@@ -41,9 +42,42 @@ public class UserController {
         return new AdminSession(user, appUserService).getLoginResult();
     }
 
+    @RequestMapping("/roles")
+    @Aac(auth = BOOL.FALSE)
+    public Object getRoles() {
+        return Arrays.stream(Role.values()).map(role -> new CodeNameBean(role.getCode(), role.getName())).toArray();
+    }
+
     @PostMapping("/query")
-    public UserQuery query(@RequestAttribute AdminSession accessEntity, UserQuery query) {
+    public IPage<User> query(@RequestAttribute AdminSession accessEntity, UserQuery query) {
         accessEntity.validateRole(Role.ADMIN);
         return userService.query(query);
     }
+
+    @PostMapping("/list")
+    public List<User> list(@RequestAttribute AdminSession accessEntity, UserQuery query) {
+        accessEntity.validateRole(Role.ADMIN);
+        return userService.list(query);
+    }
+
+    @PostMapping("/insert")
+    @Aac(auth = BOOL.FALSE)
+    public User insert(@RequestAttribute AdminSession accessEntity, User user) {
+        accessEntity.validateRole(Role.ADMIN);
+        return userService.insert(user);
+    }
+
+    @PostMapping("/update")
+    public User update(@RequestAttribute AdminSession accessEntity, User user) {
+        accessEntity.validateRole(Role.ADMIN);
+        return userService.update(user);
+    }
+
+    @PostMapping("/change_password")
+    public User changePassword(@RequestAttribute AdminSession accessEntity, @RequestParam String password) {
+        User user = accessEntity.getUser();
+        user.setPassword(password);
+        return userService.changePassword(user);
+    }
+
 }

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

@@ -2,5 +2,19 @@ package com.qmth.ops.biz.domain;
 
 public enum Role {
 
-    DEV, TEST, OPS, ADMIN;
+    DEV("开发"), TEST("测试"), OPS("运维"), ADMIN("管理员");
+
+    private String name;
+
+    private Role(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return toString().toUpperCase();
+    }
+
+    public String getName() {
+        return name;
+    }
 }

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.qmth.boot.tools.models.ByteArray;
 import org.apache.commons.lang3.ArrayUtils;
 
@@ -22,11 +23,13 @@ public class User implements Serializable {
 
     private String name;
 
+    @JsonIgnore
     private String password;
 
     @TableField(typeHandler = JacksonTypeHandler.class)
     private Role[] role;
 
+    @JsonIgnore
     private String exportSecret;
 
     private Long createTime;

+ 37 - 1
src/main/java/com/qmth/ops/biz/service/UserService.java

@@ -1,6 +1,7 @@
 package com.qmth.ops.biz.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.ops.biz.dao.UserDao;
 import com.qmth.ops.biz.domain.User;
@@ -10,6 +11,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @Service
 public class UserService extends ServiceImpl<UserDao, User> {
@@ -35,7 +37,41 @@ public class UserService extends ServiceImpl<UserDao, User> {
         return user;
     }
 
-    public UserQuery query(UserQuery query) {
+    @Transactional
+    public User update(User user) {
+        User previous = userDao.selectById(user.getId());
+        if (user.getLoginName() != null) {
+            previous.setLoginName(user.getLoginName());
+        }
+        if (user.getName() != null) {
+            previous.setName(user.getName());
+        }
+        if (user.getRole() != null && user.getRole().length > 0) {
+            previous.setRole(user.getRole());
+        }
+        if (user.getPassword() != null) {
+            previous.buildPassword(user.getPassword());
+        }
+        previous.setUpdateTime(System.currentTimeMillis());
+        userDao.updateById(previous);
+        return previous;
+    }
+
+    @Transactional
+    public User changePassword(User user) {
+        User previous = userDao.selectById(user.getId());
+        previous.buildPassword(user.getPassword());
+        previous.setUpdateTime(System.currentTimeMillis());
+        userDao.updateById(previous);
+        return previous;
+    }
+
+    public IPage<User> query(UserQuery query) {
         return userDao.selectPage(query, query.build());
     }
+
+    public List<User> list(UserQuery query) {
+        return userDao.selectList(query.build());
+    }
+
 }

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

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