Przeglądaj źródła

Merge branch 'feature-buservice-0621' into 'develop'

Feature buservice 0621

See merge request dcuc-tjdsj/auth-service!73
黄资权 4 lat temu
rodzic
commit
c76be41b6a

+ 1 - 1
dcuc-auth-api/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>dcuc-auth</artifactId>
         <groupId>com.dragoninfo</groupId>
-        <version>2.3.0-tjdsj-SNAPSHOT</version>
+        <version>2.3.1-tjdsj-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
dcuc-auth-model/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>dcuc-auth</artifactId>
         <groupId>com.dragoninfo</groupId>
-        <version>2.3.0-tjdsj-SNAPSHOT</version>
+        <version>2.3.1-tjdsj-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 4 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/ServiceAuthFlowDTO.java

@@ -168,7 +168,10 @@ public class ServiceAuthFlowDTO implements Serializable {
      */
     private Date endTime;
 
-
+    /**
+     * 服务共享方式
+     */
+    private String serviceSharedWay;
 
     /**
      * api接口调用人身份证号

+ 15 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/ServiceAuthResultDTO.java

@@ -162,4 +162,19 @@ public class ServiceAuthResultDTO implements Serializable {
      * 理由
      */
     private String reason;
+
+    /**
+     * 服务资源提供方
+     */
+    private String serviceResourceId;
+
+    /**
+     * 服务共享方式
+     */
+    private String serviceSharedWay;
+
+    /**
+     * 服务类型
+     */
+    private String serviceType;
 }

+ 7 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/ServiceAuthFlow.java

@@ -189,4 +189,11 @@ public class ServiceAuthFlow implements IdEntity<String> {
      */
     @Column(name = "REMARK")
     private String remark;
+
+    /**
+     * 服务共享方式
+     */
+    @Column(name = "SERVICE_SHARED_WAY")
+    private String serviceSharedWay;
+
 }

+ 7 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/ServiceAuthResult.java

@@ -106,4 +106,11 @@ public class ServiceAuthResult implements IdEntity<String> {
      */
     @Column(name = "REASON")
     private String reason;
+
+    /**
+     * 服务提供方id 见枚举类ResourceTypeEnum中代表服务资源的值
+     */
+    @Column(name = "SERVICE_RESOURCE_ID")
+    private String serviceResourceId;
+
 }

+ 15 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/po/ServiceAuthResultPO.java

@@ -156,4 +156,19 @@ public class ServiceAuthResultPO {
      */
     private String authStatus;
 
+    /**
+     * 服务资源提供方
+     */
+    private String serviceResourceId;
+
+    /**
+     * 服务共享方式 01接口服务  02数据服务  03数据库  04bu服务资源
+     */
+    private String serviceSharedWay;
+
+    /**
+     * 服务类型
+     */
+    private String serviceType;
+
 }

+ 2 - 2
dcuc-auth-service/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>dcuc-auth</artifactId>
         <groupId>com.dragoninfo</groupId>
-        <version>2.3.0-tjdsj-SNAPSHOT</version>
+        <version>2.3.1-tjdsj-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>dcuc-auth-service</artifactId>
@@ -59,7 +59,7 @@
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-app-api</artifactId>
-            <version>2.2.0-tjdsj-SNAPSHOT</version>
+            <version>2.2.1-tjdsj-SNAPSHOT</version>
         </dependency>
 
         <dependency>

+ 15 - 14
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/bpo/ServiceAuthResultBPO.java

