刘俊驰 7 meses atrás
pai
commit
d222512c6c

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto.java

@@ -69,6 +69,10 @@ public class StudentLessonExaminationDetailDto {
     private String homeworkType;
 
 
+
+    @ApiModelProperty("使用状态 锁定: LOCK 解锁:UNLOCK")
+    private String useStatus;
+
     @ApiModelProperty("作业描述")
     private String desc;
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLessonExaminationDetailDto1.java

@@ -38,7 +38,7 @@ public class StudentLessonExaminationDetailDto1 {
     private String memo;
 
     @ApiModelProperty("作业类型,MUSIC_SCORE:曲目评测,DESCRIPTION:描述")
-    private String type;
+    private String homeworkType;
 
     @ApiModelProperty("作业描述")
     private String desc;

+ 62 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationDetailServiceImpl.java

@@ -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) {

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonExaminationServiceImpl.java

@@ -128,7 +128,10 @@ public class StudentLessonExaminationServiceImpl extends ServiceImpl<StudentLess
                     for (StudentLessonExaminationDto dto : dataList) {
                         StudentLessonExaminationDetail detail = examinationIdMap.get(dto.getUserId());
                         if (detail != null ) {
+                            String fileJson1 = detail.getFileJson();
+                            detail.setFileJson(null);
                             StudentLessonExaminationDetailDto detailDto = JSON.parseObject(JSON.toJSONString(detail), StudentLessonExaminationDetailDto.class);
+                            detailDto.setFileJson(JSON.parseArray(fileJson1, CourseHomeworkWrapper.FileJson.class));
                             if(detail.getMusicScoreId() != null && "MUSIC_SCORE".equals(detail.getHomeworkType())){
                                 SysMusicScore musicScore = musicScoreMap.get(detail.getMusicScoreId().intValue());
                                 if (musicScore != null){

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentLessonExaminationMapper.xml

@@ -83,7 +83,7 @@
             <result property="avgScore" column="avg_score_"/>
             <result property="musicScoreName" column="musicScoreName"/>
             <result property="memo" column="memo_"/>
-            <result property="type" column="type"/>
+            <result property="homeworkType" column="type"/>
             <result property="fileJsons" column="file_json_"/>
             <result property="desc" column="desc_"/>
             <result property="heardLevel" column="heard_level_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>