Commit 4ddcf5d5 by rui.zhu

一单开多张付费会员卡的时候,退款逻辑调整

parent fb814bae
......@@ -86,12 +86,16 @@ public class PaymentHandle {
PayRefundResponse refundResponse;
try {
// 最大可退金额 = 订单实付总额 - 开通会员卡金额 退款的时候会员卡已经开通了,所以开卡费不可退
OrderCostResp openMemberCardCost = null;
BigDecimal openMemberCardCostAmount = new BigDecimal(0);
if (CollectionUtils.isNotEmpty(orderBean.getOrderCostDetailList())) {
openMemberCardCost = orderBean.getOrderCostDetailList().stream().filter(c -> Objects.equals(c.getCostType(), OrderCostType.OPEN_MEMBER_CARD_FEE.getType())).findFirst().orElse(null);
for (OrderCostResp orderCostResp : orderBean.getOrderCostDetailList()) {
if (Objects.equals(orderCostResp.getCostType(), OrderCostType.OPEN_MEMBER_CARD_FEE.getType())) {
openMemberCardCostAmount = openMemberCardCostAmount.add(orderCostResp.getCostAmount() == null ? BigDecimal.ZERO : orderCostResp.getCostAmount());
}
}
}
// 最大可退金额 = 订单实付总额 - 开通会员卡金额 退款的时候会员卡已经开通了,所以开卡费不可退
BigDecimal maxRefundAmount = openMemberCardCost != null ? new BigDecimal(orderBean.getAmount()).subtract(openMemberCardCost.getCostAmount()) : new BigDecimal(orderBean.getAmount());
BigDecimal maxRefundAmount = new BigDecimal(orderBean.getAmount()).subtract(openMemberCardCostAmount);
BigDecimal refundAmount = maxRefundAmount;
AfterSalesOrderResp afterSalesOrder = getAfterSalesOrder(orderBean.getCompanyId(), orderBean.getOid());
if (afterSalesOrder != null) {
......@@ -159,11 +163,15 @@ public class PaymentHandle {
PayRefundResponse refundResponse;
try {
// 最大可退金额 = 订单实付总额 - 开通会员卡金额 退款的时候会员卡已经开通了,所以开卡费不可退
OrderCostResp openMemberCardCost = null;
BigDecimal openMemberCardCostAmount = new BigDecimal(0);
if (CollectionUtils.isNotEmpty(order.getOrderCostDetailList())) {
openMemberCardCost = order.getOrderCostDetailList().stream().filter(c -> Objects.equals(c.getCostType(), OrderCostType.OPEN_MEMBER_CARD_FEE.getType())).findFirst().orElse(null);
for (OrderCostResp orderCostResp : order.getOrderCostDetailList()) {
if (Objects.equals(orderCostResp.getCostType(), OrderCostType.OPEN_MEMBER_CARD_FEE.getType())) {
openMemberCardCostAmount = openMemberCardCostAmount.add(orderCostResp.getCostAmount() == null ? BigDecimal.ZERO : orderCostResp.getCostAmount());
}
}
}
BigDecimal maxRefundAmount = openMemberCardCost != null ? order.getSettlementAmount().subtract(openMemberCardCost.getCostAmount()) : order.getSettlementAmount();
BigDecimal maxRefundAmount = order.getSettlementAmount().subtract(openMemberCardCostAmount);
BigDecimal refundAmount = maxRefundAmount;
AfterSalesOrderResp afterSalesOrder = getAfterSalesOrder(order.getPartnerId(), order.getOrderCode());
if (afterSalesOrder != null) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment