设置状态

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,
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("转出失败");
}
for (SchTeacher tea: teachers)
{
Integer groupId=tea.getGroupList().stream().map(s->s.getGroupId()).findFirst().get();
// 平台同步:将教师在其当前学校(schId)的组状态置为转出
// 注意:不能使用 tea.getGroupList()(findAllById 不会填充该字段,可能为 null)
for (SchTeacher tea : teachers) {
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. 异步日志