Files
UserclassService/src/main/java/com/bestsch/classicalchinese/enums/Subject.java
T
2026-02-28 19:31:18 +08:00

106 lines
2.1 KiB
Java

package com.bestsch.classicalchinese.enums;
import lombok.Data;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public enum Subject
{
YW(40,"语文","SUB01"),
SX(41,"数学","SUB02"),
YY(42,"英语","SUB03"),
WL(74,"物理","SUB04"),
HX(75,"化学","SUB05"),
SW(76,"生物","SUB06"),
XX(111,"信息","SUB7"),
PD(112,"道法","SUB8"),
TY(113,"体育","SUB9"),
MS(114,"美术","SUB10"),
KX(115,"科学","SUB11"),
LJ(116,"劳技","SUB12"),
LS(117,"历史","SUB13"),
DL(118,"地理","SUB14"),
ZZ(119,"政治","SUB15");
private int id;
private String name;
private String code;
Subject(int id, String name, String code)
{
this.id = id;
this.name = name;
this.code = code;
}
public int getId()
{
return id;
}
public String getName()
{
return name;
}
public String getCode()
{
return code;
}
public static Subject getByCode(String code)
{
return codeMap.get(code);
}
private static List<Subject> list;
private static Map<String, Subject> codeMap;
public static List<Subject> list()
{
if (list != null) return list;
EnumSet<Subject> statusSet = EnumSet.allOf(Subject.class);
list = new ArrayList<>(statusSet);
codeMap = list.stream().collect(Collectors.toMap(Subject::getCode, Subject -> Subject));
return list;
}
static
{
list();
}
@Data
public static class Dto
{
private int id;
private String name;
private String code;
}
public Dto toDto()
{
Dto dto = new Dto();
dto.setId(id);
dto.setName(name);
dto.setCode(code);
return dto;
}
private static List<Dto> dtoList;
public static List<Dto> dtoList()
{
if (dtoList != null) return dtoList;
List<Dto> dtoList = new ArrayList<>();
for (Subject subject: list())
dtoList.add(subject.toDto());
return dtoList;
}
}