diff --git a/src/main/java/com/yunhai/bschclassmanage/model/dto/TeaTransferInGroupDTO.java b/src/main/java/com/yunhai/bschclassmanage/model/dto/TeaTransferInGroupDTO.java index aff3694..0c282ba 100644 --- a/src/main/java/com/yunhai/bschclassmanage/model/dto/TeaTransferInGroupDTO.java +++ b/src/main/java/com/yunhai/bschclassmanage/model/dto/TeaTransferInGroupDTO.java @@ -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; } diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentTransferService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentTransferService.java index bdf7b6e..b1655f1 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentTransferService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/student/SchStudentTransferService.java @@ -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 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);