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