package com.qmth.teachcloud.common.enums;

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

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

    ADMIN("系统管理员"),
    SCHOOL_ADMIN("学校管理员"),
    OFFICE_TEACHER("教务处老师"),
    PRESIDENT("学院院长"),
    TEACHER("任课老师"),
    MARKER("评卷员"),
    MARKER_LEADER("科组长"),
    SUBJECT_TEACHER("学科老师"),
    ASSIGN_TEACHER("命题老师"),
    SCHOOL_TEACHER("学校老师"),
    ASSISTANT("学院秘书"),
    PRINT("印刷员"),
    SCANNER("扫描员");

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

    private String name;

    public String getName() {
        return name;
    }

    /**
     * @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.setCode(value.name());
            result.setName(value.getName());
            result.setOrdinal(value.ordinal());
            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.getName())) {
                res = value;
            }
        }
        return res;
    }
}
