package com.qmth.paper.library.common.enums;

import java.util.ArrayList;
import java.util.List;

/**
 * 角色类型
 *
 * @Date: 2021/3/23.
 */
public enum RoleTypeEnum {

    ADMIN("系统管理员"),
    SCHOOL_ADMIN("学校管理员"),
    SCANNER("扫描员");

    RoleTypeEnum(String desc) {
        this.desc = desc;
    }

    private String desc;

    public String getDesc() {
        return desc;
    }

    /**
     * @param hasAdmin 是否需要管理员
     * @return
     */
    public static List<EnumResult> listTypes(boolean hasAdmin) {
        List<EnumResult> list = new ArrayList<EnumResult>();
        for (RoleTypeEnum value : RoleTypeEnum.values()) {
            if (!hasAdmin && "ADMIN".equals(value.name())) {
                continue;
            }
            EnumResult result = new EnumResult();
            result.setName(value.name());
            result.setOrdinal(value.ordinal());
            result.setCode(null);
            result.setDesc(value.getDesc());
            list.add(result);
        }
        return list;
    }

    /**
     * 根据desc查找枚举类
     *
     * @param desc desc
     * @return 枚举类
     */
    public static RoleTypeEnum convertDescToEnum(String desc) {
        RoleTypeEnum res = null;
        for (RoleTypeEnum value : RoleTypeEnum.values()) {
            if (desc.equals(value.getDesc())) {
                res = value;
            }
        }
        return res;
    }
}
