mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	trade:增加用户 App 的订单分页和详情接口
This commit is contained in:
		| @@ -26,8 +26,12 @@ tenant-id: {{appTenentId}} | |||||||
|   ] |   ] | ||||||
| } | } | ||||||
|  |  | ||||||
| ### /trade-order/page 获得订单交易分页 | ### 获得订单交易的分页 | ||||||
| GET {{shop-api-base-url}}/trade-order/page?status=1&pageNo=1&pageSize=10 | GET {{appApi}}/trade/order/page?pageNo=1&pageSize=10 | ||||||
| Content-Type: application/x-www-form-urlencoded | Authorization: Bearer {{appToken}} | ||||||
|  | tenant-id: {{appTenentId}} | ||||||
|  |  | ||||||
| ### | ### 获得订单交易的详细 | ||||||
|  | GET {{appApi}}/trade/order/get-detail?id=21 | ||||||
|  | Authorization: Bearer {{appToken}} | ||||||
|  | tenant-id: {{appTenentId}} | ||||||
|   | |||||||
| @@ -4,12 +4,13 @@ import cn.hutool.extra.servlet.ServletUtil; | |||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; | import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; | ||||||
| import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; |  | ||||||
| import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO; | import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | import cn.iocoder.yudao.module.product.api.property.ProductPropertyValueApi; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderGetCreateInfoRespVO; | import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO; | import cn.iocoder.yudao.module.trade.controller.app.order.vo.*; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderRespVO; | import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; | ||||||
|  | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||||
|  | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | ||||||
| import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; | import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||||
| @@ -20,8 +21,11 @@ import org.springframework.web.bind.annotation.*; | |||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||||
|  | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||||||
|  | import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | ||||||
|  |  | ||||||
| @Api(tags = "用户 App - 交易订单") | @Api(tags = "用户 App - 交易订单") | ||||||
| @RestController | @RestController | ||||||
| @@ -33,6 +37,9 @@ public class AppTradeOrderController { | |||||||
|     @Resource |     @Resource | ||||||
|     private TradeOrderService tradeOrderService; |     private TradeOrderService tradeOrderService; | ||||||
|  |  | ||||||
|  |     @Resource | ||||||
|  |     private ProductPropertyValueApi productPropertyValueApi; | ||||||
|  |  | ||||||
|     @GetMapping("/get-create-info") |     @GetMapping("/get-create-info") | ||||||
|     @ApiOperation("基于商品,确认创建订单") |     @ApiOperation("基于商品,确认创建订单") | ||||||
|     @PreAuthenticated |     @PreAuthenticated | ||||||
| @@ -47,7 +54,7 @@ public class AppTradeOrderController { | |||||||
|     public CommonResult<Long> createOrder(@RequestBody AppTradeOrderCreateReqVO createReqVO, |     public CommonResult<Long> createOrder(@RequestBody AppTradeOrderCreateReqVO createReqVO, | ||||||
|                                           HttpServletRequest servletRequest) { |                                           HttpServletRequest servletRequest) { | ||||||
|         // 获取登录用户、用户 IP 地址 |         // 获取登录用户、用户 IP 地址 | ||||||
|         Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); |         Long loginUserId = getLoginUserId(); | ||||||
|         String clientIp = ServletUtil.getClientIP(servletRequest); |         String clientIp = ServletUtil.getClientIP(servletRequest); | ||||||
|         // 创建交易订单,预支付记录 |         // 创建交易订单,预支付记录 | ||||||
|         Long orderId = tradeOrderService.createOrder(loginUserId, clientIp, createReqVO); |         Long orderId = tradeOrderService.createOrder(loginUserId, clientIp, createReqVO); | ||||||
| @@ -62,19 +69,34 @@ public class AppTradeOrderController { | |||||||
|         return success(true); |         return success(true); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @GetMapping("/get") |     @GetMapping("/get-detail") | ||||||
|     @ApiOperation("获得交易订单") |     @ApiOperation("获得交易订单") | ||||||
|     @ApiImplicitParam(name = "tradeOrderId", value = "交易订单编号", required = true, dataTypeClass = Long.class) |     @ApiImplicitParam(name = "id", value = "交易订单编号", required = true, dataTypeClass = Long.class) | ||||||
|     public CommonResult<AppTradeOrderRespVO> getTradeOrder(@RequestParam("tradeOrderId") Integer tradeOrderId) { |     public CommonResult<AppTradeOrderDetailRespVO> getOrder(@RequestParam("id") Long id) { | ||||||
| //        return success(tradeOrderService.getTradeOrder(tradeOrderId)); |         // 查询订单 | ||||||
|         return null; |         TradeOrderDO order = tradeOrderService.getOrder(getLoginUserId(), id); | ||||||
|  |         // 查询订单项 | ||||||
|  |         List<TradeOrderItemDO> orderItems = tradeOrderService.getOrderItemListByOrderId(order.getId()); | ||||||
|  |         // 查询商品属性 | ||||||
|  |         List<ProductPropertyValueDetailRespDTO> propertyValueDetails = productPropertyValueApi | ||||||
|  |                 .getPropertyValueDetailList(TradeOrderConvert.INSTANCE.convertPropertyValueIds(orderItems)); | ||||||
|  |         // 最终组合 | ||||||
|  |         return success(TradeOrderConvert.INSTANCE.convert02(order, orderItems, propertyValueDetails)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @GetMapping("/page") |     @GetMapping("/page") | ||||||
|     @ApiOperation("获得订单交易分页") |     @ApiOperation("获得订单交易分页") | ||||||
|     public CommonResult<PageResult<AppTradeOrderRespVO>> pageTradeOrder(AppTradeOrderPageReqVO pageVO) { |     public CommonResult<PageResult<AppTradeOrderPageItemRespVO>> getOrderPage(AppTradeOrderPageReqVO reqVO) { | ||||||
| //        return success(tradeOrderService.pageTradeOrder(UserSecurityContextHolder.getUserId(), pageVO)); |         // 查询订单 | ||||||
|         return null; |         PageResult<TradeOrderDO> pageResult = tradeOrderService.getOrderPage(getLoginUserId(), reqVO); | ||||||
|  |         // 查询订单项 | ||||||
|  |         List<TradeOrderItemDO> orderItems = tradeOrderService.getOrderItemListByOrderId( | ||||||
|  |                 convertSet(pageResult.getList(), TradeOrderDO::getId)); | ||||||
|  |         // 查询商品属性 | ||||||
|  |         List<ProductPropertyValueDetailRespDTO> propertyValueDetails = productPropertyValueApi | ||||||
|  |                 .getPropertyValueDetailList(TradeOrderConvert.INSTANCE.convertPropertyValueIds(orderItems)); | ||||||
|  |         // 最终组合 | ||||||
|  |         return success(TradeOrderConvert.INSTANCE.convertPage02(pageResult, orderItems, propertyValueDetails)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,150 @@ | |||||||
|  | package cn.iocoder.yudao.module.trade.controller.app.order.vo; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO; | ||||||
|  | import io.swagger.annotations.ApiModel; | ||||||
|  | import io.swagger.annotations.ApiModelProperty; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | @ApiModel("用户 App - 订单交易的明细 Response VO") | ||||||
|  | @Data | ||||||
|  | public class AppTradeOrderDetailRespVO { | ||||||
|  |  | ||||||
|  |     // ========== 订单基本信息 ========== | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单编号", required = true, example = "1024") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单流水号", required = true, example = "1146347329394184195") | ||||||
|  |     private String no; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "创建时间", required = true, notes = "下单时间") | ||||||
|  |     private Date createTime; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "用户备注", required = true, example = "你猜") | ||||||
|  |     private String userRemark; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单状态", required = true, example = "1", notes = "参见 TradeOrderStatusEnum 枚举") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "购买的商品数量", required = true, example = "10") | ||||||
|  |     private Integer productCount; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单完成时间") | ||||||
|  |     private LocalDateTime finishTime; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单取消时间") | ||||||
|  |     private LocalDateTime cancelTime; | ||||||
|  |  | ||||||
|  |     // ========== 价格 + 支付基本信息 ========== | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "支付订单编号", required = true, example = "1024") | ||||||
|  |     private Long payOrderId; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "付款时间") | ||||||
|  |     private LocalDateTime payTime; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "商品原价(总)", required = true, example = "1000", notes = "单位:分") | ||||||
|  |     private Integer originalPrice; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单原价(总)", required = true, example = "1000", notes = "单位:分") | ||||||
|  |     private Integer orderPrice; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单优惠(总)", required = true, example = "100", notes = "单位:分") | ||||||
|  |     private Integer discountPrice; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "运费金额", required = true, example = "100", notes = "单位:分") | ||||||
|  |     private Integer deliveryPrice; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单调价(总)", required = true, example = "100", notes = "单位:分") | ||||||
|  |     private Integer adjustPrice; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "应付金额(总)", required = true, example = "1000", notes = "单位:分") | ||||||
|  |     private Integer payPrice; | ||||||
|  |  | ||||||
|  |     // ========== 收件 + 物流基本信息 ========== | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "发货物流单号", example = "1024") | ||||||
|  |     private String logisticsNo; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "发货时间") | ||||||
|  |     private LocalDateTime deliveryTime; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收货时间") | ||||||
|  |     private LocalDateTime receiveTime; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收件人名称", required = true, example = "张三") | ||||||
|  |     private String receiverName; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收件人手机", required = true, example = "13800138000") | ||||||
|  |     private String receiverMobile; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收件人地区编号", required = true, example = "110000") | ||||||
|  |     private Integer receiverAreaId; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收件人地区名字", required = true, example = "上海 上海市 普陀区") | ||||||
|  |     private String receiverAreaName; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收件人邮编", required = true, example = "100000") | ||||||
|  |     private Integer receiverPostCode; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "收件人详细地址", required = true, example = "中关村大街 1 号") | ||||||
|  |     private String receiverDetailAddress; | ||||||
|  |  | ||||||
|  |     // ========== 售后基本信息 ========== | ||||||
|  |  | ||||||
|  |     // ========== 营销基本信息 ========== | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "优惠劵编号", example = "1024") | ||||||
|  |     private Long couponId; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "优惠劵减免金额", required = true, example = "100", notes = "单位:分") | ||||||
|  |     private Integer couponPrice; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "积分抵扣的金额", required = true, example = "100", notes = "单位:分") | ||||||
|  |     private Integer pointPrice; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 订单项数组 | ||||||
|  |      */ | ||||||
|  |     private List<Item> items; | ||||||
|  |  | ||||||
|  |     @ApiModel("用户 App - 交易订单的分页项的订单项目") | ||||||
|  |     @Data | ||||||
|  |     public static class Item { | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "编号", required = true, example = "1") | ||||||
|  |         private Long id; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品 SPU 编号", required = true, example = "1") | ||||||
|  |         private Long spuId; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品 SPU 名称", required = true, example = "芋道源码") | ||||||
|  |         private String spuName; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品 SKU 编号", required = true, example = "1") | ||||||
|  |         private Long skuId; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品图片", required = true, example = "https://www.iocoder.cn/1.png") | ||||||
|  |         private String picUrl; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "购买数量", required = true, example = "1") | ||||||
|  |         private Integer count; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品原价(总)", required = true, example = "100", notes = "单位:分") | ||||||
|  |         private Integer originalPrice; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品原价(单)", required = true, example = "100", notes = "单位:分") | ||||||
|  |         private Integer originalUnitPrice; | ||||||
|  |  | ||||||
|  |         /** | ||||||
|  |          * 属性数组 | ||||||
|  |          */ | ||||||
|  |         private List<AppProductPropertyValueDetailRespVO> properties; | ||||||
|  |  | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,54 +0,0 @@ | |||||||
| package cn.iocoder.yudao.module.trade.controller.app.order.vo; |  | ||||||
|  |  | ||||||
| import io.swagger.annotations.ApiModel; |  | ||||||
| import io.swagger.annotations.ApiModelProperty; |  | ||||||
| import lombok.Data; |  | ||||||
|  |  | ||||||
| import java.time.LocalDateTime; |  | ||||||
|  |  | ||||||
| // TODO 芋艿:字段优化 |  | ||||||
| @ApiModel("交易订单项 Response VO") |  | ||||||
| @Data |  | ||||||
| public class AppTradeOrderItemRespVO { |  | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "id自增长", required = true) |  | ||||||
|     private Integer id; |  | ||||||
|     @ApiModelProperty(value = "订单编号", required = true) |  | ||||||
|     private Integer orderId; |  | ||||||
|     @ApiModelProperty(value = "订单项状态", required = true) |  | ||||||
|     private Integer status; |  | ||||||
|     @ApiModelProperty(value = "商品 SKU 编号", required = true) |  | ||||||
|     private Integer skuId; |  | ||||||
|     @ApiModelProperty(value = "商品 SPU 编号", required = true) |  | ||||||
|     private Integer spuId; |  | ||||||
|     @ApiModelProperty(value = "商品名字", required = true) |  | ||||||
|     private String skuName; |  | ||||||
|     @ApiModelProperty(value = "图片名字", required = true) |  | ||||||
|     private String skuImage; |  | ||||||
|     @ApiModelProperty(value = "商品数量", required = true) |  | ||||||
|     private Integer quantity; |  | ||||||
|     @ApiModelProperty(value = "原始单价,单位:分", required = true) |  | ||||||
|     private Integer originPrice; |  | ||||||
|     @ApiModelProperty(value = "购买单价,单位:分", required = true) |  | ||||||
|     private Integer buyPrice; |  | ||||||
|     @ApiModelProperty(value = "最终价格,单位:分", required = true) |  | ||||||
|     private Integer presentPrice; |  | ||||||
|     @ApiModelProperty(value = "购买总金额,单位:分", required = true) |  | ||||||
|     private Integer buyTotal; |  | ||||||
|     @ApiModelProperty(value = "优惠总金额,单位:分", required = true) |  | ||||||
|     private Integer discountTotal; |  | ||||||
|     @ApiModelProperty(value = "最终总金额,单位:分", required = true) |  | ||||||
|     private Integer presentTotal; |  | ||||||
|     @ApiModelProperty(value = "退款总金额,单位:分", required = true) |  | ||||||
|     private Integer refundTotal; |  | ||||||
|     @ApiModelProperty(value = "物流id") |  | ||||||
|     private Integer logisticsId; |  | ||||||
|     @ApiModelProperty(value = "售后状态", required = true) |  | ||||||
|     private Integer afterSaleStatus; |  | ||||||
|     @ApiModelProperty(value = "售后订单编号") |  | ||||||
|     private Integer afterSaleOrderId; |  | ||||||
|     @ApiModelProperty(value = "创建时间", required = true) |  | ||||||
|     private LocalDateTime createTime; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -0,0 +1,66 @@ | |||||||
|  | package cn.iocoder.yudao.module.trade.controller.app.order.vo; | ||||||
|  |  | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO; | ||||||
|  | import io.swagger.annotations.ApiModel; | ||||||
|  | import io.swagger.annotations.ApiModelProperty; | ||||||
|  | import lombok.Data; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | @ApiModel("用户 App - 订单交易的分页项 Response VO") | ||||||
|  | @Data | ||||||
|  | public class AppTradeOrderPageItemRespVO { | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单编号", required = true, example = "1024") | ||||||
|  |     private Long id; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单流水号", required = true, example = "1146347329394184195") | ||||||
|  |     private String no; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "订单状态", required = true, example = "1", notes = "参见 TradeOrderStatusEnum 枚举") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "购买的商品数量", required = true, example = "10") | ||||||
|  |     private Integer productCount; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 订单项数组 | ||||||
|  |      */ | ||||||
|  |     private List<Item> items; | ||||||
|  |  | ||||||
|  |     @ApiModel("用户 App - 交易订单的明细的订单项目") | ||||||
|  |     @Data | ||||||
|  |     public static class Item { | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "编号", required = true, example = "1") | ||||||
|  |         private Long id; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品 SPU 编号", required = true, example = "1") | ||||||
|  |         private Long spuId; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品 SPU 名称", required = true, example = "芋道源码") | ||||||
|  |         private String spuName; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品 SKU 编号", required = true, example = "1") | ||||||
|  |         private Long skuId; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品图片", required = true, example = "https://www.iocoder.cn/1.png") | ||||||
|  |         private String picUrl; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "购买数量", required = true, example = "1") | ||||||
|  |         private Integer count; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品原价(总)", required = true, example = "100", notes = "单位:分") | ||||||
|  |         private Integer originalPrice; | ||||||
|  |  | ||||||
|  |         @ApiModelProperty(value = "商品原价(单)", required = true, example = "100", notes = "单位:分") | ||||||
|  |         private Integer originalUnitPrice; | ||||||
|  |  | ||||||
|  |         /** | ||||||
|  |          * 属性数组 | ||||||
|  |          */ | ||||||
|  |         private List<AppProductPropertyValueDetailRespVO> properties; | ||||||
|  |  | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -1,18 +1,19 @@ | |||||||
| package cn.iocoder.yudao.module.trade.controller.app.order.vo; | package cn.iocoder.yudao.module.trade.controller.app.order.vo; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||||
|  | import cn.iocoder.yudao.framework.common.validation.InEnum; | ||||||
|  | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum; | ||||||
| import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
| import lombok.EqualsAndHashCode; |  | ||||||
|  |  | ||||||
| // TODO 芋艿:字段优化 | // TODO 芋艿:字段优化 | ||||||
| @ApiModel("交易订单分页 Request VO") | @ApiModel("交易订单分页 Request VO") | ||||||
| @Data | @Data | ||||||
| @EqualsAndHashCode(callSuper = true) |  | ||||||
| public class AppTradeOrderPageReqVO extends PageParam { | public class AppTradeOrderPageReqVO extends PageParam { | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "订单状态", example = "1", notes = "参见 TradeOrderStatusEnum 枚举") |     @ApiModelProperty(value = "订单状态", example = "1", notes = "参见 TradeOrderStatusEnum 枚举") | ||||||
|     private Integer orderStatus; |     @InEnum(value = TradeOrderStatusEnum.class, message = "订单状态必须是 {value}") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,73 +0,0 @@ | |||||||
| package cn.iocoder.yudao.module.trade.controller.app.order.vo; |  | ||||||
|  |  | ||||||
| import lombok.*; |  | ||||||
| import io.swagger.annotations.*; |  | ||||||
|  |  | ||||||
| import java.time.LocalDateTime; |  | ||||||
| import java.util.*; |  | ||||||
|  |  | ||||||
| // TODO 芋艿:字段优化 |  | ||||||
| @ApiModel("订单交易 Response VO") |  | ||||||
| @Data |  | ||||||
| public class AppTradeOrderRespVO { |  | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "订单编号", required = true) |  | ||||||
|     private Integer id; |  | ||||||
|     @ApiModelProperty(value = "用户编号", required = true) |  | ||||||
|     private Integer userId; |  | ||||||
|     @ApiModelProperty(value = "订单单号", required = true) |  | ||||||
|     private String orderNo; |  | ||||||
|     @ApiModelProperty(value = "订单状态", required = true) |  | ||||||
|     private Integer orderStatus; |  | ||||||
|     @ApiModelProperty(value = "备注") |  | ||||||
|     private String remark; |  | ||||||
|     @ApiModelProperty(value = "订单结束时间") |  | ||||||
|     private LocalDateTime endTime; |  | ||||||
|     @ApiModelProperty(value = "订单金额(总金额),单位:分", required = true) |  | ||||||
|     private Integer buyPrice; |  | ||||||
|     @ApiModelProperty(value = "优惠总金额,单位:分", required = true) |  | ||||||
|     private Integer discountPrice; |  | ||||||
|     @ApiModelProperty(value = "物流金额,单位:分", required = true) |  | ||||||
|     private Integer logisticsPrice; |  | ||||||
|     @ApiModelProperty(value = "最终金额,单位:分", required = true) |  | ||||||
|     private Integer presentPrice; |  | ||||||
|     @ApiModelProperty(value = "支付金额,单位:分", required = true) |  | ||||||
|     private Integer payPrice; |  | ||||||
|     @ApiModelProperty(value = "退款金额,单位:分", required = true) |  | ||||||
|     private Integer refundPrice; |  | ||||||
|     @ApiModelProperty(value = "付款时间") |  | ||||||
|     private LocalDateTime payTime; |  | ||||||
|     @ApiModelProperty(value = "支付订单编号") |  | ||||||
|     private Integer payTransactionId; |  | ||||||
|     @ApiModelProperty(value = "支付渠道") |  | ||||||
|     private Integer payChannel; |  | ||||||
|     @ApiModelProperty(value = "配送类型", required = true) |  | ||||||
|     private Integer deliveryType; |  | ||||||
|     @ApiModelProperty(value = "发货时间") |  | ||||||
|     private LocalDateTime deliveryTime; |  | ||||||
|     @ApiModelProperty(value = "收货时间") |  | ||||||
|     private LocalDateTime receiveTime; |  | ||||||
|     @ApiModelProperty(value = "收件人名称", required = true) |  | ||||||
|     private String receiverName; |  | ||||||
|     @ApiModelProperty(value = "手机号", required = true) |  | ||||||
|     private String receiverMobile; |  | ||||||
|     @ApiModelProperty(value = "地区编码", required = true) |  | ||||||
|     private Integer receiverAreaCode; |  | ||||||
|     @ApiModelProperty(value = "收件详细地址", required = true) |  | ||||||
|     private String receiverDetailAddress; |  | ||||||
|     @ApiModelProperty(value = "售后状态", required = true) |  | ||||||
|     private Integer afterSaleStatus; |  | ||||||
|     @ApiModelProperty(value = "优惠劵编号") |  | ||||||
|     private Integer couponCardId; |  | ||||||
|     @ApiModelProperty(value = "创建时间", required = true) |  | ||||||
|     private LocalDateTime createTime; |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 订单项数组 |  | ||||||
|      * |  | ||||||
|      * // TODO 芋艿,后续考虑怎么优化下,目前是内嵌了别的 dto |  | ||||||
|      */ |  | ||||||
|     private List<AppTradeOrderItemRespVO> orderItems; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -17,7 +17,10 @@ import cn.iocoder.yudao.module.trade.controller.admin.base.member.user.MemberUse | |||||||
| import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; | import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDetailRespVO; | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDetailRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageItemRespVO; | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageItemRespVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderDetailRespVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageItemRespVO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | ||||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum; | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum; | ||||||
| @@ -174,4 +177,65 @@ public interface TradeOrderConvert { | |||||||
|     TradeOrderDetailRespVO convert2(TradeOrderDO order, List<TradeOrderItemDO> items); |     TradeOrderDetailRespVO convert2(TradeOrderDO order, List<TradeOrderItemDO> items); | ||||||
|     MemberUserRespVO convert(MemberUserRespDTO bean); |     MemberUserRespVO convert(MemberUserRespDTO bean); | ||||||
|  |  | ||||||
|  |     default PageResult<AppTradeOrderPageItemRespVO> convertPage02(PageResult<TradeOrderDO> pageResult, List<TradeOrderItemDO> orderItems, | ||||||
|  |                                                                   List<ProductPropertyValueDetailRespDTO> propertyValueDetails) { | ||||||
|  |         Map<Long, List<TradeOrderItemDO>> orderItemMap = convertMultiMap(orderItems, TradeOrderItemDO::getOrderId); | ||||||
|  |         Map<Long, ProductPropertyValueDetailRespDTO> propertyValueDetailMap = convertMap(propertyValueDetails, ProductPropertyValueDetailRespDTO::getValueId); | ||||||
|  |         // 转化 List | ||||||
|  |         List<AppTradeOrderPageItemRespVO> orderVOs = CollectionUtils.convertList(pageResult.getList(), order -> { | ||||||
|  |             List<TradeOrderItemDO> xOrderItems = orderItemMap.get(order.getId()); | ||||||
|  |             AppTradeOrderPageItemRespVO orderVO = convert02(order, xOrderItems); | ||||||
|  |             if (CollUtil.isNotEmpty(xOrderItems)) { | ||||||
|  |                 // 处理商品属性 | ||||||
|  |                 for (int i = 0; i < xOrderItems.size(); i++) { | ||||||
|  |                     List<TradeOrderItemDO.Property> properties = xOrderItems.get(i).getProperties(); | ||||||
|  |                     if (CollUtil.isEmpty(properties)) { | ||||||
|  |                         continue; | ||||||
|  |                     } | ||||||
|  |                     AppTradeOrderPageItemRespVO.Item item = orderVO.getItems().get(i); | ||||||
|  |                     item.setProperties(new ArrayList<>(properties.size())); | ||||||
|  |                     // 遍历每个 properties,设置到 TradeOrderPageItemRespVO.Item 中 | ||||||
|  |                     properties.forEach(property -> { | ||||||
|  |                         ProductPropertyValueDetailRespDTO propertyValueDetail = propertyValueDetailMap.get(property.getValueId()); | ||||||
|  |                         if (propertyValueDetail == null) { | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|  |                         item.getProperties().add(convert02(propertyValueDetail)); | ||||||
|  |                     }); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             return orderVO; | ||||||
|  |         }); | ||||||
|  |         return new PageResult<>(orderVOs, pageResult.getTotal()); | ||||||
|  |     } | ||||||
|  |     AppTradeOrderPageItemRespVO convert02(TradeOrderDO order, List<TradeOrderItemDO> items); | ||||||
|  |     AppProductPropertyValueDetailRespVO convert02(ProductPropertyValueDetailRespDTO bean); | ||||||
|  |  | ||||||
|  |     default AppTradeOrderDetailRespVO convert02(TradeOrderDO order, List<TradeOrderItemDO> orderItems, | ||||||
|  |                                                 List<ProductPropertyValueDetailRespDTO> propertyValueDetails) { | ||||||
|  |         AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems); | ||||||
|  |         // 处理商品属性 | ||||||
|  |         Map<Long, ProductPropertyValueDetailRespDTO> propertyValueDetailMap = convertMap(propertyValueDetails, ProductPropertyValueDetailRespDTO::getValueId); | ||||||
|  |         for (int i = 0; i < orderItems.size(); i++) { | ||||||
|  |             List<TradeOrderItemDO.Property> properties = orderItems.get(i).getProperties(); | ||||||
|  |             if (CollUtil.isEmpty(properties)) { | ||||||
|  |                 continue; | ||||||
|  |             } | ||||||
|  |             AppTradeOrderDetailRespVO.Item item = orderVO.getItems().get(i); | ||||||
|  |             item.setProperties(new ArrayList<>(properties.size())); | ||||||
|  |             // 遍历每个 properties,设置到 TradeOrderPageItemRespVO.Item 中 | ||||||
|  |             properties.forEach(property -> { | ||||||
|  |                 ProductPropertyValueDetailRespDTO propertyValueDetail = propertyValueDetailMap.get(property.getValueId()); | ||||||
|  |                 if (propertyValueDetail == null) { | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 item.getProperties().add(convert02(propertyValueDetail)); | ||||||
|  |             }); | ||||||
|  |         } | ||||||
|  |         // 处理收货地址 | ||||||
|  |         orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId())); | ||||||
|  |         return orderVO; | ||||||
|  |     } | ||||||
|  |     AppTradeOrderDetailRespVO convert3(TradeOrderDO order, List<TradeOrderItemDO> items); | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | |||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||||||
| import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||||
| import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
| @@ -35,4 +36,11 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> { | |||||||
|                 .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())); |                 .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     default PageResult<TradeOrderDO> selectPage(AppTradeOrderPageReqVO reqVO, Long userId) { | ||||||
|  |         return selectPage(reqVO, new LambdaQueryWrapperX<TradeOrderDO>() | ||||||
|  |                 .eq(TradeOrderDO::getUserId, userId) | ||||||
|  |                 .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus()) | ||||||
|  |                 .orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序 | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | |||||||
| import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | ||||||
|  |  | ||||||
| @@ -74,13 +75,22 @@ public interface TradeOrderService { | |||||||
|     TradeOrderDO getOrder(Long userId, Long id); |     TradeOrderDO getOrder(Long userId, Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 获得交易订单分页 |      * 【管理员】获得交易订单分页 | ||||||
|      * |      * | ||||||
|      * @param reqVO 分页请求 |      * @param reqVO 分页请求 | ||||||
|      * @return 交易订单 |      * @return 交易订单 | ||||||
|      */ |      */ | ||||||
|     PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO); |     PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 【会员】获得交易订单分页 | ||||||
|  |      * | ||||||
|  |      * @param userId 用户编号 | ||||||
|  |      * @param reqVO 分页请求 | ||||||
|  |      * @return 交易订单 | ||||||
|  |      */ | ||||||
|  |     PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO); | ||||||
|  |  | ||||||
|     // =================== Order Item =================== |     // =================== Order Item =================== | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliver | |||||||
| import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; | import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderPageReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO.Item; | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO.Item; | ||||||
|  | import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO; | ||||||
| import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; | import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | ||||||
| @@ -450,6 +451,11 @@ public class TradeOrderServiceImpl implements TradeOrderService { | |||||||
|         return tradeOrderMapper.selectPage(reqVO, userIds); |         return tradeOrderMapper.selectPage(reqVO, userIds); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO) { | ||||||
|  |         return tradeOrderMapper.selectPage(reqVO, userId); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // =================== Order Item =================== |     // =================== Order Item =================== | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -113,7 +113,7 @@ public class SmsSendServiceImpl implements SmsSendService { | |||||||
|         SmsChannelDO channelDO = smsChannelService.getSmsChannel(channelId); |         SmsChannelDO channelDO = smsChannelService.getSmsChannel(channelId); | ||||||
|         // 短信模板不存在 |         // 短信模板不存在 | ||||||
|         if (channelDO == null) { |         if (channelDO == null) { | ||||||
|             throw exception(SMS_SEND_TEMPLATE_NOT_EXISTS); |             throw exception(SMS_CHANNEL_NOT_EXISTS); | ||||||
|         } |         } | ||||||
|         return channelDO; |         return channelDO; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -198,20 +198,12 @@ export const constantRoutes = [ | |||||||
|     ] |     ] | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     path: '/order', |     path: '/trade/order', | ||||||
|     component: Layout, |     component: Layout, | ||||||
|     name: '订单管理', |     hidden: true, | ||||||
|     meta: { title: '订单管理' }, |  | ||||||
|     alwaysShow: true, |  | ||||||
|     children: [ |     children: [ | ||||||
|       { |       { | ||||||
|         path: '/mall/trade/order', |         path: 'detail', | ||||||
|         name: '商品订单', |  | ||||||
|         meta: { title: '商品订单' }, |  | ||||||
|         component: (resolve) => require(['@/views/mall/trade/order'], resolve) |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         path: '/mall/trade/order/detail', |  | ||||||
|         name: '订单详情', |         name: '订单详情', | ||||||
|         hidden: true, |         hidden: true, | ||||||
|         meta: { title: '订单详情' }, |         meta: { title: '订单详情' }, | ||||||
|   | |||||||
| @@ -229,7 +229,7 @@ export default { | |||||||
|       this.getList(); |       this.getList(); | ||||||
|     }, |     }, | ||||||
|     goToDetail (row) { |     goToDetail (row) { | ||||||
|       this.$router.push({ path: '/mall/trade/order/detail', query: { id: row.id }}) |       this.$router.push({ path: '/trade/order/detail', query: { id: row.id }}) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| const { http } = uni.$u | const { http } = uni.$u | ||||||
|  |  | ||||||
| //获得订单交易分页 | // 获得订单交易分页 | ||||||
| export const getOrderPageData = params => http.get('/trade/order/page', { params }) | export const getOrderPage = params => http.get('/trade/order/page', { params }) | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import { getOrderPageData } from '../../api/order' | import { getOrderPage } from '../../api/order' | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|   name: 'order', |   name: 'order', | ||||||
| @@ -32,23 +32,19 @@ export default { | |||||||
|           status: '0' |           status: '0' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           name: '已付款', |           name: '待发货', | ||||||
|           status: '10' |           status: '10' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           name: '待发货', |           name: '待收货', | ||||||
|           status: '20' |           status: '20' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           name: '待收货', |           name: '已完成', | ||||||
|           status: '30' |           status: '30' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           name: '已完成', |           name: '已取消', // TODO @辰尘:已取消不展示 | ||||||
|           status: '40' |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           name: '已取消', |  | ||||||
|           status: '50' |           status: '50' | ||||||
|         } |         } | ||||||
|       ], |       ], | ||||||
| @@ -76,7 +72,7 @@ export default { | |||||||
|       if (status >= 0) { |       if (status >= 0) { | ||||||
|         params.orderStatus = status |         params.orderStatus = status | ||||||
|       } |       } | ||||||
|       getOrderPageData(params) |       getOrderPage(params) | ||||||
|         .then(res => { |         .then(res => { | ||||||
|           console.log(res) |           console.log(res) | ||||||
|         }) |         }) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV