|
@@ -4,19 +4,24 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
|
|
import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareWrapper;
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareWrapper;
|
|
|
|
+import com.microsvc.toolkit.common.response.template.R;
|
|
import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
-import com.ym.mec.biz.dal.mapper.LessonCoursewareMapper;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
|
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
|
|
import com.ym.mec.biz.dal.entity.LessonCourseware;
|
|
import com.ym.mec.biz.dal.entity.LessonCourseware;
|
|
|
|
+import com.ym.mec.biz.dal.entity.LessonCoursewareUserMapper;
|
|
|
|
+import com.ym.mec.biz.dal.mapper.LessonCoursewareMapper;
|
|
import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
|
|
import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
|
|
import com.ym.mec.biz.service.LessonCoursewareService;
|
|
import com.ym.mec.biz.service.LessonCoursewareService;
|
|
-import com.ym.mec.biz.service.SubjectService;
|
|
|
|
|
|
+import com.ym.mec.biz.service.LessonCoursewareUserMapperService;
|
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -34,11 +39,14 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
|
|
public LessonCoursewareMapper getDao() {
|
|
public LessonCoursewareMapper getDao() {
|
|
return this.baseMapper;
|
|
return this.baseMapper;
|
|
}
|
|
}
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
|
|
+ @Resource
|
|
private CoursewareFeignService coursewareFeignService;
|
|
private CoursewareFeignService coursewareFeignService;
|
|
@Resource
|
|
@Resource
|
|
|
|
+ private LessonCoursewareUserMapperService lessonCoursewareUserMapperService;
|
|
|
|
+ @Resource
|
|
private SubjectDao subjectDao;
|
|
private SubjectDao subjectDao;
|
|
|
|
+ @Resource
|
|
|
|
+ private TeacherDao teacherDao;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public IPage<LessonCoursewareWrapper.LessonCoursewareDto> selectPage(IPage<LessonCoursewareWrapper.LessonCoursewareDto> page, LessonCoursewareWrapper.LessonCoursewareQuery query) {
|
|
public IPage<LessonCoursewareWrapper.LessonCoursewareDto> selectPage(IPage<LessonCoursewareWrapper.LessonCoursewareDto> page, LessonCoursewareWrapper.LessonCoursewareQuery query) {
|
|
@@ -74,5 +82,80 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
|
|
return page.setRecords(dtos);
|
|
return page.setRecords(dtos);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void updateRangeType(LessonCoursewareWrapper.UpdateRange updateRange) {
|
|
|
|
+ LessonCourseware lessonCourseware = this.getById(updateRange.getLessonCoursewareId());
|
|
|
|
+ if (Objects.isNull(lessonCourseware)) {
|
|
|
|
+ throw new RuntimeException("课件不存在");
|
|
|
|
+ }
|
|
|
|
+ lessonCourseware.setStudentRangeType(updateRange.getStudentRangeType());
|
|
|
|
+ lessonCourseware.setTeacherRangeType(updateRange.getTeacherRangeType());
|
|
|
|
+ this.updateById(lessonCourseware);
|
|
|
|
+ lessonCoursewareUserMapperService.lambdaUpdate()
|
|
|
|
+ .eq(LessonCoursewareUserMapper::getLessonCoursewareId, updateRange.getLessonCoursewareId()).remove();
|
|
|
|
+ if(!StringUtils.equals(updateRange.getStudentRangeType(), "ALL") && CollectionUtils.isNotEmpty(updateRange.getStudentIds())){
|
|
|
|
+ List<LessonCoursewareUserMapper> list = updateRange.getStudentIds().stream().map(e -> {
|
|
|
|
+ LessonCoursewareUserMapper mapper = new LessonCoursewareUserMapper();
|
|
|
|
+ mapper.setLessonCoursewareId(updateRange.getLessonCoursewareId());
|
|
|
|
+ mapper.setUserId(e);
|
|
|
|
+ mapper.setUserType("STUDENT");
|
|
|
|
+ return mapper;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ lessonCoursewareUserMapperService.saveBatch(list);
|
|
|
|
+ }
|
|
|
|
+ if(!StringUtils.equals(updateRange.getTeacherRangeType(), "ALL") && CollectionUtils.isNotEmpty(updateRange.getTeacherIds())){
|
|
|
|
+ List<LessonCoursewareUserMapper> list = updateRange.getTeacherIds().stream().map(e -> {
|
|
|
|
+ LessonCoursewareUserMapper mapper = new LessonCoursewareUserMapper();
|
|
|
|
+ mapper.setLessonCoursewareId(updateRange.getLessonCoursewareId());
|
|
|
|
+ mapper.setUserId(e);
|
|
|
|
+ mapper.setUserType("TEACHER");
|
|
|
|
+ return mapper;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ lessonCoursewareUserMapperService.saveBatch(list);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public LessonCoursewareWrapper.UpdateRangeDetail getRangeType(Integer lessonCoursewareId) {
|
|
|
|
+ LessonCourseware lessonCourseware = this.getById(lessonCoursewareId);
|
|
|
|
+ if (Objects.isNull(lessonCourseware)) {
|
|
|
|
+ throw new RuntimeException("课件不存在");
|
|
|
|
+ }
|
|
|
|
+ R<CbsLessonCoursewareWrapper.LessonCourseware> lessonCoursewareR = coursewareFeignService.lessonCoursewareDetail(lessonCourseware.getLessonCourseId());
|
|
|
|
+ if (!lessonCoursewareR.getCode().equals(200)) {
|
|
|
|
+ throw new BizException("获取课件详情失败 {}", lessonCoursewareR.getMessage());
|
|
|
|
+ }
|
|
|
|
+ LessonCoursewareWrapper.UpdateRangeDetail detail = new LessonCoursewareWrapper.UpdateRangeDetail();
|
|
|
|
+ detail.setName(lessonCoursewareR.getData().getName());
|
|
|
|
+ detail.setLessonCoursewareId(lessonCoursewareId);
|
|
|
|
+ if(!lessonCourseware.getStudentRangeType().equals("ALL")){
|
|
|
|
+ List<LessonCoursewareUserMapper> studentList = lessonCoursewareUserMapperService.lambdaQuery()
|
|
|
|
+ .eq(LessonCoursewareUserMapper::getLessonCoursewareId, lessonCoursewareId)
|
|
|
|
+ .eq(LessonCoursewareUserMapper::getUserType, "STUDENT").list();
|
|
|
|
+ if(CollectionUtils.isNotEmpty(studentList)){
|
|
|
|
+ List<Integer> studentIds = studentList.stream().map(LessonCoursewareUserMapper::getUserId).collect(Collectors.toList());
|
|
|
|
+ List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(studentIds);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(userDtoList)) {
|
|
|
|
+ for (SimpleUserDto userDto : userDtoList) {
|
|
|
|
+ userDto.setUserName(userDto.getNickName());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ detail.setStudentList(userDtoList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(!lessonCourseware.getTeacherRangeType().equals("ALL")){
|
|
|
|
+ List<LessonCoursewareUserMapper> teacherList = lessonCoursewareUserMapperService.lambdaQuery()
|
|
|
|
+ .eq(LessonCoursewareUserMapper::getLessonCoursewareId, lessonCoursewareId)
|
|
|
|
+ .eq(LessonCoursewareUserMapper::getUserType, "TEACHER").list();
|
|
|
|
+ if(CollectionUtils.isNotEmpty(teacherList)){
|
|
|
|
+ List<Integer> teacherIds = teacherList.stream().map(LessonCoursewareUserMapper::getUserId).collect(Collectors.toList());
|
|
|
|
+ List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(teacherIds);
|
|
|
|
+ detail.setTeacherList(userDtoList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return detail;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|