package com.game.common.constant.finance;

import com.game.common.constant.ProjConfig;
import com.game.common.entity.KeyValue;
import com.game.common.utils.MessageUtils;

import java.util.ArrayList;

public enum FinTranType1 {
    /**
     * 获得的（金币）
     */
    U_Income_Coin(11, MessageUtils.message("11329") + ProjConfig.getCoinName(),0),
    /**
     * 获得的（映票）
     */
    U_Income_Ticket(13, MessageUtils.message("11329") + ProjConfig.getTicketName(),0),
    /**
     * 用户获得的（人民币）
     */
    U_Income_Money(41, "11330",0),

    /**
     * 减少的（金币);
     */
    U_Outcome_Coin(12, MessageUtils.message("11331")+ ProjConfig.getCoinName(),1),
    /**
     * 减少的（映票）
     */
    U_Outcome_Ticket(14, MessageUtils.message("11331") + ProjConfig.getTicketName(),1),
    /**
     * 减少的（人民币）
     */
    U_Outcome_Money(15, "11332",1),

    /**
     * 减少的（余额）
     */
    U_Outcome_Balance(16, "11571",1),

    /**
     * 添加的（余额）
     */
    U_Income_Coin_Balance(17, "11573",0),


    /**
     * 代理获得的（人民币）AgentAmount 仅用于 FinAdminTranRecord 表
     */
    Agent_Income_Money(21, "11333",0),


    /**
     * 代理获得的（金币）
     */
    Agent_Income_Coin(22, "11333",0),


    /**
     * 代理获得的（余额）
     */
    Agent_Income_Diamond_Coin(23, "11333",0),
    /**
     * 工会获得的（映票） GuildTicket 仅用于 FinAdminTranRecord 表
     */
    Guild_Income_Ticket(32, "11334",0),

    /**
     * 工会获得的（金币） GuildTicket 仅用于 FinAdminTranRecord 表
     */
    Guild_Income_Coin(34, "11334",0),
    /**
     * 经纪人获得的（映票）ManagerTicket 仅用于 FinAdminTranRecord 表
     */
    Manager_Income_Ticket(33, "11335",0),
    /**
     * 经纪人获得的（映票）ManagerTicket 仅用于 FinAdminTranRecord 表
     */
    Manager_Income_Coin(35, "11335",0),

    /**
     * 平台支出（人民币）
     */
    SYS_Outcome_Amount(51, "11332",1),
    /**
     * 平台支出（金币）
     */
    SYS_Outcome_Coin(52, MessageUtils.message("11331") + ProjConfig.getCoinName(),1),
    /**
     * 平台收益的映票
     */
    SYS_Income_Ticket(53, MessageUtils.message("11329") + ProjConfig.getTicketName(),0),
    /**
     * 平台收益的映票
     */
    SYS_Income_Coin(56, MessageUtils.message("11329") + ProjConfig.getCoinName(),0),
    /**
     * 平台支出映票
     */
    SYS_Outcome_Ticket(54, MessageUtils.message("11331") + ProjConfig.getTicketName(),1),
    /**
     * 平台收入（人民币）
     */
    SYS_Income_Amount(55, "11330",0),
    ;

    private String name;
    private int type;
    private int tranType; //交易类型 0：收入  1：支出

//    static KeyValue[] m_KeyValueArr;

    public static KeyValue[] getKeyValues() {
        return getKeyValues(null);
    }

    public static KeyValue[] getKeyValues(Integer tranType) {
        KeyValue[] m_KeyValueArr = null;
//        if (m_KeyValueArr == null) {
        ArrayList<KeyValue> listKV = new ArrayList<KeyValue>();
        listKV.add(new KeyValue("", "全部", true));
        for (FinTranType1 m : FinTranType1.values()) {
            KeyValue kv = new KeyValue("" + m.type, m.name);
            if(null != tranType && tranType.intValue() == m.tranType){
                listKV.add(kv);
            }
            if(null == tranType){
                listKV.add(kv);
            }
        }
        m_KeyValueArr = listKV.toArray(new KeyValue[0]);
//        }
        return m_KeyValueArr;
    }

    FinTranType1(int type, String name, int tranType) {
        this.type = type;
        this.name = name;
        this.tranType = tranType;
    }

    public String getName() {
        return name;
    }

    public int getType() {
        return type;
    }

    public static String getNameDescribe(int n) {
        switch (n) {
            case 11:
            case 12:
            case 52:
                return ProjConfig.getCoinName();
            case 13:
            case 14:
            case 32:
            case 33:
            case 53:
            case 54:
                return ProjConfig.getTicketName();
            case 41:
            case 15:
            case 21:
            case 51:
            case 55:
                return "人民币";
            default:
                return "";
        }
    }
}
