Bläddra i källkod

Merge branch 'mazq-0818-detail' into 'release/v2.4.0'

feature(详情查询修改): 详情查询修改

See merge request dcuc-tjdsj/auth-service!115
马志强 3 år sedan
förälder
incheckning
ecf2d391ab

+ 35 - 8
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/AuthApplyBusiness.java

@@ -609,7 +609,9 @@ public class AuthApplyBusiness implements IAuthApplyBusiness {
 
         //查询授权申请已通过的功能菜单
         List<AppFunAuthResult> authResults = funAuthResultService.getAppFunAuthResults(contentList.get(0).getUserId());
-        Set<String> existFunIds = authResults.stream().map(AppFunAuthResult::getFunId).collect(Collectors.toSet());
+        Set<String> existFunIds = Optional.ofNullable(authResults).orElse(new ArrayList<>())
+                .stream()
+                .map(AppFunAuthResult::getFunId).collect(Collectors.toSet());
 
         Map<String, List<AppFunAuthResourceDTO>> map = collect
                 .stream()
@@ -631,13 +633,38 @@ public class AuthApplyBusiness implements IAuthApplyBusiness {
         } else {
             detailDTO.setDelResourceInfos(new ArrayList<>());
         }
-        List<AppFunAuthResourceDTO> existList = authResults.stream().map(e -> {
-            AppFunAuthResourceDTO resourceDTO = new AppFunAuthResourceDTO();
-            resourceDTO.setAppId(e.getAppId());
-            resourceDTO.setFunId(e.getFunId());
-            return resourceDTO;
-        }).collect(Collectors.toList());
-        detailDTO.setExistResourceInfos(existList);
+
+        if(CollectionUtils.isNotEmpty(existFunIds)) {
+            List<String> funIds = new ArrayList<>(existFunIds);
+            List<AppFunInfoDTO> funInfos = appFunInfoService.getByIds(funIds);
+            Map<String, AppFunInfoDTO> funInfoDTOMap = funInfos.stream()
+                    .collect(Collectors.toMap(AppFunInfoDTO::getId, e -> e));
+            List<String> appIds = funInfos.stream().map(AppFunInfoDTO::getAppId).collect(Collectors.toList());
+            List<ApplyInfo> appInfos = applyInfoFacade.getAppById(appIds);
+            Map<String, ApplyInfo> appInfoMap = appInfos.stream().collect(Collectors.toMap(ApplyInfo::getId, e -> e));
+            List<AppFunAuthResourceDTO> existList = Optional.ofNullable(authResults).orElse(new ArrayList<>())
+                    .stream()
+                    .map(e -> {
+                        String funId = e.getFunId();
+                        AppFunInfoDTO funInfoDTO = funInfoDTOMap.get(funId);
+                        String appId = e.getAppId();
+                        ApplyInfo applyInfo = appInfoMap.get(appId);
+                        if(null == applyInfo) {
+                            return null;
+                        }
+                        if(null == funInfoDTO) {
+                            return null;
+                        }
+                        AppFunAuthResourceDTO resourceDTO = new AppFunAuthResourceDTO();
+                        resourceDTO.setAppId(appId);
+                        resourceDTO.setFunId(funId);
+                        resourceDTO.setFunName(funInfoDTO.getName());
+                        resourceDTO.setAppName(applyInfo.getApplyName());
+                        return resourceDTO;
+                    }).filter(Objects::nonNull).collect(Collectors.toList());
+            detailDTO.setExistResourceInfos(existList);
+        }
+
         return detailDTO;
     }