Refactor order creation with Builder pattern and type-safe enums
- Replace 20+ parameter method calls with Builder pattern in WxCustomController - Add RewardType and CommodityType enums with database compatibility - Update DTOs and service layer for enum conversion - Fix all test cases with proper enum usage - Ensure backward compatibility through service layer conversion
This commit is contained in:
@@ -25,7 +25,7 @@ class OrderCreationRequestTest {
|
||||
// 构建商品信息
|
||||
CommodityInfo commodityInfo = CommodityInfo.builder()
|
||||
.commodityId("commodity_001")
|
||||
.commodityType("1")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(new BigDecimal("100.00"))
|
||||
.serviceDuration("60")
|
||||
.commodityName("陪聊服务")
|
||||
@@ -48,7 +48,7 @@ class OrderCreationRequestTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.SPECIFIED)
|
||||
.rewardType("0")
|
||||
.rewardType(OrderConstant.RewardType.BALANCE)
|
||||
.isFirstOrder(true)
|
||||
.commodityInfo(commodityInfo)
|
||||
.paymentInfo(paymentInfo)
|
||||
|
||||
@@ -77,11 +77,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.SPECIFIED)
|
||||
.rewardType("0")
|
||||
.rewardType(OrderConstant.RewardType.BALANCE)
|
||||
.isFirstOrder(true)
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("commodity_001")
|
||||
.commodityName("测试商品")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(BigDecimal.valueOf(100.00))
|
||||
.serviceDuration("60")
|
||||
.commodityNumber("1")
|
||||
@@ -130,10 +131,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.RANDOM)
|
||||
.rewardType(OrderConstant.RewardType.NOT_APPLICABLE)
|
||||
.isFirstOrder(false)
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("service_001")
|
||||
.commodityName("陪聊服务")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(BigDecimal.valueOf(50.00))
|
||||
.serviceDuration("30")
|
||||
.build())
|
||||
@@ -174,11 +177,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.REWARD)
|
||||
.rewardType("1")
|
||||
.rewardType(OrderConstant.RewardType.GIFT)
|
||||
.isFirstOrder(false)
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("gift_001")
|
||||
.commodityName("虚拟礼物")
|
||||
.commodityType(OrderConstant.CommodityType.GIFT)
|
||||
.commodityPrice(BigDecimal.valueOf(20.00))
|
||||
.build())
|
||||
.paymentInfo(PaymentInfo.builder()
|
||||
@@ -218,10 +222,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.RANDOM) // 随机单但没有要求
|
||||
.rewardType(OrderConstant.RewardType.NOT_APPLICABLE)
|
||||
.isFirstOrder(false)
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("service_001")
|
||||
.commodityName("服务")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(BigDecimal.valueOf(50.00))
|
||||
.build())
|
||||
.paymentInfo(PaymentInfo.builder()
|
||||
@@ -257,10 +263,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.SPECIFIED)
|
||||
.rewardType(OrderConstant.RewardType.NOT_APPLICABLE)
|
||||
.isFirstOrder(false)
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("commodity_002")
|
||||
.commodityName("优惠商品")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(BigDecimal.valueOf(200.00))
|
||||
.build())
|
||||
.paymentInfo(PaymentInfo.builder()
|
||||
@@ -311,11 +319,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.SPECIFIED)
|
||||
.rewardType("0")
|
||||
.rewardType(OrderConstant.RewardType.BALANCE)
|
||||
.isFirstOrder(true)
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("commodity_003")
|
||||
.commodityName("复杂商品")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(BigDecimal.valueOf(300.00))
|
||||
.serviceDuration("120")
|
||||
.commodityNumber("1")
|
||||
@@ -378,11 +387,12 @@ class PlayOrderInfoServiceTest {
|
||||
.orderStatus(OrderConstant.OrderStatus.PENDING)
|
||||
.orderType(OrderConstant.OrderType.NORMAL)
|
||||
.placeType(OrderConstant.PlaceType.SPECIFIED)
|
||||
.rewardType("0")
|
||||
.rewardType(OrderConstant.RewardType.BALANCE)
|
||||
.isFirstOrder(true) // 首单
|
||||
.commodityInfo(CommodityInfo.builder()
|
||||
.commodityId("commodity_revenue")
|
||||
.commodityName("收入测试商品")
|
||||
.commodityType(OrderConstant.CommodityType.SERVICE)
|
||||
.commodityPrice(BigDecimal.valueOf(200.00))
|
||||
.serviceDuration("90")
|
||||
.build())
|
||||
|
||||
Reference in New Issue
Block a user