教师转入

This commit is contained in:
2026-08-27 18:03:39 +08:00
parent 511c4319ca
commit ed056b73d4
2 changed files with 15 additions and 13 deletions
@@ -7,26 +7,26 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @Author wanghu
* @Date 2026-6-10 15:09 (可以根据需要修改)
* @Description:
* @Description:教师转入DTO(单教师:原学校 schId + 教师 teaId + 目标组 transferGroupId)
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TeaTransferInGroupDTO {
@NotNull(message = "教师ID列表不能为空")
@Size(min = 1, message = "至少选择一个教师")
@NotNull(message = "教师ID不能为空")
@Min(value = 1, message = "教师ID必须大于0")
private Integer teaId;
/** 原学校ID(转入前的学校) */
private Integer schId;
@NotNull(message = "目标组ID不能为空")
@Min(value=0, message = "至少选择一个组")
@Min(value = 1, message = "目标组ID必须大于0")
private Integer transferGroupId;
}
@@ -194,10 +194,7 @@ public class SchStudentTransferService {
SchStudent student = schStudentRepository.findById(model.getStuId())
.orElseThrow(() -> new DException("学生不存在!"));
// 已在目标学校且已在目标班级的学生无需操作
if (student.getSchId().equals(targetSchId) && targetClassId.equals(student.getClassId())) {
throw new DException("已在目标学校且已在目标班级的学生无需操作!");
}
// 收集受影响的缓存Key(旧班级 + 新班级)
Set<String> cacheKeysToDelete = new HashSet<>();
@@ -218,7 +215,7 @@ public class SchStudentTransferService {
user.getUserId()
);
if (updated != 1) {
throw new DException("批量更新失败,可能学生已被删除或修改,请刷新后重试");
throw new DException("更新失败,可能学生已被删除或修改,请刷新后重试");
}
// 清除缓存(直接按Key删除)
@@ -226,8 +223,13 @@ public class SchStudentTransferService {
redisUtil.del(cacheKey);
}
// 平台同步:转入目标学校/班级(fromSchoolId 取转入前的原学校)
sendUserBaseService.transferUserToSchool(student.getStuId(), student.getSchId(), targetSchId, targetClassId);
// 已在目标学校且已在目标班级的学生 转入
if (student.getSchId().equals(targetSchId) && targetClassId.equals(student.getClassId())) {
sendUserBaseService.changeUserStatus(student.getStuId(),true);
}else {
// 平台同步:转入目标学校/班级(fromSchoolId 取转入前的原学校)
sendUserBaseService.transferUserToSchool(student.getStuId(), student.getSchId(), targetSchId, targetClassId);
}
// 异步记录操作日志
logService.setTransferInLog(user, Collections.singletonList(student), targetSchId, targetClassId);