package com.yxcheng.token.common.enumutil;

import org.springframework.util.StringUtils;

/**
 * 全局错误码枚举，数字编码不允许重复，请按照升序进行排列,此错
 * <p>
 * 误码和错误信息是直接返回给最终用户的，请写清楚错误原因,更好
 * <p>
 * 的来指导用户进行后续的操作。
 * <p>
 * 
 * @author wuyuegang
 * 
 */
public enum AcceptErrorEnum
{
    // 全局错误码
    /**
     * 默认错误，系统异常
     */
    SYSTEM_ERROR("-1", "系统异常，请稍后再试"),
    /**
     * 长软99，系统异常，请重试
     */
    CR_REALTIME_CERTIFY_ERROR_99("201", "系统异常，请重试"),

    /**
     * 长软03，参数不全，请检查
     */
    CR_REALTIME_CERTIFY_ERROR_03("211", "参数不全，请检查"),
   
    /**
     * 长软-1，未知错误
     */
    CR_ASYNC_CERTIFY_ERROR_1("215", "未知错误"),

    /**
     * 网络错误
     */
    CR_GET_FPXX_RESULT_IO_ERROR("481","网络错误"),

    /**
     * 请求参数不正确
     */
    CR_GET_FPXX_REQUEST_NULL("483","请求参数不正确"),



    
    /********************验收单异常信息***************************/

    /**
     * 未知错误
     */
    UNKNOWN_ERROR("10000", "未知异常");
    
    private String msg;
    
    private String code;
    
    /**
     * 
     * getByCode:(根据code获取枚举). <br/>
     * (如果code为空，返回null).<br/>
     *
     * @author wuyuegang
     * @param code
     * @return
     * @since JDK 1.8
     */
    public static AcceptErrorEnum getByCode(String code)
    {
        if (StringUtils.isEmpty(code))
        {
            return null;
        }
        for (AcceptErrorEnum errorEnum : AcceptErrorEnum.values())
        {
            if (errorEnum.getCode().equals(code))
            {
                return errorEnum;
            }
        }
        return null;
    }
    
    /**
     * 
     * Creates a new instance of SystemErrorEnum.
     *
     * @param code
     * @param msg
     */
    private AcceptErrorEnum(String code, String msg)
    {
        this.code = code;
        this.msg = msg;
    }
    private AcceptErrorEnum(String msg)
    {
    	this.msg = msg;
    }
    
    public String getMsg()
    {
        return this.msg;
    }
    
    public String getCode()
    {
        return this.code;
    }
}
