From ed056b73d43e979af2e18e512fe4b1ba9de85645 Mon Sep 17 00:00:00 2001 From: wanghu Date: Thu, 27 Aug 2026 18:03:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E5=B8=88=E8=BD=AC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/dto/TeaTransferInGroupDTO.java | 12 ++++++------ .../impl/student/SchStudentTransferService.java | 16 +++++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) 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);