mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-02 11:44:59 +08:00
mall:增加订单评论字段
This commit is contained in:
parent
3da2eb89b2
commit
83aa656bda
@ -40,11 +40,8 @@ public class TradeOrderItemBaseVO {
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
|
||||
@Schema(description = "商品原价(总)", required = true, example = "100")
|
||||
private Integer originalPrice;
|
||||
|
||||
@Schema(description = "商品原价(单)", required = true, example = "100")
|
||||
private Integer originalUnitPrice;
|
||||
private Integer price;
|
||||
|
||||
@Schema(description = "商品优惠(总)", required = true, example = "100")
|
||||
private Integer discountPrice;
|
||||
|
@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.product.api.property.ProductPropertyValueApi;
|
||||
import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO;
|
||||
import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO;
|
||||
import cn.iocoder.yudao.module.trade.controller.app.order.vo.*;
|
||||
import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemRespVO;
|
||||
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;
|
||||
@ -53,7 +54,7 @@ public class AppTradeOrderController {
|
||||
AppTradeOrderSettlementRespVO settlement = new AppTradeOrderSettlementRespVO();
|
||||
|
||||
AppTradeOrderSettlementRespVO.Price price = new AppTradeOrderSettlementRespVO.Price();
|
||||
price.setOriginalPrice(1000);
|
||||
price.setTotalPrice(1000);
|
||||
price.setDeliveryPrice(200);
|
||||
price.setCouponPrice(100);
|
||||
price.setPointPrice(50);
|
||||
@ -184,4 +185,21 @@ public class AppTradeOrderController {
|
||||
return success(orderCount);
|
||||
}
|
||||
|
||||
// ========== 订单项 ==========
|
||||
|
||||
@GetMapping("/item/get")
|
||||
@Operation(summary = "获得交易订单项")
|
||||
@Parameter(name = "id", description = "交易订单项编号")
|
||||
public CommonResult<AppTradeOrderItemRespVO> getOrderItem(@RequestParam("id") Long id) {
|
||||
TradeOrderItemDO item = tradeOrderService.getOrderItem(getLoginUserId(), id);
|
||||
return success(TradeOrderConvert.INSTANCE.convert03(item));
|
||||
}
|
||||
|
||||
// TODO 芋艿:待实现
|
||||
@PostMapping("/item/create-comment")
|
||||
@Operation(summary = "创建交易订单项的评价")
|
||||
public CommonResult<Long> createOrderItemComment() {
|
||||
return success(0L);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -123,29 +123,30 @@ public class AppTradeOrderDetailRespVO {
|
||||
|
||||
@Schema(description = "商品 SPU 编号", required = true, example = "1")
|
||||
private Long spuId;
|
||||
|
||||
@Schema(description = "商品 SPU 名称", required = true, example = "芋道源码")
|
||||
private String spuName;
|
||||
|
||||
@Schema(description = "商品 SKU 编号", required = true, example = "1")
|
||||
private Long skuId;
|
||||
|
||||
/**
|
||||
* 属性数组
|
||||
*/
|
||||
private List<AppProductPropertyValueDetailRespVO> properties;
|
||||
|
||||
@Schema(description = "商品图片", required = true, example = "https://www.iocoder.cn/1.png")
|
||||
private String picUrl;
|
||||
|
||||
@Schema(description = "购买数量", required = true, example = "1")
|
||||
private Integer count;
|
||||
|
||||
@Schema(description = "商品原价(总)", required = true, example = "100")
|
||||
private Integer originalPrice;
|
||||
@Schema(description = "是否评价", required = true, example = "true")
|
||||
private Boolean commentStatus;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
|
||||
@Schema(description = "商品原价(单)", required = true, example = "100")
|
||||
private Integer originalUnitPrice;
|
||||
|
||||
/**
|
||||
* 属性数组
|
||||
*/
|
||||
private List<AppProductPropertyValueDetailRespVO> properties;
|
||||
private Integer price;
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.iocoder.yudao.module.trade.controller.app.order.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO;
|
||||
import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemRespVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@ -22,6 +22,9 @@ public class AppTradeOrderPageItemRespVO {
|
||||
@Schema(description = "购买的商品数量", required = true, example = "10")
|
||||
private Integer productCount;
|
||||
|
||||
@Schema(description = "是否评价", required = true, example = "true")
|
||||
private Boolean commentStatus;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
|
||||
@Schema(description = "应付金额,单位:分", required = true, example = "1000")
|
||||
@ -30,41 +33,6 @@ public class AppTradeOrderPageItemRespVO {
|
||||
/**
|
||||
* 订单项数组
|
||||
*/
|
||||
private List<Item> items;
|
||||
|
||||
@Schema(description = "用户 App - 交易订单的明细的订单项目")
|
||||
@Data
|
||||
public static class Item {
|
||||
|
||||
@Schema(description = "编号", required = true, example = "1")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "商品 SPU 编号", required = true, example = "1")
|
||||
private Long spuId;
|
||||
|
||||
@Schema(description = "商品 SPU 名称", required = true, example = "芋道源码")
|
||||
private String spuName;
|
||||
|
||||
@Schema(description = "商品 SKU 编号", required = true, example = "1")
|
||||
private Long skuId;
|
||||
|
||||
@Schema(description = "商品图片", required = true, example = "https://www.iocoder.cn/1.png")
|
||||
private String picUrl;
|
||||
|
||||
@Schema(description = "购买数量", required = true, example = "1")
|
||||
private Integer count;
|
||||
|
||||
@Schema(description = "商品原价(总)", required = true, example = "100")
|
||||
private Integer originalPrice;
|
||||
|
||||
@Schema(description = "商品原价(单)", required = true, example = "100")
|
||||
private Integer originalUnitPrice;
|
||||
|
||||
/**
|
||||
* 属性数组
|
||||
*/
|
||||
private List<AppProductPropertyValueDetailRespVO> properties;
|
||||
|
||||
}
|
||||
private List<AppTradeOrderItemRespVO> items;
|
||||
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
// TODO 芋艿:字段优化
|
||||
@Schema(description = "交易订单分页 Request VO")
|
||||
@Data
|
||||
public class AppTradeOrderPageReqVO extends PageParam {
|
||||
@ -15,4 +14,7 @@ public class AppTradeOrderPageReqVO extends PageParam {
|
||||
@InEnum(value = TradeOrderStatusEnum.class, message = "订单状态必须是 {value}")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "是否评价", example = "true")
|
||||
private Boolean commentStatus;
|
||||
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class AppTradeOrderSettlementRespVO {
|
||||
public static class Price {
|
||||
|
||||
@Schema(description = "商品原价(总),单位:分", required = true, example = "500")
|
||||
private Integer originalPrice;
|
||||
private Integer totalPrice;
|
||||
|
||||
@Schema(description = "运费金额,单位:分", required = true, example = "50")
|
||||
private Integer deliveryPrice;
|
||||
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.trade.controller.app.order.vo.item;
|
||||
|
||||
import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductPropertyValueDetailRespVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "用户 App - 订单交易项 Response VO")
|
||||
@Data
|
||||
public class AppTradeOrderItemRespVO {
|
||||
|
||||
@Schema(description = "编号", required = true, example = "1")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "商品 SPU 编号", required = true, example = "1")
|
||||
private Long spuId;
|
||||
|
||||
@Schema(description = "商品 SPU 名称", required = true, example = "芋道源码")
|
||||
private String spuName;
|
||||
|
||||
@Schema(description = "商品 SKU 编号", required = true, example = "1")
|
||||
private Long skuId;
|
||||
|
||||
@Schema(description = "商品图片", required = true, example = "https://www.iocoder.cn/1.png")
|
||||
private String picUrl;
|
||||
|
||||
@Schema(description = "购买数量", required = true, example = "1")
|
||||
private Integer count;
|
||||
|
||||
@Schema(description = "商品原价(单)", required = true, example = "100")
|
||||
private Integer price;
|
||||
|
||||
/**
|
||||
* 属性数组
|
||||
*/
|
||||
private List<AppProductPropertyValueDetailRespVO> properties;
|
||||
|
||||
}
|
@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.trade.controller.app.base.property.AppProductProp
|
||||
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.controller.app.order.vo.item.AppTradeOrderItemRespVO;
|
||||
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.enums.order.TradeOrderItemAfterSaleStatusEnum;
|
||||
@ -191,7 +192,7 @@ public interface TradeOrderConvert {
|
||||
if (CollUtil.isEmpty(properties)) {
|
||||
continue;
|
||||
}
|
||||
AppTradeOrderPageItemRespVO.Item item = orderVO.getItems().get(i);
|
||||
AppTradeOrderItemRespVO item = orderVO.getItems().get(i);
|
||||
item.setProperties(new ArrayList<>(properties.size()));
|
||||
// 遍历每个 properties,设置到 TradeOrderPageItemRespVO.Item 中
|
||||
properties.forEach(property -> {
|
||||
@ -237,4 +238,6 @@ public interface TradeOrderConvert {
|
||||
}
|
||||
AppTradeOrderDetailRespVO convert3(TradeOrderDO order, List<TradeOrderItemDO> items);
|
||||
|
||||
AppTradeOrderItemRespVO convert03(TradeOrderItemDO bean);
|
||||
|
||||
}
|
||||
|
@ -94,6 +94,13 @@ public class TradeOrderDO extends BaseDO {
|
||||
* 商家备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 是否评价
|
||||
*
|
||||
* true - 已评价
|
||||
* false - 未评价
|
||||
*/
|
||||
private Boolean commentStatus;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
|
||||
@ -128,16 +135,17 @@ public class TradeOrderDO extends BaseDO {
|
||||
/**
|
||||
* 商品原价(总),单位:分
|
||||
*
|
||||
* 基于 {@link TradeOrderItemDO#getOriginalPrice()} 求和
|
||||
* totalPrice = {@link TradeOrderItemDO#getPrice()} * {@link TradeOrderItemDO#getCount()} 求和
|
||||
*
|
||||
* 对应 taobao 的 trade.total_fee 字段
|
||||
*/
|
||||
private Integer originalPrice;
|
||||
private Integer totalPrice;
|
||||
// TODO 芋艿:是不是要删除这个字段?
|
||||
/**
|
||||
* 订单原价(总),单位:分
|
||||
*
|
||||
* 基于 {@link OrderItem#getPayPrice()} 求和
|
||||
* 和 {@link #originalPrice} 的差异:去除商品级优惠
|
||||
* 1. orderPrice = {@link OrderItem#getPayPrice()} 求和
|
||||
* 2. orderPrice = {@link #totalPrice} - 商品级优惠
|
||||
*/
|
||||
private Integer orderPrice;
|
||||
/**
|
||||
@ -219,7 +227,7 @@ public class TradeOrderDO extends BaseDO {
|
||||
|
||||
// ========== 售后基本信息 ==========
|
||||
/**
|
||||
* 收货状态
|
||||
* 售后状态
|
||||
*
|
||||
* 枚举 {@link TradeOrderAfterSaleStatusEnum}
|
||||
*/
|
||||
|
@ -84,29 +84,23 @@ public class TradeOrderItemDO extends BaseDO {
|
||||
* 购买数量
|
||||
*/
|
||||
private Integer count;
|
||||
// /**
|
||||
// * 是否评论 TODO
|
||||
// *
|
||||
// * false - 未评论
|
||||
// * true - 已评论
|
||||
// */
|
||||
// private Boolean commented;
|
||||
/**
|
||||
* 是否评价
|
||||
*
|
||||
* true - 已评价
|
||||
* false - 未评价
|
||||
*/
|
||||
private Boolean commentStatus;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
|
||||
/**
|
||||
* 商品原价(总),单位:分
|
||||
*
|
||||
* = {@link #originalUnitPrice} * {@link #getCount()}
|
||||
*/
|
||||
private Integer originalPrice;
|
||||
/**
|
||||
* 商品原价(单),单位:分
|
||||
*
|
||||
* 对应 ProductSkuDO 的 price 字段
|
||||
* 对应 taobao 的 order.price 字段
|
||||
*/
|
||||
private Integer originalUnitPrice;
|
||||
private Integer price;
|
||||
/**
|
||||
* 商品优惠(总),单位:分
|
||||
*
|
||||
@ -116,9 +110,9 @@ public class TradeOrderItemDO extends BaseDO {
|
||||
*/
|
||||
private Integer discountPrice;
|
||||
/**
|
||||
* 子订单实付金额,不算主订单分摊金额,单位:分
|
||||
* 子订单实付金额(总),不算主订单分摊金额,单位:分
|
||||
*
|
||||
* = {@link #originalPrice}
|
||||
* = {@link #price} * {@link #count}
|
||||
* - {@link #discountPrice}
|
||||
*
|
||||
* 对应 taobao 的 order.payment 字段
|
||||
|
@ -40,6 +40,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<TradeOrderDO>()
|
||||
.eq(TradeOrderDO::getUserId, userId)
|
||||
.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(TradeOrderDO::getCommentStatus, reqVO.getCommentStatus())
|
||||
.orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序
|
||||
}
|
||||
|
||||
|
@ -169,7 +169,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
assertNull(tradeOrderDO.getRemark());
|
||||
assertFalse(tradeOrderDO.getPayed());
|
||||
assertNull(tradeOrderDO.getPayTime());
|
||||
assertEquals(tradeOrderDO.getOriginalPrice(), 230);
|
||||
assertEquals(tradeOrderDO.getTotalPrice(), 230);
|
||||
assertEquals(tradeOrderDO.getOrderPrice(), 100);
|
||||
assertEquals(tradeOrderDO.getDiscountPrice(), 0);
|
||||
assertEquals(tradeOrderDO.getAdjustPrice(), 0);
|
||||
@ -204,8 +204,8 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
//assertEquals(tradeOrderItemDO01.getSpuName(), sku01.getSpuName()); TODO 找不到spuName
|
||||
assertEquals(tradeOrderItemDO01.getPicUrl(), sku01.getPicUrl());
|
||||
assertEquals(tradeOrderItemDO01.getCount(), 3);
|
||||
assertEquals(tradeOrderItemDO01.getOriginalPrice(), 150);
|
||||
assertEquals(tradeOrderItemDO01.getOriginalUnitPrice(), 50);
|
||||
// assertEquals(tradeOrderItemDO01.getOriginalPrice(), 150);
|
||||
assertEquals(tradeOrderItemDO01.getPrice(), 50);
|
||||
assertEquals(tradeOrderItemDO01.getDiscountPrice(), 20);
|
||||
assertEquals(tradeOrderItemDO01.getPayPrice(), 130);
|
||||
assertEquals(tradeOrderItemDO01.getOrderPartPrice(), 7);
|
||||
@ -224,8 +224,8 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
//assertEquals(tradeOrderItemDO02.getSpuName(), sku02.getSpuName()); TODO 找不到spuName
|
||||
assertEquals(tradeOrderItemDO02.getPicUrl(), sku02.getPicUrl());
|
||||
assertEquals(tradeOrderItemDO02.getCount(), 4);
|
||||
assertEquals(tradeOrderItemDO02.getOriginalPrice(), 80);
|
||||
assertEquals(tradeOrderItemDO02.getOriginalUnitPrice(), 20);
|
||||
// assertEquals(tradeOrderItemDO02.getOriginalPrice(), 80);
|
||||
assertEquals(tradeOrderItemDO02.getPrice(), 20);
|
||||
assertEquals(tradeOrderItemDO02.getDiscountPrice(), 40);
|
||||
assertEquals(tradeOrderItemDO02.getPayPrice(), 40);
|
||||
assertEquals(tradeOrderItemDO02.getOrderPartPrice(), 15);
|
||||
|
Loading…
Reference in New Issue
Block a user