package com.neusoft.smart.pos.order.constants;

import com.neusoft.smart.pos.framework.constants.CommonCode;

/**
 * @author zcf
 * @date 2017-08-13 10：43
 * @description 业务错误信息使用枚举类
 */
public enum TradeErrorCode implements CommonCode {

    ORDER_INFO_NOT_EXIST("07001", "订单信息不存在"),
    ORDER_REPEAT_PAY("07002", "该订单已经支付成功，请勿重复支付"),
    ORDER_STATUS_NOT_WAIT_PAY("07003", "订单状态为非代付款状态，无法进行支付"),
    ORDER_AMOUNT_IS_EMPTY("07004", "订单金额不能为空"),
    TRADE_SETTLEMENT_INFO_EMPTY("07005", "门店结算信息为空，请在管理后台进行设置"),
    ORDER_INFO_IS_TIME_OUT("07006", "该订单已经过期，请重新下单"),
    PAY_CHANNEL_IS_NOT_OPEN("07007", "该商户尚未开通此支付渠道"),
    DICT_PAY_TYPE_NOT_EXIST("07008", "系统支付方式未设置，请联系管理员"),
    PAY_ORDER_CREATE_ERROR("07009", "预付单创建失败"),
    CANCEL_ORDER_FAIL_STATUS("07010", "订单状态为非代付款状态，无法进行取消"),
    CANCEL_ORDER_FAIL_TIME("07011", "订单生成5分钟内不能取消"),
    PAY_CHANNEL_IMAGE_URL_EMPTY("07012", "支付渠道转账图片地址不能为空"),
    PAY_CHANNEL_APPID_EMPTY("07013", "支付渠道appid不能为空"),
    PAY_CHANNEL_MCH_ID_EMPTY("07014", "支付渠道商户号不能为空"),
    PAY_CHANNEL_SECRET_KEY_EMPTY("07015", "支付渠道商户密钥不能为空"),
    PAY_CHANNEL_SAVE_ERROR("07016", "支付渠道信息保存失败"),
    PAY_CHANNEL_IS_EXISTS("07017", "该支付渠道信息已经存在，无法重复添加"),
    PAY_CHANNEL_IS_NOT_EXISTS("07018", "支付渠道信息不存在"),
    DEVICE_ORG_EMPTY("07019", "设备归属信息为空"),
    SETTLEMENT_INFO_EXIST("07020", "商户结算信息已经存在，不能重复添加"),
    SETTLEMENT_APPLY_MCH_ERROR("07021", "聚合支付平台支付渠道申请失败"),
    SETTLEMENT_SAVE_ERROR("07022", "结算信息保存失败"),
    SETTLEMENT_DEFAULT_CHANNEL_SAVE_ERROR("07023", "结算默认支付渠道保存失败"),
    PAY_CHANNEL_PRIVATE_KEY_EMPTY("07024", "支付私钥不能为空"),
    PAY_CHANNEL_PUBLIC_KEY_EMPTY("07025", "支付公钥不能为空"),
    SETTLEMENT_UPDATE_ERROR("07026", "结算信息更新失败"),
    ORDER_STATISTICS_TIME_MODE_EMPTY("07027", "时间筛选模式不能为空"),
    ORDER_STATISTICS_TIME_MODE_ERROR("07028", "时间筛选模式值输入错误"),
    ORDER_STATISTICS_START_END_TIME_EMPTY("07029", "筛选开始及结束时间不能为空"),
    ORDER_STATISTICS_DATE_TIME_EMPTY("07030", "筛选月份不能为空"),
    SHOP_ID_LIST_EMPTY("07031", "门店ID列表不能为空"),
    SHOP_ID_EMPTY("07032", "门店ID不能为空"),
    ORG_ID_EMPTY("07033", "集团ID不能为空"),
    PAY_CHANNEL_HAVE_ORDER("07034", "该支付渠道下已经生成订单，无法删除"),
    POS_SN_EMPTY("07035", "POS机SN号不能为空"),
    TRADE_STATISTICS_TIME_EMPTY("07036", "筛选时间不能为空"),
    ORDER_STATUS_NOT_OVER_PAY("07037", "订单状态为非已付款状态，无法进行退款"),
    ORDER_REFUND_PAY_TYPE_NOT_SUPPORT("07038", "此订单支付方式暂不支持退款功能"),
    ORDER_REFUND_SAVE_ERROR("07039", "退款单保存失败"),
    ORDER_REFUND_DETAILS_SAVE_ERROR("07040", "退款单明细保存失败"),
    ORIGINAL_ORDER_REFUND_UPDATE_ERROR("07041", "原始订单退款信息更新失败"),
    REQUEST_ORG_OR_SHOP_ERROR("07042", "请求非法,集团或门店信息不匹配"),
    PAY_CHANNEL_DELETE_ERROR("07043", "聚合支付平台支付渠道删除失败"),
    PAY_TYPE_ERROR("07044", "支付类型错误"),
    PAY_CHANNEL_CERT_EMPTY("07045", "支付渠道商户证书信息不能为空"),
    ORDER_REFUND_SAVE_ERROR_FOR_PLATFORM("07046", "聚合支付平台退款单保存失败"),
    PAY_CHANNEL_USER_UNAUTHORIZED("07047", "当前用户对支付渠道没有操作权限"),
    ORDER_REFUND_ORDER_NOT_PAY("07048", "第三方支付平台未收到用户付款信息，无法申请退款"),
    ORDER_AMOUNT_ERROR("07049", "订单金额输入错误"),
    MEMBER_CARD_RECHARGE_CHANNEL_ERROR("07050", "会员卡充值无法使用会员卡支付方式"),
    ORDER_NUMBER_IS_EMPTY("07051", "订单编号不能为空"),
    DEVICE_SN_IS_EMPTY("07052", "设备编号不能为空"),
    ORDER_TYPE_IS_EMPTY("07053", "订单类型不能为空"),
    ORDER_TYPE_ERROR("07054", "订单类型输入错误"),
    ORDER_REAL_AMOUNT_IS_EMPTY("07055", "订单实付金额不能为空"),
    ORDER_REAL_AMOUNT_ERROR("07056", "订单实付金额输入错误"),
    MEMBER_CARD_IS_EMPTY("07057", "会员卡号不能为空"),
    ORDER_LOCATION_NO_IS_EMPTY("07058", "桌号不能为空"),
    CANCEL_ORDER_REPEAT("07059", "订单状态为取消状态，无法重复取消"),
    PAY_PLATFORM_REVERSE_ORDER_ERROR("07060", "聚合支付平台订单撤销失败"),
    PAY_ORDER_QUERY_ERROR("07061", "预付单查询失败"),
    ORDER_PAY_STATUS_UPDATE_ERROR("07062", "订单支付状态更新错误"),
    WX_PAY_CHANNEL_IS_NOT_OPEN("07063", "该商户未配置微信公众号支付渠道"),
    PAY_CHANNEL_SCAN_TYPE_EMPTY("07064", "支付渠道扫码类型不能为空"),
    ORDER_REFUND_OVER("07065", "该订单已完成退款"),
    BILL_NOT_EXIST("07065", "账单信息不存在"),
    BILL_SETTLEMENT_CYCLE_EXIST("07066", "集团结算周期已经存在,不能重复添加"),
    BILL_DAY_EMPTY("07067", "结算账单日不能为空"),
    BILL_SETTLEMENT_CYCLE_NOT_EXIST("07068", "集团结算周期不存在,请先添加"),
    BILL_IS_ACCEPT("07069", "该账单已经归档无法进行查询"),
    BILL_RULE_ID_NOT_EMPTY("07070", "规则编号不能为空"),
    BILL_RULE_DELETE_ERROR("07071", "结算规则删除失败"),
    BILL_QUERY_TIME_NOT_EMPTY("07072", "结算查询时间不能为空"),
    GRANT_ORDER_AMOUNT_IS_EMPTY("07066", "授权金额不能为空"),
    GRANT_ORDER_AMOUNT_ERROR("07067", "授权金额输入错误"),
    GRANT_PAY_ORDER_CREATE_ERROR("07068", "聚合支付平台资金预授权订单创建失败"),
    GRANT_ORDER_IS_EMPTY("07069", "授权订单信息为空"),
    GRANT_ORDER_UNFREEZE_FAIL("07070", "资金预授权金额解冻失败"),
    GRANT_ORDER_UNFREEZE_BIG("07071", "解冻金额不能大于授权金额"),
    GRANT_ORDER_IS_UNFREEZE("07072", "该授权资金已经解冻，无法重复操作"),
    GRANT_ORDER_REVERSE_FAIL("07073", "资金预授权金额撤销失败"),
    GRANT_ORDER_STATUS_REVERSE_FAIL("07074", "当前资金预授权订单状态无法撤销"),
    GRANT_ORDER_TRADE_REVERSE_FAIL("07075", "当前资金预授权订单已产生交易信息，无法撤销"),
    PAYMENT_INIT_FACE_PAY_FAIL("07076", "聚合支付平台人脸支付初始化失败"),
    GRANT_ORDER_CONFIG_DATA_EMPTY("07077", "资金预授权商户配置信息为空，请联系管理员进行配置"),
    TRADE_MCH_INFO_NOT_EXIST("07080", "商户信息不存在"),
    TRADE_MCH_MCODE_EMPTY("07081", "商户号不能为空"),
    TRADE_MCH_SIGN_EMPTY("07082", "商户签名不能为空"),
    TRADE_MCH_SIGN_VALIDATE_ERROR("07083", "商户签名验证失败"),
    TRADE_MCH_MEMBER_CARD_NO("07084", "员工卡号不能为空"),
    TRADE_MCH_IS_PAGE("07085", "是否分页字段不能为空"),
    TRADE_MCH_OFFSET("07086", "查询开始记录索引不能为空"),
    TRADE_MCH_LIMIT("07087", "查询每页记录条数字段不能为空"),
    TRADE_PAY_AMOUNT_OUT_OF_RANGE("07088", "支付金额超出订单总金额"),
    TRADE_STATUS_COMPUTE_ERROR("07089", "订单状态有误"),
    PAY_ORDER_INFO_NOT_EXIST("07090", "支付订单信息不存在"),
    PAY_ORDER_UPDATE_ERROR("07091", "支付订单更新有误"),
    VARIABLE_FEE_VALIDATE_ERROR("07092", "附加费用验证不匹配"),
    TRADE_QUERY_CONDITION_EMPTY("07093", "查询条件不能为空"),
    ORDER_STATUS_ERROR("07094", "订单状态错误, 请刷新后重试"),
    ORDER_UPDATE_STATUS_ERROR("07095", "订单状态更新错误"),
    ORDER_AMOUNT_VALIDATE_ERROR("07096", "订单总金额验证有误"),
    ;

    private String code;
    private String message;

    TradeErrorCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}
