zjk
23 小时以前 f8c73a38709f7120d11b04bd70c6af3ccc53014d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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;
    }
}