@@ -50,7 +50,7 @@ public class ServiceAuthResultBPO extends BaseBPO<ServiceAuthResult, String> {
     public List<ServiceAuthResult> serviceAuthResultList(String appCode) {
         String sql = " SELECT t.* FROM T_SERVICE_AUTH_RESULT t, T_SERVICE_RESOURCE r \n" +
                 " where t.service_id=r.id and t.deleted='0' and r.deleted='0'\n" +
-                " and r.service_status='1' and t.auth_status ='1' and t.app_code=? \n";
+                " and r.service_status='1' and t.auth_status ='1' and t.service_resource_id = 'tj_service' and t.app_code=? \n";
         return PersistentFactory.getJdbcDao().queryForList(sql, ServiceAuthResult.class, appCode);
     }
 
@@ -61,20 +61,21 @@ public class ServiceAuthResultBPO extends BaseBPO<ServiceAuthResult, String> {
     }
 
     public Page<ServiceAuthResultPO> serviceResultPageJoinFlow(Searchable searchable) {
-        String sql = "SELECT t.app_code, t.service_code, t.auth_status, t.create_time as auth_time, t.deleted as deleted," +
-                "a.apply_name as app_name, a.apply_status as app_status, a.org_name as app_org_name, a.manager_org_name as app_manager_org_name," +
-                "f.applicant_name, f.applicant_org_code, f.create_time as apply_time, f.applicant_org_name, f.applicant_idcard, f.applicant_phone_no," +
-                "f.app_org_code as app_org_code, f.app_manager_org_code as app_manager_org_code," +
+        String sql = "SELECT " +
+                "t.app_code, t.service_code, t.auth_status, t.create_time as auth_time, t.service_resource_id,t.deleted as deleted, " +
+                "a.apply_name as app_name, a.apply_status as app_status, a.org_name as app_org_name, a.manager_org_name as app_manager_org_name, " +
+                "f.applicant_name, f.applicant_org_code, f.create_time as apply_time, f.applicant_org_name, f.applicant_idcard, f.applicant_phone_no, " +
+                "f.app_org_code as app_org_code, f.app_manager_org_code as app_manager_org_code, f.service_shared_way, " +
                 "s.service_name, s.service_status, s.build_unit as service_org_name, s.manager_unit as service_manager_org_name, " +
-                "s.manager_unit_code as service_manager_org_code, s.build_unit_code as service_org_code," +
-                "t.app_code as appCode, t.service_code as serviceCode," +
-                "a.org_name as appOrgName, a.apply_status as appStatus, a.manager_org_name as appManagerOrgName, a.apply_name as appName, a.deleted as app_deleted," +
-                "f.app_org_code as appOrgCode, f.applicant_name as applicantName," +
-                "s.service_status as serviceStatus, s.service_name as serviceName, s.manager_unit as serviceManagerOrgName, s.manager_unit_code as serviceManagerOrgCode, s.deleted as service_deleted" +
-                " FROM T_SERVICE_AUTH_RESULT t" +
-                " INNER JOIN T_SERVICE_RESOURCE s ON t.service_id = s.id" +
-                " INNER JOIN T_APPLY_INFO a ON t.app_id = a.id" +
-                " LEFT JOIN T_SERVICE_AUTH_FLOW f ON f.message_id = t.message_id";
+                "s.manager_unit_code as service_manager_org_code, s.build_unit_code as service_org_code, s.service_type, " +
+                "t.app_code as appCode, t.service_code as serviceCode, t.service_resource_id as serviceResourceId, " +
+                "a.org_name as appOrgName, a.apply_status as appStatus, a.manager_org_name as appManagerOrgName, a.apply_name as appName, a.deleted as app_deleted, " +
+                "f.app_org_code as appOrgCode, f.applicant_name as applicantName, " +
+                "s.service_status as serviceStatus, s.service_name as serviceName, s.manager_unit as serviceManagerOrgName, s.manager_unit_code as serviceManagerOrgCode, s.deleted as service_deleted " +
+                "FROM T_SERVICE_AUTH_RESULT t " +
+                "INNER JOIN T_SERVICE_RESOURCE s ON t.service_id = s.id " +
+                "INNER JOIN T_APPLY_INFO a ON t.app_id = a.id " +
+                "LEFT JOIN T_SERVICE_AUTH_FLOW f ON f.message_id = t.message_id";
         return PersistentFactory.getJdbcDao().paging(sql, searchable, ServiceAuthResultPO.class);
     }
 

+ 30 - 11
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/ServiceAuthResultServiceImpl.java

@@ -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());

+ 6 - 0
dcuc-auth-service/src/main/resources/config/mysql/V4_3_0013__Add_Resrouce_Id.sql

@@ -0,0 +1,6 @@
+-- 新增服务提供方字段
+ALTER TABLE `t_service_auth_result` ADD `service_resource_id` VARCHAR(32) DEFAULT NULL COMMENT '服务资源提供方标识';
+-- 历史数据处理
+UPDATE `t_service_auth_result` set service_resource_id = 'tj_service';
+-- 增加服务共享方式字段
+ALTER TABLE `t_service_auth_flow` ADD `service_shared_way` VARCHAR(128) DEFAULT NULL COMMENT '服务共享方式';

+ 9 - 0
dcuc-auth-service/src/main/resources/config/sql/V4_3_0013__Add_Resource_Id.sql

@@ -0,0 +1,9 @@
+alter table T_SERVICE_AUTH_RESULT add SERVICE_RESOURCE_ID varchar2(32);
+comment on column T_SERVICE_AUTH_RESULT.SERVICE_RESOURCE_ID is '服务提供方标识';
+
+-- 处理手动添加的历史数据
+UPDATE T_SERVICE_AUTH_RESULT set SERVICE_RESOURCE_ID = 'tj_service';
+
+-- 服务共享方式字段
+ALTER TABLE T_SERVICE_AUTH_FLOW ADD SERVICE_SHARED_WAY VARCHAR2(128);
+comment on column T_SERVICE_AUTH_FLOW.SERVICE_SHARED_WAY is '服务共享方式';

+ 1 - 1
pom.xml

@@ -4,7 +4,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.dragoninfo</groupId>
-    <version>2.3.0-tjdsj-SNAPSHOT</version>
+    <version>2.3.1-tjdsj-SNAPSHOT</version>
     <artifactId>dcuc-auth</artifactId>
     <packaging>pom</packaging>
     <modules>