From d01fa2df1b46f45647e82be6d1476ea1e295f995 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 27 十月 2024 21:31:53 +0800 Subject: [PATCH] 一个班级可以有多个老师 --- src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java index 94a5c85..78a8613 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.ycl.jxkg.context.WebContext; import com.ycl.jxkg.domain.entity.Classes; +import com.ycl.jxkg.domain.entity.ClassesUser; import com.ycl.jxkg.domain.vo.StudentSimpleVO; import com.ycl.jxkg.domain.vo.StudentVO; import com.ycl.jxkg.enums.general.ClassesStatusEnum; @@ -15,12 +16,16 @@ import com.ycl.jxkg.domain.form.ClassesForm; import com.ycl.jxkg.domain.vo.ClassesVO; import com.ycl.jxkg.domain.query.ClassesQuery; +import com.ycl.jxkg.service.ClassesUserService; import com.ycl.jxkg.utils.PageUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -36,6 +41,7 @@ private final ClassesMapper classesMapper; private final WebContext webContext; + private final ClassesUserService classesUserService; /** * 娣诲姞 @@ -43,11 +49,23 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result add(ClassesForm form) { Classes entity = ClassesForm.getEntityByForm(form, null); entity.setStatus(ClassesStatusEnum.NORMAL); entity.setCreateUser(webContext.getCurrentUser().getId()); baseMapper.insert(entity); + + List<Integer> teacherList = form.getTeacherList(); + if (! CollectionUtils.isEmpty(teacherList)) { + for (Integer teacherUserId : teacherList) { + ClassesUser classesUser = new ClassesUser(); + classesUser.setClassesId(entity.getId()); + classesUser.setUserId(teacherUserId); + classesUser.setTeacher(Boolean.TRUE); + classesUserService.save(classesUser); + } + } return Result.ok("娣诲姞鎴愬姛"); } @@ -57,6 +75,7 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result update(ClassesForm form) { Classes entity = baseMapper.selectById(form.getId()); @@ -64,6 +83,21 @@ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); BeanUtils.copyProperties(form, entity); baseMapper.updateById(entity); + + new LambdaUpdateChainWrapper<>(classesUserService.getBaseMapper()) + .eq(ClassesUser::getClassesId, entity.getId()) + .eq(ClassesUser::getTeacher, Boolean.TRUE) + .remove(); + List<Integer> teacherList = form.getTeacherList(); + if (! CollectionUtils.isEmpty(teacherList)) { + for (Integer teacherUserId : teacherList) { + ClassesUser classesUser = new ClassesUser(); + classesUser.setClassesId(entity.getId()); + classesUser.setUserId(teacherUserId); + classesUser.setTeacher(Boolean.TRUE); + classesUserService.save(classesUser); + } + } return Result.ok("淇敼鎴愬姛"); } @@ -99,6 +133,14 @@ IPage<ClassesVO> page = PageUtil.getPage(query, ClassesVO.class); query.setUserId(webContext.getCurrentUser().getId()); baseMapper.getPage(page, query); + + for (ClassesVO vo : page.getRecords()) { + List<StudentVO> teacherList = classesUserService.getTeacherListByClassesId(vo.getId()); + List<Integer> teacherIds = teacherList.stream().map(StudentVO::getId).collect(Collectors.toList()); + String teacherNamesStr = teacherList.stream().map(StudentVO::getRealName).collect(Collectors.joining(",")); + vo.setTeacherList(teacherIds); + vo.setTeacherNamesStr(teacherNamesStr); + } return Result.ok().data(page.getRecords()).total(page.getTotal()); } -- Gitblit v1.8.0