Ver código fonte

保险功能完善

lishiqiang 1 semana atrás
pai
commit
2df96f9d59

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/vo/VoyageRespVO.java

@@ -8,6 +8,7 @@ import com.yc.ship.module.resource.api.route.dto.RouteRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -24,6 +25,9 @@ public class VoyageRespVO {
     @ExcelProperty("航次名称")
     private String name;
 
+    @Schema(description = "基础价格")
+    private BigDecimal basicPrice;
+
 
     @Schema(description = "航次名称-带航向")
     private String fname;

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyage/VoyageDO.java

@@ -6,6 +6,7 @@ import com.sun.xml.bind.v2.TODO;
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -106,6 +107,9 @@ public class VoyageDO extends TenantBaseDO {
      */
     @TableField(exist = false)
     private Integer direction;
+
+    @TableField(exist = false)
+    private BigDecimal basicPrice;
     /**
      * 集合地点
      */

+ 2 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyage/VoyageMapper.java

@@ -89,6 +89,8 @@ public interface VoyageMapper extends BaseMapperX<VoyageDO> {
                 .orderByAsc(VoyageDO::getStartTime));
     }
 
+    List<VoyageDO> selectListCalendar2(@Param("vo") VoyageCalendarReqVO reqVO);
+
     default List<VoyageDO> selectListByShipId(Long shipId) {
         return selectList(new LambdaQueryWrapperX<VoyageDO>()
                 .eq(VoyageDO::getShipId, shipId)

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java

@@ -414,7 +414,7 @@ public class VoyageServiceImpl implements VoyageService {
 
     @Override
     public List<VoyageDO> getListCalendar(VoyageCalendarReqVO reqVO) {
-        return voyageMapper.selectListCalendar(reqVO);
+        return voyageMapper.selectListCalendar2(reqVO);
     }
 
     @Override

+ 17 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyage/VoyageMapper.xml

@@ -12,6 +12,23 @@
          select  w.*,r.direction from product_voyage w inner join resource_route r on w.route_id = r.id
          where w.deleted = 0 and r.deleted = 0 and w.ship_id = #{shipId} and w.start_time > now() and w.shelf_status = 1 and w.channel like '%1%' order by w.create_time asc;
     </select>
+    <select id="selectListCalendar2" resultType="com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO">
+        select w.*,r.basic_price basicPrice from product_voyage w inner join product_price_voyage r on w.route_id = r.id
+        where w.deleted = 0 and r.deleted = 0
+        <if test="vo.shipId != null and vo.shipId != ''">
+            and w.ship_id = #{shipId}
+        </if>
+        <if test="vo.startDate != null and vo.startDate != ''">
+            and w.start_time >= #{vo.startDate}
+        </if>
+        <if test="vo.endDate != null and vo.endDate != ''">
+            and w.start_time &lt;= #{vo.endDate}
+        </if>
+        <if test="vo.channel != null and vo.channel != ''">
+            and w.channel like concat('%',#{vo.channel},'%')
+        </if>
+         and w.shelf_status = 1 order by w.start_time asc;
+    </select>
     <select id="selectVoyageListByShipIdAndDate"
             resultType="com.yc.ship.module.product.controller.app.voyage.vo.AppVoyageDayRespVO">
         select w.id voyage_id, w.name as voyage_name,

+ 1 - 1
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/api/insurance/InsuranceApi.java

@@ -19,7 +19,7 @@ public interface InsuranceApi {
 
     @Operation(summary = "申请投保")
     @PermitAll
-    CommonResult<InsuredRespDTO> applyInsurance(InsuranceApplyReqDTO reqDTO);
+    CommonResult<Boolean> applyInsurance(InsuranceApplyReqDTO reqDTO);
 
 
     @Operation(summary = "通过订单号退保")

+ 1 - 0
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/api/insurance/dto/InsuranceApplyReqDTO.java

@@ -10,6 +10,7 @@ import java.util.List;
 public class InsuranceApplyReqDTO {
 
     /** 服务类型 */
+    private Long orderId;
     private String service;
 
     /** 回调URL */

+ 3 - 4
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/api/insurance/InsuranceApiImpl.java

@@ -20,10 +20,9 @@ public class InsuranceApiImpl implements InsuranceApi {
     private InsuranceService insuranceService;
 
     @Override
-    public CommonResult<InsuredRespDTO> applyInsurance(InsuranceApplyReqDTO reqDTO) {
-        //TODO: 待实现
-        return null;
-//        return insuranceService.applyInsurance(reqDTO);
+    public CommonResult<Boolean> applyInsurance(InsuranceApplyReqDTO reqDTO) {
+        boolean res = insuranceService.applyInsurance(reqDTO.getOrderId());
+        return CommonResult.success(res);
     }
 
     @Override

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/insurance/InsuranceService.java

@@ -50,7 +50,7 @@ public interface InsuranceService {
      *
      * @return
      */
-    void applyInsurance(Long orderId);
+    boolean applyInsurance(Long orderId);
 
     /**
      * 取消投保

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

@@ -127,7 +127,7 @@ public class InsuranceServiceImpl implements InsuranceService {
      */
     @Override
     @Transactional
-    public void applyInsurance(Long orderId) {
+    public boolean applyInsurance(Long orderId) {
 
         TradeOrderRespVO orderInfo = tradeOrderMapper.getOrderInfo(orderId);
         VoyageDO voyage = voyageService.getVoyage(orderInfo.getVoyageId());
@@ -166,7 +166,7 @@ public class InsuranceServiceImpl implements InsuranceService {
         //被保人对象列表, 其下可多位被保险人, 他们在同个订单下
         List<TradeVisitorRespVO> tradeVisitorRespVOS = tradeVisitorMapper.queryVisitorByOrderId(orderId);
         List<InsuredDTO> insuredList = new ArrayList<>();
-        tradeVisitorRespVOS.stream().forEach(tradeVisitorRespVO -> {
+        tradeVisitorRespVOS.forEach(tradeVisitorRespVO -> {
             InsuredDTO insuredDTO = new InsuredDTO();
             insuredDTO.setExternalPolicyNumber(tradeVisitorRespVO.getId().toString());
             insuredDTO.setInsuredName(tradeVisitorRespVO.getName());
@@ -205,6 +205,7 @@ public class InsuranceServiceImpl implements InsuranceService {
         insuranceMapper.insert(insuranceDO);
         // 发送查询投保接口通知
         tradePublishUtils.publishInsuranceQueryMsg(orderInfo.getOrderNo(),0);
+        return true;
     }
 
     /**

+ 5 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/InsuranceHandler.java

@@ -73,7 +73,7 @@ public class InsuranceHandler implements TradeOrderHandler{
             }
             TradeVisitorBO holder = visitorDOList.get(0);
             InsuranceApplyReqDTO reqDTO = new InsuranceApplyReqDTO();
-//            reqDTO.setOrderId(tradeOrderDO.getId());
+            reqDTO.setOrderId(tradeOrderDO.getId());
 //            reqDTO.setAmount(MapUtil.get(insuranceProduct,"insurance_amount", BigDecimal.class));
 //            reqDTO.setPremium(MapUtil.get(insuranceProduct,"num", BigDecimal.class));
 //            reqDTO.setRationType(MapUtil.get(insuranceProduct,"insurance_code", String.class));
@@ -86,8 +86,10 @@ public class InsuranceHandler implements TradeOrderHandler{
 
         int insureFlag = 1;
         for (InsuranceApplyReqDTO reqDTO : dataList) {
-            InsuredRespDTO insuredRespDTO = insuranceApi.applyInsurance(reqDTO).getCheckedData();
-            if(ObjectUtils.equalsAny(insuredRespDTO.getInsuranceStatus() , InsuranceStatusEnum.INSURE.getValue(),InsuranceStatusEnum.FAIL.getValue(),InsuranceStatusEnum.CANCELLED.getValue())){
+            log.error("投保参数{}",reqDTO);
+            boolean res = insuranceApi.applyInsurance(reqDTO).getCheckedData();
+            log.error("投保请求返回{}",res);
+            if(!res){
                 insureFlag = 0;
             }
         }