| | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.jxkg.base.Result; |
| | | import com.ycl.jxkg.base.SystemCode; |
| | | import com.ycl.jxkg.context.WebContext; |
| | | import com.ycl.jxkg.domain.entity.Meet; |
| | | import com.ycl.jxkg.domain.entity.MeetStudent; |
| | | import com.ycl.jxkg.domain.entity.StudyRecord; |
| | | import com.ycl.jxkg.domain.entity.*; |
| | | import com.ycl.jxkg.domain.form.MeetForm; |
| | | import com.ycl.jxkg.domain.query.MeetQuery; |
| | | import com.ycl.jxkg.domain.vo.ClassesVO; |
| | | import com.ycl.jxkg.domain.vo.MeetClassesVo; |
| | | import com.ycl.jxkg.domain.vo.MeetVO; |
| | | import com.ycl.jxkg.domain.vo.StudentSimpleVO; |
| | | import com.ycl.jxkg.enums.MeetStatusEnum; |
| | | import com.ycl.jxkg.mapper.ClassesUserMapper; |
| | | import com.ycl.jxkg.mapper.MeetMapper; |
| | | import com.ycl.jxkg.mapper.MeetStudentMapper; |
| | | import com.ycl.jxkg.mapper.StudyRecordMapper; |
| | | import com.ycl.jxkg.mapper.*; |
| | | import com.ycl.jxkg.rabbitmq.msg.MeetStatusMsg; |
| | | import com.ycl.jxkg.rabbitmq.product.Producer; |
| | | import com.ycl.jxkg.service.MeetService; |
| | |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.CollectionUtils; |
| | | import java.util.Date; |
| | |
| | | private final Producer producer; |
| | | private final MeetStudentMapper meetStudentMapper; |
| | | private final StudyRecordMapper studyRecordMapper; |
| | | private final MeetClassesMapper meetClassesMapper; |
| | | /** |
| | | * 添加 |
| | | * @param form |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result add(MeetForm form) { |
| | | Meet entity = MeetForm.getEntityByForm(form, null); |
| | | entity.setStatus(MeetStatusEnum.Wait.getCode()); |
| | |
| | | if (baseMapper.insert(entity) > 0) { |
| | | this.sendMQ(entity, 0); |
| | | } |
| | | // 向会议班级中间表中插入数据 |
| | | form.getClassesIds().forEach(classId -> { |
| | | MeetClasses meetClasses = new MeetClasses(); |
| | | meetClasses.setMeetId(entity.getId()); |
| | | meetClasses.setClassesId(classId); |
| | | meetClassesMapper.insert(meetClasses); |
| | | }); |
| | | return Result.ok("添加成功"); |
| | | } |
| | | |
| | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | |
| | | // 先删除再新增 |
| | | new LambdaUpdateChainWrapper<>(meetClassesMapper) |
| | | .eq(MeetClasses::getMeetId, entity.getId()) |
| | | .remove(); |
| | | // 向会议班级中间表中插入数据 |
| | | form.getClassesIds().forEach(classId -> { |
| | | MeetClasses meetClasses = new MeetClasses(); |
| | | meetClasses.setMeetId(entity.getId()); |
| | | meetClasses.setClassesId(classId); |
| | | meetClassesMapper.insert(meetClasses); |
| | | }); |
| | | |
| | | |
| | | // 如果修改成功发送mq消息 |
| | | if (baseMapper.updateById(entity) > 0) { |
| | | this.sendMQ(entity, entity.getUpdateVersion()); |
| | |
| | | */ |
| | | @Override |
| | | public Result page(MeetQuery query) { |
| | | Integer id = webContext.getCurrentUser().getId(); |
| | | //查自己创建的房间 |
| | | query.setTeacherId(id); |
| | | Integer userId = webContext.getCurrentUser().getId(); |
| | | //查自己的会议 |
| | | List<ClassesUser> classes = new LambdaQueryChainWrapper<>(classesUserMapper) |
| | | .eq(ClassesUser::getUserId, userId) |
| | | .eq(ClassesUser::getTeacher, Boolean.TRUE) |
| | | .list(); |
| | | List<Integer> classesIds = classes.stream().map(ClassesUser::getClassesId).collect(Collectors.toList()); |
| | | if (CollectionUtils.isEmpty(classesIds) && 3 != webContext.getCurrentUser().getRole()) { |
| | | throw new RuntimeException("您暂时无法访问该页面"); |
| | | } |
| | | query.setClassesIds(classesIds); |
| | | IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class); |
| | | baseMapper.getPage(page, query); |
| | | |
| | | baseMapper.teacherPage(page, query); |
| | | page.getRecords().forEach(vo -> { |
| | | if (! CollectionUtils.isEmpty(vo.getClassesIds())) { |
| | | // 查主讲老师 |
| | | List<String> teacherNames = classesUserMapper.getTeachersByClassesIds(vo.getClassesIds()); |
| | | if (! CollectionUtils.isEmpty(teacherNames)) { |
| | | vo.setTeacherNamesStr(teacherNames.stream().collect(Collectors.joining("、"))); |
| | | } |
| | | } |
| | | }); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | |
| | | query.setClassesIds(classes); |
| | | } |
| | | IPage<MeetVO> page = PageUtil.getPage(query, MeetVO.class); |
| | | baseMapper.getPage(page, query); |
| | | baseMapper.studentPage(page, query); |
| | | for (MeetVO vo : page.getRecords()) { |
| | | if (!CollectionUtils.isEmpty(vo.getTeacherNames())) { |
| | | vo.setTeacherNamesStr(vo.getTeacherNames().stream().collect(Collectors.joining("、"))); |
| | | if (! CollectionUtils.isEmpty(vo.getClassesIds())) { |
| | | // 查主讲老师 |
| | | List<String> teacherNames = classesUserMapper.getTeachersByClassesIds(vo.getClassesIds()); |
| | | if (! CollectionUtils.isEmpty(teacherNames)) { |
| | | vo.setTeacherNamesStr(teacherNames.stream().collect(Collectors.joining("、"))); |
| | | } |
| | | } |
| | | } |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |