|
@@ -88,81 +88,83 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
|
|
public MenuResult getUserMenu(Long userId) {
|
|
public MenuResult getUserMenu(Long userId) {
|
|
List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
|
|
List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
|
|
SysUser sysUser = commonCacheService.userCache(userId);
|
|
SysUser sysUser = commonCacheService.userCache(userId);
|
|
- Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
|
// 查询学校权限
|
|
// 查询学校权限
|
|
- List<TSchoolPrivilege> schoolPrivilegeList = commonCacheService.addSchoolPrivilegeCache(schoolId);
|
|
|
|
- if (CollectionUtils.isNotEmpty(schoolPrivilegeList)) {
|
|
|
|
- List<SysUserRole> sysUserRoleList = commonCacheService.userRolePrivilegeCache(userId);
|
|
|
|
- List<SysRolePrivilege> sysRolePrivilegeList = new ArrayList<>();
|
|
|
|
- for (SysUserRole s : sysUserRoleList) {
|
|
|
|
- SysRole sysRole = commonCacheService.roleCache(s.getRoleId());
|
|
|
|
- if (Objects.nonNull(sysRole) && sysRole.getEnable()) {
|
|
|
|
- sysRolePrivilegeList.addAll(commonCacheService.rolePrivilegeCache(sysUser.getSchoolId(), s.getRoleId()));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ List<TSchoolPrivilege> schoolPrivilegeList = new ArrayList<>();
|
|
|
|
+ if (sysUser.getSchoolId() != null) {
|
|
|
|
+ schoolPrivilegeList = commonCacheService.addSchoolPrivilegeCache(sysUser.getSchoolId());
|
|
|
|
+ }
|
|
|
|
+ List<SysRolePrivilege> sysRolePrivilegeList = new ArrayList<>();
|
|
|
|
+ List<SysUserRole> sysUserRoleList = commonCacheService.userRolePrivilegeCache(userId);
|
|
|
|
|
|
- Set<Long> privilegeIds = sysRolePrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toSet());
|
|
|
|
- if (CollectionUtils.isNotEmpty(privilegeIds)) {
|
|
|
|
- List<Long> schoolPrivilegeIds = schoolPrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toList());
|
|
|
|
- List<Long> intersectionIds = (List<Long>) CollectionUtils.intersection(privilegeIds, schoolPrivilegeIds);
|
|
|
|
|
|
+ for (SysUserRole s : sysUserRoleList) {
|
|
|
|
+ SysRole sysRole = commonCacheService.roleCache(s.getRoleId());
|
|
|
|
+ if (Objects.nonNull(sysRole) && sysRole.getEnable()) {
|
|
|
|
+ sysRolePrivilegeList.addAll(commonCacheService.rolePrivilegeCache(sysUser.getSchoolId(), s.getRoleId()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(intersectionIds)) {
|
|
|
|
- QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
- sysPrivilegeQueryWrapper.lambda()
|
|
|
|
- .in(SysPrivilege::getId, intersectionIds)
|
|
|
|
- .eq(SysPrivilege::getEnable, true).eq(SysPrivilege::getFrontDisplay, true)
|
|
|
|
- .orderByAsc(SysPrivilege::getSequence);
|
|
|
|
- List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
|
|
- Gson gson = new Gson();
|
|
|
|
- List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
|
|
|
|
- }.getType());
|
|
|
|
- LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
|
|
|
|
-
|
|
|
|
- for (MenuDto m : menuDtoList) {
|
|
|
|
- if (Objects.isNull(m.getParentId()) || m.getType() == PrivilegeEnum.MENU) {
|
|
|
|
- menuPrivilegeDtoList.add(gson.fromJson(gson.toJson(m), MenuPrivilegeDto.class));
|
|
|
|
|
|
+ Set<Long> privilegeIds = sysRolePrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toSet());
|
|
|
|
+ if (CollectionUtils.isNotEmpty(privilegeIds)) {
|
|
|
|
+ List<Long> schoolPrivilegeIds = schoolPrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toList());
|
|
|
|
+ List<Long> intersectionIds = sysUser.getSchoolId() != null ? (List<Long>) CollectionUtils.intersection(privilegeIds, schoolPrivilegeIds) : new ArrayList<>(privilegeIds);
|
|
|
|
+
|
|
|
|
+ if (CollectionUtils.isNotEmpty(intersectionIds)) {
|
|
|
|
+ QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ sysPrivilegeQueryWrapper.lambda()
|
|
|
|
+ .in(SysPrivilege::getId, intersectionIds)
|
|
|
|
+ .eq(SysPrivilege::getEnable, true).eq(SysPrivilege::getFrontDisplay, true)
|
|
|
|
+ .orderByAsc(SysPrivilege::getSequence);
|
|
|
|
+ List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
|
|
+ Gson gson = new Gson();
|
|
|
|
+ List<MenuDto> menuDtoList = gson.fromJson(JacksonUtil.parseJson(sysPrivilegeList), new TypeToken<List<MenuDto>>() {
|
|
|
|
+ }.getType());
|
|
|
|
+ LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();
|
|
|
|
+
|
|
|
|
+ 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 {
|
|
} 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);
|
|
|
|
- }
|
|
|
|
|
|
+ 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> 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.URL) {
|
|
|
|
- urls = Objects.isNull(urls) ? new ArrayList<>() : urls;
|
|
|
|
- urls.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
|
- m.setUrls(urls);
|
|
|
|
- } 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);
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ 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.URL) {
|
|
|
|
+ urls = Objects.isNull(urls) ? new ArrayList<>() : urls;
|
|
|
|
+ urls.add(gson.fromJson(gson.toJson(menuDto), MenuPrivilegeDto.class));
|
|
|
|
+ m.setUrls(urls);
|
|
|
|
+ } 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 MenuResult(sysUser.getId(), menuPrivilegeDtoList);
|
|
return new MenuResult(sysUser.getId(), menuPrivilegeDtoList);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -280,7 +282,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
|
|
BasicSchool tbSchool = Objects.nonNull(user.getSchoolId()) ? commonCacheService.schoolCache(user.getSchoolId()) : null;
|
|
BasicSchool tbSchool = Objects.nonNull(user.getSchoolId()) ? commonCacheService.schoolCache(user.getSchoolId()) : null;
|
|
SysOrg org = Objects.nonNull(user.getOrgId()) ? commonCacheService.orgCache(user.getOrgId()) : null;
|
|
SysOrg org = Objects.nonNull(user.getOrgId()) ? commonCacheService.orgCache(user.getOrgId()) : null;
|
|
List<SysPrivilege> sysPrivilegeList = new ArrayList<>();
|
|
List<SysPrivilege> sysPrivilegeList = new ArrayList<>();
|
|
- if(CollectionUtils.isNotEmpty(tSchoolPrivilegeList)) {
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(tSchoolPrivilegeList)) {
|
|
List<Long> schoolPrivilegeIds = tSchoolPrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toList());
|
|
List<Long> schoolPrivilegeIds = tSchoolPrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toList());
|
|
if (CollectionUtils.isNotEmpty(schoolPrivilegeIds) && CollectionUtils.isNotEmpty(privilegeIds)) {
|
|
if (CollectionUtils.isNotEmpty(schoolPrivilegeIds) && CollectionUtils.isNotEmpty(privilegeIds)) {
|
|
// 查询url
|
|
// 查询url
|
|
@@ -288,8 +290,8 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
|
|
sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, schoolPrivilegeIds);
|
|
sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, schoolPrivilegeIds);
|
|
List<SysPrivilege> schoolPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
List<SysPrivilege> schoolPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
Set<Long> relateIds = new HashSet<>();
|
|
Set<Long> relateIds = new HashSet<>();
|
|
- if(CollectionUtils.isNotEmpty(schoolPrivilegeList)){
|
|
|
|
- schoolPrivilegeList.stream().filter(m->StringUtils.isNotBlank(m.getRelated())).forEach(m->{
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(schoolPrivilegeList)) {
|
|
|
|
+ schoolPrivilegeList.stream().filter(m -> StringUtils.isNotBlank(m.getRelated())).forEach(m -> {
|
|
for (String s : m.getRelated().split(",")) {
|
|
for (String s : m.getRelated().split(",")) {
|
|
relateIds.add(Long.parseLong(s.trim()));
|
|
relateIds.add(Long.parseLong(s.trim()));
|
|
}
|
|
}
|