Răsfoiți Sursa

保险公司日志分文件夹存放

wks 3 ani în urmă
părinte
comite
1e036f7bda

+ 95 - 0
src/main/java/com/ydtech/constants/InsuranceEnum.java

@@ -0,0 +1,95 @@
+package com.ydtech.constants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+/**
+ * @description: 保险公司映射
+ * @author: wenks
+ * @date: 2023/9/6 9:19
+ **/
+@AllArgsConstructor
+@Getter
+public enum InsuranceEnum {
+
+    AAIC("AAIC", "安信农业保险股份有限公司", ""),
+    ABIC("ABIC", "安邦财产保险股份有限公司", ""),
+    ACIC("ACIC", "安诚财产保险股份有限公司", ""),
+    AHIC("AHIC", "安华农业保险股份有限公司", ""),
+    AICS("AICS", "永诚财产保险股份有限公司", "yongcheng"),
+    AIGC("AIGC", "美亚财产保险有限公司", ""),
+    AMIC("AMIC", "中航安盟财产保险有限公司", ""),
+    APIC("APIC", "安心财产保险有限责任公司", ""),
+    AZCN("AZCN", "京东安联财产保险有限公司", ""),
+    BGIC("BGIC", "北部湾财产保险股份有限公司", ""),
+    BOCI("BOCI", "中银保险有限公司", ""),
+    BPIC("BPIC", "渤海财产保险股份有限公司", ""),
+    CAIC("CAIC", "长安责任保险股份有限公司", ""),
+    CATH("CATH", "国泰财产保险有限责任公司", ""),
+    CCBP("CCBP", "建信财产保险有限公司", ""),
+    CCIC("CCIC", "中国大地财产保险股份有限公司", ""),
+    CHAC("CHAC", "诚泰财产保险股份有限公司", ""),
+    CICP("CICP", "中华联合财产保险股份有限公司", ""),
+    CJCX("CJCX", "长江财产保险股份有限公司", ""),
+    CPIC("CPIC", "中国太平洋财产保险股份有限公司", ""),
+    CRCI("CRCI", "中国铁路财产保险自保有限公司", ""),
+    CRIC("CRIC", "富德财产保险股份有限公司", ""),
+    DBIC("DBIC", "都邦财产保险股份有限公司", ""),
+    DHIC("DHIC", "鼎和财产保险股份有限公司", ""),
+    DICC("DICC", "史带财产保险股份有限公司", ""),
+    DJPC("DJPC", "大家财产保险有限责任公司", ""),
+    EAIC("EAIC", "易安财产保险股份有限公司", ""),
+    FPIC("FPIC", "富邦财产保险有限公司", ""),
+    GPIC("GPIC", "中国人寿财产保险股份有限公司", "renshou"),
+    GYIC("GYIC", "国元农业保险股份有限公司", ""),
+    HAIC("HAIC", "华安财产保险股份有限公司", ""),
+    HBIC("HBIC", "恒邦财产保险股份有限公司", "hengbang"),
+    HGIC("HGIC", "海峡金桥财产保险股份有限公司", ""),
+    HHBX("HHBX", "华海财产保险股份有限公司", ""),
+    HNIC("HNIC", "华农财产保险股份有限公司", ""),
+    HTIC("HTIC", "华泰财产保险有限公司", ""),
+    HYIC("HYIC", "现代财产保险(中国)有限公司", ""),
+    JLIC("JLIC", "久隆财产保险有限公司", ""),
+    JTIC("JTIC", "锦泰财产保险股份有限公司", ""),
+    LIHI("LIHI", "利宝保险有限公司", ""),
+    MACN("MACN", "亚太财产保险有限公司", ""),
+    MSIC("MSIC", "三井住友海上火灾保险(中国)有限公司", ""),
+    PAIC("PAIC", "中国平安财产保险股份有限公司", ""),
+    PICC("PICC", "中国人民财产保险股份有限公司", ""),
+    QHIC("QHIC", "新疆前海联合财产保险股份有限公司", ""),
+    RSIC("RSIC", "融盛财产保险股份有限公司", ""),
+    SJIC("SJIC", "日本财产保险(中国)有限公司", ""),
+    SMIC("SMIC", "阳光农业相互保险公司", ""),
+    SPIC("SPIC", "三星财产保险(中国)有限公司", ""),
+    TAIC("TAIC", "天安财产保险股份有限公司", ""),
+    TKIC("TKIC", "泰康在线财产保险股份有限公司", ""),
+    TMNF("TMNF", "东京海上日动火灾保险(中国)有限公司", ""),
+    TPBX("TPBX", "安盛天平财产保险股份有限公司", "ansheng"),
+    TPIC("TPIC", "太平财产保险有限公司", ""),
+    TSBX("TSBX", "泰山财产保险股份有限公司", ""),
+    ULIC("ULIC", "合众财产保险股份有限公司", ""),
+    UTIC("UTIC", "众诚汽车保险股份有限公司", ""),
+    XAIC("XAIC", "鑫安汽车保险股份有限公司", ""),
+    XDCX("XDCX", "国任财产保险股份有限公司", "guoren"),
+    YAIC("YAIC", "永安财产保险股份有限公司", "yongan"),
+    YDCX("YDCX", "英大泰和财产保险股份有限公司", ""),
+    YGBX("YGBX", "阳光财产保险股份有限公司", ""),
+    YPIC("YPIC", "黄河财产保险股份有限公司", ""),
+    YZIC("YZIC", "燕赵财产保险股份有限公司", ""),
+    ZAPA("ZAPA", "众安在线财产保险股份有限公司", "zongan"),
+    ZFIC("ZFIC", "珠峰财产保险股份有限公司", ""),
+    ZKIC("ZKIC", "紫金财产保险股份有限公司", "zijin"),
+    ZLIC("ZLIC", "中路财产保险股份有限公司", ""),
+    ZMBX("ZMBX", "中煤财产保险股份有限公司", "zhongmei"),
+    ZSIC("ZSIC", "浙商财产保险股份有限公司", ""),
+    ZYBX("ZYBX", "中原农业保险股份有限公司", ""),
+    ZYIC("ZYIC", "中意财产保险有限公司", "");
+
+    private String code;
+
+    private String name;
+
+    private String pinyin;
+
+}

