|
@@ -1,12 +1,10 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
import com.diagbot.dto.PermissionDTO;
|
|
|
-import com.diagbot.dto.RespDTO;
|
|
|
import com.diagbot.dto.TokenPermissionDTO;
|
|
|
import com.diagbot.service.impl.TokenPermissionServiceImpl;
|
|
|
import com.diagbot.util.EntityUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
-import com.diagbot.util.RespDTOUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.TokenPermissionVO;
|
|
|
import com.google.common.collect.Lists;
|
|
@@ -35,65 +33,66 @@ public class TokenPermissionFacade extends TokenPermissionServiceImpl {
|
|
|
|
|
|
@Cacheable(value = PERMISSIONCACHE, key = "'permission:hc_' + #tokenPermissionVO.tokenId + '_st_' + #tokenPermissionVO.type")
|
|
|
public PermissionDTO getPermission(TokenPermissionVO tokenPermissionVO) {
|
|
|
- List<TokenPermissionDTO> hosPermissionDTOS =getTokenPermission(tokenPermissionVO);;
|
|
|
+ List<TokenPermissionDTO> hosPermissionDTOS = getTokenPermission(tokenPermissionVO);
|
|
|
|
|
|
- PermissionDTO permissionDTO = new PermissionDTO();
|
|
|
- permissionDTO.setTokenPermission(hosPermissionDTOS);
|
|
|
+ PermissionDTO permissionDTO = new PermissionDTO();
|
|
|
+ permissionDTO.setTokenPermission(hosPermissionDTOS);
|
|
|
|
|
|
- Map<String, Map<String, List<Map<String, Set<String>>>>> permissionMap = new HashMap<>();
|
|
|
- if (ListUtil.isNotEmpty(hosPermissionDTOS)) {
|
|
|
- //带参数的接口缓存
|
|
|
- List<TokenPermissionDTO> hasParamList = hosPermissionDTOS.stream()
|
|
|
- .filter(hosPermissionDTO -> StringUtil.isNotBlank(hosPermissionDTO.getParamKey()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- Map<String, List<Map<String, Set<String>>>> hasParamMap = new HashMap<>();
|
|
|
- if (ListUtil.isNotEmpty(hasParamList)) {
|
|
|
- Map<String, List<TokenPermissionDTO>> hosPermissionDTOMap
|
|
|
- = EntityUtil.makeEntityListMap(hasParamList, "permissionUrl");
|
|
|
- for (Map.Entry<String, List<TokenPermissionDTO>> entry : hosPermissionDTOMap.entrySet()) {
|
|
|
- List<Map<String, Set<String>>> paramList = Lists.newLinkedList();
|
|
|
- if (ListUtil.isNotEmpty(entry.getValue())) {
|
|
|
- for (TokenPermissionDTO hosPermissionDTO : entry.getValue()) {
|
|
|
- Map<String, Set<String>> paramMap = new HashMap<>();
|
|
|
- if (StringUtil.isBlank(hosPermissionDTO.getParamValue())) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- String paramKey = hosPermissionDTO.getParamKey();
|
|
|
- String paramValue = hosPermissionDTO.getParamValue();
|
|
|
- String[] paramKeyArr = paramKey.trim().split(",|,");
|
|
|
- String[] paramValueArr = paramValue.trim().split(";|;");
|
|
|
- if (paramKeyArr.length != paramValueArr.length) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- for (int i = 0; i < paramKeyArr.length; i++) {
|
|
|
- Set<String> paramValueSet
|
|
|
- = new HashSet<>(Arrays.asList(paramValueArr[i].split(",|,")));
|
|
|
- paramMap.put(paramKeyArr[i], paramValueSet);
|
|
|
- }
|
|
|
- paramList.add(paramMap);
|
|
|
+ Map<String, Map<String, List<Map<String, Set<String>>>>> permissionMap = new HashMap<>();
|
|
|
+ if (ListUtil.isNotEmpty(hosPermissionDTOS)) {
|
|
|
+ //带参数的接口缓存
|
|
|
+ List<TokenPermissionDTO> hasParamList = hosPermissionDTOS.stream()
|
|
|
+ .filter(hosPermissionDTO -> StringUtil.isNotBlank(hosPermissionDTO.getParamKey()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, List<Map<String, Set<String>>>> hasParamMap = new HashMap<>();
|
|
|
+ if (ListUtil.isNotEmpty(hasParamList)) {
|
|
|
+ Map<String, List<TokenPermissionDTO>> hosPermissionDTOMap
|
|
|
+ = EntityUtil.makeEntityListMap(hasParamList, "permissionUrl");
|
|
|
+ for (Map.Entry<String, List<TokenPermissionDTO>> entry : hosPermissionDTOMap.entrySet()) {
|
|
|
+ List<Map<String, Set<String>>> paramList = Lists.newLinkedList();
|
|
|
+ if (ListUtil.isNotEmpty(entry.getValue())) {
|
|
|
+ for (TokenPermissionDTO hosPermissionDTO : entry.getValue()) {
|
|
|
+ Map<String, Set<String>> paramMap = new HashMap<>();
|
|
|
+ if (StringUtil.isBlank(hosPermissionDTO.getParamValue())) {
|
|
|
+ continue;
|
|
|
}
|
|
|
- hasParamMap.put(entry.getKey(), paramList);
|
|
|
+ String paramKey = hosPermissionDTO.getParamKey();
|
|
|
+ String paramValue = hosPermissionDTO.getParamValue();
|
|
|
+ String[] paramKeyArr = paramKey.trim().split(",|,");
|
|
|
+ String[] paramValueArr = paramValue.trim().split(";|;");
|
|
|
+ if (paramKeyArr.length != paramValueArr.length) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (int i = 0; i < paramKeyArr.length; i++) {
|
|
|
+ Set<String> paramValueSet
|
|
|
+ = new HashSet<>(Arrays.asList(paramValueArr[i].split(",|,")));
|
|
|
+ paramMap.put(paramKeyArr[i], paramValueSet);
|
|
|
+ }
|
|
|
+ paramList.add(paramMap);
|
|
|
}
|
|
|
+ hasParamMap.put(entry.getKey(), paramList);
|
|
|
}
|
|
|
}
|
|
|
- permissionMap.put("hasParam", hasParamMap);
|
|
|
- //不带参数的接口缓存
|
|
|
- List<TokenPermissionDTO> noParamList = hosPermissionDTOS.stream()
|
|
|
- .filter(hosPermissionDTO -> StringUtil.isBlank(hosPermissionDTO.getParamKey()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- Map<String, List<Map<String, Set<String>>>> noParamMap = new HashMap<>();
|
|
|
- if (ListUtil.isNotEmpty(noParamList)) {
|
|
|
- Map<String, List<TokenPermissionDTO>> hosPermissionDTOMap
|
|
|
- = EntityUtil.makeEntityListMap(noParamList, "permissionUrl");
|
|
|
- for (Map.Entry<String, List<TokenPermissionDTO>> entry : hosPermissionDTOMap.entrySet()) {
|
|
|
- noParamMap.put(entry.getKey(), null);
|
|
|
- }
|
|
|
+ }
|
|
|
+ permissionMap.put("hasParam", hasParamMap);
|
|
|
+ //不带参数的接口缓存
|
|
|
+ List<TokenPermissionDTO> noParamList = hosPermissionDTOS.stream()
|
|
|
+ .filter(hosPermissionDTO -> StringUtil.isBlank(hosPermissionDTO.getParamKey()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, List<Map<String, Set<String>>>> noParamMap = new HashMap<>();
|
|
|
+ if (ListUtil.isNotEmpty(noParamList)) {
|
|
|
+ Map<String, List<TokenPermissionDTO>> hosPermissionDTOMap
|
|
|
+ = EntityUtil.makeEntityListMap(noParamList, "permissionUrl");
|
|
|
+ for (Map.Entry<String, List<TokenPermissionDTO>> entry : hosPermissionDTOMap.entrySet()) {
|
|
|
+ noParamMap.put(entry.getKey(), null);
|
|
|
}
|
|
|
- permissionMap.put("noParam", noParamMap);
|
|
|
}
|
|
|
- permissionDTO.setPermissionMap(permissionMap);
|
|
|
- return permissionDTO;
|
|
|
+ permissionMap.put("noParam", noParamMap);
|
|
|
}
|
|
|
+ permissionDTO.setPermissionMap(permissionMap);
|
|
|
+ return permissionDTO;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 清理权限所有缓存
|
|
|
*
|
|
@@ -104,5 +103,5 @@ public class TokenPermissionFacade extends TokenPermissionServiceImpl {
|
|
|
log.info("清理服务权限缓存成功");
|
|
|
return true;
|
|
|
}
|
|
|
- }
|
|
|
+}
|
|
|
|