package cn.iocoder.yudao.module.trade.enums.aftersale;
import cn.iocoder.yudao.framework.common.core.ArrayValuable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Collection;
import static cn.hutool.core.util.ArrayUtil.firstMatch;
/**
* 售后状态的枚举
*
* 状态流转
*
* @author 芋道源码
*/
@AllArgsConstructor
@Getter
public enum AfterSaleStatusEnum implements ArrayValuable {
/**
* 【申请售后】
*/
APPLY(10,"申请中", "会员申请退款"), // 有赞的状态提示:退款申请待商家处理
/**
* 卖家通过售后;【商品待退货】
*/
SELLER_AGREE(20, "卖家通过", "商家同意退款"), // 有赞的状态提示:请退货并填写物流信息
/**
* 买家已退货,等待卖家收货;【商家待收货】
*/
BUYER_DELIVERY(30,"待卖家收货", "会员填写退货物流信息"), // 有赞的状态提示:退货退款申请待商家处理
/**
* 卖家已收货,等待平台退款;等待退款【等待退款】
*/
WAIT_REFUND(40, "等待平台退款", "商家收货"), // 有赞的状态提示:无(有赞无该状态)
/**
* 完成退款【退款成功】
*/
COMPLETE(50, "完成", "商家确认退款"), // 有赞的状态提示:退款成功
/**
* 【买家取消】
*/
BUYER_CANCEL(61, "买家取消售后", "会员取消退款"), // 有赞的状态提示:退款关闭
/**
* 卖家拒绝售后;商家拒绝【商家拒绝】
*/
SELLER_DISAGREE(62,"卖家拒绝", "商家拒绝退款"), // 有赞的状态提示:商家不同意退款申请
/**
* 卖家拒绝收货,终止售后;【商家拒收货】
*/
SELLER_REFUSE(63,"卖家拒绝收货", "商家拒绝收货"), // 有赞的状态提示:商家拒绝收货,不同意退款
;
public static final Integer[] ARRAYS = Arrays.stream(values()).map(AfterSaleStatusEnum::getStatus).toArray(Integer[]::new);
/**
* 进行中的售后状态
*
* 不包括已经结束的状态
*/
public static final Collection APPLYING_STATUSES = Arrays.asList(
APPLY.getStatus(),
SELLER_AGREE.getStatus(),
BUYER_DELIVERY.getStatus(),
WAIT_REFUND.getStatus()
);
/**
* 状态
*/
private final Integer status;
/**
* 状态名
*/
private final String name;
/**
* 操作内容
*
* 目的:记录售后日志的内容
*/
private final String content;
@Override
public Integer[] array() {
return ARRAYS;
}
public static AfterSaleStatusEnum valueOf(Integer status) {
return firstMatch(value -> value.getStatus().equals(status), values());
}
}