Prechádzať zdrojové kódy

fix: 保险购买报错问题

luofeiyun 1 týždeň pred
rodič
commit
1a00d9a521

+ 0 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/insurance/InsuranceController.java

@@ -78,8 +78,6 @@ public class InsuranceController {
         return success(true);
     }
 
-    @PostMapping("/notif")
-
     @GetMapping("/queryEpolicy")
     @Operation(summary = "根据id获取电子保单")
     @OperateLog(type = API)

+ 2 - 13
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/insurance/InsuranceServiceImpl.java

@@ -1,7 +1,6 @@
 package com.yc.ship.module.trade.service.insurance;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.http.HttpUtil;
@@ -10,7 +9,6 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.yc.ship.framework.common.exception.ServiceException;
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -21,8 +19,6 @@ import com.yc.ship.module.product.service.voyage.VoyageService;
 import com.yc.ship.module.trade.api.insurance.dto.InsuranceApplyReqDTO;
 import com.yc.ship.module.trade.api.insurance.dto.InsuranceOrderInfoDTO;
 import com.yc.ship.module.trade.api.insurance.dto.InsuredDTO;
-import com.yc.ship.module.trade.api.insurance.dto.InsuredRespDTO;
-import com.yc.ship.module.trade.controller.admin.insurance.vo.HccResult;
 import com.yc.ship.module.trade.controller.admin.insurance.vo.InsuranceData;
 import com.yc.ship.module.trade.controller.admin.insurance.vo.InsurancePageReqVO;
 import com.yc.ship.module.trade.controller.admin.insurance.vo.InsuranceRespVO;
@@ -32,15 +28,10 @@ import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
 import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
 import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
 import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
-import com.yc.ship.module.trade.enums.CardTypeEnum;
-import com.yc.ship.module.trade.enums.CredentialTypeEnum;
 import com.yc.ship.module.trade.enums.InsuranceStatusEnum;
-import com.yc.ship.module.trade.service.order.TradeOrderService;
-import com.yc.ship.module.trade.utils.CommonUUCodeUtils;
 import com.yc.ship.module.trade.utils.InsuranceRequestHelper;
 import com.yc.ship.module.trade.utils.InsuranceUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Value;
@@ -49,9 +40,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -157,7 +145,7 @@ public class InsuranceServiceImpl implements InsuranceService {
         insuranceOrderInfoDTO.setBeginDate(DateUtil.format(voyage.getBoardingTime(), "yyyy-MM-dd"));
         insuranceOrderInfoDTO.setEndDate(DateUtil.format(voyage.getLeaveTime(), "yyyy-MM-dd"));
         insuranceOrderInfoDTO.setCurrencyCode("CNY");
-        insuranceOrderInfoDTO.setBizType(1);
+        insuranceOrderInfoDTO.setBizType(0);
         insuranceOrderInfoDTO.setApplicantType(1);
         insuranceOrderInfoDTO.setApplicant("宜昌长江国际旅行社有限公司");
         insuranceOrderInfoDTO.setApplicantCertificateType(6);
@@ -195,6 +183,7 @@ public class InsuranceServiceImpl implements InsuranceService {
         // 开始投保
         CommonResult commonResult = insuranceUtil.sendInsuranceApply(insuranceApplyReqDTO);
         if(!commonResult.isSuccess()) {
+            Object checkedData = commonResult.getCheckedData();
             throw exception0(commonResult.getCode(),commonResult.getMsg());
         }
         //保存投保信息

+ 8 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/utils/InsuranceUtil.java

@@ -93,12 +93,17 @@ public class InsuranceUtil {
             }
 
             log.info("阳光系统响应内容: {}", responseBody);
+            JSONObject responseBodyJson = JSONObject.parseObject(responseBody);
 
             if (response.getStatusCode() == HttpStatus.OK) {
-                // 返回阳光系统的原始响应内容
-                return CommonResult.success(responseBody);
+                String status = responseBodyJson.getString("status");
+                if("FAIL".equals(status)) {
+                    return CommonResult.error(500, "阳光系统投保返回错误: " + response.getStatusCode() + responseBody);
+                }else {
+                    return CommonResult.success(responseBody);
+                }
             } else {
-                return CommonResult.error(500, "阳光系统返回错误: " + response.getStatusCode() + responseBody);
+                return CommonResult.error(500, "阳光系统投保返回错误: " + response.getStatusCode() + responseBody);
             }
 
         } catch (Exception e) {