|
@@ -85,27 +85,25 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
|
Long schoolId = SystemConstant.getHeadOrUserSchoolId();
|
|
|
QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId)
|
|
|
- .ne(SysPrivilege::getType, PrivilegeEnum.URL);
|
|
|
+ .ne(SysPrivilege::getType, PrivilegeEnum.URL)
|
|
|
+ .eq(SysPrivilege::getDisplay, true);
|
|
|
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());
|
|
|
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));
|
|
|
+ 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);
|
|
|
} else {
|
|
|
if (!linkedMultiValueMap.containsKey(m.getParentId())) {
|
|
|
linkedMultiValueMap.add(m.getParentId(), m);
|
|
@@ -117,83 +115,39 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- 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);
|
|
|
+ map.forEach((k, v) -> {
|
|
|
+ List<MenuDto> menuDtos = linkedMultiValueMap.get(k);
|
|
|
+ List<MenuDto> buttons = null, links = null, lists = null, conditions = null;
|
|
|
+ if (Objects.nonNull(menuDtos)) {
|
|
|
+ for (MenuDto menuDto : menuDtos) {
|
|
|
+ if (v.getId().longValue() == menuDto.getParentId().longValue() && menuDto.getType() == PrivilegeEnum.BUTTON) {
|
|
|
+ buttons = Objects.isNull(buttons) ? new ArrayList<>() : buttons;
|
|
|
+ buttons.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
+ v.setButtons(buttons);
|
|
|
+ } else if (v.getId().longValue() == menuDto.getParentId().longValue() && menuDto.getType() == PrivilegeEnum.LINK) {
|
|
|
+ links = Objects.isNull(links) ? new ArrayList<>() : links;
|
|
|
+ links.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
+ v.setLinks(links);
|
|
|
+ } else if (v.getId().longValue() == menuDto.getParentId().longValue() && menuDto.getType() == PrivilegeEnum.LIST) {
|
|
|
+ lists = Objects.isNull(lists) ? new ArrayList<>() : lists;
|
|
|
+ lists.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
+ v.setLists(lists);
|
|
|
+ } else if (v.getId().longValue() == menuDto.getParentId().longValue() && menuDto.getType() == PrivilegeEnum.CONDITION) {
|
|
|
+ conditions = Objects.isNull(conditions) ? new ArrayList<>() : conditions;
|
|
|
+ conditions.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
+ v.setConditions(conditions);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ if (v.getParentId() > 0 && v.getType() == PrivilegeEnum.MENU) {
|
|
|
+ map.get(v.getParentId()).getChildren().add(v);
|
|
|
+ deleteKeys.add(k);
|
|
|
+ }
|
|
|
+ });
|
|
|
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());
|
|
|
}
|
|
|
|