[WLOS-030] 设计并落地统一的白名单订单完成补偿方法

This commit is contained in:
Guoqs
2026-01-28 15:27:25 +08:00
parent 600a879456
commit c7e06907d2
4 changed files with 163 additions and 1 deletions

View File

@@ -0,0 +1,53 @@
package com.jsowell.service;
import com.jsowell.common.enums.ykc.OrderPayStatusEnum;
import com.jsowell.common.enums.ykc.OrderStatusEnum;
import com.jsowell.pile.domain.OrderBasicInfo;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.assertEquals;
class WhitelistOrderCompletionDefaultsTest {
@Test
void apply_shouldFillDefaults_whenAmountsAndStatusMissing() {
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
Date now = new Date();
WhitelistOrderCompletionDefaults.apply(orderBasicInfo, now);
assertEquals(OrderStatusEnum.ORDER_COMPLETE.getValue(), orderBasicInfo.getOrderStatus());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getOrderAmount());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getVirtualAmount());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getSettleAmount());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getActualReceivedAmount());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getRefundAmount());
assertEquals(OrderPayStatusEnum.pay_nothing.getValue(), orderBasicInfo.getPayStatus());
assertEquals(now, orderBasicInfo.getSettlementTime());
}
@Test
void apply_shouldNotOverrideExistingSettlementTimeOrPayStatus() {
Date settlementTime = new Date(123456789L);
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
orderBasicInfo.setSettlementTime(settlementTime);
orderBasicInfo.setPayStatus(OrderPayStatusEnum.paid.getValue());
orderBasicInfo.setPayAmount(new BigDecimal("10"));
orderBasicInfo.setOrderAmount(new BigDecimal("5"));
WhitelistOrderCompletionDefaults.apply(orderBasicInfo, new Date());
assertEquals(settlementTime, orderBasicInfo.getSettlementTime());
assertEquals(OrderPayStatusEnum.paid.getValue(), orderBasicInfo.getPayStatus());
assertEquals(new BigDecimal("5"), orderBasicInfo.getOrderAmount());
assertEquals(new BigDecimal("5"), orderBasicInfo.getVirtualAmount());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getSettleAmount());
assertEquals(BigDecimal.ZERO, orderBasicInfo.getActualReceivedAmount());
assertEquals(new BigDecimal("5"), orderBasicInfo.getRefundAmount());
assertEquals(OrderStatusEnum.ORDER_COMPLETE.getValue(), orderBasicInfo.getOrderStatus());
}
}