Explorar el Código

1、永城接口修改转报不提示验证码 2

ligang134 hace 3 años
padre
commit
310960adba

+ 10 - 0
README.md

@@ -74,6 +74,16 @@
 
 
 
+**《掌柜鼎PC平台》临时更新公告**
+
+* 版本号:v0.0.3.4
+* 访问地址:http://sxzgkj.baoxianzhanggui.com/
+* 更新时间:2023-08-31 17:20  ~  2023-08-31 17:35
+* 更新内容:
+  1. 解决影响程序的bug
+
+
+
 
 
 

+ 8 - 1
src/main/java/com/ydtech/modules/ins/model/yc/CallBackRequest.java

@@ -93,7 +93,8 @@ public class CallBackRequest implements Serializable {
         CallBackRequest cbr = new CallBackRequest();
         if (StringUtils.isNotEmpty(str)) {
             String str222 = Base64Utils.getBase64Decode(str);
-            String paramStr = Base64Utils.getBase64Decode(str222);
+            String str333 = str222.replaceAll("\n", "");
+            String paramStr = Base64Utils.getBase64Decode(str333);
             String[] paramArr = paramStr.split("&");
 
             Map<String, String> reqMap = new HashMap<>();
@@ -119,4 +120,10 @@ public class CallBackRequest implements Serializable {
         }
         return cbr;
     }
+
+    public static void main(String[] args) {
+        String s = "ZEhKaGJuTk9iejB4TkRBd01EZ3pNVEV5TURjME9UQTRKblI1Y0dVOU5TWnlaWE4xYkhROU1DWmlhWHBmY0c5c2FXTjVYMjV2UFNaagphVjl3YjJ4cFkzbGZibTg5TVRFMFFqZ3dNekkyTWpBeU16QXdNVEF4TmpjbVltbDZYM0J2YkdsamVWOWhjSEJmYm04OUptTnBYM0J2CmJHbGplVjloY0hCZmJtODlOVEUwUWpnd016STJNakF5TXpBd01UQXhOamNtZVhkZmNHOXNhV041WDJGd2NGOXViejBtZVhkZmNHOXMKYVdONVgyNXZQU1pxY1hOMFlYUjFjejB4Sm5ONWMzUmhkSFZ6UFNacWNXMWxjM05oWjJVOVFWVlVUenJqZ0pEbW9Mamt2NTNwZ0pybwp2NGZqZ0pFajU1UzE1YTJRNVpXRzVZcWg1TGlhNVlxaExlZTlrZW1VZ0NaemVXMWxjM05oWjJVOUpuQmhlVjlrWVhSbFBUSXdNak10Ck1EZ3RNekVnTVRRNk1USTZOVGM9";
+
+        CallBackRequest cbr = CallBackRequest.buildCallBackParam(s);
+    }
 }

+ 27 - 6
src/main/java/com/ydtech/modules/ins/scheduler/InsOrderScheduler.java

@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -28,16 +29,36 @@ public class InsOrderScheduler {
     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
     Logger logger = LoggerFactory.getLogger(getClass());
 
-    @Autowired
+    @Resource
     InsOrderService insOrderService;
-    @Autowired
+    @Resource
     InsOrderTaskService insOrderTaskService;
-    @Autowired
+    @Resource
     InsTaskHistoryService insTaskHistoryService;
-    @Autowired
+    @Resource
     HuanongService huanongService;
-    @Autowired
+    @Resource
     HengbangService hengbangService;
+    @Resource
+    InsAlltrustApiService insYongchengApiService;
+
+
+
+    /**
+     * 永城定时任务
+     * 补传回调
+     * 每隔180秒执行
+     *
+     */
+    @Scheduled(fixedRate = 180000)
+    public void alltrustCallbackTask() {
+        logger.info("【定时任务执行 - 永城 - 补传回调】开始时间:" + dateFormat.format(new Date()) + "");
+
+        insYongchengApiService.callbackAnOrder();
+
+        logger.info("【定时任务执行 - 永城 - 补传回调】结束时间:" + dateFormat.format(new Date())+ "" );
+    }
+
 
     /**
      * 每天23点触发定时任务
@@ -125,4 +146,4 @@ public class InsOrderScheduler {
 
         return orderList.size();
     }
-}
+}

+ 5 - 0
src/main/java/com/ydtech/modules/ins/service/InsAlltrustApiService.java

@@ -71,6 +71,11 @@ public interface InsAlltrustApiService {
      */
     HttpResult callbackAnOrder(String quoteOrderNo);
 
+    /**
+     * 补传回调 根据订单状态 处理状态为待支付的
+     */
+    void callbackAnOrder();
+
 
     /**
      * (驾意险)意健险方案及险种查询接口

+ 54 - 25
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -258,31 +258,33 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             ModelsQueryResponse rd = xmlMapper.readValue(cleanStr, ModelsQueryResponse.class);
             List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = buildCarModel(rd);
 
-            long count = vehicleInfoList.stream().filter(x -> x.getModelCode().equals(carInfo.getModelCode())).count();
-
             BigDecimal matchNum = BigDecimal.ZERO;
-            if(count < 1 ){
-                //匹配车辆信息
-                vehicleInfoList.stream().forEach(a ->{
-                    //购置价匹配
-                    if(a.getVehiclePrice().equals(carInfo.getPurchasePrice())){
-                        carInfo.setModelCode(a.getVehicleId());
+            //匹配车辆信息
+            vehicleInfoList.stream().forEach(a ->{
+                //购置价匹配
+                if(a.getVehiclePrice().equals(carInfo.getPurchasePrice())){
+                    carInfo.setModelCode(a.getVehicleId());
 //                        carInfo.setCiModelCode(a.getModelCode());
-                        carInfo.setCiCarName(a.getVehicleName());
-                        carInfo.setModelcname(a.getVehicleName());
+                    carInfo.setCiCarName(a.getVehicleName());
+                    carInfo.setModelcname(a.getVehicleName());
 
-                        matchNum.add(BigDecimal.ONE);
-                    }
-                });
-                //未匹配
-                if(matchNum == BigDecimal.ZERO){
-                    carInfo.setModelCode(vehicleInfoList.get(0).getVehicleId());
-//                        carInfo.setCiModelCode(a.getModelCode());
-                    carInfo.setCiCarName(vehicleInfoList.get(0).getVehicleName());
-                    carInfo.setModelcname(vehicleInfoList.get(0).getVehicleName());
+                    matchNum.add(BigDecimal.ONE);
                 }
+            });
+            //未匹配
+            if(matchNum == BigDecimal.ZERO){
+                carInfo.setModelCode(vehicleInfoList.get(0).getVehicleId());
+//                        carInfo.setCiModelCode(a.getModelCode());
+                carInfo.setCiCarName(vehicleInfoList.get(0).getVehicleName());
+                carInfo.setModelcname(vehicleInfoList.get(0).getVehicleName());
             }
 
+//            long count = vehicleInfoList.stream().filter(x -> x.getModelCode().equals(carInfo.getModelCode())).count();
+//
+//            if(count < 1 ){
+//
+//            }
+
 
         } catch (IOException e) {
             throw new SystemException("车型查询接口异常,请联系管理。");
@@ -342,12 +344,13 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
         RuoteResponse rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
         if (null == rr) return HttpResult.error("远程请求报价失败");
-        quoteExternalApi(rr,quoteVo,iac,m);
         if (!rr.getHead().getErrorCode().equals("000000")) return HttpResult.error(rr.getHead().getErrorMessage());
+        RuoteResponse rr2 = quoteExternalApi(rr,quoteVo,iac,m);
+        if (!rr2.getHead().getErrorCode().equals("000000")) return HttpResult.error(rr2.getHead().getErrorMessage());
 
-        QuoteRespVo quoteRespVo = YcBuildData.buildQuoteRespVo(order, rr, yaQuoteInfoVo);
+        QuoteRespVo quoteRespVo = YcBuildData.buildQuoteRespVo(order, rr2, yaQuoteInfoVo);
         //8 生成订单
-        iac = response_order(order, quoteRespVo, m, rr, quoteVo);
+        iac = response_order(order, quoteRespVo, m, rr2, quoteVo);
 //            updateApiLog(apiLog, iac);
         quoteRespVo.setCompanyId(iac.getId());
 
@@ -361,9 +364,11 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     /**
      * 报价响应处理
      */
-    public void quoteExternalApi(RuoteResponse rr,BaseQuoteVo<AccidentalDrivingVo> quoteVo,InsAreaCompany iac,Ruote m ) {
+    public RuoteResponse quoteExternalApi(RuoteResponse rr,BaseQuoteVo<AccidentalDrivingVo> quoteVo,InsAreaCompany iac,Ruote m ) {
 
-        if (rr.getHead().getErrorCode().equals("000000")) {
+        int i = 0;
+        if (rr.getHead().getErrorCode().equals("000000") && i < 3) {
+            i++;
             String cCheckCodeJQ = rr.getVhl().getCCheckCodeJQ();
             String cCheckCodeSY = rr.getVhl().getCCheckCodeSY();
 
@@ -388,7 +393,10 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 m.getRequestLabel().getCondition().getVhl().setCCheckCodeSY(quoteVo.getRenewalCodeSy());
                 m.getRequestLabel().getCondition().getVhl().setCQryCdeSY(rr.getVhl().getCQryCdeSY());
 
+//                return requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
+//                RuoteResponse rrTemp = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
                 rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
+                quoteExternalApi(rr,quoteVo,iac,m );
 
 
 //                if(ocrMap.get("code").equals("400")){
@@ -410,6 +418,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             }
         }
 
+        return rr;
+
 
     }
 
@@ -625,12 +635,14 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         HttpResult httpResult = new HttpResult();
 
         try {
-            InsAreaCompany iac = insAreaCompanyService.getByInsOrderNo(quoteOrderNo);
+            InsAreaCompany iac = insAreaCompanyService.getById(quoteOrderNo);
             InsOrders order = insOrdersService.getById(iac.getOrderno());
             if (iac == null) {
                 return HttpResult.error("报价订单不存在");
             }
 
+            if(StringUtils.isEmpty(iac.getAgreementId()))return HttpResult.error("协议号空");
+
             // 获取协议配置信息
             YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
             //0 支付回调 1核保回调 5直接返回字符串信息
@@ -700,6 +712,23 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         }
         return httpResult;
     }
+    /**
+     * 补传回调
+     */
+    @Override
+    public void callbackAnOrder() {
+
+        LambdaQueryWrapper<InsAreaCompany> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(InsAreaCompany::getOrderstatus,InsOrderStatus.S_2.getCode());
+        List<InsAreaCompany> list = insAreaCompanyService.list(lqw);
+
+        if(null != list && list.size()>0){
+            list.stream().forEach(a ->{
+                callbackAnOrder(a.getId());
+            });
+        }
+
+    }
 
     /**
      * 6 电子保单