Browse Source

(+)权益可用金额、已使用金额、剩余金额入库

郭子栋 6 months ago
parent
commit
7e08308ec5

+ 10 - 2
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java

@@ -5,10 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
@@ -104,4 +103,13 @@ public class InsOrders extends BaseModel {
     @Schema(description = "对接人电话")
     private String dockingPersonPhone;
 
+    @Schema(description = "权益相关:可用金额<可用金额=出口佣金➖代理人留点佣金>")
+    private BigDecimal availableAmount;
+
+    @Schema(description = "权益相关:已使用金额<发放权益价格总数量(结算价)>")
+    private BigDecimal 	usedAmount;
+
+    @Schema(description = "权益相关:剩余金额<可用金额-已使用金额>")
+    private BigDecimal remainingAmount;
+
 }

+ 10 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.summary.controller;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
+import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.CompanyConstants;
@@ -354,7 +355,15 @@ public class UnifyOrderManager {
                     baseController.getToken(), MessageCodeEnum.TEMPLATE_5);
             //核保成功将权益信息入库
             if(null != underwritingVo.getInsOrderRightsInfoDto()){
-                insOrderRightsInfoService.saveInsOrderRightsInfo(underwritingVo.getInsOrderRightsInfoDto(),underwritingVo.getOrder().getOrdersNo());
+                boolean hasRights = CollectionUtils.isNotEmpty(underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsList());
+                boolean hasPackages = CollectionUtils.isNotEmpty(underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsPackageList());
+                 if(hasRights || hasPackages){
+                     //核保成功后设置该订单的权益可用金额、已使用金额、剩余金额
+                     insOrders.setAvailableAmount(underwritingVo.getInsOrders().getAvailableAmount());//可使用金额
+                     insOrders.setRemainingAmount(underwritingVo.getInsOrders().getRemainingAmount());//剩余金额
+                     insOrders.setUsedAmount(underwritingVo.getInsOrders().getUsedAmount());//已使用金额
+                     insOrderRightsInfoService.saveInsOrderRightsInfo(underwritingVo.getInsOrderRightsInfoDto(),insOrders);
+                 }
             }
             return HttpResult.ok("核保成功");
         } else {

+ 2 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrderRightsInfoService.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.summary.service;
 
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.rights.dto.InsOrderRightsInfoDto;
 import com.jzg.commons.entity.rights.vo.InsOrderRightsInfoVo;
 
@@ -18,7 +19,7 @@ public interface InsOrderRightsInfoService {
     * @param insOrderRightsInfoDto
     * @return
     */
-   void saveInsOrderRightsInfo(InsOrderRightsInfoDto insOrderRightsInfoDto,String orderNo);
+   void saveInsOrderRightsInfo(InsOrderRightsInfoDto insOrderRightsInfoDto, InsOrders insOrders);
 
    /**
     * 根据订单ID查询权益信息

+ 17 - 9
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrderRightsInfoServiceImpl.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.summary.service.impl;
 
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.rights.dto.InsOrderRightsDto;
 import com.jzg.commons.entity.rights.dto.InsOrderRightsInfoDto;
 import com.jzg.commons.entity.rights.dto.InsOrderRightsPackageDto;
@@ -14,6 +15,7 @@ import com.jzg.commons.entity.rights.vo.InsOrderRightsVo;
 import com.jzg.quotation.summary.service.InsOrderRightsInfoService;
 import com.jzg.quotation.summary.service.InsOrderRightsPackageService;
 import com.jzg.quotation.summary.service.InsOrderRightsService;
+import com.jzg.quotation.summary.service.InsOrdersService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.beanutils.BeanUtils;
@@ -38,28 +40,30 @@ public class InsOrderRightsInfoServiceImpl implements InsOrderRightsInfoService
     private final InsOrderRightsService insOrderRightsService;
     private final InsOrderRightsPackageService insOrderRightsPackageService;
 
+    private final InsOrdersService insOrdersService;
+
     /**
      * 订单关联权益信息入库
      * @param insOrderRightsInfoDto
-     * @param orderNo
+     * @param insOrders
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void saveInsOrderRightsInfo(InsOrderRightsInfoDto insOrderRightsInfoDto,String orderNo) {
+    public void saveInsOrderRightsInfo(InsOrderRightsInfoDto insOrderRightsInfoDto,InsOrders insOrders) {
         // 1. 业务校验:至少有一个集合有数据
         boolean hasRights = CollectionUtils.isNotEmpty(insOrderRightsInfoDto.getInsOrderRightsList());
         boolean hasPackages = CollectionUtils.isNotEmpty(insOrderRightsInfoDto.getInsOrderRightsPackageList());
         try{
             // 先删除现有的权益券
             if (hasRights) {
-                Integer deletedRights =  insOrderRightsService.deleteByOrderNo(orderNo);
-                log.info("删除订单 {} 现有权益券 {} 条", orderNo, deletedRights);
+                Integer deletedRights =  insOrderRightsService.deleteByOrderNo(insOrders.getId());
+                log.info("删除订单 {} 现有权益券 {} 条", insOrders.getId(), deletedRights);
             }
             //删除现有的权益包
             if (hasPackages) {
-                int deletedPackages = insOrderRightsPackageService.deleteByOrderNo(orderNo);
-                log.info("删除订单 {} 现有权益包 {} 条", orderNo, deletedPackages);
+                Integer deletedPackages = insOrderRightsPackageService.deleteByOrderNo(insOrders.getId());
+                log.info("删除订单 {} 现有权益包 {} 条", insOrders.getId(), deletedPackages);
             }
             //保存权益券信息
             if(hasRights){
@@ -76,7 +80,7 @@ public class InsOrderRightsInfoServiceImpl implements InsOrderRightsInfoService
                     insOrderRightsList.add(insOrderRights);
                 }
                 insOrderRightsService.saveInsOrderRights(insOrderRightsList);
-                log.info("保存订单 {} 权益券 {} 条", orderNo, insOrderRightsList.size());
+                log.info("保存订单 {} 权益券 {} 条", insOrders.getId(), insOrderRightsList.size());
             }
             //保存权益套餐信息
             if(hasPackages){
@@ -93,11 +97,15 @@ public class InsOrderRightsInfoServiceImpl implements InsOrderRightsInfoService
                     insOrderRightsPackageList.add(insOrderRightsPackage);
                 }
                 insOrderRightsPackageService.saveInsOrderRightsPackage(insOrderRightsPackageList);
-                log.info("保存订单 {} 权益包 {} 条", orderNo, insOrderRightsInfoDto.getInsOrderRightsPackageList().size());
+                log.info("保存订单 {} 权益包 {} 条", insOrders.getId(), insOrderRightsInfoDto.getInsOrderRightsPackageList().size());
             }
             log.info("订单权益券信息保存成功!");
+            if(hasRights || hasPackages){
+                //更新订单表的权益可用金额、已使用金额、剩余金额
+                insOrdersService.updateById(insOrders);
+            }
         }catch (Exception e) {
-            log.error("保存订单权益信息失败,订单ID: {}", orderNo, e);
+            log.error("保存订单权益信息失败,订单ID: {}", insOrders.getId(), e);
         }
 
     }