error data

This commit is contained in:
2026-08-19 14:37:55 +08:00
parent 1f7705546d
commit 72baf66d59
10 changed files with 54 additions and 29 deletions
@@ -273,8 +273,8 @@ public class SchTeacherService implements ISchTeacherService {
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteTeacher(UserContext.UserInfo user, String ids) {
infoService.deleteTeacher(user, ids);
public void deleteTeacher(UserContext.UserInfo user, String ids,Integer groupId) {
infoService.deleteTeacher(user, ids,groupId);
}
@Override
@@ -98,9 +98,9 @@ public class SyncUserBaseService implements ISyncUserBaseService {
return YschBaseOpenApi.editUser(teacher.getTeaId(),user);
}
public void deleteTeacherList(List<SchTeacherDTO> teacherList){
for (SchTeacherDTO teacher :teacherList) {
YschBaseOpenApi.deleteUser(teacher.getTeaId(),teacher.getGroupId());
public void deleteTeachers(List<Integer> teaIds,Integer groupId){
for (Integer teaId :teaIds) {
YschBaseOpenApi.deleteUser(teaId,groupId);
}
}
@@ -151,7 +151,7 @@ public class SchTeacherInfoService {
cacheService.clearTeacherCache(schId);
}
public void deleteTeacher(UserContext.UserInfo user, String ids) {
public void deleteTeacher(UserContext.UserInfo user, String ids,Integer groupId) {
if (StringUtils.isBlank(ids)) {
throw new DException("教师ID列表不能为空");
}
@@ -180,26 +180,33 @@ public class SchTeacherInfoService {
}
// 校验班主任/副班主任(SchClass.firstTeacherId/secondTeacherId 存的是 teaId)
List<Integer> teacherTeaIds = teachers.stream()
.map(SchTeacher::getTeaId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!teacherTeaIds.isEmpty()) {
long classCount = schClassRepository.countByFirstTeacherIdInOrSecondTeacherIdInAndSchId(teacherTeaIds, schId);
if (classCount > 0) {
throw new DException("选中的教师中有 " + classCount + " 个班级的班主任/副班主任,请先更换");
if(teachers.size()==1)
{
List<Integer> teacherTeaIds = teachers.stream()
.map(SchTeacher::getTeaId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!teacherTeaIds.isEmpty()) {
long classCount = schClassRepository.countByFirstTeacherIdInOrSecondTeacherIdInAndSchId(teacherTeaIds, schId);
if (classCount > 0) {
throw new DException("选中的教师中有 " + classCount + " 个班级的班主任/副班主任,请先更换");
}
}
}
String groupName=comSchTreeService.getTeaGroupName(schId,groupId);
// 删除关联组关系(先异步日志,再删除)
List<Integer> teaIds = teachers.stream()
.map(SchTeacher::getTeaId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!teaIds.isEmpty()) {
// 异步记录删除日志(由 LogService 处理)
logService.deleteTeacherLogs(user, teachers);
schTeacherGroupRepository.deleteByTeaIdIn(teaIds);
logService.deleteTeacherLogs(user, teachers,groupName);
syncUserBaseService.deleteTeachers(teaIds,groupId);
schTeacherGroupRepository.deleteByGroupIdAndTeaIds(teaIds,groupId);
}
// 清除缓存
@@ -133,18 +133,18 @@ public class SchTeacherLogService {
}
@Async("logExecutor")
public void deleteTeacherLogs(UserContext.UserInfo user, List<SchTeacher> teachers) {
public void deleteTeacherLogs(UserContext.UserInfo user, List<SchTeacher> teachers,String groupName) {
try {
LocalDateTime now = LocalDateTime.now();
List<OperationLogRecord> logs = new ArrayList<>();
for (SchTeacher teacher : teachers) {
OperationLogRecord log = logService.buildLogRecord(user, LogModule.TEACHER, "删除[" + teacher.getName() + "] 教师成功", now);
OperationLogRecord log = logService.buildLogRecord(user, LogModule.TEACHER, "删除["+groupName+"-" + teacher.getName() + "] 教师成功", now);
logs.add(log);
}
if (logs != null && !logs.isEmpty()) {
logService.saveAllLogAsync(logs);
}
log.debug("操作人:{},删除教师日志:{}", user.getUserName(), JSON.toJSONString(teachers));
log.debug("操作人:{},删除教师日志:{}", groupName+"-"+user.getUserName(), JSON.toJSONString(teachers));
} catch (Exception e) {
log.error("操作人:" + user.getUserName() + ",删除教师日志失败: {}", e.getMessage(), e);
}