|
@@ -7,27 +7,24 @@ import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareDetailWrapper;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareWrapper;
|
|
|
import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsMaterialRefWrapper;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.microsvc.toolkit.common.response.template.R;
|
|
|
+import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
|
|
|
import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
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.LessonCoursewareUserMapper;
|
|
|
-import com.ym.mec.biz.dal.entity.SysMusicScore;
|
|
|
-import com.ym.mec.biz.dal.entity.Teacher;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.ClientEnum;
|
|
|
import com.ym.mec.biz.dal.mapper.LessonCoursewareMapper;
|
|
|
import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
|
|
|
-import com.ym.mec.biz.service.LessonCoursewareService;
|
|
|
-import com.ym.mec.biz.service.LessonCoursewareUserMapperService;
|
|
|
-import com.ym.mec.biz.service.SysMusicScoreService;
|
|
|
-import com.ym.mec.biz.service.SysUserService;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -58,6 +55,12 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
|
|
|
@Resource
|
|
|
private SysMusicScoreService sysMusicScoreService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MemberRankCourseTypeMapperService memberRankCourseTypeMapperService;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<LessonCoursewareWrapper.LessonCoursewareDto> selectPage(IPage<LessonCoursewareWrapper.LessonCoursewareDto> page, LessonCoursewareWrapper.LessonCoursewareQuery query) {
|
|
|
if(StringUtils.isNotEmpty(query.getSearch())){
|
|
@@ -219,18 +222,29 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
|
|
|
if (lessonCourseware == null) {
|
|
|
throw new BizException("课件未找到");
|
|
|
}
|
|
|
- Teacher teacher = teacherDao.get(query.getTeacherId());
|
|
|
- if (teacher == null) {
|
|
|
- throw new BizException("老师信息不存在");
|
|
|
- }
|
|
|
- if (lessonCoursewareDetail.getLevel() == null || teacher.getCoursewareFlag()) {
|
|
|
- result.add(this.initRefLevelDetailInfo(lessonCoursewareDetail,lessonCourseware));
|
|
|
- return result;
|
|
|
+ if (query.getClient() == ClientEnum.TEACHER) {
|
|
|
+ Teacher teacher = teacherDao.get(query.getTeacherId());
|
|
|
+ if (teacher == null) {
|
|
|
+ throw new BizException("老师信息不存在");
|
|
|
+ }
|
|
|
+ if (lessonCoursewareDetail.getLevel() == null || teacher.getCoursewareFlag()) {
|
|
|
+ result.add(this.initRefLevelDetailInfo(lessonCoursewareDetail, lessonCourseware));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (lessonCoursewareDetail.getLevel() == null) {
|
|
|
+ result.add(this.initRefLevelDetailInfo(lessonCoursewareDetail, lessonCourseware));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|
|
|
LessonCoursewareWrapper.LessonCoursewareQuery query1 = new LessonCoursewareWrapper.LessonCoursewareQuery();
|
|
|
query1.setPage(1);
|
|
|
query1.setRows(9999);
|
|
|
- query1.setTeacherId(query.getTeacherId());
|
|
|
+ if (query.getClient() == ClientEnum.STUDENT) {
|
|
|
+ query1.setStudentId(query.getTeacherId());
|
|
|
+ } else {
|
|
|
+ query1.setTeacherId(query.getTeacherId());
|
|
|
+ }
|
|
|
query1.setEnable(true);
|
|
|
List<LessonCoursewareWrapper.LessonCoursewareDto> dtos = baseMapper.list(query1);
|
|
|
if(CollectionUtils.isEmpty(dtos)){
|
|
@@ -264,6 +278,21 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
|
|
|
result.add(this.initRefLevelDetailInfo(lessonCoursewareDetail,lessonCourseware));
|
|
|
return result;
|
|
|
}
|
|
|
+ List<Long> lessonIds = new ArrayList<>();
|
|
|
+ if (query.getClient() == ClientEnum.STUDENT) {
|
|
|
+ List<Integer> activationVipIds = cloudTeacherOrderDao.getActivationVipIds(query.getTeacherId());
|
|
|
+
|
|
|
+ // 获取会员的曲目分类
|
|
|
+
|
|
|
+ List<MemberRankCourseTypeMapper> courseTypeMapperList = memberRankCourseTypeMapperService.getByMemberRankId(activationVipIds);
|
|
|
+ if (CollectionUtils.isEmpty(courseTypeMapperList)) {
|
|
|
+ courseTypeMapperList = Lists.newArrayList();
|
|
|
+ }
|
|
|
+ List<Integer> categoryIds = courseTypeMapperList.stream().map(MemberRankCourseTypeMapper::getCourseType)
|
|
|
+ .distinct().map(Integer::parseInt).collect(Collectors.toList());
|
|
|
+ // 本地的课件ID 换远程ID
|
|
|
+ lessonIds = getByLessonCoursewareIds(categoryIds).stream().map(LessonCourseware::getLessonCourseId).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
for (CbsLessonCoursewareDetailWrapper.LessonCoursewareDetail coursewareDetail : lessonCoursewareDetails) {
|
|
|
LessonCoursewareWrapper.RefLevelDetailInfo refLevelDetailInfo = new LessonCoursewareWrapper.RefLevelDetailInfo();
|
|
|
refLevelDetailInfo.setId(coursewareDetail.getId());
|
|
@@ -277,6 +306,9 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
|
|
|
refLevelDetailInfo.setLockFlag(false);
|
|
|
refLevelDetailInfo.setLessonCoursewareName(lessonCourseware1.getName());
|
|
|
refLevelDetailInfo.setUseFlag(coursewareDetail.getId().equals(query.getLessonCoursewareDetailId()));
|
|
|
+ if (lessonIds.contains(lessonCourseware1.getId()) || query.getClient() == ClientEnum.TEACHER) {
|
|
|
+ refLevelDetailInfo.setUseStatus("UNLOCK");
|
|
|
+ } else refLevelDetailInfo.setUseStatus("LOCK");
|
|
|
result.add(refLevelDetailInfo);
|
|
|
}
|
|
|
return result;
|