package com.ruoyi.common.exception.enums;


import com.ruoyi.common.exception.enums.abs.AbstractBaseExceptionEnum;

/**
 * @author liwenlong
 * @date 2021/11/1 19:34
 */


public enum CoreExceptionEnum implements AbstractBaseExceptionEnum {


    /**
     * 用户相关
     */
    REGISTER_FAIL( "注册失败"),
    PWD_ERROR( "密码错误"),
    ACCOUNT_NOT_EXIST( "账号不存在"),
    ACCOUNT_DISABLE( "账号被冻结"),

    PHONE_NOT_EXIST( "手机号不存在"),

    MOBILE_BIND_MAKE( "请使用绑定的手机号码"),
    ACCOUNT_HAS_EXIST( "账号已存在，请重新输入"),

    PHONE_HAS_EXIST( "手机号已存在，请重新输入"),



    /**
     * 邀请码
     */
    REFEREE_CODE_ERROR( "邀请码错误"),


    FIGURE_CODE_ERROR( "图形验证码错误"),

    FIGURE_CODE_NOT_EXIST( "请先获取图形验证码"),


    /**
     * 短信
     */
    SMS_SEND_FAIL( "短信发送失败"),


    /**
     * 参数
     */
    ERROR_PARAM("参数错误"),
    NOT_NULL_PARAM("参数不能为空"),
    ERROR_DATA("数据错误"),

    ERROR_FIELD_NAME("字段名称错误"),

    /**
     * 余额
     */

    PRICE_ZERO(210, "支付金额为零"),
    BALANCE_INSUFFICIENT (220, "余额不足"),

    INTEGRAL_INSUFFICIENT (230, "积分不足"),

    PAY_BALANCE_ERROR (240, "支付价格错误"),

    EDIT_BALANCE_ERROR (250, "余额修改错误"),


    /**
     * 字典
     */
    NO_DICTIONARIES( "未配置字典值"),
    DICTIONARIES_ERROR( "字典值格式错误"),


    /**
     * 渲染
     */
    WRITE_ERROR( "渲染界面错误"),

    RESOURCES_NOT_EXIST("资源不存在"),
    IO_ERROR("流读取异常"),

    INVLIDE_DATE_STRING(400, "输入日期格式不对"),
    FILE_READING_ERROR(400, "FILE_READING_ERROR!"),
    FILE_NOT_FOUND(400, "FILE_NOT_FOUND!"),
    PAGE_NULL(404, "请求页面不存在"),
    REMOTE_SERVICE_NULL(404, "远程服务不存在"),


    ERROR_TOKEN(520,"token异常"),
    INPUT_PWD(530, "请输入支付密码"),
    NO_PWD(540, "密码为空"),
    UPDATE_PWD_ERROR("编辑密码错误"),
    UPDATE_MOBILE_ERROR("编辑手机号错误"),
    UPDATE_DATA(570, "数据更新错误"),
    INSERT_DATA(580, "数据保存错误"),
    ERROR_DICT_LACK(590,"字典表配置缺失"),


    ENCRYPT_ERROR(600, "加解密错误"),


    NO_CURRENT_USER(700, "当前没有登录的用户"),
    FIELD_VALIDATE_ERROR(700, "数据库字段与实体字段不一致!"),
    INIT_TABLE_EMPTY_PARAMS(701, "初始化数据库，存在为空的字段"),


    ASYNC_ERROR(5000, "数据在被别人修改，请稍后重试"),

    ;

    private Integer code;
    private String message;

    private CoreExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    private CoreExceptionEnum(String message) {
        this.code = 500;
        this.message = message;
    }

    @Override
    public Integer getCode() {
        return this.code;
    }

    @Override
    public String getMessage() {
        return this.message;
    }
}
