设置状态
This commit is contained in:
+18
-5
@@ -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();
|
||||
sendUserBaseService.setUserGroupState(tea.getTeaId(),groupId,schId);
|
||||
// 平台同步:将教师在其当前学校(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. 异步日志
|
||||
|
||||
Reference in New Issue
Block a user