Ver Fonte

优化调整 auth 中的所有查询

reghao há 4 anos atrás
pai
commit
b639c8f222

+ 2 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/controller/ResourceController.java

@@ -63,10 +63,7 @@ public class ResourceController {
     @ApiOperation(value = "获取所有的资源")
     @GetMapping(value = "/{isEnabled}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String list(@PathVariable(value = "isEnabled") Boolean isEnabled) {
-        /* TODO 使用 vo 替换 po
-        List<MenuVO> list = menuQuery.findByStatus(isEnabled).stream().map(MenuVO::new)
-                .collect(Collectors.toList());*/
-        List<Menu> list = menuQuery.findByStatus(isEnabled);
+        List<Menu> list = menuQuery.getSortedMenusByStatus(isEnabled);
         return WebBody.success(list);
     }
 
@@ -74,7 +71,7 @@ public class ResourceController {
     @GetMapping(value = "/sorted/{pid}/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String sortList(@PathVariable(value = "pid") int pid,
                            @PathVariable(value = "id", required = false) Menu menu) {
-        Map<Integer, String> map = menuQuery.getMapByPid(pid);
+        Map<Integer, String> map = menuQuery.getSortedChildGroupByPid(pid);
         // 排除当前 menu
         if (menu != null) {
             map.remove(menu.getPos());

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/controller/ResourcePageController.java

@@ -46,10 +46,10 @@ public class ResourcePageController {
         // 父级菜单
         Menu pMenu = null;
         if (pid != null) {
-            pMenu = menuQuery.getResourceById(pid);
+            pMenu = menuQuery.findById(pid);
         }
 
-        Set<Role> allRoles = roleQuery.getAllRoles();
+        Set<Role> allRoles = roleQuery.findAll();
         Set<Role> menuRoles = Collections.emptySet();
 
         model.addAttribute("allRoles", allRoles);
@@ -66,10 +66,10 @@ public class ResourcePageController {
         if (pid == 0) {
             pMenu = new Menu(pid, "根菜单");
         } else {
-            pMenu = menuQuery.getResourceById(pid);
+            pMenu = menuQuery.findById(pid);
         }
 
-        Set<Role> allRoles = roleQuery.getAllRoles();
+        Set<Role> allRoles = roleQuery.findAll();
         Set<Role> menuRoles = menu.getRoles();
 
         model.addAttribute("allRoles", allRoles);

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/controller/RolePageController.java

@@ -36,7 +36,7 @@ public class RolePageController {
         Page<RoleVO> page;
         PageList<RoleVO> pageList;
         if (name != null) {
-            List<RoleVO> list = roleQuery.queryByMatchName(name);
+            List<RoleVO> list = roleQuery.getByMatchName(name);
             page = new PageImpl<>(list);
             pageList = PageList.pageList(page);
         } else {

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/controller/UserPageController.java

@@ -43,7 +43,7 @@ public class UserPageController {
         Page<UserVO> page;
         PageList<UserVO> pageList;
         if (nickname != null) {
-            List<UserVO> list = userQuery.queryByMatchNickname(nickname);
+            List<UserVO> list = userQuery.getByMatchNickname(nickname);
             page = new PageImpl<>(list);
             pageList = PageList.pageList(page);
         } else {
@@ -60,7 +60,7 @@ public class UserPageController {
     @ApiOperation(value = "新增用户页面")
     @GetMapping("/add")
     public String addUserPage(Model model) {
-        Set<Role> allRoles = roleQuery.getAllRoles();
+        Set<Role> allRoles = roleQuery.findAll();
         Set<Role> userRoles = Collections.emptySet();
 
         model.addAttribute("allRoles", allRoles);
@@ -71,7 +71,7 @@ public class UserPageController {
     @ApiOperation(value = "用户信息编辑页面")
     @GetMapping("/edit/{id}")
     public String editUserPage(@PathVariable("id") User user, Model model) {
-        Set<Role> allRoles = roleQuery.getAllRoles();
+        Set<Role> allRoles = roleQuery.findAll();
         Set<Role> userRoles = userQuery.getUserRoles(user);
 
         model.addAttribute("allRoles", allRoles);
@@ -102,7 +102,7 @@ public class UserPageController {
     @ApiOperation(value = "用户角色分配页面")
     @GetMapping("/role/{id}")
     public String assignRolePage(@PathVariable("id") User user, Model model) {
-        Set<Role> roles = roleQuery.getAllRoles();
+        Set<Role> roles = roleQuery.findAll();
         int userId = user.getId();
         Set<Role> authRoles = userQuery.getUserRoles(userId);
 

+ 3 - 9
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/db/crud/MenuQuery.java

@@ -31,7 +31,7 @@ public class MenuQuery {
         return menuRepository.findByPid(pid);
     }
 
-    public List<Menu> findByStatus(Boolean isEnabled) {
+    public List<Menu> getSortedMenusByStatus(Boolean isEnabled) {
         List<Menu> menuList = menuRepository.findByIsEnabled(isEnabled);
         Map<Integer, List<Menu>> map =  menuList.stream().collect(Collectors.groupingBy(Menu::getPid));
         List<Menu> list = new ArrayList<>();
@@ -45,17 +45,11 @@ public class MenuQuery {
         return list;
     }
 
-    public Map<Integer, String> getMapByPid(int pid) {
+    public Map<Integer, String> getSortedChildGroupByPid(int pid) {
         List<Menu> menus = menuRepository.findByPid(pid);
         menus.sort(Comparator.comparingInt(Menu::getPos));
         Map<Integer, String> map = new HashMap<>();
-        menus.forEach(menu -> {
-            map.put(menu.getPos(), menu.getName());
-        });
+        menus.forEach(menu -> map.put(menu.getPos(), menu.getName()));
         return map;
     }
-
-    public Menu getResourceById(int id) {
-        return menuRepository.findById(id).orElse(null);
-    }
 }

+ 9 - 9
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/db/crud/RoleQuery.java

@@ -32,10 +32,14 @@ public class RoleQuery {
         this.userRepository = userRepository;
     }
 
-    public Set<Role> getAllRoles() {
+    public Set<Role> findAll() {
         return new HashSet<>(roleRepository.findAll());
     }
 
+    public Role findById(Integer id) {
+        return roleRepository.findById(id).orElse(null);
+    }
+
     public Role findByTitle(String title) {
         return roleRepository.findByTitle(title);
     }
@@ -44,7 +48,7 @@ public class RoleQuery {
         return roleRepository.findAll(pageRequest).map(RoleVO::new);
     }
 
-    public List<RoleVO> queryByMatchName(String name) {
+    public List<RoleVO> getByMatchName(String name) {
         Specification<Role> specification = (root, query, cb) -> {
             String likeQuery = String.format("%%%s%%", name);
             Predicate predicate = cb.like(root.get("name"), likeQuery);
@@ -53,24 +57,20 @@ public class RoleQuery {
         return roleRepository.findAll(specification).stream().map(RoleVO::new).collect(Collectors.toList());
     }
 
-    public Role getRoleById(Integer id) {
-        return roleRepository.findById(id).orElse(null);
-    }
-
     public RoleVO getRoleVOById(Integer id) {
-        Role role = getRoleById(id);
+        Role role = findById(id);
         return role != null ? new RoleVO(role) : null;
     }
 
     /**
-     * 拥有角色的所有用户
+     * 获取拥有角色的用户
      *
      * @param
      * @return
      * @date 2021-07-14 下午2:57
      */
     public List<User> getUsersByRoleId(Integer id) {
-        Role role = getRoleById(id);
+        Role role = findById(id);
         return getUsersByRole(role);
     }
 

+ 10 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/db/crud/UserQuery.java

@@ -21,8 +21,8 @@ import java.util.stream.Collectors;
  */
 @Service
 public class UserQuery {
-    private UserRepository userRepository;
-    private RoleRepository roleRepository;
+    private final UserRepository userRepository;
+    private final RoleRepository roleRepository;
 
     public UserQuery(UserRepository userRepository, RoleRepository roleRepository) {
         this.userRepository = userRepository;
@@ -41,7 +41,7 @@ public class UserQuery {
         return userRepository.findAll(pageRequest).map(UserVO::new);
     }
 
-    public List<UserVO> queryByMatchNickname(String nickname) {
+    public List<UserVO> getByMatchNickname(String nickname) {
         Specification<User> specification = (root, query, cb) -> {
             String likeQuery = String.format("%%%s%%", nickname);
             Predicate predicate = cb.like(root.get("nickname"), likeQuery);
@@ -50,6 +50,13 @@ public class UserQuery {
         return userRepository.findAll(specification).stream().map(UserVO::new).collect(Collectors.toList());
     }
 
+    /**
+     * 获取用户拥有的角色
+     *
+     * @param
+     * @return
+     * @date 2021-09-10 下午11:12
+     */
     public Set<Role> getUserRoles(User user) {
         Set<UserAuthority> set = user.getAuthoritiesSet();
         List<String> roles = set.stream()

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/service/MenuServiceImpl.java

@@ -60,10 +60,10 @@ public class MenuServiceImpl implements MenuService {
      */
     private Result moreThanTwoParents(int pid) {
         if (pid != 0) {
-            Menu menu1 = menuQuery.getResourceById(pid);
+            Menu menu1 = menuQuery.findById(pid);
             int pid1 = menu1.getPid();
             if (pid1 != 0) {
-                Menu menu2 = menuQuery.getResourceById(pid1);
+                Menu menu2 = menuQuery.findById(pid1);
                 int pid2 = menu2.getPid();
                 if (pid2 != 0) {
                     return Result.result(ResultStatus.FAIL, "Menu 最多只能有两个 parent,即最多只能有三级菜单...");

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/service/RoleServiceImpl.java

@@ -36,7 +36,7 @@ public class RoleServiceImpl implements RoleService {
 
     @Override
     public void delete(Integer roleId) {
-        Role role = roleQuery.getRoleById(roleId);
+        Role role = roleQuery.findById(roleId);
         List<User> users = roleQuery.getUsersByRole(role);
         if (!users.isEmpty()) {
             log.error("还有用户分配有本角色");
@@ -50,7 +50,7 @@ public class RoleServiceImpl implements RoleService {
 
     @Override
     public void setRoleMenus(Integer roleId, Set<Menu> menus) {
-        Role role = roleQuery.getRoleById(roleId);
+        Role role = roleQuery.findById(roleId);
         role.setMenus(menus);
         roleCrud.save(role);
     }

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/service/UserServiceImpl.java

@@ -23,8 +23,8 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service
 public class UserServiceImpl implements UserService {
-    private UserQuery userQuery;
-    private UserCrud userCrud;
+    private final UserQuery userQuery;
+    private final UserCrud userCrud;
     private final Cryptor cryptor;
 
     public UserServiceImpl(UserQuery userQuery, UserCrud userCrud)