设置状态

This commit is contained in:
2026-08-27 17:13:34 +08:00
parent c83a4d78f0
commit 511c4319ca
@@ -107,14 +107,27 @@ public class SchTeacherRelationService {
schId, schId,
TransferStatus.OUT.getId() TransferStatus.OUT.getId()
); );
if (updated != idList.size()) { // 预期更新的行数 = 这些教师在本校的组关联行数(一个教师可能关联多个组)
long expectedUpdated = groups.stream()
.filter(g -> schId.equals(g.getSchId()) && teacherTeaIds.contains(g.getTeaId()))
.count();
if (updated != expectedUpdated) {
throw new DException("转出失败"); throw new DException("转出失败");
} }
for (SchTeacher tea: teachers) // 平台同步:将教师在其当前学校(schId)的组状态置为转出
{ // 注意:不能使用 tea.getGroupList()(findAllById 不会填充该字段,可能为 null)
Integer groupId=tea.getGroupList().stream().map(s->s.getGroupId()).findFirst().get(); for (SchTeacher tea : teachers) {
sendUserBaseService.setUserGroupState(tea.getTeaId(),groupId,schId); Integer groupId = groupMap.getOrDefault(tea.getTeaId(), Collections.emptyList()).stream()
.filter(g -> schId.equals(g.getSchId()))
.map(SchTeacherGroup::getGroupId)
.findFirst()
.orElse(null);
if (groupId != null) {
sendUserBaseService.setUserGroupState(tea.getTeaId(), groupId, schId);
} else {
log.warn("教师 teaId={} 在当前学校无组关联,跳过平台转出同步", tea.getTeaId());
}
} }
// 5. 异步日志 // 5. 异步日志