Browse Source

单点登陆修改

wangliang 3 years ago
parent
commit
0349a944d4

+ 4 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/PrivilegeDto.java

@@ -12,7 +12,8 @@ import java.util.List;
  */
  */
 public class PrivilegeDto {
 public class PrivilegeDto {
 
 
-    private String id;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
     private String name;
     private String name;
     private String url;
     private String url;
     private PrivilegeEnum type;
     private PrivilegeEnum type;
@@ -22,11 +23,11 @@ public class PrivilegeDto {
     private Integer sequence;
     private Integer sequence;
     private List<PrivilegeDto> children = new ArrayList<>();
     private List<PrivilegeDto> children = new ArrayList<>();
 
 
-    public String getId() {
+    public Long getId() {
         return id;
         return id;
     }
     }
 
 
-    public void setId(String id) {
+    public void setId(Long id) {
         this.id = id;
         this.id = id;
     }
     }
 
 

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysPrivilegeService.java

@@ -25,7 +25,7 @@ public interface SysPrivilegeService extends IService<SysPrivilege> {
      *
      *
      * @return
      * @return
      */
      */
-    MenuResult listPrivilegeTreeNew();
+    List<PrivilegeDto> listPrivilegeTreeNew();
 
 
     Long savePrivilege(SysPrivilege privilege);
     Long savePrivilege(SysPrivilege privilege);
 
 

+ 93 - 29
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java

@@ -51,7 +51,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
         Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
         Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
         for (SysPrivilege privilege : orgList) {
         for (SysPrivilege privilege : orgList) {
             PrivilegeDto privilegeDto = new PrivilegeDto();
             PrivilegeDto privilegeDto = new PrivilegeDto();
-            privilegeDto.setId(String.valueOf(privilege.getId()));
+            privilegeDto.setId(privilege.getId());
             privilegeDto.setName(privilege.getName());
             privilegeDto.setName(privilege.getName());
             privilegeDto.setUrl(privilege.getUrl());
             privilegeDto.setUrl(privilege.getUrl());
             privilegeDto.setType(privilege.getType());
             privilegeDto.setType(privilege.getType());
@@ -81,18 +81,29 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public MenuResult listPrivilegeTreeNew() {
+    public List<PrivilegeDto> listPrivilegeTreeNew() {
         Long schoolId = SystemConstant.getHeadOrUserSchoolId();
         Long schoolId = SystemConstant.getHeadOrUserSchoolId();
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId)
         sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId)
                 .ne(SysPrivilege::getType, PrivilegeEnum.URL);
                 .ne(SysPrivilege::getType, PrivilegeEnum.URL);
         List<SysPrivilege> sysPrivilegeList = this.list(sysPrivilegeQueryWrapper);
         List<SysPrivilege> sysPrivilegeList = this.list(sysPrivilegeQueryWrapper);
+
+        LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
+        List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
+        Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
         Gson gson = new Gson();
         Gson gson = new Gson();
         List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
         List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
         }.getType());
         }.getType());
-        LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
-        List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
         for (MenuDto m : menuDtoList) {
         for (MenuDto m : menuDtoList) {
+            PrivilegeDto privilegeDto = new PrivilegeDto();
+            privilegeDto.setId(m.getId());
+            privilegeDto.setName(m.getName());
+            privilegeDto.setUrl(m.getUrl());
+            privilegeDto.setType(m.getType());
+            privilegeDto.setParentId(m.getParentId());
+            privilegeDto.setSequence(m.getSequence());
+            map.put(m.getId(), privilegeDto);
+
             if (Objects.isNull(m.getParentId()) || m.getType() == PrivilegeEnum.MENU) {
             if (Objects.isNull(m.getParentId()) || m.getType() == PrivilegeEnum.MENU) {
                 menuPrivilegeDtoList.add(gson.fromJson(gson.toJson(m), MenuPrivilegeDto.class));
                 menuPrivilegeDtoList.add(gson.fromJson(gson.toJson(m), MenuPrivilegeDto.class));
             } else {
             } else {
@@ -105,32 +116,85 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
                 }
                 }
             }
             }
         }
         }
