trade:【交易售后】增加申请售后的单元测试

This commit is contained in:
YunaiV
2022-11-19 14:34:59 +08:00
parent af71a19241
commit 73b92190c6
10 changed files with 199 additions and 49 deletions

View File

@@ -18,14 +18,19 @@ public class AppTradeAfterSaleCreateReqVO {
@NotNull(message = "订单项编号不能为空")
private Long orderItemId;
@ApiModelProperty(name = "售后类型", required = true, example = "1", notes = "对应 TradeAfterSaleTypeEnum 枚举")
@NotNull(message = "售后类型不能为空")
@InEnum(value = TradeAfterSaleTypeEnum.class, message = "售后类型必须是 {value}")
private Integer type;
@ApiModelProperty(name = "退款金额", required = true, example = "100", notes = "单位:分")
@NotNull(message = "退款金额不能为空")
@Min(value = 1, message = "退款金额必须大于 0")
private Integer applyPrice;
private Integer refundPrice;
@ApiModelProperty(name = "申请原因", required = true, example = "1", notes = "使用数据字典枚举,对应 trade_refund_apply_reason 类型")
@NotNull(message = "申请原因不能为空")
private Integer applyReason;
private String applyReason;
@ApiModelProperty(name = "补充描述", example = "商品质量不好")
private String applyDescription;
@@ -33,9 +38,4 @@ public class AppTradeAfterSaleCreateReqVO {
@ApiModelProperty(name = "补充凭证图片", example = "https://www.iocoder.cn/1.png, https://www.iocoder.cn/2.png")
private List<String> applyPicUrls;
@ApiModelProperty(name = "售后类型", required = true, example = "1", notes = "对应 TradeAfterSaleTypeEnum 枚举")
@NotNull(message = "售后类型不能为空")
@InEnum(value = TradeAfterSaleTypeEnum.class, message = "售后类型必须是 {value}")
private Integer type;
}

View File

@@ -20,7 +20,7 @@ import java.util.List;
*
* @author 芋道源码
*/
@TableName(value = "trade_after_sale")
@TableName(value = "trade_after_sale", autoResultMap = true)
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@@ -57,9 +57,10 @@ public class TradeAfterSaleDO extends BaseDO {
/**
* 申请原因
*
* 使用数据字典枚举,对应 trade_refund_apply_reason 类型
* type = 退款,对应 trade_after_sale_refund_reason 类型
* type = 退货退款,对应 trade_after_sale_refund_and_return_reason 类型
*/
private Integer applyReason;
private String applyReason;
/**
* 补充描述
*/
@@ -72,25 +73,6 @@ public class TradeAfterSaleDO extends BaseDO {
@TableField(typeHandler = JacksonTypeHandler.class)
private List<String> applyPicUrls;
// ========== 商家相关 ==========
/**
* 审批时间
*/
private LocalDateTime auditTime;
/**
* 审批人
*
* 关联 AdminUserDO 的 id 编号
*/
private Long auditUserId;
/**
* 审批备注
*
* 注意,只有审批不通过才会填写
*/
private String auditReason;
// ========== 交易订单相关 ==========
/**
* 交易订单编号
@@ -107,20 +89,60 @@ public class TradeAfterSaleDO extends BaseDO {
/**
* 商品 SPU 编号
*
* 关联 ProductSpuDO 的编号
* 关联 ProductSpuDO 的 id 字段
* 冗余 {@link TradeOrderItemDO#getSpuId()}
*/
private Long spuId;
/**
* 商品 SPU 名称
*
* 关联 ProductSkuDO 的 name 字段
* 冗余 {@link TradeOrderItemDO#getSpuName()}
*/
private String spuName;
/**
* 商品 SKU 编号
*
* 关联 ProductSkuDO 的编号
*/
private Integer skuId;
private Long skuId;
/**
* 规格值数组JSON 格式
*
* 冗余 {@link TradeOrderItemDO#getProperties()}
*/
@TableField(typeHandler = TradeOrderItemDO.PropertyTypeHandler.class)
private List<TradeOrderItemDO.Property> properties;
/**
* 商品图片
*
* 冗余 {@link TradeOrderItemDO#getPicUrl()}
*/
private String picUrl;
/**
* 退货商品数量
*/
private Integer count;
// ========== 审批相关 ==========
/**
* 审批时间
*/
private LocalDateTime auditTime;
/**
* 审批人
*
* 关联 AdminUserDO 的 id 编号
*/
private Long auditUserId;
/**
* 审批备注
*
* 注意,只有审批不通过才会填写
*/
private String auditReason;
// ========== 退款相关 ==========
/**
* 退款金额,单位:分。

View File

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.order;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO;
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -41,13 +42,19 @@ public class TradeOrderItemDO extends BaseDO {
*/
private Long orderId;
// ========== 商品基本信息 ==========
// ========== 商品基本信息; 冗余较多字段,减少关联查询 ==========
/**
* 商品 SPU 编号
*
* 关联 ProductSkuDO 的 spuId 编号
*/
private Long spuId;
/**
* 商品 SPU 名称
*
* 冗余 ProductSkuDO 的 spuName 编号
*/
private String spuName;
/**
* 商品 SKU 编号
*
@@ -56,15 +63,11 @@ public class TradeOrderItemDO extends BaseDO {
private Long skuId;
/**
* 规格值数组JSON 格式
*
* 冗余 ProductSkuDO 的 properties 字段
*/
@TableField(typeHandler = PropertyTypeHandler.class)
private List<Property> properties;
/**
* 商品名称
*
* 冗余 ProductSpuDO 的 name 字段
*/
private String name;
/**
* 商品图片
*/
@@ -142,7 +145,7 @@ public class TradeOrderItemDO extends BaseDO {
*
* 枚举 {@link TradeOrderItemAfterSaleStatusEnum}
*
* @see cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO
* @see TradeAfterSaleDO
*/
private Integer afterSaleStatus;

View File

@@ -84,7 +84,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService {
// TODO 芋艿:超过一定时间,不允许售后
// 申请的退款金额,不能超过商品的价格
if (createReqVO.getApplyPrice() > orderItem.getOrderDividePrice()) {
if (createReqVO.getRefundPrice() > orderItem.getOrderDividePrice()) {
throw exception(AFTER_SALE_CREATE_FAIL_REFUND_PRICE_ERROR);
}