Commit e41935ea1d443a38db366a799a709e8783647bd3
Merge remote-tracking branch 'yudao/feature/mall_product' into feature/mall_product
# Conflicts: # yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/price/PriceApiImpl.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java
Showing
30 changed files
with
666 additions
and
108 deletions
sql/mysql/optional/mall.sql
| ... | ... | @@ -389,18 +389,18 @@ CREATE TABLE `trade_delivery_express_template_charge` ( |
| 389 | 389 | -- ---------------------------- |
| 390 | 390 | DROP TABLE IF EXISTS `trade_delivery_pick_up_store`; |
| 391 | 391 | CREATE TABLE `trade_delivery_pick_up_store` ( |
| 392 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号,自增', | |
| 392 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', | |
| 393 | 393 | `name` varchar(64) NOT NULL COMMENT '门店名称', |
| 394 | 394 | `introduction` varchar(256) COMMENT '门店简介', |
| 395 | 395 | `phone` varchar(16) NOT NULL COMMENT '门店手机', |
| 396 | - `area_id` int NOT NULL COMMENT '区域id', | |
| 396 | + `area_id` int NOT NULL COMMENT '区域编号', | |
| 397 | 397 | `detail_address` varchar(256) NOT NULL COMMENT '门店详细地址', |
| 398 | - `logo` varchar(256) NOT NULL COMMENT '门店logo', | |
| 398 | + `logo` varchar(256) NOT NULL COMMENT '门店 logo', | |
| 399 | 399 | `opening_time` time NOT NULL COMMENT '营业开始时间', |
| 400 | 400 | `closing_time` time NOT NULL COMMENT '营业结束时间', |
| 401 | - `latitude` varchar(128) NOT NULL COMMENT '纬度', | |
| 402 | - `longitude` varchar(128) NOT NULL COMMENT '经度', | |
| 403 | - `status` tinyint NOT NULL DEFAULT 0 COMMENT '门店状态(0正常 1停用)', | |
| 401 | + `latitude` double NOT NULL COMMENT '纬度', | |
| 402 | + `longitude` double NOT NULL COMMENT '经度', | |
| 403 | + `status` tinyint NOT NULL DEFAULT 0 COMMENT '门店状态', | |
| 404 | 404 | `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', |
| 405 | 405 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 406 | 406 | `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', |
| ... | ... | @@ -428,25 +428,6 @@ CREATE TABLE `trade_delivery_pick_up_store_staff` ( |
| 428 | 428 | ) ENGINE=InnoDB COMMENT='自提门店店员'; |
| 429 | 429 | |
| 430 | 430 | -- ---------------------------- |
| 431 | --- Table structure for trade_delivery_pick_up_store_staff | |
| 432 | --- ---------------------------- | |
| 433 | -DROP TABLE IF EXISTS `trade_delivery_pick_up_store_staff`; | |
| 434 | -CREATE TABLE `trade_delivery_pick_up_store_staff` ( | |
| 435 | - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号,自增', | |
| 436 | - `admin_user_id` bigint NOT NULL COMMENT '管理员用户id', | |
| 437 | - store_id bigint NOT NULL COMMENT '自提门店编号', | |
| 438 | - `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', | |
| 439 | - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', | |
| 440 | - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | |
| 441 | - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', | |
| 442 | - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | |
| 443 | - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | |
| 444 | - `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', | |
| 445 | - PRIMARY KEY (`id`) USING BTREE | |
| 446 | -) ENGINE=InnoDB COMMENT='自提门店店员'; | |
| 447 | - | |
| 448 | - | |
| 449 | --- ---------------------------- | |
| 450 | 431 | -- Table structure for trade_delivery_express |
| 451 | 432 | -- ---------------------------- |
| 452 | 433 | DROP TABLE IF EXISTS `trade_delivery_express`; |
| ... | ... | @@ -541,3 +522,15 @@ INSERT INTO `ruoyi-vue-pro`.`system_dict_data` (`id`, `sort`, `label`, `value`, |
| 541 | 522 | INSERT INTO `ruoyi-vue-pro`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1236, 1, '按重量', '2', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:46:58', '1', '2023-05-21 22:46:58', b'0'); |
| 542 | 523 | INSERT INTO `ruoyi-vue-pro`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1235, 0, '按件', '1', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:46:40', '1', '2023-05-21 22:46:40', b'0'); |
| 543 | 524 | COMMIT; |
| 525 | + | |
| 526 | +-- ---------------------------- | |
| 527 | +-- 门店管理 菜单 | |
| 528 | +-- ---------------------------- | |
| 529 | +BEGIN; | |
| 530 | +INSERT INTO `ruoyi-vue-pro`.`system_menu`(`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2179, '门店管理', '', 2, 1, 2166, 'pick-up-store', '', 'mall/trade/delivery/pickUpStore/index', 'PickUpStore', 0, b'1', b'1', b'1', '1', '2023-05-25 10:50:00', '1', '2023-05-25 10:50:00', b'0'); | |
| 531 | +INSERT INTO `ruoyi-vue-pro`.`system_menu`(`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2180, '自提门店查询', 'trade:delivery:pick-up-store:query', 3, 1, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); | |
| 532 | +INSERT INTO `ruoyi-vue-pro`.`system_menu`(`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2181, '自提门店创建', 'trade:delivery:pick-up-store:create', 3, 2, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); | |
| 533 | +INSERT INTO `ruoyi-vue-pro`.`system_menu`(`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2182, '自提门店更新', 'trade:delivery:pick-up-store:update', 3, 3, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); | |
| 534 | +INSERT INTO `ruoyi-vue-pro`.`system_menu`(`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2183, '自提门店删除', 'trade:delivery:pick-up-store:delete', 3, 4, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); | |
| 535 | +INSERT INTO `ruoyi-vue-pro`.`system_menu`(`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2184, '自提门店导出', 'trade:delivery:pick-up-store:export', 3, 5, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); | |
| 536 | +COMMIT; | ... | ... |
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java
| ... | ... | @@ -47,9 +47,11 @@ public interface ErrorCodeConstants { |
| 47 | 47 | |
| 48 | 48 | // ========== 物流配送模块 1011003000 ========== |
| 49 | 49 | ErrorCode DELIVERY_EXPRESS_NOT_EXISTS = new ErrorCode(1011003000, "快递公司不存在"); |
| 50 | + // TODO @jason:最好每个模块一段哈。express 一个;exmpresstemplate 一个;pickup 一个 | |
| 50 | 51 | ErrorCode EXPRESS_CODE_DUPLICATE = new ErrorCode(1011003001, "已经存在该编码的快递公司"); |
| 51 | 52 | ErrorCode EXPRESS_TEMPLATE_NOT_EXISTS = new ErrorCode(1011003002, "运费模板不存在"); |
| 52 | 53 | ErrorCode EXPRESS_TEMPLATE_NAME_DUPLICATE = new ErrorCode(1011003002, "已经存在该运费模板名"); |
| 54 | + ErrorCode PICK_UP_STORE_NOT_EXISTS = new ErrorCode(1011003003, "自提门店不存在"); | |
| 53 | 55 | |
| 54 | 56 | // ========== Price 相关 1011004000 ============ |
| 55 | 57 | ErrorCode PRICE_CALCULATE_PAY_PRICE_ILLEGAL = new ErrorCode(1011004000, "支付价格计算异常,原因:价格小于等于 0"); | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressController.java
| ... | ... | @@ -75,7 +75,6 @@ public class DeliveryExpressController { |
| 75 | 75 | return success(DeliveryExpressConvert.INSTANCE.convertPage(pageResult)); |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | - // TODO @jason:运费模版,@芋艿 你的意思是运费模板导出没有必要吧。已经去掉了。这个是快递公司导出 | |
| 79 | 78 | @GetMapping("/export-excel") |
| 80 | 79 | @Operation(summary = "导出快递公司 Excel") |
| 81 | 80 | @PreAuthorize("@ss.hasPermission('trade:delivery:express:export')") |
| ... | ... | @@ -87,5 +86,4 @@ public class DeliveryExpressController { |
| 87 | 86 | List<DeliveryExpressExcelVO> dataList = DeliveryExpressConvert.INSTANCE.convertList02(list); |
| 88 | 87 | ExcelUtils.write(response, "快递公司.xls", "数据", DeliveryExpressExcelVO.class, dataList); |
| 89 | 88 | } |
| 90 | - | |
| 91 | 89 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryPickUpStoreController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 5 | +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; | |
| 6 | +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | |
| 7 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*; | |
| 8 | +import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert; | |
| 9 | +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; | |
| 10 | +import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService; | |
| 11 | +import io.swagger.v3.oas.annotations.Operation; | |
| 12 | +import io.swagger.v3.oas.annotations.Parameter; | |
| 13 | +import io.swagger.v3.oas.annotations.tags.Tag; | |
| 14 | +import org.springframework.security.access.prepost.PreAuthorize; | |
| 15 | +import org.springframework.validation.annotation.Validated; | |
| 16 | +import org.springframework.web.bind.annotation.*; | |
| 17 | + | |
| 18 | +import javax.annotation.Resource; | |
| 19 | +import javax.servlet.http.HttpServletResponse; | |
| 20 | +import javax.validation.Valid; | |
| 21 | +import java.io.IOException; | |
| 22 | +import java.util.Collection; | |
| 23 | +import java.util.List; | |
| 24 | + | |
| 25 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | |
| 26 | +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; | |
| 27 | + | |
| 28 | +@Tag(name = "管理后台 - 自提门店") | |
| 29 | +@RestController | |
| 30 | +@RequestMapping("/trade/delivery/pick-up-store") | |
| 31 | +@Validated | |
| 32 | +public class DeliveryPickUpStoreController { | |
| 33 | + | |
| 34 | + @Resource | |
| 35 | + private DeliveryPickUpStoreService deliveryPickUpStoreService; | |
| 36 | + | |
| 37 | + @PostMapping("/create") | |
| 38 | + @Operation(summary = "创建自提门店") | |
| 39 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')") | |
| 40 | + public CommonResult<Long> createDeliveryPickUpStore(@Valid @RequestBody DeliveryPickUpStoreCreateReqVO createReqVO) { | |
| 41 | + return success(deliveryPickUpStoreService.createDeliveryPickUpStore(createReqVO)); | |
| 42 | + } | |
| 43 | + | |
| 44 | + @PutMapping("/update") | |
| 45 | + @Operation(summary = "更新自提门店") | |
| 46 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:update')") | |
| 47 | + public CommonResult<Boolean> updateDeliveryPickUpStore(@Valid @RequestBody DeliveryPickUpStoreUpdateReqVO updateReqVO) { | |
| 48 | + deliveryPickUpStoreService.updateDeliveryPickUpStore(updateReqVO); | |
| 49 | + return success(true); | |
| 50 | + } | |
| 51 | + | |
| 52 | + @DeleteMapping("/delete") | |
| 53 | + @Operation(summary = "删除自提门店") | |
| 54 | + @Parameter(name = "id", description = "编号", required = true) | |
| 55 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:delete')") | |
| 56 | + public CommonResult<Boolean> deleteDeliveryPickUpStore(@RequestParam("id") Long id) { | |
| 57 | + deliveryPickUpStoreService.deleteDeliveryPickUpStore(id); | |
| 58 | + return success(true); | |
| 59 | + } | |
| 60 | + | |
| 61 | + @GetMapping("/get") | |
| 62 | + @Operation(summary = "获得自提门店") | |
| 63 | + @Parameter(name = "id", description = "编号", required = true, example = "1024") | |
| 64 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") | |
| 65 | + public CommonResult<DeliveryPickUpStoreRespVO> getDeliveryPickUpStore(@RequestParam("id") Long id) { | |
| 66 | + DeliveryPickUpStoreDO deliveryPickUpStore = deliveryPickUpStoreService.getDeliveryPickUpStore(id); | |
| 67 | + return success(DeliveryPickUpStoreConvert.INSTANCE.convert(deliveryPickUpStore)); | |
| 68 | + } | |
| 69 | + | |
| 70 | + @GetMapping("/list") | |
| 71 | + @Operation(summary = "获得自提门店列表") | |
| 72 | + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") | |
| 73 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") | |
| 74 | + public CommonResult<List<DeliveryPickUpStoreRespVO>> getDeliveryPickUpStoreList(@RequestParam("ids") Collection<Long> ids) { | |
| 75 | + List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreList(ids); | |
| 76 | + return success(DeliveryPickUpStoreConvert.INSTANCE.convertList(list)); | |
| 77 | + } | |
| 78 | + | |
| 79 | + @GetMapping("/page") | |
| 80 | + @Operation(summary = "获得自提门店分页") | |
| 81 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") | |
| 82 | + public CommonResult<PageResult<DeliveryPickUpStoreRespVO>> getDeliveryPickUpStorePage(@Valid DeliveryPickUpStorePageReqVO pageVO) { | |
| 83 | + PageResult<DeliveryPickUpStoreDO> pageResult = deliveryPickUpStoreService.getDeliveryPickUpStorePage(pageVO); | |
| 84 | + return success(DeliveryPickUpStoreConvert.INSTANCE.convertPage(pageResult)); | |
| 85 | + } | |
| 86 | + | |
| 87 | + // TODO @jason:导出去掉好列;简化下,一般用不到哈。 | |
| 88 | + @GetMapping("/export-excel") | |
| 89 | + @Operation(summary = "导出自提门店 Excel") | |
| 90 | + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:export')") | |
| 91 | + @OperateLog(type = EXPORT) | |
| 92 | + public void exportDeliveryPickUpStoreExcel(@Valid DeliveryPickUpStoreExportReqVO exportReqVO, | |
| 93 | + HttpServletResponse response) throws IOException { | |
| 94 | + List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreList(exportReqVO); | |
| 95 | + // 导出 Excel | |
| 96 | + List<DeliveryPickUpStoreExcelVO> datas = DeliveryPickUpStoreConvert.INSTANCE.convertList02(list); | |
| 97 | + ExcelUtils.write(response, "自提门店.xls", "数据", DeliveryPickUpStoreExcelVO.class, datas); | |
| 98 | + } | |
| 99 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/express/DeliveryExpressBaseVO.java
| ... | ... | @@ -27,8 +27,8 @@ public class DeliveryExpressBaseVO { |
| 27 | 27 | @NotNull(message = "排序不能为空") |
| 28 | 28 | private Integer sort; |
| 29 | 29 | |
| 30 | - @Schema(description = "状态(0正常 1停用)", required = true, example = "1") | |
| 31 | - @NotNull(message = "状态(0正常 1停用)不能为空") | |
| 30 | + @Schema(description = "状态", required = true, example = "1") | |
| 31 | + @NotNull(message = "状态不能为空") | |
| 32 | 32 | private Integer status; |
| 33 | 33 | |
| 34 | 34 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateCreateReqVO.java
| ... | ... | @@ -15,14 +15,12 @@ import java.util.List; |
| 15 | 15 | @ToString(callSuper = true) |
| 16 | 16 | public class DeliveryExpressTemplateCreateReqVO extends DeliveryExpressTemplateBaseVO { |
| 17 | 17 | |
| 18 | - // TODO @jason:不用给默认值哈 | |
| 19 | - | |
| 20 | 18 | @Schema(description = "区域运费列表") |
| 21 | 19 | @Valid |
| 22 | - private List<ExpressTemplateChargeBaseVO> templateCharge = Collections.emptyList(); | |
| 20 | + private List<ExpressTemplateChargeBaseVO> templateCharge; | |
| 23 | 21 | |
| 24 | 22 | @Schema(description = "包邮区域列表") |
| 25 | 23 | @Valid |
| 26 | - private List<ExpressTemplateFreeBaseVO> templateFree = Collections.emptyList(); | |
| 24 | + private List<ExpressTemplateFreeBaseVO> templateFree; | |
| 27 | 25 | |
| 28 | 26 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java
| ... | ... | @@ -2,19 +2,20 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstempla |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 4 | import lombok.*; |
| 5 | - | |
| 6 | -import javax.validation.constraints.NotNull; | |
| 7 | 5 | import java.time.LocalDateTime; |
| 8 | 6 | |
| 7 | +// TODO @jason:simplae 是不是不用继承 DeliveryExpressTemplateBaseVO,直接 id name 属性就够了。 | |
| 8 | +// @芋艿 这里给列表显示用的。 需要显示计费方式和排序, 所以继承 DeliveryExpressTemplateBaseVO。 这是去掉了包邮区域和 区域运费列表 | |
| 9 | 9 | @Schema(description = "管理后台 - 快递运费模板 精简 Response VO") |
| 10 | 10 | @Data |
| 11 | +@EqualsAndHashCode(callSuper = true) | |
| 11 | 12 | @ToString(callSuper = true) |
| 12 | -public class DeliveryExpressTemplateSimpleRespVO { | |
| 13 | +public class DeliveryExpressTemplateSimpleRespVO extends DeliveryExpressTemplateBaseVO { | |
| 13 | 14 | |
| 14 | 15 | @Schema(description = "编号,自增", required = true, example = "371") |
| 15 | 16 | private Long id; |
| 16 | 17 | |
| 17 | - @Schema(description = "模板名称", required = true, example = "王五") | |
| 18 | - private String name; | |
| 18 | + @Schema(description = "创建时间", required = true) | |
| 19 | + private LocalDateTime createTime; | |
| 19 | 20 | |
| 20 | 21 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateUpdateReqVO.java
| ... | ... | @@ -7,7 +7,6 @@ import lombok.ToString; |
| 7 | 7 | |
| 8 | 8 | import javax.validation.Valid; |
| 9 | 9 | import javax.validation.constraints.NotNull; |
| 10 | -import java.util.Collections; | |
| 11 | 10 | import java.util.List; |
| 12 | 11 | |
| 13 | 12 | @Schema(description = "管理后台 - 快递运费模板更新 Request VO") |
| ... | ... | @@ -20,14 +19,38 @@ public class DeliveryExpressTemplateUpdateReqVO extends DeliveryExpressTemplateB |
| 20 | 19 | @NotNull(message = "编号不能为空") |
| 21 | 20 | private Long id; |
| 22 | 21 | |
| 23 | - // TODO @jason:pojo 不给默认值哈 | |
| 24 | - | |
| 25 | 22 | @Schema(description = "区域运费列表") |
| 26 | 23 | @Valid |
| 27 | - private List<ExpressTemplateChargeUpdateVO> templateCharge = Collections.emptyList(); | |
| 24 | + private List<ExpressTemplateChargeUpdateVO> templateCharge; | |
| 28 | 25 | |
| 29 | 26 | @Schema(description = "包邮区域列表") |
| 30 | 27 | @Valid |
| 31 | - private List<ExpressTemplateFreeUpdateVO> templateFree = Collections.emptyList(); | |
| 28 | + private List<ExpressTemplateFreeUpdateVO> templateFree; | |
| 29 | + | |
| 30 | + @Schema(description = "管理后台 - 快递运费模板区域运费更新 Request VO") | |
| 31 | + @Data | |
| 32 | + public static class ExpressTemplateChargeUpdateVO extends ExpressTemplateChargeBaseVO { | |
| 33 | + | |
| 34 | + @Schema(description = "编号", example = "6592") | |
| 35 | + private Long id; | |
| 36 | + | |
| 37 | + // TODO @jason:这几个字段,应该不通过前端传递,而是后端查询后去赋值的 | |
| 38 | + @Schema(description = "配送模板编号", example = "1") | |
| 39 | + private Long templateId; | |
| 40 | + | |
| 41 | + @Schema(description = "配送计费方式", example = "1") | |
| 42 | + private Integer chargeMode; | |
| 43 | + | |
| 44 | + } | |
| 45 | + | |
| 46 | + @Schema(description = "管理后台 - 快递运费模板包邮区域更新 Request VO") | |
| 47 | + @Data | |
| 48 | + public static class ExpressTemplateFreeUpdateVO extends ExpressTemplateFreeBaseVO { | |
| 49 | + | |
| 50 | + @Schema(description = "编号", example = "6592") | |
| 51 | + private Long id; | |
| 32 | 52 | |
| 53 | + @Schema(description = "配送模板编号", example = "1") | |
| 54 | + private Long templateId; | |
| 55 | + } | |
| 33 | 56 | } | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/ExpressTemplateChargeUpdateVO.java deleted
| 1 | -package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -// TODO @jason:这个 vo 可以内嵌到 DeliveryExpressTemplateUpdateReqVO,避免 vo 过多,不好分辨 | |
| 7 | -@Schema(description = "管理后台 - 快递公司创建 Request VO") | |
| 8 | -@Data | |
| 9 | -public class ExpressTemplateChargeUpdateVO extends ExpressTemplateChargeBaseVO { | |
| 10 | - | |
| 11 | - @Schema(description = "编号", example = "6592") | |
| 12 | - private Long id; | |
| 13 | - | |
| 14 | - // TODO @jason:这几个字段,应该不通过前端传递,而是后端查询后去赋值的 | |
| 15 | - | |
| 16 | - @Schema(description = "配送模板编号", example = "1") | |
| 17 | - private Long templateId; | |
| 18 | - | |
| 19 | - @Schema(description = "配送计费方式", example = "1") | |
| 20 | - private Integer chargeMode; | |
| 21 | - | |
| 22 | -} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/ExpressTemplateFreeUpdateVO.java deleted
| 1 | -package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate; | |
| 2 | - | |
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | -import lombok.Data; | |
| 5 | - | |
| 6 | -// TODO @jason:这个 vo 可以内嵌到 DeliveryExpressTemplateUpdateReqVO,避免 vo 过多,不好分辨 | |
| 7 | -// TODO @jason:swagger 缺失 | |
| 8 | -/** | |
| 9 | - * 快递运费模板包邮 更新 VO | |
| 10 | - */ | |
| 11 | -@Data | |
| 12 | -public class ExpressTemplateFreeUpdateVO extends ExpressTemplateFreeBaseVO { | |
| 13 | - | |
| 14 | - @Schema(description = "编号", example = "6592") | |
| 15 | - private Long id; | |
| 16 | - | |
| 17 | - @Schema(description = "配送模板编号", example = "1") | |
| 18 | - private Long templateId; | |
| 19 | -} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | |
| 5 | +import cn.iocoder.yudao.framework.common.validation.Mobile; | |
| 6 | +import com.fasterxml.jackson.annotation.JsonFormat; | |
| 7 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 8 | +import lombok.Data; | |
| 9 | + | |
| 10 | +import javax.validation.constraints.NotBlank; | |
| 11 | +import javax.validation.constraints.NotNull; | |
| 12 | +import java.time.LocalTime; | |
| 13 | + | |
| 14 | +/** | |
| 15 | +* 自提门店 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 16 | +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 17 | +*/ | |
| 18 | +@Data | |
| 19 | +public class DeliveryPickUpStoreBaseVO { | |
| 20 | + | |
| 21 | + @Schema(description = "门店名称", required = true, example = "李四") | |
| 22 | + @NotBlank(message = "门店名称不能为空") | |
| 23 | + private String name; | |
| 24 | + | |
| 25 | + @Schema(description = "门店简介", example = "我是门店简介") | |
| 26 | + private String introduction; | |
| 27 | + | |
| 28 | + @Schema(description = "门店手机", required = true, example = "15601892312") | |
| 29 | + @NotBlank(message = "门店手机不能为空") | |
| 30 | + @Mobile | |
| 31 | + private String phone; | |
| 32 | + | |
| 33 | + @Schema(description = "区域编号", required = true, example = "18733") | |
| 34 | + @NotNull(message = "区域编号不能为空") | |
| 35 | + private Integer areaId; | |
| 36 | + | |
| 37 | + @Schema(description = "门店详细地址", required = true, example = "复旦大学路 188 号") | |
| 38 | + @NotBlank(message = "门店详细地址不能为空") | |
| 39 | + private String detailAddress; | |
| 40 | + | |
| 41 | + @Schema(description = "门店 logo", required = true, example = "https://www.iocoder.cn/1.png") | |
| 42 | + @NotBlank(message = "门店 logo 不能为空") | |
| 43 | + private String logo; | |
| 44 | + | |
| 45 | + @Schema(description = "营业开始时间", required = true) | |
| 46 | + @NotNull(message = "营业开始时间不能为空") | |
| 47 | + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") | |
| 48 | + private LocalTime openingTime; | |
| 49 | + | |
| 50 | + @Schema(description = "营业结束时间", required = true) | |
| 51 | + @NotNull(message = "营业结束时间不能为空") | |
| 52 | + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") | |
| 53 | + private LocalTime closingTime; | |
| 54 | + | |
| 55 | + @Schema(description = "纬度", required = true, example = "5.88") | |
| 56 | + @NotNull(message = "纬度不能为空") | |
| 57 | + private Double latitude; | |
| 58 | + | |
| 59 | + @Schema(description = "经度", required = true, example = "6.99") | |
| 60 | + @NotNull(message = "经度不能为空") | |
| 61 | + private Double longitude; | |
| 62 | + | |
| 63 | + @Schema(description = "门店状态", required = true, example = "1") | |
| 64 | + @NotNull(message = "门店状态不能为空") | |
| 65 | + @InEnum(CommonStatusEnum.class) | |
| 66 | + private Integer status; | |
| 67 | + | |
| 68 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import lombok.*; | |
| 4 | +import java.util.*; | |
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 6 | +import javax.validation.constraints.*; | |
| 7 | + | |
| 8 | +@Schema(description = "管理后台 - 自提门店创建 Request VO") | |
| 9 | +@Data | |
| 10 | +@EqualsAndHashCode(callSuper = true) | |
| 11 | +@ToString(callSuper = true) | |
| 12 | +public class DeliveryPickUpStoreCreateReqVO extends DeliveryPickUpStoreBaseVO { | |
| 13 | + | |
| 14 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreExcelVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; | |
| 4 | +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; | |
| 5 | +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; | |
| 6 | +import com.alibaba.excel.annotation.ExcelProperty; | |
| 7 | +import lombok.Data; | |
| 8 | + | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | + | |
| 11 | +@Data | |
| 12 | +public class DeliveryPickUpStoreExcelVO { | |
| 13 | + | |
| 14 | + @ExcelProperty("编号") | |
| 15 | + private Long id; | |
| 16 | + | |
| 17 | + @ExcelProperty("门店名称") | |
| 18 | + private String name; | |
| 19 | + | |
| 20 | + @ExcelProperty("门店简介") | |
| 21 | + private String introduction; | |
| 22 | + | |
| 23 | + @ExcelProperty("门店手机") | |
| 24 | + private String phone; | |
| 25 | + | |
| 26 | + @ExcelProperty("门店所在区域") | |
| 27 | + private String areaName; | |
| 28 | + | |
| 29 | + @ExcelProperty("门店详细地址") | |
| 30 | + private String detailAddress; | |
| 31 | + | |
| 32 | + @ExcelProperty("门店logo") | |
| 33 | + private String logo; | |
| 34 | + | |
| 35 | + // TODO @jason:是不是可以加个 convert? | |
| 36 | + /** | |
| 37 | + * easy-excel 好像暂时不支持 LocalTime. 转成string | |
| 38 | + */ | |
| 39 | + @ExcelProperty("营业开始时间") | |
| 40 | + private String openingTime; | |
| 41 | + | |
| 42 | + @ExcelProperty("营业结束时间") | |
| 43 | + private String closingTime; | |
| 44 | + | |
| 45 | + @ExcelProperty("纬度") | |
| 46 | + private String latitude; | |
| 47 | + | |
| 48 | + @ExcelProperty("经度") | |
| 49 | + private String longitude; | |
| 50 | + | |
| 51 | + @ExcelProperty(value = "状态", converter = DictConvert.class) | |
| 52 | + @DictFormat(DictTypeConstants.COMMON_STATUS) | |
| 53 | + private Integer status; | |
| 54 | + | |
| 55 | + @ExcelProperty("创建时间") | |
| 56 | + private LocalDateTime createTime; | |
| 57 | + | |
| 58 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreExportReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | |
| 5 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 6 | +import lombok.Data; | |
| 7 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 8 | + | |
| 9 | +import java.time.LocalDateTime; | |
| 10 | + | |
| 11 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 12 | + | |
| 13 | +@Schema(description = "管理后台 - 自提门店 Excel 导出 Request VO,参数和 DeliveryPickUpStorePageReqVO 是一致的") | |
| 14 | +@Data | |
| 15 | +public class DeliveryPickUpStoreExportReqVO { | |
| 16 | + | |
| 17 | + @Schema(description = "门店名称", example = "李四") | |
| 18 | + private String name; | |
| 19 | + | |
| 20 | + @Schema(description = "门店手机") | |
| 21 | + private String phone; | |
| 22 | + | |
| 23 | + @Schema(description = "区域id", example = "18733") | |
| 24 | + private Integer areaId; | |
| 25 | + | |
| 26 | + @Schema(description = "门店状态", example = "1") | |
| 27 | + @InEnum(CommonStatusEnum.class) | |
| 28 | + private Integer status; | |
| 29 | + | |
| 30 | + @Schema(description = "创建时间") | |
| 31 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 32 | + private LocalDateTime[] createTime; | |
| 33 | + | |
| 34 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStorePageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 4 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | |
| 5 | +import lombok.*; | |
| 6 | + | |
| 7 | +import java.time.LocalTime; | |
| 8 | +import java.util.*; | |
| 9 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 10 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 11 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 12 | +import java.time.LocalDateTime; | |
| 13 | + | |
| 14 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_HOUR_MINUTE_SECOND; | |
| 15 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 16 | + | |
| 17 | +@Schema(description = "管理后台 - 自提门店分页 Request VO") | |
| 18 | +@Data | |
| 19 | +@EqualsAndHashCode(callSuper = true) | |
| 20 | +@ToString(callSuper = true) | |
| 21 | +public class DeliveryPickUpStorePageReqVO extends PageParam { | |
| 22 | + | |
| 23 | + @Schema(description = "门店名称", example = "李四") | |
| 24 | + private String name; | |
| 25 | + | |
| 26 | + @Schema(description = "门店手机") | |
| 27 | + private String phone; | |
| 28 | + | |
| 29 | + @Schema(description = "区域编号", example = "18733") | |
| 30 | + private Integer areaId; | |
| 31 | + | |
| 32 | + @Schema(description = "门店状态", example = "1") | |
| 33 | + @InEnum(CommonStatusEnum.class) | |
| 34 | + private Integer status; | |
| 35 | + | |
| 36 | + @Schema(description = "创建时间") | |
| 37 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 38 | + private LocalDateTime[] createTime; | |
| 39 | + | |
| 40 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import lombok.*; | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | + | |
| 7 | +@Schema(description = "管理后台 - 自提门店 Response VO") | |
| 8 | +@Data | |
| 9 | +@EqualsAndHashCode(callSuper = true) | |
| 10 | +@ToString(callSuper = true) | |
| 11 | +public class DeliveryPickUpStoreRespVO extends DeliveryPickUpStoreBaseVO { | |
| 12 | + | |
| 13 | + @Schema(description = "编号", required = true, example = "23128") | |
| 14 | + private Long id; | |
| 15 | + | |
| 16 | + @Schema(description = "创建时间", required = true) | |
| 17 | + private LocalDateTime createTime; | |
| 18 | + | |
| 19 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import lombok.*; | |
| 5 | +import java.util.*; | |
| 6 | +import javax.validation.constraints.*; | |
| 7 | + | |
| 8 | +@Schema(description = "管理后台 - 自提门店更新 Request VO") | |
| 9 | +@Data | |
| 10 | +@EqualsAndHashCode(callSuper = true) | |
| 11 | +@ToString(callSuper = true) | |
| 12 | +public class DeliveryPickUpStoreUpdateReqVO extends DeliveryPickUpStoreBaseVO { | |
| 13 | + | |
| 14 | + @Schema(description = "编号", required = true, example = "23128") | |
| 15 | + @NotNull(message = "编号不能为空") | |
| 16 | + private Long id; | |
| 17 | + | |
| 18 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java
| ... | ... | @@ -55,6 +55,9 @@ public class AppTradeOrderController { |
| 55 | 55 | @PreAuthenticated |
| 56 | 56 | public CommonResult<AppTradeOrderSettlementRespVO> settlementOrder( |
| 57 | 57 | @Valid AppTradeOrderSettlementReqVO settlementReqVO) { |
| 58 | + if (true) { | |
| 59 | + return success(tradeOrderService.settlementOrder(getLoginUserId(), settlementReqVO)); | |
| 60 | + } | |
| 58 | 61 | // return success(tradeOrderService.getOrderConfirmCreateInfo(UserSecurityContextHolder.getUserId(), skuId, quantity, couponCardId)); |
| 59 | 62 | AppTradeOrderSettlementRespVO settlement = new AppTradeOrderSettlementRespVO(); |
| 60 | 63 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressConvert.java
| ... | ... | @@ -12,12 +12,6 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO; |
| 12 | 12 | import org.mapstruct.Mapper; |
| 13 | 13 | import org.mapstruct.factory.Mappers; |
| 14 | 14 | |
| 15 | - | |
| 16 | -/** | |
| 17 | - * 快递公司 Convert | |
| 18 | - * | |
| 19 | - * @author jason | |
| 20 | - */ | |
| 21 | 15 | @Mapper |
| 22 | 16 | public interface DeliveryExpressConvert { |
| 23 | 17 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java
| ... | ... | @@ -11,11 +11,6 @@ import org.mapstruct.factory.Mappers; |
| 11 | 11 | |
| 12 | 12 | import java.util.List; |
| 13 | 13 | |
| 14 | -/** | |
| 15 | - * 快递运费模板 Convert | |
| 16 | - * | |
| 17 | - * @author jason | |
| 18 | - */ | |
| 19 | 14 | @Mapper |
| 20 | 15 | public interface DeliveryExpressTemplateConvert { |
| 21 | 16 | |
| ... | ... | @@ -48,7 +43,7 @@ public interface DeliveryExpressTemplateConvert { |
| 48 | 43 | |
| 49 | 44 | DeliveryExpressTemplateChargeDO convertTemplateCharge(Long templateId, Integer chargeMode, ExpressTemplateChargeBaseVO vo); |
| 50 | 45 | |
| 51 | - DeliveryExpressTemplateChargeDO convertTemplateCharge(ExpressTemplateChargeUpdateVO vo); | |
| 46 | + DeliveryExpressTemplateChargeDO convertTemplateCharge(DeliveryExpressTemplateUpdateReqVO.ExpressTemplateChargeUpdateVO vo); | |
| 52 | 47 | |
| 53 | 48 | default List<DeliveryExpressTemplateChargeDO> convertTemplateChargeList(Long templateId, Integer chargeMode, List<ExpressTemplateChargeBaseVO> list) { |
| 54 | 49 | return CollectionUtils.convertList(list, vo -> convertTemplateCharge(templateId, chargeMode, vo)); |
| ... | ... | @@ -58,7 +53,7 @@ public interface DeliveryExpressTemplateConvert { |
| 58 | 53 | |
| 59 | 54 | DeliveryExpressTemplateFreeDO convertTemplateFree(Long templateId, ExpressTemplateFreeBaseVO vo); |
| 60 | 55 | |
| 61 | - DeliveryExpressTemplateFreeDO convertTemplateFree(ExpressTemplateFreeUpdateVO vo); | |
| 56 | + DeliveryExpressTemplateFreeDO convertTemplateFree(DeliveryExpressTemplateUpdateReqVO.ExpressTemplateFreeUpdateVO vo); | |
| 62 | 57 | |
| 63 | 58 | List<ExpressTemplateChargeBaseVO> convertTemplateChargeList(List<DeliveryExpressTemplateChargeDO> list); |
| 64 | 59 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryPickUpStoreConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.convert.delivery; | |
| 2 | + | |
| 3 | +import java.util.*; | |
| 4 | + | |
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 6 | + | |
| 7 | +import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; | |
| 8 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO; | |
| 9 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreExcelVO; | |
| 10 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreRespVO; | |
| 11 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO; | |
| 12 | +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; | |
| 13 | +import org.mapstruct.Mapper; | |
| 14 | +import org.mapstruct.Mapping; | |
| 15 | +import org.mapstruct.Named; | |
| 16 | +import org.mapstruct.factory.Mappers; | |
| 17 | + | |
| 18 | +@Mapper | |
| 19 | +public interface DeliveryPickUpStoreConvert { | |
| 20 | + | |
| 21 | + DeliveryPickUpStoreConvert INSTANCE = Mappers.getMapper(DeliveryPickUpStoreConvert.class); | |
| 22 | + | |
| 23 | + DeliveryPickUpStoreDO convert(DeliveryPickUpStoreCreateReqVO bean); | |
| 24 | + | |
| 25 | + DeliveryPickUpStoreDO convert(DeliveryPickUpStoreUpdateReqVO bean); | |
| 26 | + | |
| 27 | + DeliveryPickUpStoreRespVO convert(DeliveryPickUpStoreDO bean); | |
| 28 | + | |
| 29 | + List<DeliveryPickUpStoreRespVO> convertList(List<DeliveryPickUpStoreDO> list); | |
| 30 | + | |
| 31 | + PageResult<DeliveryPickUpStoreRespVO> convertPage(PageResult<DeliveryPickUpStoreDO> page); | |
| 32 | + | |
| 33 | + List<DeliveryPickUpStoreExcelVO> convertList02(List<DeliveryPickUpStoreDO> list); | |
| 34 | + | |
| 35 | + @Mapping(source = "areaId", target = "areaName", qualifiedByName = "convertAreaIdToName") | |
| 36 | + DeliveryPickUpStoreExcelVO convert2(DeliveryPickUpStoreDO bean); | |
| 37 | + | |
| 38 | + @Named("convertAreaIdToName") | |
| 39 | + default String convertAreaIdToName(Integer areaId) { | |
| 40 | + return AreaUtils.format(areaId); | |
| 41 | + } | |
| 42 | + | |
| 43 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreDO.java
| ... | ... | @@ -20,7 +20,7 @@ import java.time.LocalTime; |
| 20 | 20 | public class DeliveryPickUpStoreDO extends BaseDO { |
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | - * 编号,自增 | |
| 23 | + * 编号 | |
| 24 | 24 | */ |
| 25 | 25 | @TableId |
| 26 | 26 | private Long id; |
| ... | ... | @@ -41,7 +41,7 @@ public class DeliveryPickUpStoreDO extends BaseDO { |
| 41 | 41 | private String phone; |
| 42 | 42 | |
| 43 | 43 | /** |
| 44 | - * 区域 id | |
| 44 | + * 区域编号 | |
| 45 | 45 | */ |
| 46 | 46 | private Integer areaId; |
| 47 | 47 | |
| ... | ... | @@ -59,20 +59,20 @@ public class DeliveryPickUpStoreDO extends BaseDO { |
| 59 | 59 | * 营业开始时间 |
| 60 | 60 | */ |
| 61 | 61 | private LocalTime openingTime; |
| 62 | + | |
| 62 | 63 | /** |
| 63 | 64 | * 营业结束时间 |
| 64 | 65 | */ |
| 65 | 66 | private LocalTime closingTime; |
| 66 | 67 | |
| 67 | - // TODO @Jason:应该是 double? | |
| 68 | 68 | /** |
| 69 | 69 | * 纬度 |
| 70 | 70 | */ |
| 71 | - private String latitude; | |
| 71 | + private Double latitude; | |
| 72 | 72 | /** |
| 73 | 73 | * 经度 |
| 74 | 74 | */ |
| 75 | - private String longitude; | |
| 75 | + private Double longitude; | |
| 76 | 76 | |
| 77 | 77 | /** |
| 78 | 78 | * 门店状态 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryPickUpStoreMapper.java
| 1 | 1 | package cn.iocoder.yudao.module.trade.dal.mysql.delivery; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 3 | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | |
| 6 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreExportReqVO; | |
| 7 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO; | |
| 4 | 8 | import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; |
| 5 | 9 | import org.apache.ibatis.annotations.Mapper; |
| 6 | 10 | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 7 | 13 | @Mapper |
| 8 | 14 | public interface DeliveryPickUpStoreMapper extends BaseMapperX<DeliveryPickUpStoreDO> { |
| 15 | + | |
| 16 | + default PageResult<DeliveryPickUpStoreDO> selectPage(DeliveryPickUpStorePageReqVO reqVO) { | |
| 17 | + return selectPage(reqVO, new LambdaQueryWrapperX<DeliveryPickUpStoreDO>() | |
| 18 | + .likeIfPresent(DeliveryPickUpStoreDO::getName, reqVO.getName()) | |
| 19 | + .eqIfPresent(DeliveryPickUpStoreDO::getPhone, reqVO.getPhone()) | |
| 20 | + .eqIfPresent(DeliveryPickUpStoreDO::getAreaId, reqVO.getAreaId()) | |
| 21 | + .eqIfPresent(DeliveryPickUpStoreDO::getStatus, reqVO.getStatus()) | |
| 22 | + .betweenIfPresent(DeliveryPickUpStoreDO::getCreateTime, reqVO.getCreateTime()) | |
| 23 | + .orderByDesc(DeliveryPickUpStoreDO::getId)); | |
| 24 | + } | |
| 25 | + | |
| 26 | + default List<DeliveryPickUpStoreDO> selectList(DeliveryPickUpStoreExportReqVO reqVO) { | |
| 27 | + return selectList(new LambdaQueryWrapperX<DeliveryPickUpStoreDO>() | |
| 28 | + .likeIfPresent(DeliveryPickUpStoreDO::getName, reqVO.getName()) | |
| 29 | + .eqIfPresent(DeliveryPickUpStoreDO::getPhone, reqVO.getPhone()) | |
| 30 | + .eqIfPresent(DeliveryPickUpStoreDO::getAreaId, reqVO.getAreaId()) | |
| 31 | + .eqIfPresent(DeliveryPickUpStoreDO::getStatus, reqVO.getStatus()) | |
| 32 | + .betweenIfPresent(DeliveryPickUpStoreDO::getCreateTime, reqVO.getCreateTime()) | |
| 33 | + .orderByDesc(DeliveryPickUpStoreDO::getId)); | |
| 34 | + } | |
| 9 | 35 | } |
| 10 | 36 | |
| 11 | 37 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java
| ... | ... | @@ -82,10 +82,10 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla |
| 82 | 82 | private void updateExpressTemplateFree(DeliveryExpressTemplateUpdateReqVO updateReqVO) { |
| 83 | 83 | // 1.1 获得新增/修改的区域列表 |
| 84 | 84 | List<DeliveryExpressTemplateFreeDO> oldFreeList = expressTemplateFreeMapper.selectListByTemplateId(updateReqVO.getId()); |
| 85 | - List<ExpressTemplateFreeUpdateVO> newFreeList = updateReqVO.getTemplateFree(); | |
| 85 | + List<DeliveryExpressTemplateUpdateReqVO.ExpressTemplateFreeUpdateVO> newFreeList = updateReqVO.getTemplateFree(); | |
| 86 | 86 | List<DeliveryExpressTemplateFreeDO> addFreeList = new ArrayList<>(newFreeList.size()); // 新增包邮区域列表 |
| 87 | 87 | List<DeliveryExpressTemplateFreeDO> updateFreeList = new ArrayList<>(newFreeList.size()); // 更新包邮区域列表 |
| 88 | - for (ExpressTemplateFreeUpdateVO item : newFreeList) { | |
| 88 | + for (DeliveryExpressTemplateUpdateReqVO.ExpressTemplateFreeUpdateVO item : newFreeList) { | |
| 89 | 89 | if (Objects.nonNull(item.getId())) { |
| 90 | 90 | updateFreeList.add(INSTANCE.convertTemplateFree(item)); |
| 91 | 91 | } else { |
| ... | ... | @@ -113,10 +113,10 @@ public class DeliveryExpressTemplateServiceImpl implements DeliveryExpressTempla |
| 113 | 113 | private void updateExpressTemplateCharge(DeliveryExpressTemplateUpdateReqVO updateReqVO) { |
| 114 | 114 | // 1.1 获得新增/修改的区域列表 |
| 115 | 115 | List<DeliveryExpressTemplateChargeDO> oldChargeList = expressTemplateChargeMapper.selectListByTemplateId(updateReqVO.getId()); |
| 116 | - List<ExpressTemplateChargeUpdateVO> newChargeList = updateReqVO.getTemplateCharge(); | |
| 116 | + List<DeliveryExpressTemplateUpdateReqVO.ExpressTemplateChargeUpdateVO> newChargeList = updateReqVO.getTemplateCharge(); | |
| 117 | 117 | List<DeliveryExpressTemplateChargeDO> addList = new ArrayList<>(newChargeList.size()); // 新增运费区域列表 |
| 118 | 118 | List<DeliveryExpressTemplateChargeDO> updateList = new ArrayList<>(newChargeList.size()); // 更新运费区域列表 |
| 119 | - for (ExpressTemplateChargeUpdateVO item : newChargeList) { | |
| 119 | + for (DeliveryExpressTemplateUpdateReqVO.ExpressTemplateChargeUpdateVO item : newChargeList) { | |
| 120 | 120 | if (item.getId() != null) { |
| 121 | 121 | // 计费模式以主表为准 |
| 122 | 122 | item.setChargeMode(updateReqVO.getChargeMode()); | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreService.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.service.delivery; | |
| 2 | + | |
| 3 | +import java.util.*; | |
| 4 | +import javax.validation.*; | |
| 5 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 6 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO; | |
| 7 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreExportReqVO; | |
| 8 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO; | |
| 9 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO; | |
| 10 | +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * 自提门店 Service 接口 | |
| 14 | + * | |
| 15 | + * @author jason | |
| 16 | + */ | |
| 17 | +public interface DeliveryPickUpStoreService { | |
| 18 | + | |
| 19 | + /** | |
| 20 | + * 创建自提门店 | |
| 21 | + * | |
| 22 | + * @param createReqVO 创建信息 | |
| 23 | + * @return 编号 | |
| 24 | + */ | |
| 25 | + Long createDeliveryPickUpStore(@Valid DeliveryPickUpStoreCreateReqVO createReqVO); | |
| 26 | + | |
| 27 | + /** | |
| 28 | + * 更新自提门店 | |
| 29 | + * | |
| 30 | + * @param updateReqVO 更新信息 | |
| 31 | + */ | |
| 32 | + void updateDeliveryPickUpStore(@Valid DeliveryPickUpStoreUpdateReqVO updateReqVO); | |
| 33 | + | |
| 34 | + /** | |
| 35 | + * 删除自提门店 | |
| 36 | + * | |
| 37 | + * @param id 编号 | |
| 38 | + */ | |
| 39 | + void deleteDeliveryPickUpStore(Long id); | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 获得自提门店 | |
| 43 | + * | |
| 44 | + * @param id 编号 | |
| 45 | + * @return 自提门店 | |
| 46 | + */ | |
| 47 | + DeliveryPickUpStoreDO getDeliveryPickUpStore(Long id); | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * 获得自提门店列表 | |
| 51 | + * | |
| 52 | + * @param ids 编号 | |
| 53 | + * @return 自提门店列表 | |
| 54 | + */ | |
| 55 | + List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreList(Collection<Long> ids); | |
| 56 | + | |
| 57 | + /** | |
| 58 | + * 获得自提门店分页 | |
| 59 | + * | |
| 60 | + * @param pageReqVO 分页查询 | |
| 61 | + * @return 自提门店分页 | |
| 62 | + */ | |
| 63 | + PageResult<DeliveryPickUpStoreDO> getDeliveryPickUpStorePage(DeliveryPickUpStorePageReqVO pageReqVO); | |
| 64 | + | |
| 65 | + /** | |
| 66 | + * 获得自提门店列表, 用于 Excel 导出 | |
| 67 | + * | |
| 68 | + * @param exportReqVO 查询条件 | |
| 69 | + * @return 自提门店列表 | |
| 70 | + */ | |
| 71 | + List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreList(DeliveryPickUpStoreExportReqVO exportReqVO); | |
| 72 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreServiceImpl.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.service.delivery; | |
| 2 | + | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO; | |
| 5 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreExportReqVO; | |
| 6 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO; | |
| 7 | +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO; | |
| 8 | +import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert; | |
| 9 | +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; | |
| 10 | +import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreMapper; | |
| 11 | +import org.springframework.stereotype.Service; | |
| 12 | +import javax.annotation.Resource; | |
| 13 | +import org.springframework.validation.annotation.Validated; | |
| 14 | + | |
| 15 | +import java.util.*; | |
| 16 | + | |
| 17 | + | |
| 18 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | |
| 19 | +import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*; | |
| 20 | + | |
| 21 | +/** | |
| 22 | + * 自提门店 Service 实现类 | |
| 23 | + * | |
| 24 | + * @author jason | |
| 25 | + */ | |
| 26 | +@Service | |
| 27 | +@Validated | |
| 28 | +public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreService { | |
| 29 | + | |
| 30 | + @Resource | |
| 31 | + private DeliveryPickUpStoreMapper deliveryPickUpStoreMapper; | |
| 32 | + | |
| 33 | + @Override | |
| 34 | + public Long createDeliveryPickUpStore(DeliveryPickUpStoreCreateReqVO createReqVO) { | |
| 35 | + // 插入 | |
| 36 | + DeliveryPickUpStoreDO deliveryPickUpStore = DeliveryPickUpStoreConvert.INSTANCE.convert(createReqVO); | |
| 37 | + deliveryPickUpStoreMapper.insert(deliveryPickUpStore); | |
| 38 | + // 返回 | |
| 39 | + return deliveryPickUpStore.getId(); | |
| 40 | + } | |
| 41 | + | |
| 42 | + @Override | |
| 43 | + public void updateDeliveryPickUpStore(DeliveryPickUpStoreUpdateReqVO updateReqVO) { | |
| 44 | + // 校验存在 | |
| 45 | + validateDeliveryPickUpStoreExists(updateReqVO.getId()); | |
| 46 | + // 更新 | |
| 47 | + DeliveryPickUpStoreDO updateObj = DeliveryPickUpStoreConvert.INSTANCE.convert(updateReqVO); | |
| 48 | + deliveryPickUpStoreMapper.updateById(updateObj); | |
| 49 | + } | |
| 50 | + | |
| 51 | + @Override | |
| 52 | + public void deleteDeliveryPickUpStore(Long id) { | |
| 53 | + // 校验存在 | |
| 54 | + validateDeliveryPickUpStoreExists(id); | |
| 55 | + // 删除 | |
| 56 | + deliveryPickUpStoreMapper.deleteById(id); | |
| 57 | + } | |
| 58 | + | |
| 59 | + private void validateDeliveryPickUpStoreExists(Long id) { | |
| 60 | + if (deliveryPickUpStoreMapper.selectById(id) == null) { | |
| 61 | + throw exception(PICK_UP_STORE_NOT_EXISTS); | |
| 62 | + } | |
| 63 | + } | |
| 64 | + | |
| 65 | + @Override | |
| 66 | + public DeliveryPickUpStoreDO getDeliveryPickUpStore(Long id) { | |
| 67 | + return deliveryPickUpStoreMapper.selectById(id); | |
| 68 | + } | |
| 69 | + | |
| 70 | + @Override | |
| 71 | + public List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreList(Collection<Long> ids) { | |
| 72 | + return deliveryPickUpStoreMapper.selectBatchIds(ids); | |
| 73 | + } | |
| 74 | + | |
| 75 | + @Override | |
| 76 | + public PageResult<DeliveryPickUpStoreDO> getDeliveryPickUpStorePage(DeliveryPickUpStorePageReqVO pageReqVO) { | |
| 77 | + return deliveryPickUpStoreMapper.selectPage(pageReqVO); | |
| 78 | + } | |
| 79 | + | |
| 80 | + @Override | |
| 81 | + public List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreList(DeliveryPickUpStoreExportReqVO exportReqVO) { | |
| 82 | + return deliveryPickUpStoreMapper.selectList(exportReqVO); | |
| 83 | + } | |
| 84 | +} | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java
| ... | ... | @@ -5,6 +5,8 @@ import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliver |
| 5 | 5 | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; |
| 6 | 6 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; |
| 7 | 7 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO; |
| 8 | +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; | |
| 9 | +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; | |
| 8 | 10 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; |
| 9 | 11 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; |
| 10 | 12 | |
| ... | ... | @@ -24,6 +26,15 @@ public interface TradeOrderService { |
| 24 | 26 | // =================== Order =================== |
| 25 | 27 | |
| 26 | 28 | /** |
| 29 | + * 获得订单结算信息 | |
| 30 | + * | |
| 31 | + * @param userId 登录用户 | |
| 32 | + * @param settlementReqVO 订单结算请求 | |
| 33 | + * @return 订单结算结果 | |
| 34 | + */ | |
| 35 | + AppTradeOrderSettlementRespVO settlementOrder(Long userId, AppTradeOrderSettlementReqVO settlementReqVO); | |
| 36 | + | |
| 37 | + /** | |
| 27 | 38 | * 【会员】创建交易订单 |
| 28 | 39 | * |
| 29 | 40 | * @param userId 登录用户 | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
| ... | ... | @@ -31,6 +31,8 @@ import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliver |
| 31 | 31 | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; |
| 32 | 32 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; |
| 33 | 33 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO; |
| 34 | +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO; | |
| 35 | +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO; | |
| 34 | 36 | import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; |
| 35 | 37 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; |
| 36 | 38 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; |
| ... | ... | @@ -89,6 +91,11 @@ public class TradeOrderServiceImpl implements TradeOrderService { |
| 89 | 91 | // =================== Order =================== |
| 90 | 92 | |
| 91 | 93 | @Override |
| 94 | + public AppTradeOrderSettlementRespVO settlementOrder(Long userId, AppTradeOrderSettlementReqVO settlementReqVO) { | |
| 95 | + return null; | |
| 96 | + } | |
| 97 | + | |
| 98 | + @Override | |
| 92 | 99 | @Transactional(rollbackFor = Exception.class) |
| 93 | 100 | public Long createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO) { |
| 94 | 101 | // 商品 SKU 检查:可售状态、库存 | ... | ... |