From 247cb86585a1d1894596ed18a6c93efecb992946 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 14 十一月 2024 10:34:27 +0800 Subject: [PATCH] 班级成绩图表分析 --- src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 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 2f06ffd..aac1f3c 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java @@ -5,20 +5,28 @@ 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; import com.ycl.jxkg.mapper.ClassesMapper; +import com.ycl.jxkg.mapper.MeetClassesMapper; import com.ycl.jxkg.service.ClassesService; import com.ycl.jxkg.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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; @@ -34,6 +42,8 @@ private final ClassesMapper classesMapper; private final WebContext webContext; + private final ClassesUserService classesUserService; + private final MeetClassesMapper meetClassesMapper; /** * 娣诲姞 @@ -41,11 +51,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("娣诲姞鎴愬姛"); } @@ -55,6 +77,7 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result update(ClassesForm form) { Classes entity = baseMapper.selectById(form.getId()); @@ -62,6 +85,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("淇敼鎴愬姛"); } @@ -97,6 +135,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()); } @@ -153,4 +199,5 @@ .update(); return Result.ok("鐝骇宸茬粡鎭㈠姝e父"); } + } -- Gitblit v1.8.0