浏览代码

feature(服务授权重复校验修改): 服务授权重复校验修改

服务授权重复校验修改
mazq 4 年之前
父节点
当前提交
1b25e69265

+ 2 - 10
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/ServiceAuthBusinessImpl.java

@@ -170,16 +170,8 @@ public class ServiceAuthBusinessImpl implements IServiceAuthBusiness {
         if(!CollectionUtils.isEmpty(list)) {
         if(!CollectionUtils.isEmpty(list)) {
             return ResponseDTO.fail(ResponseStatus.FAIL_CODE, String.format("服务授权申请中,申请中的服务代码:%s ", list), list);
             return ResponseDTO.fail(ResponseStatus.FAIL_CODE, String.format("服务授权申请中,申请中的服务代码:%s ", list), list);
         }
         }
-        Searchable searchable = Searchable.newSearchable();
-        searchable.addSearchFilter("app_code", SearchOperator.eq, appCode);
-        searchable.addSearchFilter("deleted", SearchOperator.eq, BooleanEnum.FALSE.getValue());
-        searchable.addSearchFilter("auth_status", SearchOperator.eq, ServiceAuthStatusEnum.START.getValue());
-        List<ServiceAuthResult> authResults = authResultService.find(searchable);
-        List<String> exist = authResults.stream()
-                .map(item -> item.getServiceCode())
-                .filter(item -> serviceCodes.contains(item))
-                .collect(Collectors.toList());
-        if(!CollectionUtils.isEmpty(list)) {
+        List<String> exist = authResultService.authFlowApplyRepeatCheck(appCode, serviceCodes);
+        if(!CollectionUtils.isEmpty(exist)) {
             return ResponseDTO.fail(ResponseStatus.FAIL_CODE, String.format("您已经提交过此申请,并通过审批,可正常使用该服务。已开通的服务代码:%s ", exist), exist);
             return ResponseDTO.fail(ResponseStatus.FAIL_CODE, String.format("您已经提交过此申请,并通过审批,可正常使用该服务。已开通的服务代码:%s ", exist), exist);
         }
         }
         return ResponseDTO.success(ResponseStatus.SUCCESS_CODE,null);
         return ResponseDTO.success(ResponseStatus.SUCCESS_CODE,null);

+ 8 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IServiceAuthResultService.java

@@ -115,4 +115,12 @@ public interface IServiceAuthResultService {
      * @return
      * @return
      */
      */
     Page<ServiceAuthResultDTO> serviceResultPageJoinFlow(Searchable toSearchable);
     Page<ServiceAuthResultDTO> serviceResultPageJoinFlow(Searchable toSearchable);
+
+    /**
+     * 服务授权结果重复记录校验
+     * @param appCode
+     * @param serviceCodes
+     * @return
+     */
+    List<String> authFlowApplyRepeatCheck(String appCode, List<String> serviceCodes);
 }
 }

+ 1 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/AuthFlowServiceImpl.java

@@ -140,6 +140,7 @@ public class AuthFlowServiceImpl implements IAuthFlowService {
                 .filter(item -> StringUtils.isNotBlank(item.getServiceCodes()))
                 .filter(item -> StringUtils.isNotBlank(item.getServiceCodes()))
                 .flatMap(item -> Arrays.stream(item.getServiceCodes().split(StrUtil.COMMA)))
                 .flatMap(item -> Arrays.stream(item.getServiceCodes().split(StrUtil.COMMA)))
                 .filter(item -> serviceCodes.contains(item))
                 .filter(item -> serviceCodes.contains(item))
+                .distinct()
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
         return existServiceCodes;
         return existServiceCodes;
     }
     }

+ 15 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/ServiceAuthResultServiceImpl.java

@@ -502,4 +502,19 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
         return pageResult;
         return pageResult;
     }
     }
 
 
+    @Override
+    public List<String> authFlowApplyRepeatCheck(String appCode, List<String> serviceCodes) {
+        Searchable searchable = Searchable.newSearchable();
+        searchable.addSearchFilter("app_code", SearchOperator.eq, appCode);
+        searchable.addSearchFilter("deleted", SearchOperator.eq, BooleanEnum.FALSE.getValue());
+        searchable.addSearchFilter("auth_status", SearchOperator.eq, ServiceAuthStatusEnum.START.getValue());
+        List<ServiceAuthResult> authResults = serviceAuthResultBPO.find(ServiceAuthResult.class, searchable);
+        List<String> exist = authResults.stream()
+                .map(item -> item.getServiceCode())
+                .filter(item -> serviceCodes.contains(item))
+                .distinct()
+                .collect(Collectors.toList());
+        return exist;
+    }
+
 }
 }