|
@@ -2,15 +2,19 @@ package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
+import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
|
|
|
import com.ym.mec.biz.dal.dao.StudentLessonExaminationDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dto.CourseHomeworkWrapper;
|
|
|
-import com.ym.mec.biz.dal.dto.LessonExaminationDetailDto;
|
|
|
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto;
|
|
|
-import com.ym.mec.biz.dal.dto.StudentLessonExaminationSaveDto;
|
|
|
+import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
|
|
|
+import com.ym.mec.biz.dal.dto.*;
|
|
|
import com.ym.mec.biz.dal.entity.LessonExamination;
|
|
|
+import com.ym.mec.biz.dal.entity.MemberRankCategoryMapper;
|
|
|
import com.ym.mec.biz.dal.entity.StudentLessonExaminationDetail;
|
|
|
+import com.ym.mec.biz.dal.entity.SysMusicScore;
|
|
|
import com.ym.mec.biz.dal.page.StudentLessonExaminationQueryDto;
|
|
|
import com.ym.mec.biz.service.LessonExaminationService;
|
|
|
+import com.ym.mec.biz.service.MemberRankCategoryMapperService;
|
|
|
import com.ym.mec.biz.service.StudentLessonExaminationDetailService;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
@@ -23,9 +27,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 进度评测详情表(StudentLessonExaminationDetail)表服务实现类
|
|
@@ -41,6 +45,15 @@ public class StudentLessonExaminationDetailServiceImpl extends ServiceImpl<Stude
|
|
|
@Autowired
|
|
|
private LessonExaminationService lessonExaminationService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysMusicScoreDao sysMusicScoreDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MemberRankCategoryMapperService memberRankCategoryMapperService;
|
|
|
+
|
|
|
@Override
|
|
|
public StudentLessonExaminationDetailDao getDao() {
|
|
|
return this.baseMapper;
|
|
@@ -102,6 +115,48 @@ public class StudentLessonExaminationDetailServiceImpl extends ServiceImpl<Stude
|
|
|
|
|
|
studentLessonExaminationDetailDto.setFileJsons("");
|
|
|
}
|
|
|
+ // 曲目id集合
|
|
|
+ List<Integer> musicScoreIdList = studentLessonExaminationDetailDtos.stream()
|
|
|
+ .filter(o-> o.getHomeworkType().equals("MUSIC_SCORE"))
|
|
|
+ .map(StudentLessonExaminationDetailDto::getMusicScoreId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if(org.apache.commons.collections.CollectionUtils.isNotEmpty(musicScoreIdList)) {
|
|
|
+
|
|
|
+ // 查询有效的会员
|
|
|
+ List<Integer> activationVipIds = cloudTeacherOrderDao.getActivationVipIds(query.getUserId());
|
|
|
+
|
|
|
+ // 获取会员的曲目分类
|
|
|
+ List<MemberRankCategoryMapper> categoryMapperList = memberRankCategoryMapperService.getByMemberRankId(activationVipIds);
|
|
|
+ if (org.apache.commons.collections.CollectionUtils.isEmpty(categoryMapperList)) {
|
|
|
+ categoryMapperList = Lists.newArrayList();
|
|
|
+ }
|
|
|
+ List<Integer> categoryIds = categoryMapperList.stream().map(MemberRankCategoryMapper::getCategoryId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 查询曲目信息
|
|
|
+ List<SysMusicScore> scoreList = sysMusicScoreDao.findByIds(musicScoreIdList.stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
|
+ if (org.apache.commons.collections.CollectionUtils.isNotEmpty(scoreList)) {
|
|
|
+ Map<Integer, SysMusicScore> musicScoreMap = scoreList.stream().collect(Collectors.toMap(SysMusicScore::getId, Function.identity()));
|
|
|
+ for (StudentLessonExaminationDetailDto studentLessonExaminationDetailDto : studentLessonExaminationDetailDtos) {
|
|
|
+ if (org.apache.commons.lang3.StringUtils.equals(studentLessonExaminationDetailDto.getHomeworkType(), "MUSIC_SCORE")) {
|
|
|
+ SysMusicScore sysMusicScore = musicScoreMap.get(studentLessonExaminationDetailDto.getMusicScoreId());
|
|
|
+ if (sysMusicScore != null) {
|
|
|
+
|
|
|
+ // 用户VIP可查看曲目分类
|
|
|
+ // 设置默认不可以查看
|
|
|
+ if (categoryIds.contains(sysMusicScore.getCbsMusicCategoriesId())
|
|
|
+ || org.apache.commons.lang3.StringUtils.isBlank(sysMusicScore.getRankIds())) {
|
|
|
+ // 免费曲目,已购买曲目可直接查看
|
|
|
+ studentLessonExaminationDetailDto.setUseStatus("UNLOCK");
|
|
|
+ } else {
|
|
|
+ studentLessonExaminationDetailDto.setUseStatus("LOCK");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
if (query.getLessonExaminationId() != null) {
|
|
|
LessonExamination lessonExamination = lessonExaminationService.getById(query.getLessonExaminationId());
|
|
|
if (lessonExamination != null) {
|