liujunchi 3 years ago
parent
commit
31f4b30928

+ 40 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java

@@ -1,5 +1,30 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import com.yonge.cooleshow.biz.dal.dto.CourseMusicAlbumRelationDto;
+import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
+import com.yonge.cooleshow.biz.dal.service.CourseRelationMusicAlbumService;
+import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
+import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
+import com.yonge.cooleshow.biz.dal.service.VideoLessonPurchaseRecordService;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
+import org.apache.commons.collections.CollectionUtils;
+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;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -241,12 +266,10 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 
     /**
      * 处理课程曲目关联关系
+     * @param lessonGroup
      */
-    private void courseMusicAlbumRelation(VideoLessonGroup lessonGroup) {
+    private void courseMusicAlbumRelation(List<VideoLessonGroupDetailDto> lessonList,Long lessonGroupId) {
         // 设置关联曲目
-        VideoLessonGroupLog videoLessonGroupLog = videoLessonGroupLogService.queryLastestShelvesInfo(
-                lessonGroup.getId());
-        List<VideoLessonGroupDetailDto> videoLessonGroupDetailDtoList = JsonUtil.parseArray(videoLessonGroupLog.getVideoDetailJson(), VideoLessonGroupDetailDto.class);
 
         // 需要更新的关联数据
         List<CourseRelationMusicAlbum> updateCourseRelationMusicAlbums = new ArrayList<>();
@@ -255,7 +278,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 
         // 查询课程组所有的关联曲目
         List<CourseRelationMusicAlbum> relationMusicAlbumList = courseRelationMusicAlbumService.lambdaQuery()
-                        .eq(CourseRelationMusicAlbum::getCourseGroupId,  lessonGroup.getId())
+                        .eq(CourseRelationMusicAlbum::getCourseGroupId,  lessonGroupId)
                         .ne(CourseRelationMusicAlbum::getDelFlog, 0)
                         .list();
         Map<Long, List<CourseRelationMusicAlbum>> courseRelationMusicAlbumList = new HashMap<>();
@@ -267,7 +290,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 
         // 需要更新的id
         List<Long> updateCourseRelationIdList = new ArrayList<>();
-        for (VideoLessonGroupDetailDto videoLessonGroupDetailDto : videoLessonGroupDetailDtoList) {
+        for (VideoLessonGroupDetailDto videoLessonGroupDetailDto : lessonList) {
             // 需要修改的关联数据
             List<CourseMusicAlbumRelationDto> relationList = videoLessonGroupDetailDto.getRelationList();
 
@@ -307,7 +330,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         }
         // 删除关联数据
         courseRelationMusicAlbumService.lambdaUpdate()
-                 .eq(CourseRelationMusicAlbum::getCourseGroupId, videoLessonGroupLog.getVideoLessonGroupId())
+                 .eq(CourseRelationMusicAlbum::getCourseGroupId, lessonGroupId)
                  .eq(CourseRelationMusicAlbum::getCourseType,CourseTypeEnum.VIDEO)
                  .notIn(CourseRelationMusicAlbum::getId,updateCourseRelationIdList)
                  .set(CourseRelationMusicAlbum::getDelFlog,0)
@@ -315,11 +338,12 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
                  .update();
 
         // 保存更新的关联数据
-        courseRelationMusicAlbumService.updateBatchById(updateCourseRelationMusicAlbums);
-        courseRelationMusicAlbumService.saveOrUpdateBatch(addCourseRelationMusicAlbums);
-
-
-
+        if (CollectionUtils.isNotEmpty(updateCourseRelationMusicAlbums)) {
+            courseRelationMusicAlbumService.updateBatchById(updateCourseRelationMusicAlbums);
+        }
+        if (CollectionUtils.isNotEmpty(addCourseRelationMusicAlbums)) {
+            courseRelationMusicAlbumService.saveOrUpdateBatch(addCourseRelationMusicAlbums);
+        }
     }
 
     @Override
@@ -420,8 +444,6 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
             lessonGroup.setDraftFlag(YesOrNoEnum.NO);
         }
 
-        // 设置关联曲目
-        courseMusicAlbumRelation(lessonGroup);
 
         if (YesOrNoEnum.YES.equals(lessonGroup.getDraftFlag())) {
             VideoLessonGroupLog videoLessonGroupLog = new VideoLessonGroupLog();
@@ -441,6 +463,9 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 
             videoLessonGroupLogService.insert(videoLessonGroupLog);
         }
+
+        // 设置关联曲目
+        courseMusicAlbumRelation(lessonList,lessonGroup.getId());
     }
 
     /**
@@ -608,7 +633,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         videoLessonGroupDao.updateById(lessonGroup);
 
         // 设置关联曲目
-        courseMusicAlbumRelation(lessonGroup);
+        courseMusicAlbumRelation(lessonList,lessonGroup.getId());
         //刷新统计
         VideoLessonGroupUpVo groupUpVo = new VideoLessonGroupUpVo();
         groupUpVo.setId(lessonGroup.getId());