001package run.iget.framework.common.enums;
002
003import java.util.Objects;
004
005import lombok.Getter;
006
007/**
008 * 代码千万行,注释第一行;注释不规范,迭代两行泪
009 * ----------------------------------------
010 * 数据库逻辑删除枚举对象
011 * ----------------------------------------
012 * author: 大周
013 * date: 2022/2/8 10:59
014 **/
015@Getter
016public enum BaseStatusEnum implements BaseEnum<Integer> {
017    /**
018     * 0启用,禁用
019     */
020    ENABLE(0, "启用"),
021    DISABLE(1, "禁用");
022
023    /**
024     * 关键值
025     */
026    private Integer code;
027    /**
028     * 描述
029     */
030    private String  desc;
031
032    private BaseStatusEnum(int value, String description) {
033        this.code = value;
034        this.desc = description;
035    }
036
037    public static boolean isDisable(Integer value) {
038        return Objects.equals(value, BaseStatusEnum.DISABLE.code);
039    }
040
041    /**
042     * 取反
043     * @param statusEnum 入参
044     * @return 如果statusEnum == null,则返回null。
045     */
046    public static BaseStatusEnum negate(BaseStatusEnum statusEnum) {
047        if (statusEnum == null) {
048            return null;
049        }
050        return negate(statusEnum.code);
051    }
052
053    /**
054     * 取反
055     * @param statusCode 入参
056     * @return 如果statusEnum == null,则返回null。
057     */
058    public static BaseStatusEnum negate(Integer statusCode) {
059        if (statusCode == null) {
060            return null;
061        }
062        return isDisable(statusCode) ? BaseStatusEnum.ENABLE : BaseStatusEnum.DISABLE;
063    }
064
065}