设置状态
This commit is contained in:
+17
-4
@@ -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) {
|
||||||
|
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);
|
sendUserBaseService.setUserGroupState(tea.getTeaId(), groupId, schId);
|
||||||
|
} else {
|
||||||
|
log.warn("教师 teaId={} 在当前学校无组关联,跳过平台转出同步", tea.getTeaId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. 异步日志
|
// 5. 异步日志
|
||||||
|
|||||||
Reference in New Issue
Block a user