-        for (MenuPrivilegeDto m : menuPrivilegeDtoList) {
-            List<MenuDto> menuDtos = linkedMultiValueMap.get(m.getId());
-            List<MenuDto> urls = null, buttons = null, links = null, lists = null, conditions = null;
-            if (Objects.nonNull(menuDtos)) {
-                for (MenuDto menuDto : menuDtos) {
-                    if (menuDto.getType() == PrivilegeEnum.BUTTON) {
-                        buttons = Objects.isNull(buttons) ? new ArrayList<>() : buttons;
-                        buttons.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
-                        m.setButtons(buttons);
-                    } else if (menuDto.getType() == PrivilegeEnum.LINK) {
-                        links = Objects.isNull(links) ? new ArrayList<>() : links;
-                        links.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
-                        m.setLinks(links);
-                    } else if (menuDto.getType() == PrivilegeEnum.LIST) {
-                        lists = Objects.isNull(lists) ? new ArrayList<>() : lists;
-                        lists.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
-                        m.setLists(lists);
-                    } else if (menuDto.getType() == PrivilegeEnum.CONDITION) {
-                        conditions = Objects.isNull(conditions) ? new ArrayList<>() : conditions;
-                        conditions.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
-                        m.setConditions(conditions);
-                    }
-                }
+
+        Iterator<Long> iterator = map.keySet().iterator();
+        Set<Long> deleteKeys = new HashSet<>();
+        while (iterator.hasNext()) {
+            Long parentId = iterator.next();
+//            List<MenuDto> menuDtos = linkedMultiValueMap.get(parentId);
+//            List<MenuDto> buttons = null, links = null, lists = null, conditions = null;
+//            for (MenuDto menuDto : menuDtos) {
+//                if (menuDto.getType() == PrivilegeEnum.BUTTON) {
+//                    buttons = Objects.isNull(buttons) ? new ArrayList<>() : buttons;
+//                    buttons.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                    m.setButtons(buttons);
+//                } else if (menuDto.getType() == PrivilegeEnum.LINK) {
+//                    links = Objects.isNull(links) ? new ArrayList<>() : links;
+//                    links.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                    m.setLinks(links);
+//                } else if (menuDto.getType() == PrivilegeEnum.LIST) {
+//                    lists = Objects.isNull(lists) ? new ArrayList<>() : lists;
+//                    lists.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                    m.setLists(lists);
+//                } else if (menuDto.getType() == PrivilegeEnum.CONDITION) {
+//                    conditions = Objects.isNull(conditions) ? new ArrayList<>() : conditions;
+//                    conditions.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                    m.setConditions(conditions);
+//                }
+//            }
+            if (map.get(parentId).getParentId() != null) {
+                map.get(map.get(parentId).getParentId()).getChildren().add(map.get(parentId));
+                deleteKeys.add(parentId);
             }
             }
         }
         }
-        return new MenuResult(menuPrivilegeDtoList);
+        for (Long key : deleteKeys) {
+            map.remove(key);
+        }
+
+//        Gson gson = new Gson();
+//        List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
+//        }.getType());
+//        LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
+//        List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
+//        for (MenuDto m : menuDtoList) {
+//            if (Objects.isNull(m.getParentId()) || m.getType() == PrivilegeEnum.MENU) {
+//                menuPrivilegeDtoList.add(gson.fromJson(gson.toJson(m), MenuPrivilegeDto.class));
+//            } else {
+//                if (!linkedMultiValueMap.containsKey(m.getParentId())) {
+//                    linkedMultiValueMap.add(m.getParentId(), m);
+//                } else {
+//                    List<MenuDto> menuDtos = linkedMultiValueMap.get(m.getParentId());
+//                    menuDtos.add(m);
+//                    linkedMultiValueMap.put(m.getParentId(), menuDtos);
+//                }
+//            }
+//        }
+//        for (MenuPrivilegeDto m : menuPrivilegeDtoList) {
+//            List<MenuDto> menuDtos = linkedMultiValueMap.get(m.getId());
+//            List<MenuDto> buttons = null, links = null, lists = null, conditions = null;
+//            if (Objects.nonNull(menuDtos)) {
+//                for (MenuDto menuDto : menuDtos) {
+//                    if (menuDto.getType() == PrivilegeEnum.BUTTON) {
+//                        buttons = Objects.isNull(buttons) ? new ArrayList<>() : buttons;
+//                        buttons.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                        m.setButtons(buttons);
+//                    } else if (menuDto.getType() == PrivilegeEnum.LINK) {
+//                        links = Objects.isNull(links) ? new ArrayList<>() : links;
+//                        links.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                        m.setLinks(links);
+//                    } else if (menuDto.getType() == PrivilegeEnum.LIST) {
+//                        lists = Objects.isNull(lists) ? new ArrayList<>() : lists;
+//                        lists.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                        m.setLists(lists);
+//                    } else if (menuDto.getType() == PrivilegeEnum.CONDITION) {
+//                        conditions = Objects.isNull(conditions) ? new ArrayList<>() : conditions;
+//                        conditions.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
+//                        m.setConditions(conditions);
+//                    }
+//                }
+//            }
+//        }
+        return new ArrayList<>(map.values());
     }
     }
 
 
     @Override
     @Override
@@ -191,7 +255,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
         Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
         Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
         for (SysPrivilege privilege : orgList) {
         for (SysPrivilege privilege : orgList) {
             PrivilegeDto privilegeDto = new PrivilegeDto();
             PrivilegeDto privilegeDto = new PrivilegeDto();
-            privilegeDto.setId(String.valueOf(privilege.getId()));
+            privilegeDto.setId(privilege.getId());
             privilegeDto.setName(privilege.getName());
             privilegeDto.setName(privilege.getName());
             privilegeDto.setUrl(privilege.getUrl());
             privilegeDto.setUrl(privilege.getUrl());
             privilegeDto.setType(privilege.getType());
             privilegeDto.setType(privilege.getType());