package foundation.org; import foundation.util.Util; public class PositionMeta { public static enum Level { SalesDirector(1, "销售总监", "Actor-Sales-Director"), SalesRegionDirector(2, "大区经理", "Actor-Sales-Leader"), SalesAreaManager(3, "区域经理", "Actor-Sales-Leader"), Sales(4, "销售工程师", "Actor-Sales-Rep"); private String title; private int levelNo; private String actorCode; private Level(int levelNo, String title, String actorCode) { this.levelNo = levelNo; this.title = title; this.actorCode = actorCode; } public String getTitle() { return title; } public static Level parse(String value) { if (Util.isEmpty(value)) { return Sales; } if ("SalesDirector".equalsIgnoreCase(value)) { return SalesDirector; } else if ("SalesRegionDirector".equalsIgnoreCase(value)) { return SalesRegionDirector; } else if ("SalesAreaManager".equalsIgnoreCase(value) || "SalesRegionManage".equalsIgnoreCase(value) ) { return SalesAreaManager; } else if ("SalesHierarchy".equalsIgnoreCase(value)) { return Sales; } return Sales; } public boolean isUnder(Level level) { return levelNo < level.getLevelNo(); } public boolean isSalesDirector() { return this == SalesDirector; } public boolean isSalesRegionDirector() { return this == SalesRegionDirector; } public boolean isSalesAreaManager() { return this == SalesAreaManager; } public boolean isSales() { return this == Sales; } public int getLevelNo() { return levelNo; } public String getActorCode() { return actorCode; } } public PositionMeta() { level = Level.Sales; } public PositionMeta(String levelCode) { level = Level.parse(levelCode); } public void load(String levelCode) { level = Level.parse(levelCode); } public boolean isSalesDirector() { return level.isSalesDirector(); } public boolean isSalesRegionDirector() { return level.isSalesRegionDirector(); } public boolean isSales() { return level.isSales(); } public String getActorCode() { return level.getActorCode(); } private Level level; }