|
@@ -1,8 +1,10 @@
|
|
|
package com.dragoninfo.dcuc.auth.auth.service.impl;
|
|
|
|
|
|
|
|
|
+import com.dragoninfo.dcuc.app.dto.ServiceResourceDTO;
|
|
|
import com.dragoninfo.dcuc.app.entity.ApplyInfo;
|
|
|
import com.dragoninfo.dcuc.app.entity.ServiceResource;
|
|
|
+import com.dragoninfo.dcuc.app.enumresources.ResourceTypeEnum;
|
|
|
import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
|
|
|
import com.dragoninfo.dcuc.app.facade.IServiceResourceFacade;
|
|
|
import com.dragoninfo.dcuc.auth.audit.enums.AuthResultEnum;
|
|
@@ -126,10 +128,10 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
List<String> list = Arrays.asList(serviceCodesArr);
|
|
|
|
|
|
//待处理的服务
|
|
|
- List<ServiceResource> resources = iServiceResourceFacade.getServiceByServiceCodes(list);
|
|
|
- Map<String, ServiceResource> serviceResourceMap = resources
|
|
|
+ List<ServiceResourceDTO> resources = iServiceResourceFacade.getServiceByServiceCodes(list);
|
|
|
+ Map<String, ServiceResourceDTO> serviceResourceMap = resources
|
|
|
.stream()
|
|
|
- .collect(Collectors.toMap(ServiceResource::getServiceCode, item -> item, (old, last) -> last));
|
|
|
+ .collect(Collectors.toMap(ServiceResourceDTO::getServiceCode, item -> item, (old, last) -> last));
|
|
|
|
|
|
String appCode = serviceAuthFlow.getAppCode();
|
|
|
String appId = applyInfoFacade.codeConvertToId(appCode);
|
|
@@ -149,18 +151,24 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
.stream()
|
|
|
.collect(Collectors.toMap(ServiceAuthResult::getServiceCode, item -> item, (old, last) -> last));
|
|
|
if (WorkFlowTypeEnum.SERVICE_AUTH.getValue().equals(serviceAuthFlow.getFlowType())) {
|
|
|
- addServiceAuthResult(serviceAuthFlow, serviceResourceMap, appId, allAuthResultMap);
|
|
|
+ addServiceCodes = addServiceAuthResult(serviceAuthFlow, serviceResourceMap, appId, allAuthResultMap);
|
|
|
} else {
|
|
|
//撤销权限工作单
|
|
|
//删除权限
|
|
|
- cancelServiceAuthResult(serviceAuthFlow, serviceResourceMap, allAuthResults);
|
|
|
+ delServiceCodes = cancelServiceAuthResult(serviceAuthFlow, serviceResourceMap, allAuthResults);
|
|
|
}
|
|
|
+ //bu服务资源授权不需要通知总线
|
|
|
+ String resourceId = ResourceTypeEnum.BU_SERVICE.getResourceId();
|
|
|
+ boolean b = resources.stream().allMatch(item -> resourceId.equals(item.getResourceId()));
|
|
|
//使用异步事件发送消息
|
|
|
- sendPermssionService(appCode, addServiceCodes, delServiceCodes);
|
|
|
+ if(!b) {
|
|
|
+ sendPermssionService(appCode, addServiceCodes, delServiceCodes);
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- private void cancelServiceAuthResult(ServiceAuthFlow serviceAuthFlow, Map<String, ServiceResource> serviceResourceMap, List<ServiceAuthResult> allAuthResults) {
|
|
|
+ private List<String> cancelServiceAuthResult(ServiceAuthFlow serviceAuthFlow, Map<String, ServiceResourceDTO> serviceResourceMap, List<ServiceAuthResult> allAuthResults) {
|
|
|
+ List<String> cancelList = new ArrayList<>();
|
|
|
Date date = new Date();
|
|
|
List<ServiceAuthResult> result = allAuthResults.stream()
|
|
|
.filter(item -> serviceResourceMap.containsKey(item.getServiceCode()))
|
|
@@ -172,6 +180,9 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
serviceAuthResult.setDeleteTime(date);
|
|
|
serviceAuthFlow.setFlowId(serviceAuthFlow.getFlowId());
|
|
|
serviceAuthResultBPO.update(serviceAuthResult);
|
|
|
+ if(!ResourceTypeEnum.BU_SERVICE.getResourceId().equals(serviceAuthResult.getServiceResourceId())) {
|
|
|
+ cancelList.add(serviceAuthResult.getServiceCode());
|
|
|
+ }
|
|
|
}
|
|
|
if (!CollectionUtils.isEmpty(result)) {
|
|
|
String appId = result.get(0).getAppId();
|
|
@@ -187,9 +198,11 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
}
|
|
|
log.error("del ServiceAuthResult error :", exp);
|
|
|
}
|
|
|
+ return cancelList;
|
|
|
}
|
|
|
|
|
|
- private void addServiceAuthResult(ServiceAuthFlow serviceAuthFlow, Map<String, ServiceResource> serviceResourceMap, String appId, Map<String, ServiceAuthResult> allAuthResultMap) {
|
|
|
+ private List<String> addServiceAuthResult(ServiceAuthFlow serviceAuthFlow, Map<String, ServiceResourceDTO> serviceResourceMap, String appId, Map<String, ServiceAuthResult> allAuthResultMap) {
|
|
|
+ List<String> addList = new ArrayList<>();
|
|
|
Date date = new Date();
|
|
|
String appCode = serviceAuthFlow.getAppCode();
|
|
|
//判断工作单是长期还是自定义
|
|
@@ -228,7 +241,7 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
ServiceAuthResult serviceAuthResult = new ServiceAuthResult();
|
|
|
serviceAuthResult.setAppCode(appCode);
|
|
|
serviceAuthResult.setServiceCode(serviceCode);
|
|
|
- ServiceResource serviceResource = serviceResourceMap.get(serviceCode);
|
|
|
+ ServiceResourceDTO serviceResource = serviceResourceMap.get(serviceCode);
|
|
|
serviceAuthResult.setStartTime(startTime);
|
|
|
serviceAuthResult.setEndTime(endTime);
|
|
|
serviceAuthResult.setAuthStatus(authStatus);
|
|
@@ -236,7 +249,11 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
serviceAuthResult.setAppId(appId);
|
|
|
serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
|
|
|
serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
|
|
|
+ serviceAuthResult.setServiceResourceId(serviceResource.getResourceId());
|
|
|
saveAuthResult(serviceAuthResult);
|
|
|
+ if(!ResourceTypeEnum.BU_SERVICE.getResourceId().equals(serviceResource.getResourceId())) {
|
|
|
+ addList.add(serviceCode);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
logInfoFillService.sendServiceAuthLogByFlow(AuthResultEnum.SUC, serviceAuthFlow.getApplicantIdcard(), appId, serviceCodes);
|
|
@@ -244,6 +261,7 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
log.error("save ServiceAuthResult error :", e);
|
|
|
logInfoFillService.sendServiceAuthLogByFlow(AuthResultEnum.FAIL, serviceAuthFlow.getApplicantIdcard(), appId, serviceCodes);
|
|
|
}
|
|
|
+ return addList;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -364,8 +382,9 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
|
|
|
//发送消息
|
|
|
List<String> delServiceCodes = new ArrayList<>();
|
|
|
delServiceCodes.add(result.getServiceCode());
|
|
|
- this.sendPermssionService(result.getAppCode(), new ArrayList<>(), delServiceCodes);
|
|
|
-
|
|
|
+ if(!ResourceTypeEnum.BU_SERVICE.getResourceId().equals(result.getServiceResourceId())) {
|
|
|
+ this.sendPermssionService(result.getAppCode(), new ArrayList<>(), delServiceCodes);
|
|
|
+ }
|
|
|
logInfoFillService.sendServiceDelAuthLog(AuthResultEnum.SUC, result.getAppId(), result.getServiceCode());
|
|
|
} catch (Exception e) {
|
|
|
logInfoFillService.sendServiceDelAuthLog(AuthResultEnum.FAIL, result.getAppId(), result.getServiceCode());
|