From 5e49ed67e8980d649201aab001511aec4f03bfeb Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 29 十月 2024 17:19:43 +0800 Subject: [PATCH] 演示 --- src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | 72 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 1 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 f7caea6..78a8613 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java @@ -1,9 +1,14 @@ package com.ycl.jxkg.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; 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.enums.general.ClassesStatusEnum; +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.service.ClassesService; import com.ycl.jxkg.base.Result; @@ -11,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; @@ -31,6 +40,8 @@ public class ClassesServiceImpl extends ServiceImpl<ClassesMapper, Classes> implements ClassesService { private final ClassesMapper classesMapper; + private final WebContext webContext; + private final ClassesUserService classesUserService; /** * 娣诲姞 @@ -38,9 +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("娣诲姞鎴愬姛"); } @@ -50,6 +75,7 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result update(ClassesForm form) { Classes entity = baseMapper.selectById(form.getId()); @@ -57,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("淇敼鎴愬姛"); } @@ -90,7 +131,16 @@ @Override public Result page(ClassesQuery query) { 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()); } @@ -127,4 +177,24 @@ .update(); return Result.ok("瑙f暎鎴愬姛"); } + + + @Override + public Result myClassList() { + Integer userId = webContext.getCurrentUser().getId(); + List<Classes> list = new LambdaQueryChainWrapper<>(baseMapper) + .select(Classes::getId, Classes::getClassName) + .eq(Classes::getCreateUser, userId) + .list(); + return Result.ok(list); + } + + @Override + public Result recover(Integer id) { + new LambdaUpdateChainWrapper<>(baseMapper) + .eq(Classes::getId, id) + .set(Classes::getStatus, ClassesStatusEnum.NORMAL) + .update(); + return Result.ok("鐝骇宸茬粡鎭㈠姝e父"); + } } -- Gitblit v1.8.0