Commit 7fc9689f07337a06398432d7a9b17eefc8b90d5c

Authored by YunaiV
1 parent 0b9ddddd

trade:定义管理后台的订单分页接口

Showing 18 changed files with 327 additions and 48 deletions
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java
@@ -15,10 +15,9 @@ import java.util.Arrays; @@ -15,10 +15,9 @@ import java.util.Arrays;
15 @Getter 15 @Getter
16 public enum TerminalEnum implements IntArrayValuable { 16 public enum TerminalEnum implements IntArrayValuable {
17 17
18 - //TODO terminal 重复,请参考 '订单来源终端:[1:小程序 2:H5 3:iOS 4:安卓]'  
19 MINI_PROGRAM(1, "小程序"), 18 MINI_PROGRAM(1, "小程序"),
20 H5(2, "H5"), 19 H5(2, "H5"),
21 - IOS(3, "iOS"), 20 + IOS(3, "苹果"),
22 ANDROID(3, "安卓"),; 21 ANDROID(3, "安卓"),;
23 22
24 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray(); 23 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray();
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderStatusEnum.java
@@ -17,12 +17,11 @@ import java.util.Arrays; @@ -17,12 +17,11 @@ import java.util.Arrays;
17 @Getter 17 @Getter
18 public enum TradeOrderStatusEnum implements IntArrayValuable { 18 public enum TradeOrderStatusEnum implements IntArrayValuable {
19 19
20 - UNPAID(0, "未付款"),  
21 - PAID(10, "已付款"), // 例如说,拼团订单,支付后,需要拼团成功后,才会处于待发货  
22 - UNDELIVERED(20, "待发货"),  
23 - DELIVERED(30, "已发货"),  
24 - COMPLETED(40, "已完成"),  
25 - CANCELED(50, "已取消"); 20 + UNPAID(0, "待支付"),
  21 + UNDELIVERED(10, "待发货"),
  22 + DELIVERED(20, "已发货"),
  23 + COMPLETED(30, "已完成"),
  24 + CANCELED(40, "已取消");
26 25
27 // TODO 芋艿: TAKE("待核验"):虚拟订单需要核验商品 26 // TODO 芋艿: TAKE("待核验"):虚拟订单需要核验商品
28 27
@@ -56,16 +55,6 @@ public enum TradeOrderStatusEnum implements IntArrayValuable { @@ -56,16 +55,6 @@ public enum TradeOrderStatusEnum implements IntArrayValuable {
56 } 55 }
57 56
58 /** 57 /**
59 - * 判断指定状态,是否正处于【已支付】状态  
60 - *  
61 - * @param status 指定状态  
62 - * @return 是否  
63 - */  
64 - public static boolean isPaid(Integer status) {  
65 - return ObjectUtil.equal(PAID.getStatus(), status);  
66 - }  
67 -  
68 - /**  
69 * 判断指定状态,是否正处于【待发货】状态 58 * 判断指定状态,是否正处于【待发货】状态
70 * 59 *
71 * @param status 指定状态 60 * @param status 指定状态
@@ -112,7 +101,7 @@ public enum TradeOrderStatusEnum implements IntArrayValuable { @@ -112,7 +101,7 @@ public enum TradeOrderStatusEnum implements IntArrayValuable {
112 * @return 是否 101 * @return 是否
113 */ 102 */
114 public static boolean havePaid(Integer status) { 103 public static boolean havePaid(Integer status) {
115 - return ObjectUtils.equalsAny(status, PAID.getStatus(), UNDELIVERED.getStatus(), 104 + return ObjectUtils.equalsAny(status, UNDELIVERED.getStatus(),
116 DELIVERED.getStatus(), COMPLETED.getStatus()); 105 DELIVERED.getStatus(), COMPLETED.getStatus());
117 } 106 }
118 107
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java
1 package cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo; 1 package cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo;
2 2
3 -import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyRespVO; 3 +import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data; 5 import lombok.Data;
6 import org.springframework.format.annotation.DateTimeFormat; 6 import org.springframework.format.annotation.DateTimeFormat;
@@ -73,7 +73,7 @@ public class TradeAfterSaleBaseVO { @@ -73,7 +73,7 @@ public class TradeAfterSaleBaseVO {
73 private Long skuId; 73 private Long skuId;
74 74
75 @ApiModelProperty(value = "规格值数组") 75 @ApiModelProperty(value = "规格值数组")
76 - private List<ProductPropertyRespVO> properties; 76 + private List<ProductPropertyValueDetailRespVO> properties;
77 77
78 @ApiModelProperty(value = "商品图片", example = "https://www.iocoder.cn/2.png") 78 @ApiModelProperty(value = "商品图片", example = "https://www.iocoder.cn/2.png")
79 private String picUrl; 79 private String picUrl;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyRespVO.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java
@@ -4,14 +4,20 @@ import io.swagger.annotations.ApiModel; @@ -4,14 +4,20 @@ import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data; 5 import lombok.Data;
6 6
7 -@ApiModel("管理后台 - 商品规格 Response VO") 7 +@ApiModel("管理后台 - 商品规格 + 规格值的明细 Response VO")
8 @Data 8 @Data
9 -public class ProductPropertyRespVO { 9 +public class ProductPropertyValueDetailRespVO {
10 10
11 - @ApiModelProperty(value = "属性编号", required = true, example = "1") 11 + @ApiModelProperty(value = "属性的编号", required = true, example = "1")
12 private Long propertyId; 12 private Long propertyId;
13 13
14 - @ApiModelProperty(value = "属性值编号", required = true, example = "2") 14 + @ApiModelProperty(value = "属性的名称", required = true, example = "颜色")
  15 + private String propertyName;
  16 +
  17 + @ApiModelProperty(value = "属性值的编号", required = true, example = "1024")
15 private Long valueId; 18 private Long valueId;
16 19
  20 + @ApiModelProperty(value = "属性值的名称", required = true, example = "红色")
  21 + private String valueName;
  22 +
17 } 23 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java
1 package cn.iocoder.yudao.module.trade.controller.admin.order; 1 package cn.iocoder.yudao.module.trade.controller.admin.order;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 -import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; 5 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
  6 +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageItemRespVO;
  7 +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
  8 +import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
6 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; 9 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
7 import io.swagger.annotations.Api; 10 import io.swagger.annotations.Api;
8 import io.swagger.annotations.ApiOperation; 11 import io.swagger.annotations.ApiOperation;
9 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.security.access.prepost.PreAuthorize; 13 import org.springframework.security.access.prepost.PreAuthorize;
11 import org.springframework.validation.annotation.Validated; 14 import org.springframework.validation.annotation.Validated;
12 -import org.springframework.web.bind.annotation.PostMapping;  
13 -import org.springframework.web.bind.annotation.RequestBody;  
14 -import org.springframework.web.bind.annotation.RequestMapping;  
15 -import org.springframework.web.bind.annotation.RestController; 15 +import org.springframework.web.bind.annotation.*;
16 16
17 import javax.annotation.Resource; 17 import javax.annotation.Resource;
18 18
@@ -29,6 +29,14 @@ public class TradeOrderController { @@ -29,6 +29,14 @@ public class TradeOrderController {
29 @Resource 29 @Resource
30 private TradeOrderService tradeOrderService; 30 private TradeOrderService tradeOrderService;
31 31
  32 + @GetMapping("/page")
  33 + @ApiOperation("获得交易订单分页")
  34 + @PreAuthorize("@ss.hasPermission('trade:order:query')")
  35 + public CommonResult<PageResult<TradeOrderPageItemRespVO>> getOrderPage(TradeOrderPageReqVO reqVO) {
  36 + PageResult<TradeOrderDO> pageResult = tradeOrderService.getOrderPage(reqVO);
  37 + return success(null);
  38 + }
  39 +
32 @PostMapping("/delivery") 40 @PostMapping("/delivery")
33 @ApiOperation("发货订单") 41 @ApiOperation("发货订单")
34 @PreAuthorize("@ss.hasPermission('trade:order:delivery')") 42 @PreAuthorize("@ss.hasPermission('trade:order:delivery')")
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java 0 → 100755
  1 +package cn.iocoder.yudao.module.trade.controller.admin.order.vo;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +
  6 +import java.time.LocalDateTime;
  7 +import java.util.Date;
  8 +
  9 +/**
  10 +* 交易订单 Base VO,提供给添加、修改、详细的子 VO 使用
  11 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  12 +*/
  13 +@Data
  14 +public class TradeOrderBaseVO {
  15 +
  16 + // ========== 订单基本信息 ==========
  17 +
  18 + @ApiModelProperty(value = "订单编号", required = true, example = "1024")
  19 + private Long id;
  20 +
  21 + @ApiModelProperty(value = "订单流水号", required = true, example = "1146347329394184195")
  22 + private String no;
  23 +
  24 + @ApiModelProperty(value = "创建时间", required = true, notes = "下单时间")
  25 + private Date createTime;
  26 +
  27 + @ApiModelProperty(value = "订单来源", required = true, example = "1", notes = "参见 TerminalEnum 枚举")
  28 + private Integer terminal;
  29 +
  30 + @ApiModelProperty(value = "用户编号", required = true, example = "2048")
  31 + private Long userId;
  32 +
  33 + @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1")
  34 + private String userIp;
  35 +
  36 + @ApiModelProperty(value = "用户备注", required = true, example = "你猜")
  37 + private String userRemark;
  38 +
  39 + @ApiModelProperty(value = "订单状态", required = true, example = "1", notes = "参见 TradeOrderStatusEnum 枚举")
  40 + private Integer status;
  41 +
  42 + @ApiModelProperty(value = "购买的商品数量", required = true, example = "10")
  43 + private Integer productCount;
  44 +
  45 + @ApiModelProperty(value = "订单完成时间")
  46 + private LocalDateTime finishTime;
  47 +
  48 + @ApiModelProperty(value = "订单取消时间")
  49 + private LocalDateTime cancelTime;
  50 +
  51 + @ApiModelProperty(value = "取消类型", example = "10", notes = "参见 TradeOrderCancelTypeEnum 枚举")
  52 + private Integer cancelType;
  53 +
  54 + @ApiModelProperty(value = "商家备注", example = "你猜一下")
  55 + private String remark;
  56 +
  57 + // ========== 价格 + 支付基本信息 ==========
  58 +
  59 + @ApiModelProperty(value = "支付订单编号", required = true, example = "1024")
  60 + private Long payOrderId;
  61 +
  62 + @ApiModelProperty(value = "是否已支付", required = true, example = "true")
  63 + private Boolean payed;
  64 +
  65 + @ApiModelProperty(value = "付款时间")
  66 + private LocalDateTime payTime;
  67 +
  68 + @ApiModelProperty(value = "支付渠道", required = true, example = "wx_lite", notes = "参见 PayChannelEnum 枚举")
  69 + private String payChannelCode;
  70 +
  71 + @ApiModelProperty(value = "商品原价(总)", required = true, example = "1000", notes = "单位:分")
  72 + private Integer originalPrice;
  73 +
  74 + @ApiModelProperty(value = "订单原价(总)", required = true, example = "1000", notes = "单位:分")
  75 + private Integer orderPrice;
  76 +
  77 + @ApiModelProperty(value = "订单优惠(总)", required = true, example = "100", notes = "单位:分")
  78 + private Integer discountPrice;
  79 +
  80 + @ApiModelProperty(value = "运费金额", required = true, example = "100", notes = "单位:分")
  81 + private Integer deliveryPrice;
  82 +
  83 + @ApiModelProperty(value = "订单调价(总)", required = true, example = "100", notes = "单位:分")
  84 + private Integer adjustPrice;
  85 +
  86 + @ApiModelProperty(value = "应付金额(总)", required = true, example = "1000", notes = "单位:分")
  87 + private Integer payPrice;
  88 +
  89 + // ========== 收件 + 物流基本信息 ==========
  90 +
  91 + @ApiModelProperty(value = "配送模板编号", example = "1024")
  92 + private Long deliveryTemplateId;
  93 +
  94 + @ApiModelProperty(value = "发货物流公司编号", example = "1024")
  95 + private Long logisticsId;
  96 +
  97 + @ApiModelProperty(value = "发货物流单号", example = "1024")
  98 + private String logisticsNo;
  99 +
  100 + @ApiModelProperty(value = "发货状态", required = true, example = "1", notes = "参见 TradeOrderDeliveryStatusEnum 枚举")
  101 + private Integer deliveryStatus;
  102 +
  103 + @ApiModelProperty(value = "发货时间")
  104 + private LocalDateTime deliveryTime;
  105 +
  106 + @ApiModelProperty(value = "收货时间")
  107 + private LocalDateTime receiveTime;
  108 +
  109 + @ApiModelProperty(value = "收件人名称", required = true, example = "张三")
  110 + private String receiverName;
  111 +
  112 + @ApiModelProperty(value = "收件人手机", required = true, example = "13800138000")
  113 + private String receiverMobile;
  114 +
  115 + @ApiModelProperty(value = "收件人地区编号", required = true, example = "110000")
  116 + private Integer receiverAreaId;
  117 +
  118 + @ApiModelProperty(value = "收件人邮编", required = true, example = "100000")
  119 + private Integer receiverPostCode;
  120 +
  121 + @ApiModelProperty(value = "收件人详细地址", required = true, example = "中关村大街 1 号")
  122 + private String receiverDetailAddress;
  123 +
  124 + // ========== 售后基本信息 ==========
  125 +
  126 + @ApiModelProperty(value = "售后状态", example = "1", notes = "参见 TradeOrderAfterSaleStatusEnum 枚举")
  127 + private Integer afterSaleStatus;
  128 +
  129 + @ApiModelProperty(value = "退款金额", required = true, example = "100", notes = "单位:分")
  130 + private Integer refundPrice;
  131 +
  132 + // ========== 营销基本信息 ==========
  133 +
  134 + @ApiModelProperty(value = "优惠劵编号", example = "1024")
  135 + private Long couponId;
  136 +
  137 + @ApiModelProperty(value = "优惠劵减免金额", required = true, example = "100", notes = "单位:分")
  138 + private Integer couponPrice;
  139 +
  140 + @ApiModelProperty(value = "积分抵扣的金额", required = true, example = "100", notes = "单位:分")
  141 + private Integer pointPrice;
  142 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.controller.admin.order.vo;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +
  6 +/**
  7 + * 交易订单项 Base VO,提供给添加、修改、详细的子 VO 使用
  8 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  9 + */
  10 +@Data
  11 +public class TradeOrderItemBaseVO {
  12 +
  13 + // ========== 订单项基本信息 ==========
  14 +
  15 + @ApiModelProperty(value = "编号", required = true, example = "1")
  16 + private Long id;
  17 +
  18 + @ApiModelProperty(value = "用户编号", required = true, example = "1")
  19 + private Long userId;
  20 +
  21 + @ApiModelProperty(value = "订单编号", required = true, example = "1")
  22 + private Long orderId;
  23 +
  24 + // ========== 商品基本信息 ==========
  25 +
  26 + @ApiModelProperty(value = "商品 SPU 编号", required = true, example = "1")
  27 + private Long spuId;
  28 +
  29 + @ApiModelProperty(value = "商品 SPU 名称", required = true, example = "芋道源码")
  30 + private String spuName;
  31 +
  32 + @ApiModelProperty(value = "商品 SKU 编号", required = true, example = "1")
  33 + private Long skuId;
  34 +
  35 + @ApiModelProperty(value = "商品图片", required = true, example = "https://www.iocoder.cn/1.png")
  36 + private String picUrl;
  37 +
  38 + @ApiModelProperty(value = "购买数量", required = true, example = "1")
  39 + private Integer count;
  40 +
  41 + // ========== 价格 + 支付基本信息 ==========
  42 +
  43 + @ApiModelProperty(value = "商品原价(总)", required = true, example = "100", notes = "单位:分")
  44 + private Integer originalPrice;
  45 +
  46 + @ApiModelProperty(value = "商品原价(单)", required = true, example = "100", notes = "单位:分")
  47 + private Integer originalUnitPrice;
  48 +
  49 + @ApiModelProperty(value = "商品优惠(总)", required = true, example = "100", notes = "单位:分")
  50 + private Integer discountPrice;
  51 +
  52 + @ApiModelProperty(value = "商品实付金额(总)", required = true, example = "100", notes = "单位:分")
  53 + private Integer payPrice;
  54 +
  55 + @ApiModelProperty(value = "子订单分摊金额(总)", required = true, example = "100", notes = "单位:分")
  56 + private Integer orderPartPrice;
  57 +
  58 + @ApiModelProperty(value = "分摊后子订单实付金额(总)", required = true, example = "100", notes = "单位:分")
  59 + private Integer orderDividePrice;
  60 +
  61 + // ========== 营销基本信息 ==========
  62 +
  63 + // TODO 芋艿:在捉摸一下
  64 +
  65 + // ========== 售后基本信息 ==========
  66 +
  67 + @ApiModelProperty(value = "售后状态", required = true, example = "1", notes = "参见 TradeOrderItemAfterSaleStatusEnum 枚举类")
  68 + private Integer afterSaleStatus;
  69 +
  70 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.controller.admin.order.vo;
  2 +
  3 +import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO;
  4 +import io.swagger.annotations.ApiModel;
  5 +import lombok.Data;
  6 +
  7 +import java.util.List;
  8 +
  9 +@ApiModel("管理后台 - 交易订单的分页项 Response VO")
  10 +@Data
  11 +public class TradeOrderPageItemRespVO {
  12 +
  13 + /**
  14 + * 订单项列表
  15 + */
  16 + private List<Item> items;
  17 +
  18 + @ApiModel("管理后台 - 交易订单的分页项的订单项目")
  19 + @Data
  20 + public static class Item extends TradeOrderItemBaseVO {
  21 +
  22 + /**
  23 + * 规格值数组
  24 + */
  25 + private List<ProductPropertyValueDetailRespVO> properties;
  26 +
  27 + }
  28 +
  29 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.controller.admin.order.vo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
  5 +import io.swagger.annotations.ApiModel;
  6 +import io.swagger.annotations.ApiModelProperty;
  7 +import lombok.Data;
  8 +
  9 +@ApiModel("管理后台 - 交易订单的分页 Request VO")
  10 +@Data
  11 +public class TradeOrderPageReqVO {
  12 +
  13 + @ApiModelProperty(value = "订单状态", example = "1", notes = "参见 TradeOrderStatusEnum 枚举")
  14 + @InEnum(value = TradeOrderStatusEnum.class, message = "订单状态必须是 {value}")
  15 + private Integer status;
  16 +
  17 +}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java
@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data; 5 import lombok.Data;
6 6
7 -@ApiModel("用户 App - 规格 + 规格值 Response VO") 7 +@ApiModel("用户 App - 商品规格 + 规格值的明细 Response VO")
8 @Data 8 @Data
9 public class AppProductPropertyValueDetailRespVO { 9 public class AppProductPropertyValueDetailRespVO {
10 10
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java
@@ -8,8 +8,8 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; @@ -8,8 +8,8 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
8 import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO; 8 import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO;
9 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; 9 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
10 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderGetCreateInfoRespVO; 10 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderGetCreateInfoRespVO;
11 -import cn.iocoder.yudao.module.trade.controller.app.order.vo.TradeOrderPageReqVO;  
12 -import cn.iocoder.yudao.module.trade.controller.app.order.vo.TradeOrderRespVO; 11 +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
  12 +import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderRespVO;
13 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; 13 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
14 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
15 import io.swagger.annotations.ApiImplicitParam; 15 import io.swagger.annotations.ApiImplicitParam;
@@ -65,14 +65,14 @@ public class AppTradeOrderController { @@ -65,14 +65,14 @@ public class AppTradeOrderController {
65 @GetMapping("/get") 65 @GetMapping("/get")
66 @ApiOperation("获得交易订单") 66 @ApiOperation("获得交易订单")
67 @ApiImplicitParam(name = "tradeOrderId", value = "交易订单编号", required = true, dataTypeClass = Long.class) 67 @ApiImplicitParam(name = "tradeOrderId", value = "交易订单编号", required = true, dataTypeClass = Long.class)
68 - public CommonResult<TradeOrderRespVO> getTradeOrder(@RequestParam("tradeOrderId") Integer tradeOrderId) { 68 + public CommonResult<AppTradeOrderRespVO> getTradeOrder(@RequestParam("tradeOrderId") Integer tradeOrderId) {
69 // return success(tradeOrderService.getTradeOrder(tradeOrderId)); 69 // return success(tradeOrderService.getTradeOrder(tradeOrderId));
70 return null; 70 return null;
71 } 71 }
72 72
73 @GetMapping("/page") 73 @GetMapping("/page")
74 @ApiOperation("获得订单交易分页") 74 @ApiOperation("获得订单交易分页")
75 - public CommonResult<PageResult<TradeOrderRespVO>> pageTradeOrder(TradeOrderPageReqVO pageVO) { 75 + public CommonResult<PageResult<AppTradeOrderRespVO>> pageTradeOrder(AppTradeOrderPageReqVO pageVO) {
76 // return success(tradeOrderService.pageTradeOrder(UserSecurityContextHolder.getUserId(), pageVO)); 76 // return success(tradeOrderService.pageTradeOrder(UserSecurityContextHolder.getUserId(), pageVO));
77 return null; 77 return null;
78 } 78 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/TradeOrderItemRespVO.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderItemRespVO.java
@@ -6,9 +6,10 @@ import lombok.Data; @@ -6,9 +6,10 @@ import lombok.Data;
6 6
7 import java.time.LocalDateTime; 7 import java.time.LocalDateTime;
8 8
  9 +// TODO 芋艿:字段优化
9 @ApiModel("交易订单项 Response VO") 10 @ApiModel("交易订单项 Response VO")
10 @Data 11 @Data
11 -public class TradeOrderItemRespVO { 12 +public class AppTradeOrderItemRespVO {
12 13
13 @ApiModelProperty(value = "id自增长", required = true) 14 @ApiModelProperty(value = "id自增长", required = true)
14 private Integer id; 15 private Integer id;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/TradeOrderPageReqVO.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderPageReqVO.java
@@ -6,10 +6,11 @@ import io.swagger.annotations.ApiModelProperty; @@ -6,10 +6,11 @@ import io.swagger.annotations.ApiModelProperty;
6 import lombok.Data; 6 import lombok.Data;
7 import lombok.EqualsAndHashCode; 7 import lombok.EqualsAndHashCode;
8 8
  9 +// TODO 芋艿:字段优化
9 @ApiModel("交易订单分页 Request VO") 10 @ApiModel("交易订单分页 Request VO")
10 @Data 11 @Data
11 @EqualsAndHashCode(callSuper = true) 12 @EqualsAndHashCode(callSuper = true)
12 -public class TradeOrderPageReqVO extends PageParam { 13 +public class AppTradeOrderPageReqVO extends PageParam {
13 14
14 @ApiModelProperty(value = "订单状态", example = "1", notes = "参见 TradeOrderStatusEnum 枚举") 15 @ApiModelProperty(value = "订单状态", example = "1", notes = "参见 TradeOrderStatusEnum 枚举")
15 private Integer orderStatus; 16 private Integer orderStatus;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/TradeOrderRespVO.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderRespVO.java
@@ -6,9 +6,10 @@ import io.swagger.annotations.*; @@ -6,9 +6,10 @@ import io.swagger.annotations.*;
6 import java.time.LocalDateTime; 6 import java.time.LocalDateTime;
7 import java.util.*; 7 import java.util.*;
8 8
  9 +// TODO 芋艿:字段优化
9 @ApiModel("订单交易 Response VO") 10 @ApiModel("订单交易 Response VO")
10 @Data 11 @Data
11 -public class TradeOrderRespVO { 12 +public class AppTradeOrderRespVO {
12 13
13 @ApiModelProperty(value = "订单编号", required = true) 14 @ApiModelProperty(value = "订单编号", required = true)
14 private Integer id; 15 private Integer id;
@@ -66,7 +67,7 @@ public class TradeOrderRespVO { @@ -66,7 +67,7 @@ public class TradeOrderRespVO {
66 * 67 *
67 * // TODO 芋艿,后续考虑怎么优化下,目前是内嵌了别的 dto 68 * // TODO 芋艿,后续考虑怎么优化下,目前是内嵌了别的 dto
68 */ 69 */
69 - private List<TradeOrderItemRespVO> orderItems; 70 + private List<AppTradeOrderItemRespVO> orderItems;
70 71
71 72
72 } 73 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
@@ -47,7 +47,7 @@ public class TradeOrderDO extends BaseDO { @@ -47,7 +47,7 @@ public class TradeOrderDO extends BaseDO {
47 */ 47 */
48 private Integer type; // TODO order_promotion_type 48 private Integer type; // TODO order_promotion_type
49 /** 49 /**
50 - * 订单来源终端 50 + * 订单来源
51 * 51 *
52 * 枚举 {@link TerminalEnum} 52 * 枚举 {@link TerminalEnum}
53 */ 53 */
@@ -97,6 +97,10 @@ public class TradeOrderDO extends BaseDO { @@ -97,6 +97,10 @@ public class TradeOrderDO extends BaseDO {
97 97
98 // ========== 价格 + 支付基本信息 ========== 98 // ========== 价格 + 支付基本信息 ==========
99 99
  100 + // 价格文档 - 淘宝:https://open.taobao.com/docV3.htm?docId=108471&docType=1
  101 + // 价格文档 - 京东到家:https://openo2o.jddj.com/api/getApiDetail/182/4d1494c5e7ac4679bfdaaed950c5bc7f.htm
  102 + // 价格文档 - 有赞:https://doc.youzanyun.com/detail/API/0/906
  103 +
100 /** 104 /**
101 * 支付订单编号 105 * 支付订单编号
102 * 106 *
@@ -115,17 +119,12 @@ public class TradeOrderDO extends BaseDO { @@ -115,17 +119,12 @@ public class TradeOrderDO extends BaseDO {
115 */ 119 */
116 private LocalDateTime payTime; 120 private LocalDateTime payTime;
117 /** 121 /**
118 - * 支付成功的支付渠道 122 + * 支付渠道
119 * 123 *
120 * 对应 PayChannelEnum 枚举 124 * 对应 PayChannelEnum 枚举
121 */ 125 */
122 private String payChannelCode; 126 private String payChannelCode;
123 127
124 - // ========== 价格 + 支付基本信息 ==========  
125 - // 价格文档 - 淘宝:https://open.taobao.com/docV3.htm?docId=108471&docType=1  
126 - // 价格文档 - 京东到家:https://openo2o.jddj.com/api/getApiDetail/182/4d1494c5e7ac4679bfdaaed950c5bc7f.htm  
127 - // 价格文档 - 有赞:https://doc.youzanyun.com/detail/API/0/906  
128 -  
129 /** 128 /**
130 * 商品原价(总),单位:分 129 * 商品原价(总),单位:分
131 * 130 *
@@ -222,7 +221,7 @@ public class TradeOrderDO extends BaseDO { @@ -222,7 +221,7 @@ public class TradeOrderDO extends BaseDO {
222 */ 221 */
223 private String receiverDetailAddress; 222 private String receiverDetailAddress;
224 223
225 - // ========== 退款基本信息 ========== 224 + // ========== 售后基本信息 ==========
226 /** 225 /**
227 * 收货状态 226 * 收货状态
228 * 227 *
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
@@ -140,7 +140,7 @@ public class TradeOrderItemDO extends BaseDO { @@ -140,7 +140,7 @@ public class TradeOrderItemDO extends BaseDO {
140 140
141 // TODO 芋艿:在捉摸一下 141 // TODO 芋艿:在捉摸一下
142 142
143 - // ========== 退款基本信息 ========== 143 + // ========== 售后基本信息 ==========
144 /** 144 /**
145 * 售后状态 145 * 售后状态
146 * 146 *
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java
1 package cn.iocoder.yudao.module.trade.service.order; 1 package cn.iocoder.yudao.module.trade.service.order;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; 4 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
  5 +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
4 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; 6 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
5 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; 7 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
6 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; 8 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
@@ -58,6 +60,14 @@ public interface TradeOrderService { @@ -58,6 +60,14 @@ public interface TradeOrderService {
58 */ 60 */
59 TradeOrderDO getOrder(Long userId, Long id); 61 TradeOrderDO getOrder(Long userId, Long id);
60 62
  63 + /**
  64 + * 获得交易订单分页
  65 + *
  66 + * @param reqVO 分页请求
  67 + * @return 交易订单
  68 + */
  69 + PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO);
  70 +
61 // =================== Order Item =================== 71 // =================== Order Item ===================
62 72
63 /** 73 /**
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
6 import cn.iocoder.yudao.framework.common.core.KeyValue; 6 import cn.iocoder.yudao.framework.common.core.KeyValue;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.enums.TerminalEnum; 8 import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
  9 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
10 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 11 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
11 import cn.iocoder.yudao.module.member.api.address.AddressApi; 12 import cn.iocoder.yudao.module.member.api.address.AddressApi;
@@ -25,6 +26,7 @@ import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO; @@ -25,6 +26,7 @@ import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
25 import cn.iocoder.yudao.module.promotion.api.price.PriceApi; 26 import cn.iocoder.yudao.module.promotion.api.price.PriceApi;
26 import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO; 27 import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO;
27 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; 28 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
  29 +import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
28 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; 30 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
29 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO.Item; 31 import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO.Item;
30 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; 32 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
@@ -419,6 +421,11 @@ public class TradeOrderServiceImpl implements TradeOrderService { @@ -419,6 +421,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
419 return order; 421 return order;
420 } 422 }
421 423
  424 + @Override
  425 + public PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO) {
  426 + return null;
  427 + }
  428 +
422 // =================== Order Item =================== 429 // =================== Order Item ===================
423 430
424 @Override 431 @Override