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

/**
 * @Author: 张逸飞
 * @Date: 2021/3/12 17:46
 * @Description: 支付类型
 */
public enum PayTypeEnum {

    /**
     * 微信公众号支付
     * JSAPI支付是用户在微信中打开商户的H5页面，商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。
     */
    WECHAT_JSAPI("WECHAT_JSAPI"),

    /**
     * 支付宝手机网站支付或JSAPI支付
     * 适用于商家在移动端网页应用中集成支付宝支付功能。
     * 商家在网页中调用支付宝提供的网页支付接口调起支付宝客户端内的支付模块，商家网页会跳转到支付宝中完成支付，支付完后跳回到商家网页内，最后展示支付结果。若无法唤起支付宝客户端，则在一定的时间后会自动进入网页支付流程
     */
    ALIPAY_H5("ALIPAY_H5"),

    /**
     * 平台钱包支付 230423新增
     */
    WALLET_PAY("WALLET_PAY"),

    /**
     * 平台机构子钱包支付
     */
    ORG_SUB_WALLET_PAY("ORG_SUB_WALLET_PAY"),

    /**
     * 渠道个人钱包支付
     */
    CHANNEL_WALLET_PAY("CHANNEL_WALLET_PAY"),

    /**
     * 渠道机构子钱包支付
     */
    CHANNEL_ORG_SUB_WALLET_PAY("CHANNEL_ORG_SUB_WALLET_PAY"),

    /**
     * 优惠券全额支付
     */
    COUPON_ALL_PAY("COUPON_ALL_PAY"),
    /**
     * 线下现金支付
     */
    OFFLINE_CASH_PAY("OFFLINE_CASH_PAY"),

    /**
     * 预存款支付
     */
    PREPAID_DEPOSIT_PAY("PREPAID_DEPOSIT_PAY"),

    ;

    private final String value;

    PayTypeEnum(String value) {
        this.value = value;
    }
    public String getValue() {
        return value;
    }

    public static String getPayTypeValue(String code){
        if (PayTypeEnum.WECHAT_JSAPI.getValue().equals(code) ){
            return "微信支付";
        } else if (PayTypeEnum.WALLET_PAY.getValue().equals(code)) {
            return "平台个人钱包支付";
        } else if (PayTypeEnum.ORG_SUB_WALLET_PAY.getValue().equals(code)) {
            return "平台机构子钱包支付";
        } else if (PayTypeEnum.CHANNEL_WALLET_PAY.getValue().equals(code)) {
            return "渠道个人钱包支付";
        } else if (PayTypeEnum.CHANNEL_ORG_SUB_WALLET_PAY.getValue().equals(code)) {
            return "渠道机构子钱包支付";
        } else if (PayTypeEnum.COUPON_ALL_PAY.getValue().equals(code)) {
            return "优惠券全额抵扣";
        } else if (PayTypeEnum.OFFLINE_CASH_PAY.getValue().equals(code)) {
            return "线下现金支付";
        } else if (PayTypeEnum.PREPAID_DEPOSIT_PAY.getValue().equals(code)) {
            return "预存款支付";
        } else {
            return "微信支付";
        }
    }
}
