|
@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.beust.jcommander.internal.Lists;
|
|
|
import com.dayaedu.cbs.common.enums.school.ECourseType;
|
|
@@ -15,16 +16,19 @@ import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareDetailWra
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareWrapper;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
|
|
|
import com.microsvc.toolkit.common.response.paging.PageInfo;
|
|
|
+import com.microsvc.toolkit.common.response.template.R;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMusicMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.UserTenantAlbumRecordMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.LessonCoursewareDetailWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.LessonCoursewareWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumMusicWrapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
@@ -84,6 +88,9 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
@Autowired
|
|
|
private CoursewareFeignService coursewareFeignService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TenantAlbumMapper tenantAlbumMapper;
|
|
|
+
|
|
|
@Value("${openfeign-client.app-id:1745637981387108354}")
|
|
|
public Long applicationId;
|
|
|
|
|
@@ -344,7 +351,7 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
// 声部
|
|
|
String subjectIds = musicSheets.stream()
|
|
|
.map(MusicSheet::getMusicSubject)
|
|
|
- .filter(StringUtils::isNotBlank).collect(Collectors.joining(","));
|
|
|
+ .filter(StringUtils::isNotBlank).distinct().collect(Collectors.joining(","));
|
|
|
if (StringUtils.isNotEmpty(subjectIds)) {
|
|
|
List<Subject> subjects = subjectService.findBySubjectByIdList(subjectIds);
|
|
|
data.setSubjects(subjects);
|
|
@@ -518,6 +525,111 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
|
|
|
return lessonCoursewareDetail;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 关联课程类型
|
|
|
+ *
|
|
|
+ * @param query
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> refLevel(LessonCoursewareDetailWrapper.RefLevelQuery query) {
|
|
|
+ if (query.getTenantId() == null) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ // 查询机构可用专辑
|
|
|
+ TenantAlbumWrapper.TenantAlbumQuery build = TenantAlbumWrapper.TenantAlbumQuery.builder()
|
|
|
+ .status(true)
|
|
|
+ .tenantId(query.getTenantId())
|
|
|
+ .build();
|
|
|
+ List<TenantAlbumWrapper.TenantAlbum> tenantAlbums = tenantAlbumMapper.selectPage(new Page<>(1, -1), build);
|
|
|
+ if (CollectionUtils.isEmpty(tenantAlbums)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<String> tenantAlbumIds = tenantAlbums.stream().map(TenantAlbumWrapper.TenantAlbum::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = new ArrayList<>();
|
|
|
+ // 查询出机构下的所有可用教材
|
|
|
+ List<TenantAlbumMusic> detail = tenantAlbumMusicService.lambdaQuery()
|
|
|
+ .eq(TenantAlbumMusic::getTenantId, query.getTenantId())
|
|
|
+ .in(TenantAlbumMusic::getTenantAlbumId, tenantAlbumIds)
|
|
|
+ .eq(TenantAlbumMusic::getSubjectType, SubjectTypeEnum.COURSEWARE)
|
|
|
+ .eq(TenantAlbumMusic::getDelFlag, false)
|
|
|
+ .list();
|
|
|
+ if (CollectionUtils.isEmpty(detail)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 根据机构,查询机构可以查看的所有课件,然后根据课件查询对应的课程类型
|
|
|
+ List<CbsLessonCoursewareDetailWrapper.Entity> entities = coursewareFeignService.lessonCoursewareDetailLambdaQuery(CbsLessonCoursewareDetailWrapper.LambdaQuery.builder()
|
|
|
+ .id(query.getLessonCoursewareDetailId())
|
|
|
+ .build()).feignData();
|
|
|
+ if (CollectionUtils.isEmpty(entities)) {
|
|
|
+ throw new BizException("课件不存在");
|
|
|
+ }
|
|
|
+ CbsLessonCoursewareDetailWrapper.Entity lessonCoursewareDetail = entities.get(0);
|
|
|
+
|
|
|
+ List<CbsLessonCoursewareWrapper.Entity> lessonCoursewareEntityList = coursewareFeignService.lessonCoursewareLambdaQuery(CbsLessonCoursewareWrapper.LambdaQuery.builder()
|
|
|
+ .id(lessonCoursewareDetail.getLessonCoursewareId())
|
|
|
+ .build()).feignData();
|
|
|
+ if (CollectionUtils.isEmpty(lessonCoursewareEntityList)) {
|
|
|
+ throw new BizException("课件不存在");
|
|
|
+ }
|
|
|
+ CbsLessonCoursewareWrapper.Entity lessonCourseware = lessonCoursewareEntityList.get(0);
|
|
|
+
|
|
|
+ CbsLessonCoursewareWrapper.LessonCoursewareQuery cbsQuery = new CbsLessonCoursewareWrapper.LessonCoursewareQuery();
|
|
|
+ cbsQuery.setEnableFlag(true);
|
|
|
+// cbsQuery.setOrchestraType(lessonCourseware.getOrchestraType());
|
|
|
+ cbsQuery.setLessonCoursewareIds(detail.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList()));
|
|
|
+ cbsQuery.setPage(1);
|
|
|
+ cbsQuery.setRows(9999);
|
|
|
+ cbsQuery.setLevel(lessonCourseware.getLevel());
|
|
|
+
|
|
|
+ List<CbsLessonCoursewareWrapper.LessonCourseware> lessonCoursewareList = coursewareFeignService.lessonCoursewarePage(cbsQuery).feignData().getRows();
|
|
|
+
|
|
|
+ // 转map
|
|
|
+ Map<Long, CbsLessonCoursewareWrapper.LessonCourseware> lessonCoursewareMap = lessonCoursewareList.stream().collect(Collectors.toMap(CbsLessonCoursewareWrapper.LessonCourseware::getId, o -> o));
|
|
|
+ List<Long> lessonCoursewareIds = lessonCoursewareList.stream().map(CbsLessonCoursewareWrapper.LessonCourseware::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 查询可用的课件详情信息
|
|
|
+ if (lessonCoursewareDetail.getLevel() != null) {
|
|
|
+ List<CbsLessonCoursewareDetailWrapper.Entity> lessonCoursewareDetails = coursewareFeignService
|
|
|
+ .lessonCoursewareDetailLambdaQuery(CbsLessonCoursewareDetailWrapper.LambdaQuery.builder()
|
|
|
+ .level(lessonCoursewareDetail.getLevel())
|
|
|
+ .lessonCoursewareIds(lessonCoursewareIds)
|
|
|
+ .build()).feignData();
|
|
|
+ if (org.springframework.util.CollectionUtils.isEmpty(lessonCoursewareDetails)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ for (CbsLessonCoursewareDetailWrapper.Entity coursewareDetail : lessonCoursewareDetails) {
|
|
|
+ LessonCoursewareDetailWrapper.RefLevelDetailInfo refLevelDetailInfo = new LessonCoursewareDetailWrapper.RefLevelDetailInfo();
|
|
|
+ refLevelDetailInfo.setId(coursewareDetail.getId().toString());
|
|
|
+ refLevelDetailInfo.setLessonCoursewareId(coursewareDetail.getLessonCoursewareId().toString());
|
|
|
+ CbsLessonCoursewareWrapper.LessonCourseware lessonCourseware1 = lessonCoursewareMap.get(coursewareDetail.getLessonCoursewareId());
|
|
|
+ if (lessonCourseware1 == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ refLevelDetailInfo.setCoverImg(lessonCourseware1.getCoverImg());
|
|
|
+ refLevelDetailInfo.setCourseTypeCode(lessonCourseware1.getCourseTypeCode());
|
|
|
+ refLevelDetailInfo.setLockFlag(false);
|
|
|
+ refLevelDetailInfo.setLessonCoursewareName(lessonCourseware1.getName());
|
|
|
+ refLevelDetailInfo.setUseFlag(coursewareDetail.getId().equals(query.getLessonCoursewareDetailId()));
|
|
|
+ result.add(refLevelDetailInfo);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ LessonCoursewareDetailWrapper.RefLevelDetailInfo refLevelDetailInfo = new LessonCoursewareDetailWrapper.RefLevelDetailInfo();
|
|
|
+ refLevelDetailInfo.setId(lessonCoursewareDetail.getId().toString());
|
|
|
+ refLevelDetailInfo.setLessonCoursewareId(lessonCoursewareDetail.getLessonCoursewareId().toString());
|
|
|
+ refLevelDetailInfo.setCoverImg(lessonCourseware.getCoverImg());
|
|
|
+ refLevelDetailInfo.setCourseTypeCode(lessonCourseware.getCourseTypeCode());
|
|
|
+ refLevelDetailInfo.setLockFlag(false);
|
|
|
+ refLevelDetailInfo.setLessonCoursewareName(lessonCourseware.getName());
|
|
|
+ refLevelDetailInfo.setUseFlag(true);
|
|
|
+ result.add(refLevelDetailInfo);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
private void filterMusicMaterialList(List<LessonCoursewareDetailWrapper.KnowledgePointSmall> knowledgePointList, List<Long> cbsMusicSheetIds) {
|
|
|
if (CollectionUtils.isNotEmpty(knowledgePointList)) {
|
|
|
for (LessonCoursewareDetailWrapper.KnowledgePointSmall knowledgePointSmall : knowledgePointList) {
|