|
@@ -51,7 +51,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
|
Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
|
|
|
for (SysPrivilege privilege : orgList) {
|
|
|
PrivilegeDto privilegeDto = new PrivilegeDto();
|
|
|
- privilegeDto.setId(String.valueOf(privilege.getId()));
|
|
|
+ privilegeDto.setId(privilege.getId());
|
|
|
privilegeDto.setName(privilege.getName());
|
|
|
privilegeDto.setUrl(privilege.getUrl());
|
|
|
privilegeDto.setType(privilege.getType());
|
|
@@ -81,18 +81,29 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public MenuResult listPrivilegeTreeNew() {
|
|
|
+ public List<PrivilegeDto> listPrivilegeTreeNew() {
|
|
|
Long schoolId = SystemConstant.getHeadOrUserSchoolId();
|
|
|
QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId)
|
|
|
.ne(SysPrivilege::getType, PrivilegeEnum.URL);
|
|
|
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();
|
|
|
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) {
|
|
|
+ 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) {
|
|
|
menuPrivilegeDtoList.add(gson.fromJson(gson.toJson(m), MenuPrivilegeDto.class));
|
|
|
} 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
|
|
@@ -191,7 +255,7 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
|
Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
|
|
|
for (SysPrivilege privilege : orgList) {
|
|
|
PrivilegeDto privilegeDto = new PrivilegeDto();
|
|
|
- privilegeDto.setId(String.valueOf(privilege.getId()));
|
|
|
+ privilegeDto.setId(privilege.getId());
|
|
|
privilegeDto.setName(privilege.getName());
|
|
|
privilegeDto.setUrl(privilege.getUrl());
|
|
|
privilegeDto.setType(privilege.getType());
|