SettingTypeEnum.java 2.33 KB
package cn.fw.valhalla.domain.enums;

import com.baomidou.mybatisplus.core.enums.IEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

/**
 * @author : kurisu
 * @className : SettingTypeEnum
 * @description : 设置类型
 * @date: 2020-08-11 17:37
 */
public enum SettingTypeEnum implements IEnum<Integer> {
    /**
     * 首次触发时间
     */
    FIRST_TRIGGER_TIME(1, "首次触发时间", 1),
    /**
     * 有效跟进时间
     */
    EFFECTIVE_TIME(2, "有效跟进时间", 2),
    /**
     * 跟进周期
     */
    FOLLOW_CYCLE(3, "跟进周期", 3),
    /**
     * 划走时间
     */
    CHANGE_TIME(4, "划走时间", 4),
    /**
     * 失败时间
     */
    FAIL_TIME(5, "失败时间", 5),
    /**
     * 首次触发消息提醒时间
     */
    FIRST_NOTICE_TIME(6, "首次触发消息提醒时间", 6),
    /**
     * 消息间隔
     */
    NOTICE_CYCLE(7, "消息间隔", 7),
    /**
     * 提醒次数
     */
    NOTICE_TIMES(8, "提醒次数", 8),
    /**
     * 首保集团标准最低值(首保用)
     */
    REVISE_RATIO(9, "集团标准最低值", 9),
    ;

    /**
     * 值
     */
    private final Integer value;
    /**
     * 名称
     */
    @Getter
    private final String name;

    @Getter
    private final Integer seq;

    SettingTypeEnum(final Integer value, final String name, final Integer seq) {
        this.value = value;
        this.name = name;
        this.seq = seq;
    }

    /**
     * 根据枚举值获取枚举对象
     */
    @JsonCreator
    public static SettingTypeEnum ofValue(final Integer value) {
        for (final SettingTypeEnum typeEnum : SettingTypeEnum.values()) {
            if (typeEnum.value.equals(value)) {
                return typeEnum;
            }
        }
        return null;
    }

    /**
     * 获取值
     *
     * @return 值
     */
    @JsonValue
    @Override
    public Integer getValue() {
        return value;
    }

    /**
     * 获取描述
     *
     * @return 值
     */
    @JsonCreator
    public static String getNameByVale(final Integer value) {
        for (final SettingTypeEnum typeEnum : SettingTypeEnum.values()) {
            if (typeEnum.value.equals(value)) {
                return typeEnum.getName();
            }
        }
        return "";
    }
}