package cn.superdesk.uniorder.common.enums.pay;

import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description: 1-款到发货,2-货到付款,3-月结
 * 源于文档 楼闪送与统一订单接口文档1.4_20190807(1)_收到日期_20200806_来源于_青章银.docx
 * @Author: linjinyu
 * @CreateDate: 8/6/20 7:26 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 8/6/20 7:26 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public enum FlashdeliverPayTypeEnum {

//	 文档 是这样 不过还是要弃用 用来 楼闪送 前端的显示
//	款到发货(1, "款到发货"),
//	货到付款(2, "货到付款"),
//	月结(3, "月结");

	// cn/superdesk/uniorder/common/enums/lnss/PayTypeEnum.java 与它的差别是 key + 1 , 说明剑客与戴智定的

//	0-微信支付 1-到付  2-月结  3-云闪付  4-余额支付 5-企业钱包
//	【统一订单,订单管理&客户结算(未对账商品)&供应商结算(未对账商品)列表历史订单数据的支付方式和订单类型修复。】 https://www.tapd.cn/33003868/prong/stories/view/1133003868001002310

	微信支付(0, "微信支付"),
	到付(1, "到付"),
	月结(2, "月结"),
	云闪付(3, "云闪付"),
	余额支付(4, "余额支付"),
	企业钱包(5, "企业钱包"),
	;

	private Integer key;
	private String  desc;

	FlashdeliverPayTypeEnum(int key, String desc) {
		this.key = key;
		this.desc = desc;
	}

	public int getKey() {
		return key;
	}

	public String getDesc() {
		return desc;
	}

	public static String getDesc(int key) {
		for (FlashdeliverPayTypeEnum c : FlashdeliverPayTypeEnum.values()) {
			if (c.key == key) {
				return c.getDesc();
			}
		}
		return null;
	}

	private static final Map<Integer, FlashdeliverPayTypeEnum> LOOKUP = new HashMap<>();

	static {
		for (FlashdeliverPayTypeEnum s : EnumSet.allOf(FlashdeliverPayTypeEnum.class)) {
			LOOKUP.put(s.getKey(), s);
		}
	}

	/**
	 * 方向查找枚举类
	 *
	 * @param key
	 * @return
	 */
	public static FlashdeliverPayTypeEnum get(Integer key) {
		return LOOKUP.get(key);
	}
}
