Commit 9cf470df9495e54db919f191dfb895cc1fe843cc
1 parent
f21ce954
创建交易订单-单元测试-冲突合并
Showing
4 changed files
with
18 additions
and
18 deletions
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/spu/ProductSpuApiImpl.java
| ... | ... | @@ -25,7 +25,7 @@ public class ProductSpuApiImpl implements ProductSpuApi { |
| 25 | 25 | private ProductSpuMapper productSpuMapper; |
| 26 | 26 | |
| 27 | 27 | @Override |
| 28 | - public List<SpuInfoRespDTO> getSpusByIds(Collection<Long> spuIds) { | |
| 28 | + public List<SpuInfoRespDTO> getSpuList(Collection<Long> spuIds) { | |
| 29 | 29 | if (CollectionUtils.isAnyEmpty(spuIds)) { |
| 30 | 30 | return Collections.emptyList(); |
| 31 | 31 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderItemConvert.java
| ... | ... | @@ -20,5 +20,5 @@ public interface TradeOrderItemConvert { |
| 20 | 20 | * @param items sku列表价格 |
| 21 | 21 | * @return 订单项 |
| 22 | 22 | */ |
| 23 | - List<TradeOrderItemDO> convertList(List<PriceCalculateRespDTO.Item> items); | |
| 23 | + List<TradeOrderItemDO> convertList(List<PriceCalculateRespDTO.OrderItem> items); | |
| 24 | 24 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
| ... | ... | @@ -30,7 +30,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; |
| 30 | 30 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; |
| 31 | 31 | import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper; |
| 32 | 32 | import cn.iocoder.yudao.module.trade.dal.mysql.orderitem.TradeOrderItemMapper; |
| 33 | -import cn.iocoder.yudao.module.trade.enums.enums.ErrorCodeConstants; | |
| 33 | +import cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants; | |
| 34 | 34 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemRefundStatusEnum; |
| 35 | 35 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum; |
| 36 | 36 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; |
| ... | ... | @@ -82,12 +82,12 @@ public class TradeOrderServiceImpl implements TradeOrderService { |
| 82 | 82 | |
| 83 | 83 | List<Item> items = createReqVO.getItems(); |
| 84 | 84 | // 商品SKU检查 sku可售状态,库存 |
| 85 | - List<SkuInfoRespDTO> skuInfos = productSkuApi.getSkusByIds(CollectionUtils.convertSet(items, Item::getSkuId)); | |
| 86 | - Map<Long, SkuInfoRespDTO> skuInfoMap = CollectionUtils.convertMap(skuInfos, SkuInfoRespDTO::getId); | |
| 85 | + List<ProductSkuRespDTO> skuInfos = productSkuApi.getSkuList(CollectionUtils.convertSet(items, Item::getSkuId)); | |
| 86 | + Map<Long, ProductSkuRespDTO> skuInfoMap = CollectionUtils.convertMap(skuInfos, ProductSkuRespDTO::getId); | |
| 87 | 87 | checkSaleableAndStockFromSpu(skuInfoMap, items); |
| 88 | 88 | |
| 89 | 89 | // 商品SPU检查 sku可售状态,库存 |
| 90 | - List<SpuInfoRespDTO> spuInfos = productSpuApi.getSpusByIds(CollectionUtils.convertSet(skuInfos, SkuInfoRespDTO::getSpuId)); | |
| 90 | + List<SpuInfoRespDTO> spuInfos = productSpuApi.getSpuList(CollectionUtils.convertSet(skuInfos, ProductSkuRespDTO::getSpuId)); | |
| 91 | 91 | checkSaleableFromSpu(spuInfos); |
| 92 | 92 | |
| 93 | 93 | // 价格计算 |
| ... | ... | @@ -99,7 +99,7 @@ public class TradeOrderServiceImpl implements TradeOrderService { |
| 99 | 99 | tradeOrderMapper.insert(tradeOrderDO); |
| 100 | 100 | |
| 101 | 101 | // 订单项信息记录 |
| 102 | - List<TradeOrderItemDO> tradeOrderItems = TradeOrderItemConvert.INSTANCE.convertList(priceResp.getItems()); | |
| 102 | + List<TradeOrderItemDO> tradeOrderItems = TradeOrderItemConvert.INSTANCE.convertList(priceResp.getOrder().getItems()); | |
| 103 | 103 | //-填充订单项-SKU信息 |
| 104 | 104 | fillItemsInfoFromSkuAndOrder(tradeOrderDO, tradeOrderItems, skuInfoMap); |
| 105 | 105 | tradeOrderItemMapper.insertBatch(tradeOrderItems); |
| ... | ... | @@ -156,13 +156,13 @@ public class TradeOrderServiceImpl implements TradeOrderService { |
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | private void fillItemsInfoFromSkuAndOrder(TradeOrderDO tradeOrderDO, List<TradeOrderItemDO> tradeOrderItems, |
| 159 | - Map<Long, SkuInfoRespDTO> spuInfos) { | |
| 159 | + Map<Long, ProductSkuRespDTO> spuInfos) { | |
| 160 | 160 | for (TradeOrderItemDO tradeOrderItem : tradeOrderItems) { |
| 161 | 161 | // 填充订单信息 |
| 162 | 162 | tradeOrderItem.setOrderId(tradeOrderDO.getId()); |
| 163 | 163 | tradeOrderItem.setUserId(tradeOrderDO.getUserId()); |
| 164 | 164 | // 填充SKU信息 |
| 165 | - SkuInfoRespDTO skuInfoRespDTO = spuInfos.get(tradeOrderItem.getSkuId()); | |
| 165 | + ProductSkuRespDTO skuInfoRespDTO = spuInfos.get(tradeOrderItem.getSkuId()); | |
| 166 | 166 | tradeOrderItem.setSpuId(skuInfoRespDTO.getSpuId()); |
| 167 | 167 | tradeOrderItem.setPicUrl(skuInfoRespDTO.getPicUrl()); |
| 168 | 168 | tradeOrderItem.setName(skuInfoRespDTO.getName()); |
| ... | ... | @@ -182,14 +182,14 @@ public class TradeOrderServiceImpl implements TradeOrderService { |
| 182 | 182 | } |
| 183 | 183 | } |
| 184 | 184 | |
| 185 | - private void checkSaleableAndStockFromSpu(Map<Long, SkuInfoRespDTO> skuInfoMap, | |
| 185 | + private void checkSaleableAndStockFromSpu(Map<Long, ProductSkuRespDTO> skuInfoMap, | |
| 186 | 186 | List<Item> items) { |
| 187 | 187 | // sku 不存在 |
| 188 | 188 | if (items.size() != skuInfoMap.size()) { |
| 189 | 189 | throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_SKU_NOT_FOUND); |
| 190 | 190 | } |
| 191 | 191 | for (Item item : items) { |
| 192 | - SkuInfoRespDTO skuInfoDTO = skuInfoMap.get(item.getSkuId()); | |
| 192 | + ProductSkuRespDTO skuInfoDTO = skuInfoMap.get(item.getSkuId()); | |
| 193 | 193 | // sku禁用 |
| 194 | 194 | if (!Objects.equals(CommonStatusEnum.ENABLE.getStatus(), skuInfoDTO.getStatus())) { |
| 195 | 195 | throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_SKU_NOT_SALE); | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
| ... | ... | @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.market.api.price.PriceApi; |
| 6 | 6 | import cn.iocoder.yudao.module.market.api.price.dto.PriceCalculateRespDTO; |
| 7 | 7 | import cn.iocoder.yudao.module.pay.api.order.PayOrderApi; |
| 8 | 8 | import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; |
| 9 | -import cn.iocoder.yudao.module.product.api.sku.dto.SkuInfoRespDTO; | |
| 9 | +import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; | |
| 10 | 10 | import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; |
| 11 | 11 | import cn.iocoder.yudao.module.product.api.spu.dto.SpuInfoRespDTO; |
| 12 | 12 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; |
| ... | ... | @@ -60,21 +60,21 @@ class TradeOrderServiceTest extends BaseDbUnitTest { |
| 60 | 60 | spuInfo.setId(1L); |
| 61 | 61 | spuInfo.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 62 | 62 | }); |
| 63 | - when(productSpuApi.getSpusByIds(Collections.singleton(1L))).thenReturn(Lists.newArrayList(spuInfoRespDTO)); | |
| 63 | + when(productSpuApi.getSpuList(Collections.singleton(1L))).thenReturn(Lists.newArrayList(spuInfoRespDTO)); | |
| 64 | 64 | // mock 商品SkU数据 |
| 65 | - SkuInfoRespDTO skuInfoRespDTO = randomPojo(SkuInfoRespDTO.class, skuInfo -> { | |
| 65 | + ProductSkuRespDTO skuInfoRespDTO = randomPojo(ProductSkuRespDTO.class, skuInfo -> { | |
| 66 | 66 | skuInfo.setId(1L); |
| 67 | 67 | skuInfo.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 68 | 68 | skuInfo.setStock(randomInteger()); |
| 69 | 69 | skuInfo.setSpuId(1L); |
| 70 | 70 | }); |
| 71 | - when(productSkuApi.getSkusByIds(Collections.singleton(1L))).thenReturn(Lists.newArrayList(skuInfoRespDTO)); | |
| 71 | + when(productSkuApi.getSkuList(Collections.singleton(1L))).thenReturn(Lists.newArrayList(skuInfoRespDTO)); | |
| 72 | 72 | // mock 价格信息 |
| 73 | 73 | PriceCalculateRespDTO calculateRespDTO = randomPojo(PriceCalculateRespDTO.class, priceCalculateRespDTO -> { |
| 74 | - PriceCalculateRespDTO.Item item = priceCalculateRespDTO.getItems().get(0); | |
| 74 | + PriceCalculateRespDTO.OrderItem item = priceCalculateRespDTO.getOrder().getItems().get(0); | |
| 75 | 75 | item.setSkuId(1L); |
| 76 | 76 | item.setCount(2); |
| 77 | - priceCalculateRespDTO.setItems(Collections.singletonList(item)); | |
| 77 | + priceCalculateRespDTO.getOrder().setItems(Collections.singletonList(item)); | |
| 78 | 78 | }); |
| 79 | 79 | when(priceApi.calculatePrice(any())).thenReturn(calculateRespDTO); |
| 80 | 80 | //mock 支付订单信息 |
| ... | ... | @@ -103,7 +103,7 @@ class TradeOrderServiceTest extends BaseDbUnitTest { |
| 103 | 103 | assertEquals(skuInfoRespDTO.getId(), tradeOrderItemDO.getSkuId()); |
| 104 | 104 | assertEquals(1L, tradeOrderItemDO.getUserId()); |
| 105 | 105 | //价格 |
| 106 | - assertEquals(calculateRespDTO.getItems().get(0).getPresentPrice(), tradeOrderItemDO.getPresentPrice()); | |
| 106 | + assertEquals(calculateRespDTO.getOrder().getItems().get(0).getPresentPrice(), tradeOrderItemDO.getPresentPrice()); | |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | } | ... | ... |