Ver código fonte

Merge remote-tracking branch 'origin/master'

dongxin 10 meses atrás
pai
commit
8ac58d89d0
22 arquivos alterados com 511 adições e 74 exclusões
  1. 9 2
      authentication/src/main/resources/application-test.yml
  2. 28 0
      commons/src/main/java/com/jzg/commons/entity/po/SysAppManage.java
  3. 10 0
      commons/src/main/java/com/jzg/commons/entity/po/SysVersion.java
  4. 15 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysAppManageVo.java
  5. 17 2
      gateway/src/main/java/com/jzg/filter/AuthFilter.java
  6. 2 0
      gateway/src/main/resources/application-dev.yml
  7. 21 15
      gateway/src/main/resources/application-test.yml
  8. 2 2
      platform/src/main/resources/application-test.yml
  9. 2 2
      platform/src/main/resources/application.yml
  10. 23 23
      tenant/costsorrule/src/main/resources/application-test.yml
  11. 40 15
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  12. 193 0
      tenant/insurance/quotation-summary/src/main/resources/application-test.yaml
  13. 1 1
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java
  14. 58 0
      tenant/organization/src/main/java/com/jzg/organization/controller/SysAppManageController.java
  15. 4 4
      tenant/organization/src/main/java/com/jzg/organization/controller/SysVersionController.java
  16. 9 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysAppManageMapper.java
  17. 15 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysAppManageService.java
  18. 1 1
      tenant/organization/src/main/java/com/jzg/organization/service/SysVersionService.java
  19. 53 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysAppManageServiceImpl.java
  20. 6 6
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysVersionServiceImpl.java
  21. 1 1
      tenant/organization/src/main/resources/application-test.yml
  22. 1 0
      tenant/organization/src/main/resources/application.yml

+ 9 - 2
authentication/src/main/resources/application-test.yml

@@ -1,9 +1,11 @@
 server:
   port: 9081
 spring:
+  application:
+    name: jzg-auth
   cloud:
     nacos:
-      server-addr: 172.24.144.223:8848
+      server-addr: 192.168.0.250:8848
       username: nacos
       password: nacos
       config:
@@ -17,7 +19,12 @@ spring:
       - nacos:mysql
       - nacos:redisson
       - nacos:minio
-
 config:
   sso: 0
 
+wechat:
+  open:
+    properties:
+      app:
+        componentAppId: wx612ca90988c46947
+        componentSecret: 75b7d4cda453b2075dec23f849278bc0

+ 28 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysAppManage.java

@@ -0,0 +1,28 @@
+package com.jzg.commons.entity.po;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.jzg.commons.core.base.BaseModel;
+import lombok.Data;
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class SysAppManage extends BaseModel {
+
+    private String id;
+
+    @NotBlank(message = "应用名称不能为空")
+    private String appName;
+
+    private String appIcon;
+
+    @NotBlank(message = "应用ID不能为空")
+    private String appId;
+
+    private String description;
+
+    private String systemCode;
+
+    @TableField(exist = false)
+    private String downloadUrl;
+}

+ 10 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysVersion.java

@@ -1,7 +1,9 @@
 package com.jzg.commons.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.jzg.commons.core.base.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -22,16 +24,24 @@ public class SysVersion extends BaseModel {
 
     private String content;
 
+    @Schema(description = "0-不提示更新;1强制更新,2强提示更新,3弱提示更新")
     private String appType;
 
     private String platform;
 
     private String version;
 
+    private String path;
+
+    private String pathId;
+
+    @TableField(exist = false)
     private String downloadUrl;
 
     private String updateFlag;
 
     private String issueFlag;
 
+    private String  packageType;
+
 }

+ 15 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysAppManageVo.java

@@ -0,0 +1,15 @@
+package com.jzg.commons.entity.vo;
+
+
+import com.jzg.commons.core.base.PageRequest;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class SysAppManageVo extends PageRequest {
+
+    @NotBlank(message = "应用名称不能为空")
+    private String appName;
+
+}

+ 17 - 2
gateway/src/main/java/com/jzg/filter/AuthFilter.java

@@ -1,5 +1,6 @@
 package com.jzg.filter;
 
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
@@ -8,8 +9,13 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
+
+import java.time.Duration;
+import java.time.Instant;
+
 @Component
 @Order(0)
+@Slf4j
 public class AuthFilter implements GlobalFilter {
 
     @Autowired
@@ -20,8 +26,17 @@ public class AuthFilter implements GlobalFilter {
         // 获取请求路径和方法
         String path = exchange.getRequest().getPath().value();
 
-        // 如果权限验证通过,继续请求链
-        return chain.filter(exchange);
+        return chain.filter(exchange)
+                .doOnSuccess(v -> {
+                    long cost = Duration.between(Instant.now(), Instant.now()).toMillis();
+                    int statusCode = exchange.getResponse().getStatusCode().value();
+                    log.info("【Gateway响应出口】 请求地址:{} , 耗时: {}ms , 状态码: {} ", path, statusCode, cost);
+                })
+                // 发生异常时记录日志(ERROR级别)
+                .doOnError(e -> {
+                    long cost = Duration.between(Instant.now(), Instant.now()).toMillis();
+                    log.error("【Gateway请求异常】 请求地址:{} , 耗时: {}ms, 异常信息:{} ",path,cost, e);
+                });
     }
 
 }

