luohairen
2024-11-14 247cb86585a1d1894596ed18a6c93efecb992946
src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -5,22 +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;
@@ -36,6 +42,8 @@
    private final ClassesMapper classesMapper;
    private final WebContext webContext;
    private final ClassesUserService classesUserService;
    private final MeetClassesMapper meetClassesMapper;
    /**
     * 添加
@@ -43,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("添加成功");
    }
@@ -57,6 +77,7 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result update(ClassesForm form) {
        Classes entity = baseMapper.selectById(form.getId());
@@ -64,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("修改成功");
    }
@@ -99,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());
    }
@@ -155,4 +199,5 @@
                .update();
        return Result.ok("班级已经恢复正常");
    }
}