|
|
|
@ -4,10 +4,7 @@ import cn.teammodel.common.ErrorCode;
|
|
|
|
|
import cn.teammodel.common.PK;
|
|
|
|
|
import cn.teammodel.config.exception.ServiceException;
|
|
|
|
|
import cn.teammodel.controller.admin.service.TeacherService;
|
|
|
|
|
import cn.teammodel.model.dto.admin.teacher.CoreUser;
|
|
|
|
|
import cn.teammodel.model.dto.admin.teacher.GpTeacherDto;
|
|
|
|
|
import cn.teammodel.model.dto.admin.teacher.IdCodePair;
|
|
|
|
|
import cn.teammodel.model.dto.admin.teacher.TeacherDto;
|
|
|
|
|
import cn.teammodel.model.dto.admin.teacher.*;
|
|
|
|
|
import cn.teammodel.model.entity.User;
|
|
|
|
|
import cn.teammodel.model.entity.common.GroupList;
|
|
|
|
|
import cn.teammodel.model.entity.school.*;
|
|
|
|
@ -1661,15 +1658,17 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveOrUpdate(List<GpTeacherVo> gpTeachers, HttpServletRequest request) {
|
|
|
|
|
public List<PtTeacherInfo> saveOrUpdate(GpTeacherRequest gpTeachers, HttpServletRequest request) {
|
|
|
|
|
|
|
|
|
|
List<PtTeacherInfo> missingTeachers = new ArrayList<>();
|
|
|
|
|
try {
|
|
|
|
|
// 获取当前登录用户信息
|
|
|
|
|
User loginUser = SecurityUtil.getLoginUser();
|
|
|
|
|
String operator = loginUser != null ? loginUser.getName() : "system";
|
|
|
|
|
|
|
|
|
|
String schoolCode = SecurityUtil.getLoginUser().getSchoolId();
|
|
|
|
|
|
|
|
|
|
List<Pair<String, String>> idCodePairs = gpTeachers.stream()
|
|
|
|
|
List<Pair<String, String>> idCodePairs = gpTeachers.getGpTeacherDtos().stream()
|
|
|
|
|
.filter(t -> t.getId() != null)
|
|
|
|
|
.map(t -> Pair.of(t.getId(), "PtTeacher-" + schoolCode))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
@ -1683,20 +1682,22 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
// 根据传入的gpTeachers对象数据批量保存或更新PtTeacherInfo对象
|
|
|
|
|
List<PtTeacherInfo> ptTeacherInfos = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
for (GpTeacherVo teacher : gpTeachers) {
|
|
|
|
|
//List<PtTeacherInfo> missingTeachers = new ArrayList<>();
|
|
|
|
|
for (GpTeacherVo teacher : gpTeachers.getGpTeacherDtos()) {
|
|
|
|
|
|
|
|
|
|
String businessCode = "PtTeacher-" + schoolCode;
|
|
|
|
|
PtTeacherInfo ptTeacherInfo = codeToTeacherMap.get(teacher.getId());
|
|
|
|
|
|
|
|
|
|
if (ptTeacherInfo != null) {
|
|
|
|
|
if (gpTeachers.getOpt().equalsIgnoreCase("save")) {
|
|
|
|
|
missingTeachers.add(ptTeacherInfo);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
// 更新现有记录:保留ID,更新其他字段
|
|
|
|
|
ptTeacherInfo.setName(teacher.getName());
|
|
|
|
|
ptTeacherInfo.setPhone(teacher.getPhone());
|
|
|
|
|
ptTeacherInfo.setEmail(teacher.getEmail());
|
|
|
|
|
ptTeacherInfo.setPicture(teacher.getPicture());
|
|
|
|
|
ptTeacherInfo.setJob(teacher.getJob());
|
|
|
|
|
ptTeacherInfo.setSubjectIds(teacher.getSubjectIds());
|
|
|
|
|
ptTeacherInfo.setRoles(teacher.getRoles());
|
|
|
|
|
ptTeacherInfo.setSubjectNames(teacher.getSubjectNames());
|
|
|
|
|
ptTeacherInfo.setDegree(teacher.getDegree());
|
|
|
|
|
ptTeacherInfo.setGender(teacher.getGender());
|
|
|
|
|
ptTeacherInfo.setGrade(teacher.getGrade());
|
|
|
|
@ -1705,7 +1706,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
ptTeacherInfo.setTeachingAge(teacher.getTeachingAge());
|
|
|
|
|
ptTeacherInfo.setStatus(teacher.getStatus());
|
|
|
|
|
ptTeacherInfo.setJoinTime(teacher.getJoinTime());
|
|
|
|
|
ptTeacherInfo.setSchool(teacher.getCode());
|
|
|
|
|
ptTeacherInfo.setSchool(schoolCode);
|
|
|
|
|
ptTeacherInfo.setVersion(ptTeacherInfo.getVersion() + 1); // 版本号递增
|
|
|
|
|
} else {
|
|
|
|
|
// 新增记录:生成新ID
|
|
|
|
@ -1729,6 +1730,7 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
ptTeacherInfo.setTeachingAge(teacher.getTeachingAge());
|
|
|
|
|
ptTeacherInfo.setStatus(teacher.getStatus());
|
|
|
|
|
ptTeacherInfo.setJoinTime(teacher.getJoinTime());
|
|
|
|
|
ptTeacherInfo.setSchool(schoolCode);
|
|
|
|
|
ptTeacherInfo.setState(1);
|
|
|
|
|
ptTeacherInfo.setIdentity(Collections.singletonList("teacher"));
|
|
|
|
|
ptTeacherInfo.setVersion(1);
|
|
|
|
@ -1740,12 +1742,13 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
logger.info("用户[{}]即将{}教师数据(添加:{}条,更新:{}条)",
|
|
|
|
|
operator,
|
|
|
|
|
existingList.isEmpty() ? "新增" : "更新",
|
|
|
|
|
gpTeachers.size() - existingList.size(),
|
|
|
|
|
gpTeachers.getGpTeacherDtos().size() - existingList.size(),
|
|
|
|
|
existingList.size());
|
|
|
|
|
ptTeacherRepository.saveAll(ptTeacherInfos);
|
|
|
|
|
}catch (Exception e) {
|
|
|
|
|
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "保存数据异常");
|
|
|
|
|
}
|
|
|
|
|
return missingTeachers;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 手机号正则表达式(中国大陆)
|
|
|
|
|