+ 2 - 0
gateway/src/main/resources/application-dev.yml

@@ -86,6 +86,8 @@ spring:
                   - /userBankCard/**
                   - /receivable/**
                   - /ptlAgreementDispatch/**
+                  - /appManage/**
+                  - /version/**
 
         - id: summary_route
           uri: http://localhost:9898/

+ 21 - 15
gateway/src/main/resources/application-test.yml

@@ -21,7 +21,7 @@ spring:
     gateway:
       routes:
         - id: auth_route
-          uri: http://192.168.0.250:8081/
+          uri: http://192.168.0.250:9081/
           predicates:
             - name: MultiPath
               args:
@@ -31,23 +31,23 @@ spring:
                   - /appAuth/**
 
         - id: platform_route
-          uri: http://192.168.0.250:8083/
+          uri: http://192.168.0.250:9083/
           predicates:
             - name: MultiPath
               args:
                 paths:
-                - /userRole/**
-                - /system/**
-                - /file/**
-                - /user/**
-                - /esmInsCompany/**
-                - /jyxConfig/**
-                - /qrBarcode/**
-                - /sysDept/**
-                - /manager/**
+                  - /userRole/**
+                  - /system/**
+                  - /file/**
+                  - /user/**
+                  - /esmInsCompany/**
+                  - /jyxConfig/**
+                  - /qrBarcode/**
+                  - /sysDept/**
+                  - /manager/**
 
         - id: tenant_route
-          uri: http://192.168.0.250:8084/
+          uri: http://192.168.0.250:9084/
           predicates:
             - name: MultiPath
               args:
@@ -77,12 +77,18 @@ spring:
                   - /schemeRulesUndwrtDictLable/**
                   - /schemeRulesUndwrtRules/**
                   - /schemeRulesUndwrtRulesAttrLink/**
-                  - /schemeRules,/ptlAgreementCost/**
+                  - /schemeRules/**
                   - /ptlAgreementCost/**
                   - /ptlAgreementCostExternal/**
                   - /operatorTrajectory/**
                   - /messageTemplate/**
-                  - /message/**
+                  - /appUser/**
+                  - /userBankCard/**
+                  - /receivable/**
+                  - /ptlAgreementDispatch/**
+                  - /appManage/**
+                  - /version/**
+                  - /userAccount/**
 
         - id: summary_route
           uri: http://192.168.0.250:9898/
@@ -98,7 +104,7 @@ spring:
                   - /order/qrCode/**
 
         - id: costsorrule_route
-          uri: http://192.168.0.250:8085/
+          uri: http://192.168.0.250:9085/
           predicates:
             - name: MultiPath
               args:

+ 2 - 2
platform/src/main/resources/application-test.yml

@@ -3,12 +3,12 @@ server:
 spring:
   cloud:
     nacos:
-      server-addr: 172.24.144.223:8848
+      server-addr: 192.168.0.250:8848
       username: nacos
       password: nacos
       config:
         file-extension: yaml
-        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+        namespace: bfe09cf4-508a-4443-acfa-b354be6f4bac
         group: DEFAULT_GROUP
       discovery:
         namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45

+ 2 - 2
platform/src/main/resources/application.yml

@@ -7,8 +7,8 @@ spring:
     active: dev
   servlet:
     multipart:
-      max-file-size: 5MB
-      max-request-size: 5MB
+      max-file-size: 100MB
+      max-request-size: 100MB
 
 mybatis-plus:
   mapper-locations: classpath*:/mapper/*Mapper.xml

+ 23 - 23
tenant/costsorrule/src/main/resources/application-test.yml

@@ -1,23 +1,23 @@
-#server:
-#  port: 9085
-#spring:
-#  cloud:
-#    nacos:
-#      server-addr: 172.24.144.223:8848
-#      username: nacos
-#      password: nacos
-#      config:
-#        file-extension: yaml
-#        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
-#        group: DEFAULT_GROUP
-#      discovery:
-#        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
-#  config:
-#    import:
-#      - nacos:mysql
-#      - nacos:redisson
-#      - nacos:minio
-#      - nacos:rocketmq
-#
-#config:
-#  sso: 1
+server:
+  port: 9085
+spring:
+  cloud:
+    nacos:
+      server-addr: 192.168.0.250:8848
+      username: nacos
+      password: nacos
+      config:
+        file-extension: yaml
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+        group: DEFAULT_GROUP
+      discovery:
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+  config:
+    import:
+      - nacos:mysql
+      - nacos:redisson
+      - nacos:minio
+      - nacos:rocketmq
+
+config:
+  sso: 1

+ 40 - 15
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -851,25 +851,50 @@ public class QuoteVerificationAspect {
         insFeeOrders.setSyCommissionRatio(convertPercent(agreementInfoVo.getAgreement().getSyEntranceFeeRatio()));
         insFeeOrders.setJyCommissionRatio(convertPercent(agreementInfoVo.getAgreement().getJyEntranceFeeRatio()));
         // 入口比例
-        insFeeOrders.setJqInletRatio(convertPercent(jqCostType.getInlet()));
-        insFeeOrders.setSyInletRatio(convertPercent(syCostType.getInlet()));
-        insFeeOrders.setJyInletRatio(convertPercent(jyCostType.getInlet()));
+        insFeeOrders.setJqInletRatio(jqCostType != null
+                ? convertPercent(jqCostType.getInlet() != null ? jqCostType.getInlet() : BigDecimal.ZERO) : BigDecimal.ZERO);
+        insFeeOrders.setSyInletRatio(syCostType != null
+                ? convertPercent(syCostType.getInlet() != null ? syCostType.getInlet() : BigDecimal.ZERO) : BigDecimal.ZERO);
+        insFeeOrders.setJyInletRatio(jyCostType != null
+                ? convertPercent(jyCostType.getInlet() != null ? jyCostType.getInlet() : BigDecimal.ZERO) : BigDecimal.ZERO);
         // 跟单比例
-        insFeeOrders.setJqFollowRatio(calculateFollowRatio(jqCostType, agreementInfoVo.getAgreement().getJqEntranceFeeRatio()));
-        insFeeOrders.setSyFollowRatio(calculateFollowRatio(syCostType, agreementInfoVo.getAgreement().getSyEntranceFeeRatio()));
-        insFeeOrders.setJyFollowRatio(calculateFollowRatio(jyCostType, agreementInfoVo.getAgreement().getJyEntranceFeeRatio()));
+        insFeeOrders.setJqFollowRatio(jqCostType != null ?
+                calculateFollowRatio(jqCostType, agreementInfoVo.getAgreement().getJqEntranceFeeRatio()) : BigDecimal.ZERO);
+        insFeeOrders.setSyFollowRatio(syCostType != null ?
+                calculateFollowRatio(syCostType, agreementInfoVo.getAgreement().getSyEntranceFeeRatio()) : BigDecimal.ZERO);
+        insFeeOrders.setJyFollowRatio(jyCostType != null ?
+                calculateFollowRatio(jyCostType, agreementInfoVo.getAgreement().getJyEntranceFeeRatio()) : BigDecimal.ZERO);
         // 加投比例
-        insFeeOrders.setJqAdditionalRatio(convertPercent(jqCostType.getAddThrow()));
-        insFeeOrders.setSyAdditionalRatio(convertPercent(syCostType.getAddThrow()));
-        insFeeOrders.setJyAdditionalRatio(convertPercent(jyCostType.getAddThrow()));
+        insFeeOrders.setJqAdditionalRatio(jqCostType != null
+                ? convertPercent(jqCostType.getAddThrow() != null ? jqCostType.getAddThrow() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+        insFeeOrders.setSyAdditionalRatio(syCostType != null
+                ? convertPercent(syCostType.getAddThrow() != null ? syCostType.getAddThrow() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+        insFeeOrders.setJyAdditionalRatio(jyCostType != null
+                ? convertPercent(jyCostType.getAddThrow() != null ? jyCostType.getAddThrow() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
         // 留点比例
-        insFeeOrders.setJqKeepPointRatio(convertPercent(jqCostType.getKeepPointRatio()));
-        insFeeOrders.setSyKeepPointRatio(convertPercent(syCostType.getKeepPointRatio()));
-        insFeeOrders.setJyKeepPointRatio(convertPercent(jyCostType.getKeepPointRatio()));
+        insFeeOrders.setJqKeepPointRatio(jqCostType != null
+                ? convertPercent(jqCostType.getKeepPointRatio() != null ? jqCostType.getKeepPointRatio() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+        insFeeOrders.setSyKeepPointRatio(syCostType != null
+                ? convertPercent(syCostType.getKeepPointRatio() != null ? syCostType.getKeepPointRatio() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+        insFeeOrders.setJyKeepPointRatio(jyCostType != null
+                ? convertPercent(jyCostType.getKeepPointRatio() != null ? jyCostType.getKeepPointRatio() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+
         // 出口比例
-        insFeeOrders.setJqExportRatio(convertPercent(jqCostType.getExport()));
-        insFeeOrders.setSyExportRatio(convertPercent(syCostType.getExport()));
-        insFeeOrders.setJyExportRatio(convertPercent(jyCostType.getExport()));
+        insFeeOrders.setJqExportRatio(jqCostType != null
+                ? convertPercent(jqCostType.getExport() != null ? jqCostType.getExport() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+        insFeeOrders.setSyExportRatio(syCostType != null
+                ? convertPercent(syCostType.getExport() != null ? syCostType.getExport() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
+        insFeeOrders.setJyExportRatio(jyCostType != null
+                ? convertPercent(jyCostType.getExport() != null ? jyCostType.getExport() : BigDecimal.ZERO)
+                : BigDecimal.ZERO);
     }
 
     /**

+ 193 - 0
tenant/insurance/quotation-summary/src/main/resources/application-test.yaml

@@ -0,0 +1,193 @@
+spring:
+  cloud:
+    nacos:
+      server-addr: 192.168.0.250:8848
+      username: nacos
+      password: nacos
+      config:
+        file-extension: yaml
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+        group: DEFAULT_GROUP
+      discovery:
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+  config:
+    import:
+      - nacos:mysql
+      - nacos:redisson
+      - nacos:minio
+      - nacos:mongodb
+      - nacos:identify
+      - nacos:crawler-config
+  redis:
+    host: 192.168.0.250
+    port: 6379
+    password: 123456  # 如果没有密码,可删除此行
+    database: 0
+#百度图片识别API
+baidu:
+  clientId: xG9M8tSjNvYPwSTNavM0ELlD
+  clientSecret: riYIRG67akE5FGVwnHE3dGBly5zmdS6t
+  authHost: https://aip.baidubce.com/oauth/2.0/token?
+  vehicle: https://aip.baidubce.com/rest/2.0/ocr/v1/vehicle_license
+  idcard: https://aip.baidubce.com/rest/2.0/ocr/v1/idcard
+
+data-scope:
+  tables:
+    - sys_organization_user_link
+
+
+image:
+  # 验证码识别
+  identificationUrl: https://sxzgkj.baoxianzhanggui.com/zm/images/recognition
+
+# 支付码相关配置
+qrcode:
+  genAddress: https://192.168.0.250:8001/order/qrCode/index
+  imageSrc: https://192.168.0.250:8001/template/
+
+
+yc:
+  api:
+    payCallBack: https://sxzgkj.baoxianzhanggui.com/web-api/api/yongCheng/callBack
+    url: https://test.baoxianzhanggui.com/yongcheng/
+
+#阳光财险生产api
+yangguang:
+  api:
+    key: GVGFDsmWyvydKuCrtP
+    url: http://wxopenapi.sinosig.com/serviceCar/nonstandard.action?sysFlag=CCSI_SXJZG
+    uploadUrl: http://autoimage.sinosig.com/AutoImagePlatform/third/upload
+    payCallBack: https://sxzgkj.baoxianzhanggui.com/web-api/api/yangGuang/callBack
+    secret: 6CPxxlHwLLphTR7gVg3hJLsH
+    referer: SXJZG
+
+#阳光财险测试api
+#yangguang:
+#  api:
+#    key: uYPP7AIc3HYsUh8rFn
+#    url: http://chexiantest.sinosig.com:7002/serviceCar/nonstandard.action?sysFlag=CCSI_SXJZG
+#    uploadUrl: http://unifiedimage.sinosig.com:8082/AutoImagePlatform/third/upload
+#    payCallBack: https://sxzgkj.baoxianzhanggui.com/web-api/api/yangGuang/callBack
+#    secret: 6CPxxlHwLLphTR7gVg3hJLsH
+#    referer: SXJZG
+
+
+#诚泰财险api
+chengtai:
+  api:
+    baseUrl: http://39.98.238.167/chengtai/app/SERVER_V2/4001/
+    ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvuUnoPTFin84nDdpNZFDiGZgUKn6d9fbp6F4/fqrb6pFoJX/wLMr0IsheP0ZnVCPpLGKLjflPNHJo/P9WRRTSM67D8fRD8GKoq+7CtSJkdIticASpN/U8AgJiNV6xdReJcMkaAWJ1ZbOQ+nYLg9OE0qQ6cuXqhy/wVrqx72CrvwIDAQAB
+    publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyVlpqmibguria884GdAYEuqCV4aQRl2N21+7l8Vxocoyz+M8KYyXqmlLKqApNL/U5pUVTjS6vpC6ojS+wvNbawijeMsm8r2NOlTHBnQ5vN0azjjPPtSrxgHL8/EYBa4lmBcexdmcUrUyWjAIYqfO8dlY+RuXvbiw7fBHZ7xpAvQIDAQAB
+    privateKey: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJWWmqaJuC6uJrzzgZ0BgS6oJXhpBGXY3bX7uXxXGhyjLP4zwpjJeqaUsqoCk0v9TmlRVONLq+kLqiNL7C81trCKN4yybyvY06VMcGdDm83RrOOM8+1KvGAcvz8RgFriWYFx7F2ZxStTJaMAhip87x2Vj5G5e9uLDt8EdnvGkC9AgMBAAECgYEAsEOHdEvOV1pWMdj9bgVpGW14YQu3RSfTSFheqGkpg5aMmSk3QbYDeOB1KhZysB3Ri9tdLRqi5TkqYK/DTjUnSUMs0iMhx0XaY2z3w16AMpvuJ0FZ4S2h8oAFfOWe4F6bpUYU8qmXANAaXcMm6HjU8k1QuTbjlSOeLujl8W7zk8ECQQDlHbUQ911kWmsSo8NE4S1+dq/6T+yIGCJlXzlNh/z6giMpjp8Dzm3fxDHLeZa+DCrhpT1qe6O3oGwx3HeR/85NAkEAx0NUy6pX5WolV+YAoLNHAmcCP26wQTB7LZ7mXbxww4yNNH9CWHE9PaBuV4Ws4NxSAnRDxrgArkz5+wgqnXzUMQJAHr16orkdra43+XtBYsd3jCUufT4l9SiPzNwW2yEovw+g2h2JlkAnG8O+DpfUstD9G+NItzW5hJSgj5wN6ufQbQJACEtdND0a+4m3lDkWvZm40vjGty08WPpTpkp+/FfjucAYAJ9re5L7IZ2T+kCuOY3yO/fq+lKedKLvpOtqGrQfgQJBAJ1wMccz+1ez8qpyTWbzj2h0O+GV+YDHqJ9SwRWcSacZOeAyO7UMgIZEwoYfs4nhye7DZH9e4BfkwBmFHJKwJNs=
+    partnerCode: JZG_TYTQ_SX
+
+#大家财险api
+dajia:
+  api:
+    url: https://open-ics.djbx.com/dip-agent/agent/invokeForVchicle/api/
+    encryptKey: "By92YPLvG89XyFqv"
+
+
+#国任财险测试api
+guoren:
+  api:
+    baseUrl: https://devyun.guorenpcic.com/api/grchannel-interface/httpCurrency/httpJsonCommonEntrance
+    uploadUrl: https://devyun.guorenpcic.com/api/grecar/photo/upload
+    redirectUrl: http://39.98.239.48/web-api/api/guoRen/callBack
+    policyUrl: https://devyun.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyForGrecar?certiNo=
+    policyFlagUrl: https://devyun.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
+    serveCode: GR0002
+    channelCode: jindouyun
+    interfaceUserCode: guoren_tp_jdy
+    interfacePwd: Q31gIrhZgQc=
+    iftest: Y
+#guoren:
+#  api:
+#    baseUrl: https://rbt.guorenpcic.com/api/grchannel-interface/httpCurrency/httpJsonCommonEntrance
+#    uploadUrl: https://rbt.guorenpcic.com/api/grecar/photo/upload
+#    redirectUrl: https://sxzgkj.baoxianzhanggui.com/web-api/api/guoRen/callBack
+#    policyUrl: https://rbt.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyForGrecar?certiNo=
+#    policyFlagUrl: https://rbt.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
+#    serveCode: GR0002
+#    channelCode: TQDL
+#    interfaceUserCode: TQDL
+#    interfacePwd: $2a$04$r4neihDJh420OyWEji5w5OMbiyHqYEZHJGLZP0FHFEjXmr7nVW7te
+#    iftest: N
+
+# 华泰
+huatai:
+  api:
+    sourceCode: '016'
+    #    baseUrl: https://gears.pc.ehuatai.com:9003/interFaces/common/AutoInsuranceQuotation.do
+    baseUrl: https://hound_t.pc.ehuatai.com/third/interFaces/common/AutoInsuranceQuotation.do
+    selfPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYUuKVmeF5N66v6MQmOR8pt4o33yrio/ZrDf2ehk/kHJ2BYdI+xE9dLrZW5dm0y8yPpIHN39JaLuYOlWz5DVsWJTSPj9eaq0hOiY9BGAHJ3yMHdX3wygpcD11BVc5v4wbX/kyAhmatK69sb4zzAtEve1NS/YwZVuGch0CrkGw3YQIDAQAB
+    selfPrivateKey: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJhS4pWZ4Xk3rq/oxCY5Hym3ijffKuKj9msN/Z6GT+QcnYFh0j7ET10utlbl2bTLzI+kgc3f0lou5g6VbPkNWxYlNI+P15qrSE6Jj0EYAcnfIwd1ffDKClwPXUFVzm/jBtf+TICGZq0rr2xvjPMC0S97U1L9jBlW4ZyHQKuQbDdhAgMBAAECgYAktOyXYoK8RFfbWjtSfrdsxScQub3K6foq6C8y8Wj1LpQiJqGUsJfze5tDK5agA/CiuODy7LnzM5QK9aVSCw7k0r8EeGpHcYRdLYZM0vXVFK2gIQctFemK4c6sg5p0Bn1LNRbJG7rgMMEA/OxcF6vyQahhFtPVtAQwc+dT0PV51QJBANd66rfTuxSRvIC/RE4W6iqzed2YZtx+0kd7KiN78Y4X6spposFCH4ALf4jUeRRXZAm+Qu71cq21m2GsQZ8bZdMCQQC096ilZXEjmEuvopQR3JvPbgAF+MtItusyDDsMR1CWwXq9XGMmxi6GhFY7r7C8b40j1IchVAEY5BcwxJwfjql7AkAp5QYZs5reBu/FgGqBXEcvAjIheW4WVLoBl9q7h2+RlujZbexs8rQ5KwMi0VyxLcSPeGR/HU2spHCPbvRbQPJtAkBANK4tIHSnwFz6D6ChRbgyPEDd3YuiXOPNefFpRdQd6L93d9Pl6eKP71v5CTiXYqyczcaz2G4bOrHPp7IMsD0JAkBO/q3ZMT+Nj2jdMn2AR1h+ngn38JnK46PznU0WoRPx72YoWbLxvaGWpu8scZAhpYeq/n+52NHFfu8ayDRNWjP2
+    huaTaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYyF2SBNzLOP5N5fFW2T2eQ5+iaI5wVpsedu+UY290TVuG152tkdtSuTXsx+8BKnd79/PF966/2aSP4EUm7vD9kvQUnX2EDUiMooorGvDTRxoHNXFGqOtxdMiUOuqx19HwNb4gOXZ1WdjWJwSmqC6ZP6OgxKIotCHJwe826Q/w8wIDAQAB
+    huaTaiKey: AdOdn409KE6Z9XvFsJ
+    key: kFl5aiHALbZ6TMTqQDxghMMC
+    tokenUrl: https://vehpxy.pc.ehuatai.com/sign
+    username: "UE27017723VPN01"
+    password: "Dhbx135....."
+    comcode: "9270901-营业部代理业务一部"
+# 渤海财险生产api
+bohai:
+  api:
+    #    url: https://esales.bpic.com.cn
+    url: http://39.98.238.167/bohai/app-intermediary/gatewayFromPlat
+    selfPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGw4XAPHi+K+/F1yb4pP3MTSOurAWsV+o2bzeVLaI+L4AYeXWhMSZ/L5yEX1OvpZKkBRD6KeIzDFqlP+wZ3qgt4n8MoaeA4//Zj4TSXbyXVPtFAtpeTidd7oWBJWcydvhtcWXrhBRh9wErYZ6+hCwh10JBWmSbTcDm0qY8PyqusQIDAQAB
+    selfPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIbDhcA8eL4r78XXJvik/cxNI66sBaxX6jZvN5Utoj4vgBh5daExJn8vnIRfU6+lkqQFEPop4jMMWqU/7BneqC3ifwyhp4Dj/9mPhNJdvJdU+0UC2l5OJ13uhYElZzJ2+G1xZeuEFGH3ASthnr6ELCHXQkFaZJtNwObSpjw/Kq6xAgMBAAECgYB2odAwNgukfVEJvCjWYYf6PT3YGh60ZIANg0JO1GkqjO4anXFrgLT+6Y7DCJfG296G/N7BGfXCMnHpXqgc7eDlmSy2JVfKzvptgKJBLktP7Yfajg3oY9S8parSK+iyHT6qYqQv6wBmQ3Q9smOp/TM2ndBMDXu9MjoTkNJhrfMDsQJBANbWHciQhazb3Y2DY42hW/zBf7rmmJFrw7aOrEjzw5E+SnGs/vcr3LUWBbSRTYHcoJ+V/kudfwRMlz0SLkfMAvMCQQCglcjNRx35Zw6vNKHE4vTN/ny2gukjvtkzXpPeTUfblrXjK3w3x9aWBZ/MUiphVe5NB8CAtlfYZMo4UG+WMEjLAkA4yHsyydArMinK/5FOm/meQt6p3c0xkpQ2KlurJJLqTtaKWTlCx1scmeeEJGuiCViDFbgS8FvkHQJUZ/vHikq1AkAHbUX/MHXTbg/AzKdaqsB1snpkGoPb0lzLQmmGU36qSjsZSY6SKdzjzVjJo1cwbz/5Mg2WJljDuk2b8yRmBs+nAkEAzoEZmM031u/0KBpukSbqef8JgJOZ0Do9KDbf2P6YuBal6drUeNYVhImKBxQAbjETp9m5TxxW/dkKmHCnc3zqsA==
+    boHaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIC3wgJd+7Wue63Qjdh3/uscQSKec2m9gaeCq007kjEiSFES5Tfx75VPSxRj6qk6XN4umHOsHY+W9jkv+Cj4+z3XpPozsRdoj21oxPx8fPJzpVeaUHrEkZtj9Yvo/KhByBK5sRjKmlENXVF3wXVfAg48JZR2XUyUcBdZhR9aHhoQIDAQAB
+    insurerCode: 'BPIC'
+
+# 渤海财险测试api
+#bohai:
+#  api:
+#    url: http://uatwhale.bpic.com.cn/app-intermediary/gatewayFromPlat
+#    selfPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKbJHlAPiXza9A7Mfs2cLvysKa5GjdMtG1QQv8oADkAgcdujRq0aHVjNFXoVm7b1DdlhEAdhKXJ7XyY/2zoEbpoU4YxzIftloHZ0vd/k4vgAg5beH972jpWZj6N3ER+EgR73+Ui0p0pdXIRjDF4o8mWSLw8W8Z93eILtLg0DcOIwIDAQAB
+#    selfPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIbDhcA8eL4r78XXJvik/cxNI66sBaxX6jZvN5Utoj4vgBh5daExJn8vnIRfU6+lkqQFEPop4jMMWqU/7BneqC3ifwyhp4Dj/9mPhNJdvJdU+0UC2l5OJ13uhYElZzJ2+G1xZeuEFGH3ASthnr6ELCHXQkFaZJtNwObSpjw/Kq6xAgMBAAECgYB2odAwNgukfVEJvCjWYYf6PT3YGh60ZIANg0JO1GkqjO4anXFrgLT+6Y7DCJfG296G/N7BGfXCMnHpXqgc7eDlmSy2JVfKzvptgKJBLktP7Yfajg3oY9S8parSK+iyHT6qYqQv6wBmQ3Q9smOp/TM2ndBMDXu9MjoTkNJhrfMDsQJBANbWHciQhazb3Y2DY42hW/zBf7rmmJFrw7aOrEjzw5E+SnGs/vcr3LUWBbSRTYHcoJ+V/kudfwRMlz0SLkfMAvMCQQCglcjNRx35Zw6vNKHE4vTN/ny2gukjvtkzXpPeTUfblrXjK3w3x9aWBZ/MUiphVe5NB8CAtlfYZMo4UG+WMEjLAkA4yHsyydArMinK/5FOm/meQt6p3c0xkpQ2KlurJJLqTtaKWTlCx1scmeeEJGuiCViDFbgS8FvkHQJUZ/vHikq1AkAHbUX/MHXTbg/AzKdaqsB1snpkGoPb0lzLQmmGU36qSjsZSY6SKdzjzVjJo1cwbz/5Mg2WJljDuk2b8yRmBs+nAkEAzoEZmM031u/0KBpukSbqef8JgJOZ0Do9KDbf2P6YuBal6drUeNYVhImKBxQAbjETp9m5TxxW/dkKmHCnc3zqsA==
+#    boHaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKbJHlAPiXza9A7Mfs2cLvysKa5GjdMtG1QQv8oADkAgcdujRq0aHVjNFXoVm7b1DdlhEAdhKXJ7XyY/2zoEbpoU4YxzIftloHZ0vd/k4vgAg5beH972jpWZj6N3ER+EgR73+Ui0p0pdXIRjDF4o8mWSLw8W8Z93eILtLg0DcOIwIDAQAB
+#    insurerCode: 'BPIC'
+
+#中煤财险测试
+zhongmei:
+  api:
+    #    source: 326
+    #    token: THIRDSCOuloft2020052818346904zmYBSX
+    url: https://test.echinacoal.com/singlePlatform/
+    imageUrl: https://test.echinacoal.com/singlePlatform/others/
+    smsUrl: https://test.echinacoal.com/singlePlatform/prpall/
+    pageUrl: https://www.baidu.com/
+    callbackDomain: https://test.baoxianzhanggui.com/web-api/
+    callbackUrl: /order/zhongMeiApi/underwritingCallback
+    passMsgUrl: /order/zhongMeiApi/auditCallback
+    sessionKey: 1237891234567589
+  crawler:
+    baseUrl: https://hxkscd.chinacoal-ins.com/singlePlatform
+    imageUrl: https://image.chinacoal-ins.com/SunICMS
+
+zijin:
+  api:
+    #    appKey: SXTQ-C-SX
+    #    appSecret: vAI9sW4bM1m5Y074AUT72wvxKu55SbGY
+    #    proposalCityCode: 320100
+    #    proposalAreaCode: 320000
+    # 为接入方提供获取token服务
+    accessTokenUrl: https://test-open.zking.com/api/v1/public/token/getAccessToken
+    # 车险业务
+    url: http://test-open.zking.com/api/v1/insurance/autoMobile/carInsurance/
+    # 支付
+    payUrl: http://test-open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 新支付
+    newPayUrl: http://test-open.zking.com/api/v1/open/open-aggregate/auth/newPay
+    # 订单详情查询服务
+    orderUrl: http://test-open.zking.com/api/v1/insurance/public/getOrderDetail
+    # 订单状态查询
+    orderDetailUrl: http://test-open.zking.com/api/v1/insurance/autoMobile/geelyCarInsurance/queryOrderDetail
+    # 下载保单地址
+    downLoadDocument: http://test-open.zking.com/temp/api/v1/insurance/nonAutoMobile/queryPolicy/downLoadDocument
+    # 对接三方渠道验车链接接口
+    sendCheckCarLink: http://open.zking.com/api/v1/open/open-aggregate/auth/wanJiaYun/sendCheckCarLink
+
+
+zhongAn:
+  id: "975113"

+ 1 - 1
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java

@@ -57,7 +57,7 @@ public class YangGuangApiRequestComponent {
         // 处理解密
         String decryptedResponse = yangGuangEncryption.authcodeDecode(body, yangGuangApiProperties.getKey());
 
-        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> {} \n\t---------> 响应参数:{}", type, decryptedResponse);
+        InsuranceLog.infoLog(InsuranceEnum.YGBX.getPinyin(), "\n\t---------> {} \n\t---------> 响应参数:{}", type, decryptedResponse);
         JSONObject jsonObject = JSON.parseObject(decryptedResponse);
         S t = jsonObject.toJavaObject(tClass);
         // 反序列化响应

+ 58 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/SysAppManageController.java

@@ -0,0 +1,58 @@
+package com.jzg.organization.controller;
+
+
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.po.SysAppManage;
+import com.jzg.commons.entity.vo.SysAppManageVo;
+import com.jzg.organization.service.SysAppManageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
+
+/**
+ * 应用管理
+ * @author quchen
+ * @date 2025/6/19 9:54
+ */
+
+@RestController
+@RequestMapping("/appManage")
+public class SysAppManageController {
+
+    @Autowired
+    private SysAppManageService sysAppManageService;
+
+
+    @PostMapping("/queryAppList")
+    public HttpResult queryAppList(@RequestBody SysAppManageVo sysAppManageVo) {
+        return HttpResult.ok(sysAppManageService.queryAppList(sysAppManageVo));
+    }
+
+
+    @PostMapping("/save")
+    public HttpResult save( @RequestBody SysAppManage sysAppManage) {
+        if (Objects.isNull(sysAppManage.getAppId())){
+            return HttpResult.error("应用ID不能为空");
+        }
+        boolean save = sysAppManageService.save(sysAppManage);
+        return save ? HttpResult.ok("保存成功") : HttpResult.error("保存失败");
+    }
+
+
+    @PostMapping("/update")
+    public HttpResult update(@RequestBody SysAppManage sysAppManage) {
+        if (Objects.isNull(sysAppManage.getId())){
+            return HttpResult.error("ID不能为空");
+        }
+        boolean b = sysAppManageService.updateById(sysAppManage);
+        return b ? HttpResult.ok("更新成功") :HttpResult.error("更新失败");
+    }
+
+
+    @GetMapping("/deleteById")
+    public HttpResult deleteById(@RequestParam String id) {
+        return sysAppManageService.deleteById(id);
+    }
+
+}

