package com.ruoyi.user.enums; /** * 会员等级枚举 * * 与 account_user.system_level 字段一一对应(复用既有列,不再另建等级列): * C —— 普通用户(个人中心受限展示:仅「收货地址」「联系我们」) * L1~L4 —— 会员(个人中心展示全部内容,含收益卡与全部菜单) * * @author hugray */ public enum MemberLevelEnum { /** 普通用户(受限展示) */ C("C", "普通用户"), /** 会员 L1 */ L1("L1", "会员"), /** 会员 L2 */ L2("L2", "会员"), /** 会员 L3 */ L3("L3", "会员"), /** 会员 L4 */ L4("L4", "会员"); /** 等级编码(落库值) */ private final String code; /** 等级描述 */ private final String desc; /** 默认等级:普通用户,用于等级为空或非法的兜底 */ public static final MemberLevelEnum DEFAULT = C; MemberLevelEnum(String code, String desc) { this.code = code; this.desc = desc; } public String getCode() { return code; } public String getDesc() { return desc; } /** * 按编码获取枚举 * * @param code 等级编码 * @return 命中返回枚举;未命中返回 null */ public static MemberLevelEnum getByCode(String code) { for (MemberLevelEnum level : values()) { if (level.code.equals(code)) { return level; } } return null; } /** * 归一化等级编码:非法或空值统一兜底为默认等级,避免脏数据影响前端展示 * * @param code 原始等级编码 * @return 合法的等级编码 */ public static String normalize(String code) { return getByCode(code) == null ? DEFAULT.getCode() : code; } }