update 调整数据更新操作

develop
hhb@hotmail.com 3 weeks ago
parent 46f11ff824
commit 94db10d2f4

@ -4,8 +4,10 @@ import cn.teammodel.common.R;
import cn.teammodel.controller.admin.service.TeacherService; import cn.teammodel.controller.admin.service.TeacherService;
import cn.teammodel.model.dto.admin.teacher.CoreUser; import cn.teammodel.model.dto.admin.teacher.CoreUser;
import cn.teammodel.model.dto.admin.teacher.GpTeacherDto; import cn.teammodel.model.dto.admin.teacher.GpTeacherDto;
import cn.teammodel.model.dto.admin.teacher.GpTeacherRequest;
import cn.teammodel.model.dto.admin.teacher.TeacherDto; import cn.teammodel.model.dto.admin.teacher.TeacherDto;
import cn.teammodel.model.entity.school.Teacher; import cn.teammodel.model.entity.school.Teacher;
import cn.teammodel.model.entity.teacher.PtTeacherInfo;
import cn.teammodel.model.vo.admin.GpTeacherVo; import cn.teammodel.model.vo.admin.GpTeacherVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -115,8 +117,8 @@ public class TeacherController {
} }
@PostMapping("saveOrUpdate") @PostMapping("saveOrUpdate")
@ApiOperation("保存或更新教师信息") @ApiOperation("保存或更新教师信息")
public R<String> saveOrUpdate(@Valid @RequestBody List<GpTeacherVo> gpTeacherDtos, HttpServletRequest request) { public R<List<PtTeacherInfo>> saveOrUpdate(@Valid @RequestBody GpTeacherRequest gpTeacherDtos, HttpServletRequest request) {
teacherService.saveOrUpdate(gpTeacherDtos,request); List<PtTeacherInfo> res = teacherService.saveOrUpdate(gpTeacherDtos,request);
return R.success("保存成功"); return R.success(res);
} }
} }

@ -2,6 +2,7 @@ package cn.teammodel.controller.admin.service;
import cn.teammodel.model.dto.admin.teacher.CoreUser; import cn.teammodel.model.dto.admin.teacher.CoreUser;
import cn.teammodel.model.dto.admin.teacher.GpTeacherDto; import cn.teammodel.model.dto.admin.teacher.GpTeacherDto;
import cn.teammodel.model.dto.admin.teacher.GpTeacherRequest;
import cn.teammodel.model.dto.admin.teacher.TeacherDto; import cn.teammodel.model.dto.admin.teacher.TeacherDto;
import cn.teammodel.model.entity.school.Teacher; import cn.teammodel.model.entity.school.Teacher;
import cn.teammodel.model.entity.teacher.PtTeacherInfo; import cn.teammodel.model.entity.teacher.PtTeacherInfo;
@ -27,5 +28,5 @@ public interface TeacherService {
void delete(TeacherDto teacherDto); void delete(TeacherDto teacherDto);
List<String> batchImportPtTeachers(List<GpTeacherVo> gpTeachers, HttpServletRequest request); List<String> batchImportPtTeachers(List<GpTeacherVo> gpTeachers, HttpServletRequest request);
List<Map<String, Object>> findTeachers(CoreUser dto, HttpServletRequest request); List<Map<String, Object>> findTeachers(CoreUser dto, HttpServletRequest request);
void saveOrUpdate(List<GpTeacherVo> gpTeachers, HttpServletRequest request); List<PtTeacherInfo> saveOrUpdate(GpTeacherRequest gpTeacherRequest, HttpServletRequest request);
} }

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

@ -0,0 +1,12 @@
package cn.teammodel.model.dto.admin.teacher;
import cn.teammodel.model.vo.admin.GpTeacherVo;
import lombok.Data;
import java.util.List;
@Data
public class GpTeacherRequest {
private List<GpTeacherVo> gpTeacherDtos;
private String opt;
}
Loading…
Cancel
Save