This commit is contained in:
Guoqs
2026-02-04 14:47:27 +08:00
4 changed files with 60 additions and 55 deletions

View File

@@ -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())

View File

@@ -188,6 +188,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
@Autowired
private MemberAdapayRecordService memberAdapayRecordService;
@Autowired
private IOrderInsuranceInfoService orderInsuranceInfoService;
@Autowired
private ClearingBillInfoService clearingBillInfoService;
@@ -869,6 +872,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);
}
/**
@@ -2651,15 +2658,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进行金额累加
@@ -5244,10 +5260,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())) {
// 并充订单

View File

@@ -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);
}

View File

@@ -9,6 +9,7 @@
<result property="insuranceTransactionCode" column="insurance_transaction_code" />
<result property="orderCode" column="order_code" />
<result property="tradeAmount" column="trade_amount" />
<result property="refundStatus" column="refund_status"/>
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
@@ -17,12 +18,12 @@
</resultMap>
<sql id="selectOrderInsuranceInfoVo">
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
</sql>
<sql id="Base_Column_List">
<!--@mbg.generated-->
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
</sql>
<select id="selectOrderInsuranceInfoList" parameterType="com.jsowell.pile.domain.OrderInsuranceInfo" resultMap="OrderInsuranceInfoResult">
@@ -45,6 +46,7 @@
<if test="insuranceTransactionCode != null">insurance_transaction_code,</if>
<if test="orderCode != null">order_code,</if>
<if test="tradeAmount != null">trade_amount,</if>
<if test="refundStatus != null">refund_status</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
@@ -55,6 +57,7 @@
<if test="insuranceTransactionCode != null">#{insuranceTransactionCode},</if>
<if test="orderCode != null">#{orderCode},</if>
<if test="tradeAmount != null">#{tradeAmount},</if>
<if test="refundStatus != null">#{refundStatus},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
@@ -69,6 +72,7 @@
<if test="insuranceTransactionCode != null">insurance_transaction_code = #{insuranceTransactionCode},</if>
<if test="orderCode != null">order_code = #{orderCode},</if>
<if test="tradeAmount != null">trade_amount = #{tradeAmount},</if>
<if test="refundStatus != null">refund_status = #{refundStatus},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>