From d1a748c0ffa5da643a9b53e635b3a518f526f5d2 Mon Sep 17 00:00:00 2001 From: wanghu Date: Tue, 8 Sep 2026 12:04:00 +0800 Subject: [PATCH] tea null --- .../controller/oapi/oa/TeainfoController.java | 41 ++++++++++++++++++- .../bschclassmanage/model/oa/TeaInfoVO.java | 24 +++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/TeainfoController.java b/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/TeainfoController.java index dbc8c5a..22c5585 100644 --- a/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/TeainfoController.java +++ b/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/TeainfoController.java @@ -3,6 +3,7 @@ package com.yunhai.bschclassmanage.controller.oapi.oa; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import com.yunhai.bschclassmanage.Repository.SchTeacherGroupRepository; import com.yunhai.bschclassmanage.Repository.SchTeacherRepository; import com.yunhai.bschclassmanage.config.Config; import com.yunhai.bschclassmanage.entity.SchTeacher; @@ -21,7 +22,10 @@ import org.springframework.web.bind.annotation.*; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -37,6 +41,9 @@ public class TeainfoController { @Autowired private SchTeacherRepository schTeacherRepository; + @Autowired + private SchTeacherGroupRepository schTeacherGroupRepository; + @Autowired private ISchInfoService schInfoService; @@ -50,7 +57,11 @@ public class TeainfoController { // 2. 鐩存帴浣跨敤 uid 鏌ヨ return schTeacherRepository.findByTeaId(uid) // 鍋囪 findByTeaId 杩斿洖 Optional - .map(this::convertToTeaInfoVO) // 灏?SchTeacher 杞负 TeaInfoVO + .map(teacher -> { + fillGroupList(Collections.singletonList(teacher), null); + return teacher; + }) + .map(this::convertToTeaInfoVO) .map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); } @@ -94,6 +105,30 @@ public class TeainfoController { return vo; } + /** + * 批量回填教师的分组列表(groupList 为 @Transient 字段,查询后需要单独填充)。 + * schId 不为空时只查该校的组关系,保证取到的 GroupID/SchSerID 属于当前学校。 + */ + private void fillGroupList(List teachers, Integer schId) { + if (teachers == null || teachers.isEmpty()) { + return; + } + List teaIds = teachers.stream() + .map(SchTeacher::getTeaId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + if (teaIds.isEmpty()) { + return; + } + List relations = (schId != null) + ? schTeacherGroupRepository.findByTeaIdInAndSchId(teaIds, schId) + : schTeacherGroupRepository.findByTeaIdIn(teaIds); + Map> groupMap = relations.stream() + .filter(g -> g.getTeaId() != null) + .collect(Collectors.groupingBy(SchTeacherGroup::getTeaId)); + teachers.forEach(t -> t.setGroupList(groupMap.getOrDefault(t.getTeaId(), Collections.emptyList()))); + } + @PostMapping("GetArrTeainfo") @Operation(summary = "根据教师id数组 获取教师列表") public ResponseEntity> getArrTeainfo(@RequestBody String userIds) { @@ -105,8 +140,10 @@ public class TeainfoController { List uids= Arrays.asList(OtherUtil.convertToArray(userIds)); List teachers = schTeacherRepository.findByTeaIdIn(uids); + fillGroupList(teachers, null); List voList = teachers.stream() .map(this::convertToTeaInfoVO) + .filter(Objects::nonNull) .collect(Collectors.toList()); return voList.isEmpty() ? ResponseEntity.noContent().build() : ResponseEntity.ok(voList); @@ -141,9 +178,11 @@ public class TeainfoController { } List teachers = schTeacherService.getSchTeacherList(resolvedSchId); + fillGroupList(teachers, resolvedSchId); List voList = teachers.stream() .map(this::convertToTeaInfoVO) + .filter(Objects::nonNull) .collect(Collectors.toList()); return voList.isEmpty() ? ResponseEntity.noContent().build() : ResponseEntity.ok(voList); diff --git a/src/main/java/com/yunhai/bschclassmanage/model/oa/TeaInfoVO.java b/src/main/java/com/yunhai/bschclassmanage/model/oa/TeaInfoVO.java index 4de2d1c..8c94865 100644 --- a/src/main/java/com/yunhai/bschclassmanage/model/oa/TeaInfoVO.java +++ b/src/main/java/com/yunhai/bschclassmanage/model/oa/TeaInfoVO.java @@ -1,30 +1,54 @@ package com.yunhai.bschclassmanage.model.oa; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class TeaInfoVO { + @JsonProperty("SchSerID") private String SchSerID; + @JsonProperty("Teapolitical") private String Teapolitical; + @JsonProperty("TeaWorkStart") private String TeaWorkStart; + @JsonProperty("Account") private String Account; + @JsonProperty("SchSerIDs") private String SchSerIDs; + @JsonProperty("role") private Integer role; + @JsonProperty("JiaoYuJu") private String JiaoYuJu; + @JsonProperty("TeaSex") private String TeaSex; + @JsonProperty("IsLeadingMiddle") private Integer IsLeadingMiddle; + @JsonProperty("TeaOriginPlace") private String TeaOriginPlace; + @JsonProperty("Photo") private String Photo; + @JsonProperty("TeaIDCard") private String TeaIDCard; + @JsonProperty("Name") private String Name; + @JsonProperty("GroupID") private Integer GroupID; + @JsonProperty("SchName") private String SchName; + @JsonProperty("TeaTeachStart") private String TeaTeachStart; + @JsonProperty("TeaSerID") private String TeaSerID; + @JsonProperty("UserID") private Integer UserID; + @JsonProperty("TeaNation") private String TeaNation; + @JsonProperty("Tel") private String Tel; + @JsonProperty("TeaWorkType") private String TeaWorkType; + @JsonProperty("TeaNo") private Integer TeaNo; + @JsonProperty("TeaBirth") private String TeaBirth; }