Merge remote-tracking branch 'origin/master' into feature/mall_product

# Conflicts:
#	yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/string/StrUtils.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuRespVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java
#	yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/vo/AppProductSpuPageItemRespVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartDetailRespVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartItemUpdateSelectedReqVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/cart/vo/AppTradeCartResetReqVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderCreateReqVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderGetCreateInfoRespVO.java
#	yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderPageItemRespVO.java
#	yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressBaseVO.java
This commit is contained in:
xingyu
2023-06-14 15:18:12 +08:00
384 changed files with 7787 additions and 1355 deletions

View File

@@ -17,27 +17,27 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
@Data
public class TradeAfterSaleBaseVO {
@Schema(description = "售后流水号", required = true, example = "202211190847450020500077")
@Schema(description = "售后流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "202211190847450020500077")
@NotNull(message = "售后流水号不能为空")
private String no;
@Schema(description = "售后状态", required = true, example = "10")
@Schema(description = "售后状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@NotNull(message = "售后状态不能为空")
private Integer status;
@Schema(description = "售后类型", required = true, example = "20")
@Schema(description = "售后类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "20")
@NotNull(message = "售后类型不能为空")
private Integer type;
@Schema(description = "售后方式", required = true, example = "10")
@Schema(description = "售后方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@NotNull(message = "售后方式不能为空")
private Integer way;
@Schema(description = "用户编号", required = true, example = "30337")
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30337")
@NotNull(message = "用户编号不能为空")
private Long userId;
@Schema(description = "申请原因", required = true, example = "不喜欢")
@Schema(description = "申请原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不喜欢")
@NotNull(message = "申请原因不能为空")
private String applyReason;
@@ -47,34 +47,34 @@ public class TradeAfterSaleBaseVO {
@Schema(description = "补充凭证图片", example = "https://www.iocoder.cn/1.png")
private List<String> applyPicUrls;
@Schema(description = "订单编号", required = true, example = "18078")
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18078")
@NotNull(message = "订单编号不能为空")
private Long orderId;
@Schema(description = "订单流水号", required = true, example = "2022111917190001")
@Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022111917190001")
@NotNull(message = "订单流水号不能为空")
private Long orderNo;
@Schema(description = "订单项编号", required = true, example = "572")
@Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "572")
@NotNull(message = "订单项编号不能为空")
private Long orderItemId;
@Schema(description = "商品 SPU 编号", required = true, example = "2888")
@Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2888")
@NotNull(message = "商品 SPU 编号不能为空")
private Long spuId;
@Schema(description = "商品 SPU 名称", required = true, example = "李四")
@Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@NotNull(message = "商品 SPU 名称不能为空")
private String spuName;
@Schema(description = "商品 SKU 编号", required = true, example = "15657")
@Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15657")
@NotNull(message = "商品 SKU 编号不能为空")
private Long skuId;
@Schema(description = "商品图片", example = "https://www.iocoder.cn/2.png")
private String picUrl;
@Schema(description = "购买数量", required = true, example = "20012")
@Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "20012")
@NotNull(message = "购买数量不能为空")
private Integer count;
@@ -88,7 +88,7 @@ public class TradeAfterSaleBaseVO {
@Schema(description = "审批备注", example = "不香")
private String auditReason;
@Schema(description = "退款金额,单位:分", required = true, example = "18077")
@Schema(description = "退款金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "18077")
@NotNull(message = "退款金额,单位:分不能为空")
private Integer refundPrice;

View File

@@ -10,11 +10,11 @@ import javax.validation.constraints.NotNull;
@Data
public class TradeAfterSaleDisagreeReqVO {
@Schema(description = "售后编号", required = true, example = "1024")
@Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "售后编号不能为空")
private Long id;
@Schema(description = "审批备注", required = true, example = "你猜")
@Schema(description = "审批备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
@NotEmpty(message = "审批备注不能为空")
private String auditReason;

View File

@@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull;
@Data
public class TradeAfterSaleRefuseReqVO {
@Schema(description = "售后编号", required = true, example = "1024")
@Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "售后编号不能为空")
private Long id;
@Schema(description = "收货备注", required = true, example = "你猜")
@Schema(description = "收货备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
@NotNull(message = "收货备注不能为空")
private String refuseMemo;

View File

@@ -16,10 +16,10 @@ import java.util.List;
@ToString(callSuper = true)
public class TradeAfterSaleRespPageItemVO extends TradeAfterSaleBaseVO {
@Schema(description = "售后编号", required = true, example = "27630")
@Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27630")
private Long id;
@Schema(description = "创建时间", required = true)
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
/**

View File

@@ -10,41 +10,41 @@ import java.time.LocalDateTime;
@Data
public class TradeAfterSaleLogRespVO {
@Schema(description = "编号", required = true, example = "20669")
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20669")
private Long id;
@Schema(description = "用户编号", required = true, example = "22634")
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22634")
@NotNull(message = "用户编号不能为空")
private Long userId;
@Schema(description = "用户类型", required = true, example = "2")
@Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "用户类型不能为空")
private Integer userType;
@Schema(description = "售后编号", required = true, example = "3023")
@Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "3023")
@NotNull(message = "售后编号不能为空")
private Long afterSaleId;
@Schema(description = "订单编号", required = true, example = "25870")
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25870")
@NotNull(message = "订单编号不能为空")
private Long orderId;
@Schema(description = "订单项编号", required = true, example = "23154")
@Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23154")
@NotNull(message = "订单项编号不能为空")
private Long orderItemId;
@Schema(description = "售后状态(之前)", example = "2")
private Integer beforeStatus;
@Schema(description = "售后状态(之后)", required = true, example = "1")
@Schema(description = "售后状态(之后)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "售后状态(之后)不能为空")
private Integer afterStatus;
@Schema(description = "操作明细", required = true, example = "维权完成退款金额¥37776.00")
@Schema(description = "操作明细", requiredMode = Schema.RequiredMode.REQUIRED, example = "维权完成退款金额¥37776.00")
@NotNull(message = "操作明细不能为空")
private String content;
@Schema(description = "创建时间", required = true)
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
}

View File

@@ -7,10 +7,10 @@ import lombok.Data;
@Data
public class MemberUserRespVO {
@Schema(description = "用户 ID", required = true, example = "1")
@Schema(description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "用户昵称", required = true, example = "芋道源码")
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
private String nickname;
@Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png")

View File

@@ -7,16 +7,16 @@ import lombok.Data;
@Data
public class ProductPropertyValueDetailRespVO {
@Schema(description = "属性的编号", required = true, example = "1")
@Schema(description = "属性的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long propertyId;
@Schema(description = "属性的名称", required = true, example = "颜色")
@Schema(description = "属性的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色")
private String propertyName;
@Schema(description = "属性值的编号", required = true, example = "1024")
@Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long valueId;
@Schema(description = "属性值的名称", required = true, example = "红色")
@Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色")
private String valueName;
}

View File

@@ -14,34 +14,34 @@ public class TradeOrderBaseVO {
// ========== 订单基本信息 ==========
@Schema(description = "订单编号", required = true, example = "1024")
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "订单流水号", required = true, example = "1146347329394184195")
@Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195")
private String no;
@Schema(description = "下单时间", required = true)
@Schema(description = "下单时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
@Schema(description = "订单类型", required = true, example = "1")
@Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer type;
@Schema(description = "订单来源", required = true, example = "1")
@Schema(description = "订单来源", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer terminal;
@Schema(description = "用户编号", required = true, example = "2048")
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
private Long userId;
@Schema(description = "用户 IP", required = true, example = "127.0.0.1")
@Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1")
private String userIp;
@Schema(description = "用户备注", required = true, example = "你猜")
@Schema(description = "用户备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
private String userRemark;
@Schema(description = "订单状态", required = true, example = "1")
@Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer status;
@Schema(description = "购买的商品数量", required = true, example = "10")
@Schema(description = "购买的商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
private Integer productCount;
@Schema(description = "订单完成时间")
@@ -58,31 +58,31 @@ public class TradeOrderBaseVO {
// ========== 价格 + 支付基本信息 ==========
@Schema(description = "支付订单编号", required = true, example = "1024")
@Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long payOrderId;
@Schema(description = "是否已支付", required = true, example = "true")
@Schema(description = "是否已支付", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean payed;
@Schema(description = "付款时间")
private LocalDateTime payTime;
@Schema(description = "支付渠道", required = true, example = "wx_lite")
@Schema(description = "支付渠道", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx_lite")
private String payChannelCode;
@Schema(description = "商品原价(总)", required = true, example = "1000")
@Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000")
private Integer originalPrice;
@Schema(description = "订单优惠(总)", required = true, example = "100")
@Schema(description = "订单优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer discountPrice;
@Schema(description = "运费金额", required = true, example = "100")
@Schema(description = "运费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer deliveryPrice;
@Schema(description = "订单调价(总)", required = true, example = "100")
@Schema(description = "订单调价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer adjustPrice;
@Schema(description = "应付金额(总)", required = true, example = "1000")
@Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000")
private Integer payPrice;
// ========== 收件 + 物流基本信息 ==========
@@ -96,7 +96,7 @@ public class TradeOrderBaseVO {
@Schema(description = "发货物流单号", example = "1024")
private String logisticsNo;
@Schema(description = "发货状态", required = true, example = "1")
@Schema(description = "发货状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer deliveryStatus;
@Schema(description = "发货时间")
@@ -105,16 +105,16 @@ public class TradeOrderBaseVO {
@Schema(description = "收货时间")
private LocalDateTime receiveTime;
@Schema(description = "收件人名称", required = true, example = "张三")
@Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
private String receiverName;
@Schema(description = "收件人手机", required = true, example = "13800138000")
@Schema(description = "收件人手机", requiredMode = Schema.RequiredMode.REQUIRED, example = "13800138000")
private String receiverMobile;
@Schema(description = "收件人地区编号", required = true, example = "110000")
@Schema(description = "收件人地区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000")
private Integer receiverAreaId;
@Schema(description = "收件人详细地址", required = true, example = "中关村大街 1 号")
@Schema(description = "收件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "中关村大街 1 号")
private String receiverDetailAddress;
// ========== 售后基本信息 ==========
@@ -122,7 +122,7 @@ public class TradeOrderBaseVO {
@Schema(description = "售后状态", example = "1")
private Integer afterSaleStatus;
@Schema(description = "退款金额", required = true, example = "100")
@Schema(description = "退款金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer refundPrice;
// ========== 营销基本信息 ==========
@@ -130,9 +130,9 @@ public class TradeOrderBaseVO {
@Schema(description = "优惠劵编号", example = "1024")
private Long couponId;
@Schema(description = "优惠劵减免金额", required = true, example = "100")
@Schema(description = "优惠劵减免金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer couponPrice;
@Schema(description = "积分抵扣的金额", required = true, example = "100")
@Schema(description = "积分抵扣的金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer pointPrice;
}

View File

@@ -10,15 +10,15 @@ import javax.validation.constraints.NotNull;
@Data
public class TradeOrderDeliveryReqVO {
@Schema(description = "订单编号", required = true, example = "1024")
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "订单编号不能为空")
private Long id;
@Schema(description = "发货物流公司编号", required = true, example = "1")
@Schema(description = "发货物流公司编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "发货物流公司编号不能为空")
private Long logisticsId;
@Schema(description = "发货物流单号", required = true, example = "SF123456789")
@Schema(description = "发货物流单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SF123456789")
@NotEmpty(message = "发货物流单号不能为空")
private String logisticsNo;

View File

@@ -11,7 +11,7 @@ import java.util.List;
@Data
public class TradeOrderDetailRespVO extends TradeOrderBaseVO {
@Schema(description = "收件人地区名字", required = true, example = "上海 上海市 普陀区")
@Schema(description = "收件人地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海 上海市 普陀区")
private String receiverAreaName;
/**

View File

@@ -10,7 +10,7 @@ import java.util.List;
@Data
public class TradeOrderPageItemRespVO extends TradeOrderBaseVO {
@Schema(description = "收件人地区名字", required = true, example = "上海 上海市 普陀区")
@Schema(description = "收件人地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海 上海市 普陀区")
private String receiverAreaName;
/**

View File

@@ -13,21 +13,21 @@ import java.util.List;
@Data
public class AppTradeAfterSaleCreateReqVO {
@Schema(description = "订单项编号", required = true, example = "1024")
@Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "订单项编号不能为空")
private Long orderItemId;
@Schema(description = "售后方式", required = true, example = "1")
@Schema(description = "售后方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "售后方式不能为空")
@InEnum(value = TradeAfterSaleWayEnum.class, message = "售后方式必须是 {value}")
private Integer way;
@Schema(description = "退款金额", required = true, example = "100")
@Schema(description = "退款金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
@NotNull(message = "退款金额不能为空")
@Min(value = 1, message = "退款金额必须大于 0")
private Integer refundPrice;
@Schema(description = "申请原因", required = true, example = "1")
@Schema(description = "申请原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "申请原因不能为空")
private String applyReason;

View File

@@ -11,19 +11,19 @@ import java.time.LocalDateTime;
@Data
public class AppTradeAfterSaleDeliveryReqVO {
@Schema(description = "售后编号", required = true, example = "1024")
@Schema(description = "售后编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "售后编号不能为空")
private Long id;
@Schema(description = "退货物流公司编号", required = true, example = "1")
@Schema(description = "退货物流公司编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "退货物流公司编号不能为空")
private Long logisticsId;
@Schema(description = "退货物流单号", required = true, example = "SF123456789")
@Schema(description = "退货物流单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SF123456789")
@NotNull(message = "退货物流单号不能为空")
private String logisticsNo;
@Schema(description = "退货时间", required = true)
@Schema(description = "退货时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "退货时间不能为空")
private LocalDateTime deliveryTime;

View File

@@ -7,16 +7,16 @@ import lombok.Data;
@Data
public class AppProductPropertyValueDetailRespVO {
@Schema(description = "属性的编号", required = true, example = "1")
@Schema(description = "属性的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long propertyId;
@Schema(description = "属性的名称", required = true, example = "颜色")
@Schema(description = "属性的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "颜色")
private String propertyName;
@Schema(description = "属性值的编号", required = true, example = "1024")
@Schema(description = "属性值的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long valueId;
@Schema(description = "属性值的名称", required = true, example = "红色")
@Schema(description = "属性值的名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "红色")
private String valueName;
}

View File

@@ -14,16 +14,16 @@ import java.util.List;
@Data
public class AppProductSkuBaseRespVO {
@Schema(description = "主键", required = true, example = "1024")
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "图片地址", example = "https://www.iocoder.cn/xx.png")
private String picUrl;
@Schema(description = "销售价格,单位:分", required = true, example = "100")
@Schema(description = "销售价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer price;
@Schema(description = "库存", required = true, example = "1")
@Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer stock;
/**

View File

@@ -13,10 +13,10 @@ import java.util.List;
@Data
public class AppProductSpuBaseRespVO {
@Schema(description = "主键", required = true, example = "1024")
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "商品 SPU 名字", required = true, example = "芋道")
@Schema(description = "商品 SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
private String name;
@Schema(description = "商品主图地址", example = "https://www.iocoder.cn/xx.png")

View File

@@ -9,11 +9,11 @@ import javax.validation.constraints.NotNull;
@Data
public class AppTradeCartAddReqVO {
@Schema(description = "商品 SKU 编号", required = true,example = "1024")
@Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1024")
@NotNull(message = "商品 SKU 编号不能为空")
private Long skuId;
@Schema(description = "新增商品数量", required = true, example = "1")
@Schema(description = "新增商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "数量不能为空")
private Integer count;

View File

@@ -0,0 +1,117 @@
package cn.iocoder.yudao.module.trade.controller.app.cart.vo;
import cn.iocoder.yudao.module.trade.controller.app.base.sku.AppProductSkuBaseRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Schema(description = "用户 App - 用户的购物车明细 Response VO")
@Data
public class AppTradeCartDetailRespVO {
/**
* 商品分组数组
*/
private List<ItemGroup> itemGroups;
/**
* 费用
*/
private Order order;
@Schema(description = "商品分组") // 多个商品,参加同一个活动,从而形成分组
@Data
public static class ItemGroup {
/**
* 商品数组
*/
private List<Sku> items;
/**
* 营销活动,订单级别
*/
private Promotion promotion;
}
@Schema(description = "商品 SKU")
@Data
public static class Sku extends AppProductSkuBaseRespVO {
/**
* SPU 信息
*/
private AppProductSkuBaseRespVO spu;
// ========== 购物车相关的字段 ==========
@Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer count;
@Schema(description = "是否选中", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean selected;
// ========== 价格相关的字段,对应 PriceCalculateRespDTO.OrderItem 的属性 ==========
// TODO 芋艿:后续可以去除一些无用的字段
@Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer originalPrice;
@Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "200")
private Integer totalOriginalPrice;
@Schema(description = "商品级优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "300")
private Integer totalPromotionPrice;
@Schema(description = "最终购买金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "400")
private Integer totalPresentPrice;
@Schema(description = "最终购买金额(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "500")
private Integer presentPrice;
@Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "600")
private Integer totalPayPrice;
// ========== 营销相关的字段 ==========
/**
* 营销活动,商品级别
*/
private Promotion promotion;
}
@Schema(description = "订单") // 对应 PriceCalculateRespDTO.Order 类,用于费用(合计)
@Data
public static class Order {
// TODO 芋艿:后续可以去除一些无用的字段
@Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer skuOriginalPrice;
@Schema(description = "商品优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "200")
private Integer skuPromotionPrice;
@Schema(description = "订单优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "300")
private Integer orderPromotionPrice;
@Schema(description = "运费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "400")
private Integer deliveryPrice;
@Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "500")
private Integer payPrice;
}
@Schema(description = "营销活动") // 对应 PriceCalculateRespDTO.Promotion 类的属性
@Data
public static class Promotion {
@Schema(description = "营销编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") // 营销活动的编号、优惠劵的编号
private Long id;
@Schema(description = "营销名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "xx 活动")
private String name;
@Schema(description = "营销类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer type;
// ========== 匹配情况 ==========
@Schema(description = "是否满足优惠条件", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean meet;
@Schema(description = "满足条件的提示", requiredMode = Schema.RequiredMode.REQUIRED, example = "圣诞价:省 150.00 元")
private String meetTip;
}
}

View File

@@ -0,0 +1,21 @@
package cn.iocoder.yudao.module.trade.controller.app.cart.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Collection;
@Schema(description = "用户 App - 购物车更新是否选中 Request VO")
@Data
public class AppTradeCartItemUpdateSelectedReqVO {
@Schema(description = "商品 SKU 编号列表", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024,2048")
@NotNull(message = "商品 SKU 编号列表不能为空")
private Collection<Long> skuIds;
@Schema(description = "是否选中", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
@NotNull(message = "是否选中不能为空")
private Boolean selected;
}

View File

@@ -10,15 +10,15 @@ import javax.validation.constraints.NotNull;
@Data
public class AppTradeCartResetReqVO {
@Schema(description = "编号", required = true, example = "1024")
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "编号不能为空")
private Long id;
@Schema(description = "商品 SKU 编号", required = true,example = "1024")
@Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED,example = "1024")
@NotNull(message = "商品 SKU 编号不能为空")
private Long skuId;
@Schema(description = "商品数量", required = true, example = "1")
@Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "数量不能为空")
@Min(message = "数量必须大于 0", value = 1L)
private Integer count;

View File

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.controller.app.order;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO;
import cn.iocoder.yudao.module.product.api.property.ProductPropertyValueApi;

View File

@@ -14,22 +14,22 @@ public class AppTradeOrderDetailRespVO {
// ========== 订单基本信息 ==========
@Schema(description = "订单编号", required = true, example = "1024")
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "订单流水号", required = true, example = "1146347329394184195")
@Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195")
private String no;
@Schema(description = "下单时间", required = true)
@Schema(description = "下单时间", requiredMode = Schema.RequiredMode.REQUIRED)
private Date createTime;
@Schema(description = "用户备注", required = true, example = "你猜")
@Schema(description = "用户备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
private String userRemark;
@Schema(description = "订单状态", required = true, example = "1")
@Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer status;
@Schema(description = "购买的商品数量", required = true, example = "10")
@Schema(description = "购买的商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
private Integer productCount;
@Schema(description = "订单完成时间")
@@ -38,44 +38,44 @@ public class AppTradeOrderDetailRespVO {
@Schema(description = "订单取消时间")
private LocalDateTime cancelTime;
@Schema(description = "是否评价", required = true, example = "true")
@Schema(description = "是否评价", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean commentStatus;
// ========== 价格 + 支付基本信息 ==========
@Schema(description = "是否已支付", required = true, example = "true")
@Schema(description = "是否已支付", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean payed;
@Schema(description = "支付订单编号", required = true, example = "1024")
@Schema(description = "支付订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long payOrderId;
@Schema(description = "付款时间")
private LocalDateTime payTime;
@Schema(description = "付款超时时间", required = true)
@Schema(description = "付款超时时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime payExpireTime;
@Schema(description = "支付渠道", required = true, example = "wx_lite_pay")
@Schema(description = "支付渠道", requiredMode = Schema.RequiredMode.REQUIRED, example = "wx_lite_pay")
private String payChannelCode;
@Schema(description = "商品原价(总)", required = true, example = "1000")
@Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000")
private Integer totalPrice;
@Schema(description = "订单优惠(总)", required = true, example = "100")
@Schema(description = "订单优惠(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer discountPrice;
@Schema(description = "运费金额", required = true, example = "100")
@Schema(description = "运费金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer deliveryPrice;
@Schema(description = "订单调价(总)", required = true, example = "100")
@Schema(description = "订单调价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer adjustPrice;
@Schema(description = "应付金额(总)", required = true, example = "1000")
@Schema(description = "应付金额(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000")
private Integer payPrice;
// ========== 收件 + 物流基本信息 ==========
@Schema(description = "配送方式", required = true, example = "1")
@Schema(description = "配送方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer deliveryType;
@Schema(description = "发货物流单号", example = "1024")
@@ -87,19 +87,19 @@ public class AppTradeOrderDetailRespVO {
@Schema(description = "收货时间")
private LocalDateTime receiveTime;
@Schema(description = "收件人名称", required = true, example = "张三")
@Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
private String receiverName;
@Schema(description = "收件人手机", required = true, example = "13800138000")
@Schema(description = "收件人手机", requiredMode = Schema.RequiredMode.REQUIRED, example = "13800138000")
private String receiverMobile;
@Schema(description = "收件人地区编号", required = true, example = "110000")
@Schema(description = "收件人地区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000")
private Integer receiverAreaId;
@Schema(description = "收件人地区名字", required = true, example = "上海 上海市 普陀区")
@Schema(description = "收件人地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海 上海市 普陀区")
private String receiverAreaName;
@Schema(description = "收件人详细地址", required = true, example = "中关村大街 1 号")
@Schema(description = "收件人详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "中关村大街 1 号")
private String receiverDetailAddress;
// ========== 售后基本信息 ==========
@@ -109,10 +109,10 @@ public class AppTradeOrderDetailRespVO {
@Schema(description = "优惠劵编号", example = "1024")
private Long couponId;
@Schema(description = "优惠劵减免金额", required = true, example = "100")
@Schema(description = "优惠劵减免金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer couponPrice;
@Schema(description = "积分抵扣的金额", required = true, example = "100")
@Schema(description = "积分抵扣的金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
private Integer pointPrice;
/**

View File

@@ -0,0 +1,168 @@
package cn.iocoder.yudao.module.trade.controller.app.order.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
@Schema(description = "用户 App - 订单获得创建信息 Response VO")
@Data
public class AppTradeOrderGetCreateInfoRespVO {
/**
* 商品分组数组
*/
private List<ItemGroup> itemGroups;
/**
* 费用
*/
private Fee fee;
// /**
// * 优惠劵列表 TODO 芋艿,后续改改
// */
// private List<CouponCardAvailableRespDTO> coupons;
@Schema(description = "商品分组") // 多个商品,参加同一个活动,从而形成分组
@Data
public static class ItemGroup {
// /**
// * 优惠活动
// */
// private PromotionActivityRespDTO activity; // TODO 芋艿,偷懒
/**
* 商品 SKU 数组
*/
private List<Sku> items;
}
@Schema(description = "商品 SKU")
@Data
public static class Sku {
// SKU 自带信息
@Schema(description = "SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Integer id;
/**
* SPU 信息
*/
private Spu spu;
/**
* 图片地址
*/
private String picURL;
// /**
// * 属性数组
// */
// private List<ProductAttrKeyValueRespVO> attrs; // TODO 后面改下
/**
* 价格,单位:分
*/
private Integer price;
/**
* 库存数量
*/
private Integer stock;
// 非 SKU 自带信息
/**
* 购买数量
*/
private Integer buyQuantity;
// /**
// * 优惠活动
// */
// private PromotionActivityRespDTO activity; // TODO 芋艿,偷懒
/**
* 原始单价,单位:分。
*/
private Integer originPrice;
/**
* 购买单价,单位:分
*/
private Integer buyPrice;
/**
* 最终价格,单位:分。
*/
private Integer presentPrice;
/**
* 购买总金额,单位:分
*
* 用途类似 {@link #presentTotal}
*/
private Integer buyTotal;
/**
* 优惠总金额,单位:分。
*/
private Integer discountTotal;
/**
* 最终总金额,单位:分。
*
* 注意presentPrice * quantity 不一定等于 presentTotal 。
* 因为,存在无法整除的情况。
* 举个例子presentPrice = 8.33 quantity = 3 的情况presentTotal 有可能是 24.99 ,也可能是 25 。
* 所以,需要存储一个该字段。
*/
private Integer presentTotal;
}
@Data
public static class Spu {
/**
* SPU 编号
*/
private Integer id;
// ========== 基本信息 =========
/**
* SPU 名字
*/
private String name;
/**
* 分类编号
*/
private Integer cid;
/**
* 商品主图地址
*
* 数组,以逗号分隔
*
* 建议尺寸800*800像素你可以拖拽图片调整顺序最多上传15张
*/
private List<String> picUrls;
}
@Schema(description = "费用(合计)")
@Data
@AllArgsConstructor
public static class Fee {
@Schema(description = "购买总价", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Integer buyPrice;
/**
* 优惠总价
*
* 注意,满多少元包邮,不算在优惠中。
*/
private Integer discountTotal;
/**
* 邮费
*/
private Integer postageTotal;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private Integer presentTotal;
}
}

View File

@@ -11,35 +11,35 @@ import java.util.List;
@Data
public class AppTradeOrderPageItemRespVO {
@Schema(description = "订单编号", required = true, example = "1024")
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "订单流水号", required = true, example = "1146347329394184195")
@Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1146347329394184195")
private String no;
@Schema(description = "订单类型", required = true, example = "0")
@Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
private Integer type;
@Schema(description = "订单状态", required = true, example = "1")
@Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer status;
@Schema(description = "购买的商品数量", required = true, example = "10")
@Schema(description = "购买的商品数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
private Integer productCount;
@Schema(description = "是否评价", required = true, example = "true")
@Schema(description = "是否评价", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean commentStatus;
@Schema(description = "创建时间", required = true)
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private Date createTime;
// ========== 价格 + 支付基本信息 ==========
@Schema(description = "应付金额,单位:分", required = true, example = "1000")
@Schema(description = "应付金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000")
private Integer payPrice;
// ========== 收件 + 物流基本信息 ==========
@Schema(description = "配送方式", required = true, example = "1")
@Schema(description = "配送方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer deliveryType;
/**