+ 17 - 10
src/main/java/com/ydtech/modules/order/components/InsCrawlerOrderComponents.java

@@ -1,7 +1,9 @@
 package com.ydtech.modules.order.components;
 
 import com.alibaba.fastjson.JSON;
+import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.order.utils.InsuranceLog;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -21,13 +23,12 @@ public class InsCrawlerOrderComponents {
         this.restTemplate = restTemplate;
     }
 
-    public <T, B> B post(String url, String message, @Nullable T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
+    public <T, B> B post(String url, String companyId, String message, @Nullable T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
         HttpEntity<T> yaQuoteInfoVoHttpEntity = new HttpEntity<>(requestBody, httpHeaders);
 
         String request = JSON.toJSONString(requestBody);
-        log.info("---------> {} \n\t---------> URL: {} \n\t---------> 请求参数: {}", message, url, request);
-
+        InsuranceLog.infoLog(companyId, "---------> {} \n\t---------> URL: {} \n\t---------> 请求参数: {}", message, url, request);
         ResponseEntity<B> stringResponseEntity = restTemplate.postForEntity(url, yaQuoteInfoVoHttpEntity, responseType);
         B body = stringResponseEntity.getBody();
         if (body == null) {
@@ -35,18 +36,24 @@ public class InsCrawlerOrderComponents {
         }
 
         String response = JSON.toJSONString(body);
-        log.info("---------> {} \n\t---------> 响应参数:{}", message, response);
+        InsuranceLog.infoLog(companyId, "---------> {} \n\t---------> 响应参数:{}", message, response);
         return body;
     }
 
-    public <T, B> B request(String url, String companyName, String apiType, T requestBody, Class<B> responseType) {
-        String message = companyName + apiType;
-        return this.post(url, message, requestBody, responseType, new HttpHeaders());
+    public <T, B> B request(String url, String companyId, String apiType, T requestBody, Class<B> responseType) {
+        // 获取保险公司枚举
+        String substring = companyId.substring(0, 4);
+        InsuranceEnum insuranceEnum = Enum.valueOf(InsuranceEnum.class, substring);
+        return this.request(url, insuranceEnum, apiType, requestBody, responseType, new HttpHeaders());
+    }
+
+    public <T, B> B request(String url, InsuranceEnum insuranceEnum, String apiType, T requestBody, Class<B> responseType) {
+        return this.request(url, insuranceEnum, apiType, requestBody, responseType, new HttpHeaders());
     }
 
-    public <T, B> B request(String url, String companyName, String apiType, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
-        String message = companyName + apiType;
-        return this.post(url, message, requestBody, responseType, httpHeaders);
+    public <T, B> B request(String url, InsuranceEnum insuranceEnum, String apiType, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
+        String message = insuranceEnum.getName() + apiType;
+        return this.post(url, insuranceEnum.getPinyin(), message, requestBody, responseType, httpHeaders);
     }
 
 }

+ 4 - 2
src/main/java/com/ydtech/modules/order/components/ZhongmeiRequestApiComponents.java

@@ -3,12 +3,14 @@ package com.ydtech.modules.order.components;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.ydtech.config.properties.ZmApiConfigurationProperties;
+import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.entity.api.zm.BaseRequest;
 import com.ydtech.modules.order.entity.api.zm.BaseResponse;
 import com.ydtech.modules.order.entity.api.zm.request.*;
 import com.ydtech.modules.order.entity.api.zm.response.*;
 import com.ydtech.modules.order.utils.AESUtilsWithDataBase;
+import com.ydtech.modules.order.utils.InsuranceLog;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -57,11 +59,11 @@ public class ZhongmeiRequestApiComponents {
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
 
         String jsonString = JSON.toJSONString(q, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
-        log.info("---------> URl: {} \n---------> 请求参数:{}", url, jsonString);
+        InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "---------> URl: {} \n---------> 请求参数:{}", url, jsonString);
         // 加密
         String sessionKey = properties.getSessionKey();
         String s = AESUtilsWithDataBase.encryptECBPK5Hex(jsonString, sessionKey);
-        log.info("---------> 加密后的参数:{}", s);
+        InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "---------> 加密后的参数:{}", s);
         HttpEntity<String> httpEntity = new HttpEntity<>(s, httpHeaders);
         ResponseEntity<String> response = restTemplate.postForEntity(url, httpEntity, String.class);
         String body = response.getBody();

+ 3 - 2
src/main/java/com/ydtech/modules/order/components/ZijinRequestApiComponents.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.components;
 
 
 import com.ydtech.config.properties.ZjApiConfigurationProperties;
+import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.constants.OrderCacheConstant;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.RequestUrl;
@@ -59,7 +60,7 @@ public class ZijinRequestApiComponents {
     }
 
     public <T, B extends BaseResponse> B request(String url, String desc, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
-        B b = insCrawlerOrderComponents.request(url, "紫金财险", desc, requestBody, responseType, httpHeaders);
+        B b = insCrawlerOrderComponents.request(url, InsuranceEnum.ZKIC, desc, requestBody, responseType, httpHeaders);
         ResultEnum.verify(b.getRtnCode(), b.getRtnMsg());
         return b;
     }
@@ -171,7 +172,7 @@ public class ZijinRequestApiComponents {
      */
     public GetAccessTokenResponse getAccessToken(GetAccessTokenRequest getAccessTokenRequest) {
         String url = zjApiConfigurationProperties.getAccessTokenUrl();
-        GetAccessTokenResponse response = insCrawlerOrderComponents.request(url, "紫金财险", "为接入方提供获取token服务", getAccessTokenRequest, GetAccessTokenResponse.class);
+        GetAccessTokenResponse response = insCrawlerOrderComponents.request(url, InsuranceEnum.ZKIC, "为接入方提供获取token服务", getAccessTokenRequest, GetAccessTokenResponse.class);
         ResultEnum.verify(response.getRtnCode(), response.getRtnMsg());
         return response;
     }

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/vo/zj/ZjVehicleProductsVo.java

@@ -34,7 +34,7 @@ public class ZjVehicleProductsVo {
         return Arrays.stream(values).map(x -> {
             List<QueryVehicProductsResponse.ProductDtoListDTO> collect = productDtoList.stream().filter(e -> x.getCode().equals(e.getRiskCode())).collect(Collectors.toList());
             return new ZjVehicleProductsVo(x.getCode(), x.getName(), collect);
-        }).collect(Collectors.toList());
+        }).filter(x -> !x.getProductDtoListDTOS().isEmpty()).collect(Collectors.toList());
     }
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/InsCrawlerOrderService.java

@@ -30,7 +30,7 @@ public interface InsCrawlerOrderService extends BaseOrderService<Object> {
      * @param insCompanyName 保险公司名称
      * @return 是否成功登陆
      */
-    void isLogin(PtlAgreementAttributionDto attribution, String insCompanyName);
+    void isLogin(PtlAgreementAttributionDto attribution,String companyId, String insCompanyName);
 
     /**
      * 获取驾意险

+ 10 - 9
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.enums.InsOrderStatus;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
@@ -57,10 +58,11 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
 
     @Override
-    public void isLogin(PtlAgreementAttributionDto attribution, String insCompanyName) {
+    public void isLogin(PtlAgreementAttributionDto attribution, String companyId, String insCompanyName) {
+
         String apiUrl = ptlCrawlerApiService.getByTemplateId(attribution.getTemplateId(), PtlCrawlerApiType.API_1);
         CrawlerLoginRequest crawlerLoginRequest = new CrawlerLoginRequest(attribution);
-        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insCompanyName, PtlCrawlerApiType.API_2.getDesc(), crawlerLoginRequest, CrawlerBaseResponse.class);
+        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, companyId, PtlCrawlerApiType.API_2.getDesc(), crawlerLoginRequest, CrawlerBaseResponse.class);
 
         AssertionUtils.isSucceed(response.getCode() == 200, insCompanyName + "登录用户名和密码不正确");
     }
@@ -78,9 +80,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         BeanUtils.copyProperties(quoteInfoVo, crawlerQuoteRequest);
 
         crawlerQuoteRequest.setUsername(ptlAgreementAttribution.getUsername());
-        String insCompanyName = ptlAgreementAttribution.getInsCompanyName();
         // 发送请求
-        CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, insCompanyName, PtlCrawlerApiType.API_2.getDesc(), crawlerQuoteRequest, CrawlerQuoteResponse.class);
+        CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(), PtlCrawlerApiType.API_2.getDesc(), crawlerQuoteRequest, CrawlerQuoteResponse.class);
         if (response.getCode() != 200) {
             throw new SystemException(response.getMessage());
         }
@@ -97,7 +98,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno());
         CrawlerImageRequest crawlerImageRequest = new CrawlerImageRequest(insAreaCompany.getInsOrderNo(), CrawlerImageRequest.toB64phoListDTO(insTaskImagesBase64s));
         // 发送请求
-        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_3.getDesc(), crawlerImageRequest, CrawlerBaseResponse.class);
+        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_3.getDesc(), crawlerImageRequest, CrawlerBaseResponse.class);
         if (response.getCode() != 200) {
             throw new SystemException(response.getMessage());
         }
@@ -111,7 +112,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_4);
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerAuditResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_4.getDesc(), crawlerBaseRequest, CrawlerAuditResponse.class);
+        CrawlerAuditResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_4.getDesc(), crawlerBaseRequest, CrawlerAuditResponse.class);
         if (crawlerAuditResponse.getCode() != 200) {
             throw new SystemException(crawlerAuditResponse.getMessage());
         }
@@ -137,7 +138,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_5);
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerVerifyPaymentResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_5.getDesc(), crawlerBaseRequest, CrawlerVerifyPaymentResponse.class);
+        CrawlerVerifyPaymentResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_5.getDesc(), crawlerBaseRequest, CrawlerVerifyPaymentResponse.class);
 
         // 0未缴费,1已缴费
         if (crawlerAuditResponse.getState() == CrawlerVerifyPaymentConstants.PAID) {
@@ -156,7 +157,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_6);
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerPolicyPrintResponse request = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_6.getDesc(), crawlerBaseRequest, CrawlerPolicyPrintResponse.class);
+        CrawlerPolicyPrintResponse request = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(), PtlCrawlerApiType.API_6.getDesc(), crawlerBaseRequest, CrawlerPolicyPrintResponse.class);
 
         if (request.getCode() != 200) {
             throw new SystemException(request.getMessage());
@@ -228,7 +229,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
         CrawlerDrivingInsuranceRequest crawlerDrivingInsuranceRequest = new CrawlerDrivingInsuranceRequest(ptlAgreementAttribution.getUsername());
 
-        CrawlerDrivingInsuranceResponse request = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyName(), PtlCrawlerApiType.API_7.getDesc(), crawlerDrivingInsuranceRequest, CrawlerDrivingInsuranceResponse.class);
+        CrawlerDrivingInsuranceResponse request = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(), PtlCrawlerApiType.API_7.getDesc(), crawlerDrivingInsuranceRequest, CrawlerDrivingInsuranceResponse.class);
         return HttpResult.ok(request.getOverlayPlanList());
     }
 

+ 3 - 2
src/main/java/com/ydtech/modules/order/utils/AESUtilsWithDataBase.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.utils;
 
 import com.alibaba.fastjson.JSON;
+import com.ydtech.constants.InsuranceEnum;
 import lombok.extern.slf4j.Slf4j;
 
 import javax.crypto.Cipher;
@@ -106,10 +107,10 @@ public class AESUtilsWithDataBase {
 
 
     public static <T> T decryptMessage(String s, Class<T> c, String message, String sessionKey) {
-        log.info("---------> 解密前的参数:{}", s);
+        InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "---------> 解密前的参数:{}", s);
         // 解密
         String text = decryptECBPK5Hex(s.replace("\n", ""), sessionKey);
-        log.info("---------> {}:{}", message, text);
+        InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "---------> {}:{}", message, text);
         return JSON.parseObject(text, c);
     }
 

+ 32 - 0
src/main/java/com/ydtech/modules/order/utils/InsuranceLog.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.order.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+/**
+ * @description: 保险公司日志
+ * @author: wenks
+ * @date: 2023/9/5 18:25
+ **/
+public class InsuranceLog {
+
+    private final static String INSURE_NAME = "insureId";
+
+    private InsuranceLog() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    public static final Logger logger = LoggerFactory.getLogger(InsuranceLog.class);
+
+    public static void errorLog(String devId, String message, Object... objects) {
+        MDC.put(INSURE_NAME, devId);
+        logger.error(message);
+    }
+
+    public static void infoLog(String devId, String message, Object... objects) {
+        MDC.put(INSURE_NAME, devId);
+        logger.info(message, objects);
+    }
+
+}

+ 3 - 2
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java

@@ -157,7 +157,7 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         //  账号信息查询
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         //2023-08-28 lig 增加  解决前端空对象为null问题,改为返回为空对象
-        if(null == ptlAgreementAttribution){
+        if (null == ptlAgreementAttribution) {
             ptlAgreementAttribution = new PtlAgreementAttribution();
             ptlAgreementAttribution.setId("");
             ptlAgreementAttribution.setInsCompanyId("");
@@ -262,7 +262,8 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         // 验证用户名密码 python api 对接需要验证用户名
         if (!ObjectUtils.isEmpty(attribution.getApiType()) && PtlApiType.PTL_API_2.getCode() == attribution.getApiType()) {
             String nameSimple = esmInsCompany.getNamesimple();
-            insCrawlerOrderController.isLogin(attribution, nameSimple);
+            String id = esmInsCompany.getId();
+            insCrawlerOrderController.isLogin(attribution, id, nameSimple);
         }
 
         ptlAgreement.setCompaniesType(esmInsCompany.getType());

+ 60 - 38
src/main/resources/logback-spring.xml

@@ -3,7 +3,7 @@
     <springProperty scope="context" name="logPath" source="logging.path"/>
     <property name="log.path" value="${logPath}"/>
 
-<!--    <property name="log.path" value="./logs"/>-->
+    <!--    <property name="log.path" value="./logs"/>-->
     <property name="console.log.pattern"
               value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
     <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
@@ -29,10 +29,10 @@
             <pattern>${log.pattern}</pattern>
             <charset>utf-8</charset>
         </encoder>
-<!--        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
-<!--            &lt;!&ndash; 过滤的级别 &ndash;&gt;-->
-<!--            <level>INFO</level>-->
-<!--        </filter>-->
+        <!--        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
+        <!--            &lt;!&ndash; 过滤的级别 &ndash;&gt;-->
+        <!--            <level>INFO</level>-->
+        <!--        </filter>-->
     </appender>
 
     <!-- 系统日志输出 -->
@@ -117,7 +117,7 @@
             <!-- 日志文件名格式 -->
             <fileNamePattern>${log.path}/sys-alltrust.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 
-<!--            <fileNamePattern>${log.path}/sys-alltrust.%d{yyyy-MM-dd}.log</fileNamePattern>-->
+            <!--            <fileNamePattern>${log.path}/sys-alltrust.%d{yyyy-MM-dd}.log</fileNamePattern>-->
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <maxFileSize>100MB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
@@ -126,48 +126,70 @@
         </rollingPolicy>
     </appender>
 
+    <appender name="insureInfo" class="ch.qos.logback.classic.sift.SiftingAppender">
+        <discriminator>
+            <key>insureId</key>
+            <defaultValue>default</defaultValue>
+        </discriminator>
+        <sift>
+            <appender name="INFO-${insureId}" class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <append>true</append>
+                <!--日志文件输出格式-->
+                <encoder>
+                    <pattern>${log.pattern}</pattern>
+                    <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+                </encoder>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                    <fileNamePattern>${log.path}\%d{yyyyMMdd}\${insureId}\${insureId}_info.log</fileNamePattern>
+                    <maxHistory>30</maxHistory>
+                </rollingPolicy>
+            </appender>
+        </sift>
+    </appender>
 
-<!--    &lt;!&ndash; info异步输出 &ndash;&gt;-->
-<!--    <appender name="async_info" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">-->
-<!--        &lt;!&ndash; 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 &ndash;&gt;-->
-<!--        <discardingThreshold>0</discardingThreshold>-->
-<!--        &lt;!&ndash; 更改默认的队列的深度,该值会影响性能.默认值为256 &ndash;&gt;-->
-<!--        <queueSize>512</queueSize>-->
-<!--        &lt;!&ndash; 添加附加的appender,最多只能添加一个 &ndash;&gt;-->
-<!--        <appender-ref ref="file_info"/>-->
-<!--    </appender>-->
-
-<!--    &lt;!&ndash; error异步输出 &ndash;&gt;-->
-<!--    <appender name="async_error" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">-->
-<!--        &lt;!&ndash; 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 &ndash;&gt;-->
-<!--        <discardingThreshold>0</discardingThreshold>-->
-<!--        &lt;!&ndash; 更改默认的队列的深度,该值会影响性能.默认值为256 &ndash;&gt;-->
-<!--        <queueSize>512</queueSize>-->
-<!--        &lt;!&ndash; 添加附加的appender,最多只能添加一个 &ndash;&gt;-->
-<!--        <appender-ref ref="file_error"/>-->
-<!--    </appender>-->
+    <!--    &lt;!&ndash; info异步输出 &ndash;&gt;-->
+    <!--    <appender name="async_info" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">-->
+    <!--        &lt;!&ndash; 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 &ndash;&gt;-->
+    <!--        <discardingThreshold>0</discardingThreshold>-->
+    <!--        &lt;!&ndash; 更改默认的队列的深度,该值会影响性能.默认值为256 &ndash;&gt;-->
+    <!--        <queueSize>512</queueSize>-->
+    <!--        &lt;!&ndash; 添加附加的appender,最多只能添加一个 &ndash;&gt;-->
+    <!--        <appender-ref ref="file_info"/>-->
+    <!--    </appender>-->
+
+    <!--    &lt;!&ndash; error异步输出 &ndash;&gt;-->
+    <!--    <appender name="async_error" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">-->
+    <!--        &lt;!&ndash; 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 &ndash;&gt;-->
+    <!--        <discardingThreshold>0</discardingThreshold>-->
+    <!--        &lt;!&ndash; 更改默认的队列的深度,该值会影响性能.默认值为256 &ndash;&gt;-->
+    <!--        <queueSize>512</queueSize>-->
+    <!--        &lt;!&ndash; 添加附加的appender,最多只能添加一个 &ndash;&gt;-->
+    <!--        <appender-ref ref="file_error"/>-->
+    <!--    </appender>-->
 
 
     <!--开发环境:打印控制台-->
     <springProfile name="dev,test,prod">
         <root level="debug">
-            <appender-ref ref="console" />
-            <appender-ref ref="file_console" />
-            <appender-ref ref="file_info" />
-            <appender-ref ref="file_error" />
-            <appender-ref ref="file_debug" />
-<!--            <appender-ref ref="custom_alltrust" />-->
+            <appender-ref ref="console"/>
+            <appender-ref ref="file_console"/>
+            <appender-ref ref="file_info"/>
+            <appender-ref ref="file_error"/>
+            <appender-ref ref="file_debug"/>
+            <!--报价保险公司-->
+            <appender-ref ref="insureInfo"/>
+            <!--            <appender-ref ref="custom_alltrust" />-->
         </root>
     </springProfile>
 
 
-<!--    &lt;!&ndash;系统操作日志&ndash;&gt;-->
-<!--    <root level="info">-->
-<!--        <appender-ref ref="console" />-->
-<!--&lt;!&ndash;        <appender-ref ref="async_info" />&ndash;&gt;-->
-<!--&lt;!&ndash;        <appender-ref ref="async_error" />&ndash;&gt;-->
-<!--        <appender-ref ref="file_console" />-->
-<!--    </root>-->
+    <!--    &lt;!&ndash;系统操作日志&ndash;&gt;-->
+    <!--    <root level="info">-->
+    <!--        <appender-ref ref="console" />-->
+    <!--&lt;!&ndash;        <appender-ref ref="async_info" />&ndash;&gt;-->
+    <!--&lt;!&ndash;        <appender-ref ref="async_error" />&ndash;&gt;-->
+    <!--        <appender-ref ref="file_console" />-->
+    <!--    </root>-->
 
     <!-- 添加永诚信息 -->
     <logger name="alltrust" additivity="false" level="debug">