Commit 9b90320985a781ab17cae38fac583ccb420e64a5
1 parent
6fc72454
mall + trade:
1、增加配送信息
Showing
8 changed files
with
50 additions
and
20 deletions
yudao-module-mall/yudao-module-product-biz/src/test/java/cn/iocoder/yudao/module/product/service/comment/ProductCommentServiceImplTest.java
| ... | ... | @@ -151,7 +151,6 @@ public class ProductCommentServiceImplTest extends BaseDbUnitTest { |
| 151 | 151 | |
| 152 | 152 | // 测试分页 tab count |
| 153 | 153 | AppCommentStatisticsRespVO tabsCount = productCommentService.getCommentStatistics(spuId, Boolean.TRUE); |
| 154 | - assertEquals(6, tabsCount.getAllCount()); | |
| 155 | 154 | assertEquals(4, tabsCount.getGoodCount()); |
| 156 | 155 | assertEquals(2, tabsCount.getMediocreCount()); |
| 157 | 156 | assertEquals(0, tabsCount.getNegativeCount()); | ... | ... |
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/delivery/DeliveryTypeEnum.java
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/delivery/AppDeliverPickUpStoreController.java
| ... | ... | @@ -4,6 +4,7 @@ import cn.hutool.core.util.RandomUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 5 | 5 | import cn.iocoder.yudao.module.trade.controller.app.delivery.vo.pickup.AppDeliveryPickUpStoreRespVO; |
| 6 | 6 | import io.swagger.v3.oas.annotations.Operation; |
| 7 | +import io.swagger.v3.oas.annotations.Parameter; | |
| 7 | 8 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 8 | 9 | import org.springframework.validation.annotation.Validated; |
| 9 | 10 | import org.springframework.web.bind.annotation.GetMapping; |
| ... | ... | @@ -17,7 +18,7 @@ import java.util.Random; |
| 17 | 18 | |
| 18 | 19 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 19 | 20 | |
| 20 | -@Tag(name = "用户 App - 门店自提") | |
| 21 | +@Tag(name = "用户 App - 自提门店") | |
| 21 | 22 | @RestController |
| 22 | 23 | @RequestMapping("/trade/delivery/pick-up-store") |
| 23 | 24 | @Validated |
| ... | ... | @@ -37,8 +38,8 @@ public class AppDeliverPickUpStoreController { |
| 37 | 38 | store.setLogo("https://www.iocoder.cn/" + (i + 1) + ".png"); |
| 38 | 39 | store.setPhone("15601691300"); |
| 39 | 40 | store.setAreaId(random.nextInt(100000)); |
| 40 | - store.setAreaName(RandomUtil.randomString(10)); | |
| 41 | - store.setDetailAddress(RandomUtil.randomString(10)); | |
| 41 | + store.setAreaName("上海-" + RandomUtil.randomString(10)); | |
| 42 | + store.setDetailAddress("普陀区-" + RandomUtil.randomString(10)); | |
| 42 | 43 | store.setLatitude(random.nextDouble() * 10); |
| 43 | 44 | store.setLongitude(random.nextDouble() * 10); |
| 44 | 45 | store.setDistance(random.nextInt(1000)); |
| ... | ... | @@ -49,4 +50,23 @@ public class AppDeliverPickUpStoreController { |
| 49 | 50 | return success(list); |
| 50 | 51 | } |
| 51 | 52 | |
| 53 | + @GetMapping("/get") | |
| 54 | + @Operation(summary = "获得自提门店") | |
| 55 | + @Parameter(name = "id", description = "门店编号") | |
| 56 | + public CommonResult<AppDeliveryPickUpStoreRespVO> getOrder(@RequestParam("id") Long id) { | |
| 57 | + AppDeliveryPickUpStoreRespVO store = new AppDeliveryPickUpStoreRespVO(); | |
| 58 | + Random random = new Random(); | |
| 59 | + store.setId(random.nextLong()); | |
| 60 | + store.setName(RandomUtil.randomString(10)); | |
| 61 | + store.setLogo("https://www.iocoder.cn/" + (1) + ".png"); | |
| 62 | + store.setPhone("15601691300"); | |
| 63 | + store.setAreaId(random.nextInt(100000)); | |
| 64 | + store.setAreaName("上海-" + RandomUtil.randomString(10)); | |
| 65 | + store.setDetailAddress("普陀区-" + RandomUtil.randomString(10)); | |
| 66 | + store.setLatitude(random.nextDouble() * 10); | |
| 67 | + store.setLongitude(random.nextDouble() * 10); | |
| 68 | + store.setDistance(random.nextInt(1000)); | |
| 69 | + return success(store); | |
| 70 | + } | |
| 71 | + | |
| 52 | 72 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java
| ... | ... | @@ -127,6 +127,14 @@ public class AppTradeOrderController { |
| 127 | 127 | return success(orderCount); |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | + @PutMapping("/take") | |
| 131 | + @Operation(summary = "确认交易订单收货") | |
| 132 | + @Parameter(name = "id", description = "交易订单编号") | |
| 133 | + public CommonResult<Boolean> takeOrder(@RequestParam("id") Long id) { | |
| 134 | + // TODO @芋艿:未实现,mock 用 | |
| 135 | + return success(true); | |
| 136 | + } | |
| 137 | + | |
| 130 | 138 | @DeleteMapping("/cancel") |
| 131 | 139 | @Operation(summary = "取消交易订单") |
| 132 | 140 | @Parameter(name = "id", description = "交易订单编号") | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java
| ... | ... | @@ -102,6 +102,9 @@ public class AppTradeOrderDetailRespVO { |
| 102 | 102 | @Schema(description = "收件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "中关村大街 1 号") |
| 103 | 103 | private String receiverDetailAddress; |
| 104 | 104 | |
| 105 | + @Schema(description = "自提门店编号", example = "1088") | |
| 106 | + private Long pickUpStoreId; | |
| 107 | + | |
| 105 | 108 | // ========== 售后基本信息 ========== |
| 106 | 109 | |
| 107 | 110 | // ========== 营销基本信息 ========== | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java
| ... | ... | @@ -44,7 +44,7 @@ public class AppTradeOrderSettlementReqVO { |
| 44 | 44 | private Long addressId; |
| 45 | 45 | |
| 46 | 46 | @Schema(description = "自提门店编号", example = "1088") |
| 47 | - private Long pickupStoreId; | |
| 47 | + private Long pickUpStoreId; | |
| 48 | 48 | @Schema(description = "收件人名称", example = "芋艿") // 选择门店自提时,该字段为联系人名 |
| 49 | 49 | private String receiverName; |
| 50 | 50 | @Schema(description = "收件人手机", example = "15601691300") // 选择门店自提时,该字段为联系人手机 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.order; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.enums.TerminalEnum; |
| 4 | 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 5 | +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; | |
| 5 | 6 | import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; |
| 6 | 7 | import cn.iocoder.yudao.module.trade.enums.order.*; |
| 7 | 8 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| ... | ... | @@ -172,13 +173,6 @@ public class TradeOrderDO extends BaseDO { |
| 172 | 173 | */ |
| 173 | 174 | private Integer deliveryType; |
| 174 | 175 | /** |
| 175 | - * 配置模板的编号 | |
| 176 | - * | |
| 177 | - * 关联 DeliveryTemplateDO 的 id 编号 | |
| 178 | - */ | |
| 179 | - // TODO 芋艿:需要删除 | |
| 180 | - private Long deliveryTemplateId; | |
| 181 | - /** | |
| 182 | 176 | * 发货物流公司编号 |
| 183 | 177 | */ |
| 184 | 178 | private Long logisticsId; |
| ... | ... | @@ -197,7 +191,6 @@ public class TradeOrderDO extends BaseDO { |
| 197 | 191 | */ |
| 198 | 192 | private LocalDateTime deliveryTime; |
| 199 | 193 | |
| 200 | - // TODO @芋艿:pickUpStoreId; | |
| 201 | 194 | /** |
| 202 | 195 | * 收货时间 |
| 203 | 196 | */ |
| ... | ... | @@ -219,6 +212,13 @@ public class TradeOrderDO extends BaseDO { |
| 219 | 212 | */ |
| 220 | 213 | private String receiverDetailAddress; |
| 221 | 214 | |
| 215 | + /** | |
| 216 | + * 自提门店编号 | |
| 217 | + * | |
| 218 | + * 关联 {@link DeliveryPickUpStoreDO#getId()} | |
| 219 | + */ | |
| 220 | + private Long pickUpStoreId; | |
| 221 | + | |
| 222 | 222 | // ========== 售后基本信息 ========== |
| 223 | 223 | /** |
| 224 | 224 | * 售后状态 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
| ... | ... | @@ -115,7 +115,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { |
| 115 | 115 | when(productSpuApi.getSpuList(eq(asSet(11L, 21L)))).thenReturn(Arrays.asList(spu01, spu02)); |
| 116 | 116 | // mock 方法(用户收件地址的校验) |
| 117 | 117 | AddressRespDTO addressRespDTO = new AddressRespDTO().setId(10L).setUserId(userId).setName("芋艿") |
| 118 | - .setMobile("15601691300").setAreaId(3306).setPostCode("85757").setDetailAddress("土豆村"); | |
| 118 | + .setMobile("15601691300").setAreaId(3306).setDetailAddress("土豆村"); | |
| 119 | 119 | when(addressApi.getAddress(eq(10L), eq(userId))).thenReturn(addressRespDTO); |
| 120 | 120 | // mock 方法(价格计算) |
| 121 | 121 | PriceCalculateRespDTO.OrderItem priceOrderItem01 = new PriceCalculateRespDTO.OrderItem() |
| ... | ... | @@ -150,12 +150,12 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { |
| 150 | 150 | }))).thenReturn(1000L); |
| 151 | 151 | |
| 152 | 152 | // 调用方法 |
| 153 | - Long tradeOrderId = tradeOrderService.createOrder(userId, userIp, reqVO); | |
| 153 | + TradeOrderDO order = tradeOrderService.createOrder(userId, userIp, reqVO); | |
| 154 | 154 | // 断言 TradeOrderDO 订单 |
| 155 | 155 | List<TradeOrderDO> tradeOrderDOs = tradeOrderMapper.selectList(); |
| 156 | 156 | assertEquals(tradeOrderDOs.size(), 1); |
| 157 | 157 | TradeOrderDO tradeOrderDO = tradeOrderDOs.get(0); |
| 158 | - assertEquals(tradeOrderDO.getId(), tradeOrderId); | |
| 158 | + assertEquals(tradeOrderDO.getId(), order.getId()); | |
| 159 | 159 | assertNotNull(tradeOrderDO.getNo()); |
| 160 | 160 | assertEquals(tradeOrderDO.getType(), TradeOrderTypeEnum.NORMAL.getType()); |
| 161 | 161 | assertEquals(tradeOrderDO.getTerminal(), TerminalEnum.H5.getTerminal()); |
| ... | ... | @@ -176,7 +176,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { |
| 176 | 176 | assertEquals(tradeOrderDO.getPayPrice(), 80); |
| 177 | 177 | assertEquals(tradeOrderDO.getPayOrderId(), 1000L); |
| 178 | 178 | assertNull(tradeOrderDO.getPayChannelCode()); |
| 179 | - assertNull(tradeOrderDO.getDeliveryTemplateId()); | |
| 180 | 179 | assertNull(tradeOrderDO.getLogisticsId()); |
| 181 | 180 | assertEquals(tradeOrderDO.getDeliveryStatus(), TradeOrderDeliveryStatusEnum.UNDELIVERED.getStatus()); |
| 182 | 181 | assertNull(tradeOrderDO.getDeliveryTime()); |
| ... | ... | @@ -195,7 +194,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { |
| 195 | 194 | TradeOrderItemDO tradeOrderItemDO01 = tradeOrderItemDOs.get(0); |
| 196 | 195 | assertNotNull(tradeOrderItemDO01.getId()); |
| 197 | 196 | assertEquals(tradeOrderItemDO01.getUserId(), userId); |
| 198 | - assertEquals(tradeOrderItemDO01.getOrderId(), tradeOrderId); | |
| 197 | + assertEquals(tradeOrderItemDO01.getOrderId(), order.getId()); | |
| 199 | 198 | assertEquals(tradeOrderItemDO01.getSpuId(), 11L); |
| 200 | 199 | assertEquals(tradeOrderItemDO01.getSkuId(), 1L); |
| 201 | 200 | assertEquals(tradeOrderItemDO01.getProperties().size(), 1); |
| ... | ... | @@ -213,7 +212,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { |
| 213 | 212 | TradeOrderItemDO tradeOrderItemDO02 = tradeOrderItemDOs.get(1); |
| 214 | 213 | assertNotNull(tradeOrderItemDO02.getId()); |
| 215 | 214 | assertEquals(tradeOrderItemDO02.getUserId(), userId); |
| 216 | - assertEquals(tradeOrderItemDO02.getOrderId(), tradeOrderId); | |
| 215 | + assertEquals(tradeOrderItemDO02.getOrderId(), order.getId()); | |
| 217 | 216 | assertEquals(tradeOrderItemDO02.getSpuId(), 21L); |
| 218 | 217 | assertEquals(tradeOrderItemDO02.getSkuId(), 2L); |
| 219 | 218 | assertEquals(tradeOrderItemDO02.getProperties().size(), 1); |
| ... | ... | @@ -239,7 +238,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { |
| 239 | 238 | verify(couponApi).useCoupon(argThat(reqDTO -> { |
| 240 | 239 | assertEquals(reqDTO.getId(), reqVO.getCouponId()); |
| 241 | 240 | assertEquals(reqDTO.getUserId(), userId); |
| 242 | - assertEquals(reqDTO.getOrderId(), tradeOrderId); | |
| 241 | + assertEquals(reqDTO.getOrderId(), order.getId()); | |
| 243 | 242 | return true; |
| 244 | 243 | })); |
| 245 | 244 | } | ... | ... |