From fb619e4027471f0ff1c45bd0e11bd84ed55f78f4 Mon Sep 17 00:00:00 2001 From: Lemon Date: Wed, 4 Feb 2026 11:41:07 +0800 Subject: [PATCH] =?UTF-8?q?update=20=20=E4=BD=BF=E7=94=A8order=5Finsurance?= =?UTF-8?q?=5Finfo=E8=A1=A8=E5=B0=86=E4=BF=9D=E9=99=A9=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E7=9A=84=E9=80=80=E6=AC=BE=E6=83=85=E5=86=B5=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=EF=BC=8C=E8=8B=A5=E5=B7=B2=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E8=BF=87=E4=BF=9D=E9=99=A9=E9=87=91=E9=A2=9D=EF=BC=8C=E5=88=99?= =?UTF-8?q?=E4=B8=8D=E8=BF=9B=E8=A1=8C=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/domain/OrderInsuranceInfo.java | 53 +++++-------------- .../impl/OrderBasicInfoServiceImpl.java | 52 +++++++++++++----- .../impl/OrderInsuranceInfoServiceImpl.java | 2 +- .../mapper/pile/OrderInsuranceInfoMapper.xml | 8 ++- 4 files changed, 60 insertions(+), 55 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java index 784375354..988ada1b9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderInsuranceInfo.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import com.jsowell.common.annotation.Excel; import com.jsowell.common.core.domain.BaseEntity; +import lombok.*; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -13,6 +14,11 @@ import org.apache.commons.lang3.builder.ToStringStyle; * @author jsowell * @date 2025-09-05 */ +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +@Builder public class OrderInsuranceInfo extends BaseEntity { private static final long serialVersionUID = 1L; @@ -39,51 +45,17 @@ public class OrderInsuranceInfo extends BaseEntity { @Excel(name = "保险支付金额") private BigDecimal tradeAmount; + /** + * 退款状态(0-否;1-是) + */ + @Excel(name = "退款状态") + private String refundStatus; + /** * 删除标识(0-否;1-是) */ private String delFlag; - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - - public void setInsuranceTransactionCode(String insuranceTransactionCode) { - this.insuranceTransactionCode = insuranceTransactionCode; - } - - public String getInsuranceTransactionCode() { - return insuranceTransactionCode; - } - - public void setOrderCode(String orderCode) { - this.orderCode = orderCode; - } - - public String getOrderCode() { - return orderCode; - } - - public void setTradeAmount(BigDecimal tradeAmount) { - this.tradeAmount = tradeAmount; - } - - public BigDecimal getTradeAmount() { - return tradeAmount; - } - - public void setDelFlag(String delFlag) { - this.delFlag = delFlag; - } - - public String getDelFlag() { - return delFlag; - } - @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.JSON_STYLE) @@ -91,6 +63,7 @@ public class OrderInsuranceInfo extends BaseEntity { .append("insuranceTransactionCode", getInsuranceTransactionCode()) .append("orderCode", getOrderCode()) .append("tradeAmount", getTradeAmount()) + .append("refundStatus", getRefundStatus()) .append("createTime", getCreateTime()) .append("createBy", getCreateBy()) .append("updateTime", getUpdateTime()) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index c73153161..202ec196f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -188,6 +188,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { @Autowired private MemberAdapayRecordService memberAdapayRecordService; + @Autowired + private IOrderInsuranceInfoService orderInsuranceInfoService; + @Autowired private ClearingBillInfoService clearingBillInfoService; @@ -866,6 +869,10 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 白名单支付或者ETC支付 logger.debug("订单:{}使用:{},不退保险费", orderBasicInfo.getOrderCode(), OrderPayModeEnum.getPayModeDescription(payMode)); } + // 修改保险订单表的退款状态 + OrderInsuranceInfo insuranceInfo = orderInsuranceInfoService.getInsuranceInfoByOrderCode(orderBasicInfo.getOrderCode()); + insuranceInfo.setRefundStatus(Constants.ONE); + orderInsuranceInfoService.updateOrderInsuranceInfo(insuranceInfo); } /** @@ -2648,15 +2655,24 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return resultList; } - // 如果保险金额大于0,新增一条分账信息 + // 如果保险金额大于0,并且没有退款,新增一条分账信息 if (orderBasicInfo.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { - SplitData insuranceSplit = new SplitData(); - insuranceSplit.setMemberId(Constants.ZERO); - insuranceSplit.setAmount(String.valueOf(orderBasicInfo.getInsuranceAmount())); - insuranceSplit.setFeeFlag(Constants.N); - insuranceSplit.setElecAmount(BigDecimal.ZERO); - insuranceSplit.setServiceAmount(BigDecimal.ZERO); - resultList.add(insuranceSplit); + // 查询该订单的保险退款信息 + OrderInsuranceInfo insuranceInfo = orderInsuranceInfoService.getInsuranceInfoByOrderCode(orderCode); + if (insuranceInfo != null) { + String refundStatus = insuranceInfo.getRefundStatus(); + if (Constants.ZERO.equals(refundStatus)) { + // 退款状态为0,未退款 + SplitData insuranceSplit = new SplitData(); + insuranceSplit.setMemberId(Constants.ZERO); + insuranceSplit.setAmount(String.valueOf(orderBasicInfo.getInsuranceAmount())); + insuranceSplit.setFeeFlag(Constants.N); + insuranceSplit.setElecAmount(BigDecimal.ZERO); + insuranceSplit.setServiceAmount(BigDecimal.ZERO); + + resultList.add(insuranceSplit); + } + } } // 下面进行根据adapayMemberId进行金额累加 @@ -5241,10 +5257,22 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .settleAmount(BigDecimal.ZERO) .startType(dto.getStartType()) .build(); - if (dto.getInsuranceAmount() != null) { - if (dto.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { - orderBasicInfo.setInsuranceAmount(dto.getInsuranceAmount()); - } + // 保险金额不为 null 并且 > 0 + if (dto.getInsuranceAmount() != null && dto.getInsuranceAmount().compareTo(BigDecimal.ZERO) > 0) { + orderBasicInfo.setInsuranceAmount(dto.getInsuranceAmount()); + CompletableFuture.runAsync(() -> { + try { + // 异步创建保险订单,将信息插入保险订单表 + OrderInsuranceInfo insuranceInfo = OrderInsuranceInfo.builder() + .orderCode(orderCode) + .tradeAmount(dto.getInsuranceAmount()) + .refundStatus(Constants.ZERO) + .build(); + orderInsuranceInfoService.insertOrderInsuranceInfo(insuranceInfo); + } catch (Exception e) { + logger.error("异步创建保险订单 error", e); + } + }, executor); } if (StringUtils.equals(OrderTypeEnum.MERGE_CHARGE_ORDER.getValue(), dto.getOrderType())) { // 并充订单 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java index b5a00d71d..fae51b35d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderInsuranceInfoServiceImpl.java @@ -62,7 +62,7 @@ public class OrderInsuranceInfoServiceImpl implements IOrderInsuranceInfoService */ @Override public int updateOrderInsuranceInfo(OrderInsuranceInfo orderInsuranceInfo) { - orderInsuranceInfo.setUpdateTime(DateUtils.getNowDate()); + // orderInsuranceInfo.setUpdateTime(DateUtils.getNowDate()); return orderInsuranceInfoMapper.updateOrderInsuranceInfo(orderInsuranceInfo); } diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml index 7c49fe255..21ff15abe 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderInsuranceInfoMapper.xml @@ -9,6 +9,7 @@ + @@ -17,12 +18,12 @@ - select id, insurance_transaction_code, order_code, trade_amount, create_time, create_by, update_time, update_by, del_flag from order_insurance_info + select id, insurance_transaction_code, order_code, trade_amount, refund_status, create_time, create_by, update_time, update_by, del_flag from order_insurance_info - id, insurance_transaction_code, order_code, trade_amount, create_time, create_by, update_time, update_by, del_flag + id, insurance_transaction_code, order_code, trade_amount, trade_amount, create_time, create_by, update_time, update_by, del_flag