package com.dchuang.common.enums;

import java.util.List;

import org.apache.commons.lang3.EnumUtils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;




/** 转账类型
* <br>创建日期:2017-5-24
* <br><b>Copyright 2017 dianChaung property in copyright </b>
* @author WangDongdong
* @since 1.0
* @version 1.0
*/
public enum EPaymentType {


/**
* 银行转账 1
*/
BANK_TRANSFER("银行转账",1),


/**
* 支票 2
*/
CHECK("支票",2),


/**
* 现金 3
*/
CASH("现金",3);

private String name;

private Integer value;


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public Integer getValue() {
return value;
}


public void setValue(Integer value) {
this.value = value;
}

private EPaymentType(String name, Integer value){
this.name = name;
this.value = value;
}

/**
*
*/
public static List<EPaymentType> allKeys = EnumUtils.getEnumList(EPaymentType.class);


public static EPaymentType value(String status){
for(EPaymentType eachStatus : allKeys){
if(eachStatus.getValue().equals(status)){
return eachStatus;
}
}
return null;
}


public static JSONArray toJSONArray(){
JSONArray data = new JSONArray();
for(EPaymentType orderStatus : allKeys){
JSONObject json = new JSONObject();
json.put("name", orderStatus.getName());
json.put("value", orderStatus.getValue());
data.add(json);
}
return data;
}


public static boolean isContains(Integer credentialsType){
boolean flag = false;
for(EPaymentType orderStatus : allKeys){
if(orderStatus.getValue().equals(credentialsType)){
flag = true;
break;
}
}
return flag;
}


public static EPaymentType getComplaintType(String code){
EPaymentType emailSmsStatus = null;
for(EPaymentType orderStatus : EPaymentType.values()){
if(orderStatus.getValue().equals(code)){
emailSmsStatus = orderStatus;
break;
}
}
return emailSmsStatus == null ? EPaymentType.BANK_TRANSFER : emailSmsStatus;
}




/** 获取转账类型
* @since 1.0
* @param value
* @return
* <br><b>作者: @author WangDongdong</b>
* <br>创建时间:2017-5-24 上午10:16:21
*/
public static String getPaymentType(Integer value){
String name = null;
for(EPaymentType orderStatus : EPaymentType.values()){
if(orderStatus.getValue().equals(value)){
name = orderStatus.getName();
break;
}
}
return name==null?EPaymentType.BANK_TRANSFER.getName():name;
}






public static void main(String[] args) {
JSONArray jsonArray = EPaymentType.toJSONArray();
System.out.println(jsonArray);
}
}