package com.yuchen.saas.payment.api.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;

/**
 * @Author: ouyang
 * @Date: 2021/3/13 10:49
 * @Description: 支付状态枚举
 */
@Getter
@AllArgsConstructor
public enum PayStatusEnum {

    /**
     * 进行中
     */
    UNDER_WAY(-2, "进行中"),

    /**
     * 已取消/已关闭/充电异常关闭
     */
    CLOSE(-1, "超时已关闭"),

    /**
     * 待支付
     */
    UNPAID(0, "待支付"),

    /**
     * 支付中
     */
    PROCESS(1, "支付中"),

    /**
     * 支付成功
     */
    SUCCESS(2, "支付成功"),
    /**
     * 支付失败
     */
    FAILURE(3, "支付失败"),
    /**
     * 退款中
     */
    REFUNDING(4, "退款中"),

    /**
     * 已全部退款
     */
    ALL_REFUND(5, "已全部退款"),

    /**
     * 已部分退款
     */
    OTHER_REFUND(6, "已部分退款"),

    ;

    private final int value;

    private final String desc;

    public static String getDescByCode(Integer value) {
        if (Objects.isNull(value)) {
            return "";
        }
        PayStatusEnum[] enumArray = PayStatusEnum.values();
        for (PayStatusEnum e : enumArray) {
            if (e.getValue() == value) {
                return e.getDesc();
            }
        }
        return "";
    }
}
