|
@@ -2,6 +2,10 @@ package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
|
|
|
+import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsMaterialWrapper;
|
|
|
+import com.microsvc.toolkit.common.response.paging.PageInfo;
|
|
|
+import com.microsvc.toolkit.common.response.template.R;
|
|
|
import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
|
|
|
import com.ym.mec.biz.dal.dao.StudentLessonTrainingDetailMapper;
|
|
|
import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
@@ -16,11 +20,10 @@ import com.ym.mec.biz.service.ExtracurricularExercisesService;
|
|
|
import com.ym.mec.biz.service.StudentLessonTrainingDetailService;
|
|
|
import com.ym.mec.biz.service.SubjectService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
-
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
import java.util.function.Function;
|
|
@@ -44,6 +47,8 @@ public class StudentLessonTrainingDetailServiceImpl extends ServiceImpl<StudentL
|
|
|
private SubjectService subjectService;
|
|
|
@Resource
|
|
|
private ExtracurricularExercisesService extracurricularExercisesService;
|
|
|
+ @Resource
|
|
|
+ private CoursewareFeignService coursewareFeignService;
|
|
|
|
|
|
/**
|
|
|
* 查询详情
|
|
@@ -152,26 +157,54 @@ public class StudentLessonTrainingDetailServiceImpl extends ServiceImpl<StudentL
|
|
|
JSON.toJSONString(list), StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail.class);
|
|
|
|
|
|
// 曲目id集合
|
|
|
- List<Long> collect = studentLessonTrainingDetails.stream()
|
|
|
- .map(
|
|
|
- StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail::getMusicScoreId)
|
|
|
- .distinct()
|
|
|
- .collect(Collectors.toList());
|
|
|
-
|
|
|
- List<SysMusicScore> scoreList = sysMusicScoreDao.findByIds(
|
|
|
- collect.stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
|
-
|
|
|
- // id 分组
|
|
|
- Map<Integer, SysMusicScore> musicScoreMap = scoreList.stream()
|
|
|
- .collect(Collectors.toMap(SysMusicScore::getId, Function.identity()));
|
|
|
-
|
|
|
- for (StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail : studentLessonTrainingDetails) {
|
|
|
- SysMusicScore sysMusicScore = musicScoreMap.get(studentLessonTrainingDetail.getMusicScoreId().intValue());
|
|
|
- if (sysMusicScore != null) {
|
|
|
- studentLessonTrainingDetail.setMusicScoreName(sysMusicScore.getName());
|
|
|
+ List<Long> musicScoreIdList = studentLessonTrainingDetails.stream()
|
|
|
+ .filter(o-> StringUtils.isEmpty(o.getHomeworkType()) || o.getHomeworkType().equals("MUSIC_SCORE"))
|
|
|
+ .map(StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail::getMusicScoreId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if(CollectionUtils.isNotEmpty(musicScoreIdList)){
|
|
|
+ List<SysMusicScore> scoreList = sysMusicScoreDao.findByIds(musicScoreIdList.stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
|
+ if(CollectionUtils.isNotEmpty(scoreList)){
|
|
|
+ Map<Integer, SysMusicScore> musicScoreMap = scoreList.stream().collect(Collectors.toMap(SysMusicScore::getId, Function.identity()));
|
|
|
+ for (StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail : studentLessonTrainingDetails) {
|
|
|
+ if(!StringUtils.equals(studentLessonTrainingDetail.getHomeworkType(),"VIDEO")){
|
|
|
+ SysMusicScore sysMusicScore = musicScoreMap.get(studentLessonTrainingDetail.getMusicScoreId().intValue());
|
|
|
+ if (sysMusicScore != null) {
|
|
|
+ studentLessonTrainingDetail.setMusicScoreName(sysMusicScore.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //课件素材编号列表
|
|
|
+ List<Long> materialList = studentLessonTrainingDetails.stream()
|
|
|
+ .filter(o->"VIDEO".equals(o.getHomeworkType()))
|
|
|
+ .map(StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail::getMusicScoreId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if(CollectionUtils.isNotEmpty(materialList)){
|
|
|
+ CbsMaterialWrapper.MaterialQuery var1 = new CbsMaterialWrapper.MaterialQuery();
|
|
|
+ var1.setMaterialIdList(materialList);
|
|
|
+ var1.setPage(1);
|
|
|
+ var1.setRows(materialList.size());
|
|
|
+ R<PageInfo<CbsMaterialWrapper.MaterialDto>> pageInfoR = coursewareFeignService.materialPage(var1);
|
|
|
+ if(pageInfoR.getCode() != 200){
|
|
|
+ log.error("查询课件素材失败:{}",pageInfoR.getMessage());
|
|
|
+ }
|
|
|
+ List<CbsMaterialWrapper.MaterialDto> materialDtoList = pageInfoR.getData().getRows();
|
|
|
+ if(CollectionUtils.isNotEmpty(materialDtoList)){
|
|
|
+ Map<Long, CbsMaterialWrapper.MaterialDto> materialDtoMap = materialDtoList.stream()
|
|
|
+ .collect(Collectors.toMap(CbsMaterialWrapper.MaterialDto::getId, Function.identity()));
|
|
|
+ for (StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail : studentLessonTrainingDetails) {
|
|
|
+ if(StringUtils.equals(studentLessonTrainingDetail.getHomeworkType(),"VIDEO")){
|
|
|
+ CbsMaterialWrapper.MaterialDto materialDto = materialDtoMap.get(studentLessonTrainingDetail.getMusicScoreId());
|
|
|
+ if (materialDto != null) {
|
|
|
+ studentLessonTrainingDetail.setMusicScoreName(materialDto.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
// 声部
|
|
|
List<Integer> subjectIdList = studentLessonTrainingDetails.stream()
|
|
|
.map(o -> {
|