trade: 增加创建售后订单的接口

This commit is contained in:
YunaiV
2022-11-16 00:51:29 +08:00
parent b8d1d31df0
commit 10f2dbc8cd
20 changed files with 414 additions and 77 deletions

View File

@ -19,7 +19,19 @@ public interface ErrorCodeConstants {
ErrorCode ORDER_CREATE_SPU_NOT_FOUND = new ErrorCode(1011000005, "商品 SPU 不可售卖");
ErrorCode ORDER_CREATE_ADDRESS_NOT_FOUND = new ErrorCode(1011000006, "收货地址不存在");
ErrorCode ORDER_ITEM_NOT_FOUND = new ErrorCode(1011000010, "交易订单项不存在");
ErrorCode ORDER_NOT_FOUND = new ErrorCode(1011000010, "交易订单不存在");
// ========== After Sale 模块 1-011-000-000 ==========
ErrorCode AFTER_SALE_NOT_FOUND = new ErrorCode(1011000100, "售后单不存在");
ErrorCode AFTER_SALE_CREATE_FAIL_REFUND_PRICE_ERROR = new ErrorCode(1011000101, "申请退款金额错误");
ErrorCode AFTER_SALE_CREATE_FAIL_ORDER_STATUS_CANCELED = new ErrorCode(1011000102, "订单已关闭,无法申请售后");
ErrorCode AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_PAID = new ErrorCode(1011000103, "订单未支付,无法申请售后");
ErrorCode AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_DELIVERED = new ErrorCode(1011000104, "订单未发货,无法申请【退货退款】售后");
ErrorCode AFTER_SALE_CREATE_FAIL_ORDER_ITEM_APPLIED = new ErrorCode(1011000105, "订单项已申请售后,无法重复申请");
// ========== Cart 模块 1-011-001-000 ==========
ErrorCode CARD_ITEM_NOT_FOUND = new ErrorCode(1001001000, "购物车项不存在");
ErrorCode CARD_ITEM_NOT_FOUND = new ErrorCode(1011002000, "购物车项不存在");
}

View File

@ -1,8 +1,11 @@
package cn.iocoder.yudao.module.trade.enums.aftersale;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
/**
* 交易售后 - 类型
*
@ -10,11 +13,13 @@ import lombok.RequiredArgsConstructor;
*/
@RequiredArgsConstructor
@Getter
public enum TradeAfterSaleTypeEnum {
public enum TradeAfterSaleTypeEnum implements IntArrayValuable {
REFUND(10, "退款"),
RETURN_AND_REFUND(20, "退货退款");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TradeAfterSaleTypeEnum::getType).toArray();
/**
* 状态值
*/
@ -24,4 +29,9 @@ public enum TradeAfterSaleTypeEnum {
*/
private final String name;
@Override
public int[] array() {
return ARRAYS;
}
}

View File

@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.trade.enums.order;
import cn.hutool.core.util.ObjectUtil;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* 交易订单项 - 售后状态
*
* @author 芋道源码
*/
@RequiredArgsConstructor
@Getter
public enum TradeOrderItemAfterSaleStatusEnum {
NONE(0, "未申请"),
APPLY(1, "已申请"),
SUCCESS(2, "申请成功");
/**
* 状态值
*/
private final Integer status;
/**
* 状态名
*/
private final String name;
// TODO 芋艿EXPIRED 已失效不允许申请售后
// TODO 芋艿PART_AFTER_SALE 部分售后
/**
* 判断指定状态,是否正处于【未申请】状态
*
* @param status 指定状态
* @return 是否
*/
public static boolean isNone(Integer status) {
return ObjectUtil.equals(status, NONE.getStatus());
}
}

View File

@ -1,29 +0,0 @@
package cn.iocoder.yudao.module.trade.enums.order;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* 交易订单项 - 退款状态
*
* @author Sin
*/
@RequiredArgsConstructor
@Getter
public enum TradeOrderItemRefundStatusEnum {
NONE(0, "未申请退款"),
APPLY(1, "申请退款"),
WAIT(2, "等待退款"),
SUCCESS(3, "退款成功");
/**
* 状态值
*/
private final Integer status;
/**
* 状态名
*/
private final String name;
}

View File

@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.trade.enums.order;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@ -12,11 +14,14 @@ import lombok.RequiredArgsConstructor;
@Getter
public enum TradeOrderStatusEnum {
WAITING_PAYMENT(0, "付款"),
WAIT_SHIPMENT(1, "待发货"),
ALREADY_SHIPMENT(2, ""),
COMPLETED(3, "完成"),
CANCEL(4, "关闭");
UNPAID(0, "付款"),
PAID(10, "已付款"), // 例如说,拼团订单,支付后,需要拼团成功后,才会处于待发货
UNDELIVERED(20, ""),
DELIVERED(30, "发货"),
COMPLETED(40, "完成"),
CANCELED(50, "已取消");
// TODO 芋艿: TAKE("待核验"):虚拟订单需要核验商品
/**
* 状态值
@ -27,4 +32,35 @@ public enum TradeOrderStatusEnum {
*/
private final String name;
/**
* 判断指定状态,是否正处于【已取消】状态
*
* @param status 指定状态
* @return 是否
*/
public static boolean isCanceled(Integer status) {
return ObjectUtil.equals(status, CANCELED.getStatus());
}
/**
* 判断指定状态,是否有过【已付款】状态
*
* @param status 指定状态
* @return 是否
*/
public static boolean havePaid(Integer status) {
return ObjectUtils.equalsAny(status, PAID.getStatus(), UNDELIVERED.getStatus(),
DELIVERED.getStatus(), COMPLETED.getStatus());
}
/**
* 判断指定状态,是否有过【已发货】状态
*
* @param status 指定状态
* @return 是否
*/
public static boolean haveDelivered(Integer status) {
return ObjectUtils.equalsAny(status, DELIVERED.getStatus(), COMPLETED.getStatus());
}
}