diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java index 2ade0c55..39ad0c6f 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesLocalTeacherController.java @@ -11,6 +11,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.entity.CeesLocalTeacher; +import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.service.ICeesLocalTeacherService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -53,6 +54,7 @@ public class CeesLocalTeacherController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ceesLocalTeacher, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = ceesLocalTeacherService.page(page, queryWrapper); + pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()))); return Result.OK(pageList); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java index 2ae035cc..dfb55668 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java @@ -12,6 +12,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.entity.CeesWaiTeacher; +import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.service.ICeesWaiTeacherService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -54,6 +55,7 @@ public class CeesWaiTeacherController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = ceesWaiTeacherService.page(page, queryWrapper); + pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()))); return Result.OK(pageList); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java index 43edac3c..bc69ecd2 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/StudentController.java @@ -12,6 +12,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.entity.Student; +import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.service.IStudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -54,6 +55,7 @@ public class StudentController extends JeecgController QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(student, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = studentService.page(page, queryWrapper); + pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()))); return Result.OK(pageList); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java index a2dc5b18..9e12a188 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesLocalTeacher.java @@ -1,6 +1,7 @@ package org.jeecg.modules.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -60,10 +61,15 @@ public class CeesLocalTeacher implements Serializable { @Excel(name = "用户名", width = 15) @ApiModelProperty(value = "用户名") private String userName; - /**专业id,0表示未选择*/ - @Excel(name = "专业id,0表示未选择", width = 15) - @ApiModelProperty(value = "专业id,0表示未选择") + /**专业id*/ + @Excel(name = "学科ID", width = 15) + @ApiModelProperty(value = "学科ID") private Integer majorId; + /**专业id*/ + @Excel(name = "学科描述", width = 15) + @ApiModelProperty(value = "专业id") + @TableField(exist = false) + private String majorIdDescription; /**用户专业id*/ @Excel(name = "用户专业id", width = 15) @ApiModelProperty(value = "用户专业id") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java index 881fffaa..97913842 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java @@ -1,6 +1,7 @@ package org.jeecg.modules.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -57,9 +58,14 @@ public class CeesWaiTeacher implements Serializable { @ApiModelProperty(value = "用户id") private String userId; /**专业id*/ - @Excel(name = "专业id", width = 15) - @ApiModelProperty(value = "专业id") + @Excel(name = "学科ID", width = 15) + @ApiModelProperty(value = "学科ID") private Integer majorId; + /**专业id*/ + @Excel(name = "学科描述", width = 15) + @ApiModelProperty(value = "专业id") + @TableField(exist = false) + private String majorIdDescription; /**用户专业id*/ @Excel(name = "用户专业id", width = 15) @ApiModelProperty(value = "用户专业id") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java index e5ad420b..9bb65df4 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Student.java @@ -1,6 +1,7 @@ package org.jeecg.modules.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -60,10 +61,15 @@ public class Student implements Serializable { @Excel(name = "用户名", width = 15) @ApiModelProperty(value = "用户名") private String userName; - /**专业id,0表示未选择*/ - @Excel(name = "专业id,0表示未选择", width = 15) - @ApiModelProperty(value = "专业id,0表示未选择") + /**专业id*/ + @Excel(name = "学科ID", width = 15) + @ApiModelProperty(value = "学科ID") private Integer majorId; + /**专业id*/ + @Excel(name = "学科描述", width = 15) + @ApiModelProperty(value = "专业id") + @TableField(exist = false) + private String majorIdDescription; /**用户专业id*/ @Excel(name = "用户专业id", width = 15) @ApiModelProperty(value = "用户专业id") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/enums/MajorEnum.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/enums/MajorEnum.java new file mode 100644 index 00000000..e15e582e --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/enums/MajorEnum.java @@ -0,0 +1,59 @@ +package org.jeecg.modules.enums; + +import org.jeecg.modules.utils.EnumUtil; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + + +public enum MajorEnum { + /** + * 语文 + */ + CHINESE(1, "语文"), + /** + * 地理 + */ + GEOGRAPHY(4, "地理"), + /** + * 历史 + */ + HISTORY(7, "历史"), + /** + * 政治 + */ + POLITICS(8, "政治"); + + + private Integer value; + private String label; + + MajorEnum(Integer value, String label) { + this.value = value; + this.label = label; + } + + public static Optional valueOf(Integer typeId) { + return EnumUtil.getEnumObject(MajorEnum.class, e -> Objects.equals(e.getValue(), typeId)); + } + + public static String describe(Integer typeId) { + return MajorEnum.valueOf(typeId).map(MajorEnum::getLabel).orElse(""); + } + + public static List> getOptionList() { + return EnumUtil.getEnumOptionList(MajorEnum.class, + MajorEnum::getLabel, + MajorEnum::getValue); + } + + public Integer getValue() { + return value; + } + + public String getLabel() { + return label; + } +} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/utils/EnumUtil.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/utils/EnumUtil.java new file mode 100644 index 00000000..c90d0e38 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/utils/EnumUtil.java @@ -0,0 +1,56 @@ +package org.jeecg.modules.utils; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; + +public class EnumUtil { + private static Map map = new ConcurrentHashMap<>(); + + /** + * 根据条件获取枚举对象 + * + * @param className 枚举类 + * @param predicate 筛选条件 + * @param + * @return + */ + public static Optional getEnumObject(Class className, Predicate predicate) { + if (!className.isEnum()) { + return Optional.empty(); + } + Object obj = map.get(className); + T[] ts = null; + if (obj == null) { + ts = className.getEnumConstants(); + map.put(className, ts); + } else { + ts = (T[]) obj; + } + return Arrays.stream(ts).filter(predicate).findFirst(); + } + + /** + * 获取枚举类的选项列表 + * @param enumClass 枚举类的Class对象 + * @param labelExtractor label值提取器 + * @param valueExtractor value值提取器 + * @param 枚举类的泛型类型 + * @param labelExtractor返回值的泛型类型 + * @param valueExtractor返回值的泛型类型 + * @return 选项列表 + */ + public static , L, V> List> getEnumOptionList(Class enumClass, Function labelExtractor, Function valueExtractor) { + T[] enumConstants = enumClass.getEnumConstants(); + List> optionList = new ArrayList<>(); + for (T enumConstant : enumConstants) { + Map option = new HashMap<>(); + option.put("label", labelExtractor.apply(enumConstant)); + option.put("value", valueExtractor.apply(enumConstant)); + optionList.add(option); + } + return optionList; + } + +}