+ 4 - 4
tenant/organization/src/main/java/com/jzg/organization/controller/SysVersionController.java

@@ -30,8 +30,8 @@ public class SysVersionController {
     }
 
     @PostMapping("/delete")
-    public HttpResult delete(@RequestBody SysVersionVo sysVersionVo) {
-        SysVersion sysVersion = sysVersionService.getById(sysVersionVo.getId());
+    public HttpResult delete(@RequestParam String id) {
+        SysVersion sysVersion = sysVersionService.getById(id);
         if (sysVersion == null) {
             HttpResult.error("数据不存在");
         }
@@ -46,8 +46,8 @@ public class SysVersionController {
     }
 
     @GetMapping("/getMaxVersion")
-    public HttpResult getMaxVersion(@RequestParam String appid) {
-        return HttpResult.ok(sysVersionService.getMaxVersion(appid));
+    public HttpResult getMaxVersion(@RequestParam("appid") String appid,@RequestParam("packageType") String packageType) {
+        return HttpResult.ok(sysVersionService.getMaxVersion(appid,packageType));
     }
 
 }

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysAppManageMapper.java

@@ -0,0 +1,9 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysAppManage;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysAppManageMapper extends BaseMapper<SysAppManage> {
+}

+ 15 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysAppManageService.java

@@ -0,0 +1,15 @@
+package com.jzg.organization.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.po.SysAppManage;
+import com.jzg.commons.entity.vo.SysAppManageVo;
+
+public interface SysAppManageService extends IService<SysAppManage> {
+
+
+    Page<SysAppManage> queryAppList(SysAppManageVo sysAppManageVo);
+
+    HttpResult deleteById(String id);
+}

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/SysVersionService.java

@@ -7,7 +7,7 @@ import com.jzg.commons.entity.vo.SysVersionVo;
 
 
 public interface SysVersionService extends IService<SysVersion> {
-    SysVersion getMaxVersion(String appid);
+    SysVersion getMaxVersion(String appid,String packageType);
 
     Page<SysVersion> getSysVersionPageList(Page page, SysVersionVo sysVersionVo);
 }

+ 53 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysAppManageServiceImpl.java

@@ -0,0 +1,53 @@
+package com.jzg.organization.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.po.SysAppManage;
+import com.jzg.commons.entity.po.SysUploadFiles;
+import com.jzg.commons.entity.vo.SysAppManageVo;
+import com.jzg.commons.util.MinioUtils;
+import com.jzg.organization.mapper.SysAppManageMapper;
+import com.jzg.organization.mapper.SysUploadFilesMapper;
+import com.jzg.organization.service.SysAppManageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class SysAppManageServiceImpl extends ServiceImpl<SysAppManageMapper, SysAppManage> implements SysAppManageService {
+
+    @Autowired
+    private SysUploadFilesMapper sysUploadFilesMapper;
+
+    @Override
+    public Page<SysAppManage> queryAppList(SysAppManageVo sysAppManageVo) {
+        try {
+            LambdaQueryWrapper<SysAppManage> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            Page<SysAppManage> page = baseMapper.selectPage(sysAppManageVo.getPage(), lambdaQueryWrapper);
+            page.getRecords().forEach(item -> {
+                SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectById(item.getAppIcon());
+                item.setDownloadUrl(MinioUtils.getPresignedObjectUrl(sysUploadFiles.getBucketName(), sysUploadFiles.getFileName()));
+            });
+            return page;
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new RuntimeException("查询失败");
+        }
+    }
+
+    @Override
+    public HttpResult deleteById(String id) {
+        SysAppManage sysAppManage = baseMapper.selectById(id);
+        if (sysAppManage == null) {
+            return HttpResult.error("该应用不存在");
+        }
+        try {
+            baseMapper.deleteById(id);
+            return HttpResult.ok("删除成功");
+        } catch (Exception e) {
+            return HttpResult.error("删除失败");
+        }
+    }
+}

+ 6 - 6
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysVersionServiceImpl.java

@@ -10,8 +10,6 @@ import com.jzg.organization.service.SysVersionService;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 /**
  * @author quchen
  * @date 2025/6/19 9:58
@@ -22,10 +20,12 @@ public class SysVersionServiceImpl extends ServiceImpl<SysVersionMapper, SysVers
     @Resource
     private SysVersionMapper sysVersionMapper;
     @Override
-    public SysVersion getMaxVersion(String appid) {
-        String maxVersion = sysVersionMapper.getMaxVersion(appid);
-        List<SysVersion> list = sysVersionMapper.selectList(new LambdaQueryWrapper<SysVersion>().eq(SysVersion::getVersion, maxVersion));
-        return list.get(0);
+    public SysVersion getMaxVersion(String appid,String packageType) {
+        return  baseMapper.selectOne(new LambdaQueryWrapper<>(SysVersion.class)
+                .eq(SysVersion::getAppId, appid)
+                .eq(SysVersion::getPackageType, packageType)
+                .orderByDesc(SysVersion::getCreateTime)
+                .last("LIMIT 1"));
     }
 
     @Override

+ 1 - 1
tenant/organization/src/main/resources/application-test.yml

@@ -3,7 +3,7 @@ server:
 spring:
   cloud:
     nacos:
-      server-addr: 172.24.144.223:8848
+      server-addr: 192.168.0.250:8848
       username: nacos
       password: nacos
       config:

+ 1 - 0
tenant/organization/src/main/resources/application.yml

@@ -92,6 +92,7 @@ tenant:
     - wechat_customer_service_recording
     - ins_fee_audit
     - sys_user_jzg_info_bank_card_record
+    - sys_app_manage
 
 
   ignoreLoginNames: