فهرست منبع

视频课审核数据

liujunchi 2 سال پیش
والد
کامیت
fc26c37df9

+ 29 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.admin.io.request.course.CourseRelationVo;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.AdjustModel;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoGroupSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
@@ -281,6 +282,34 @@ public class VideoLessonController extends BaseController {
     }
 
 
+
+    /**
+     * @Description: 根据组id查询视频课&视频课组
+     * @Author: cy
+     * @Date: 2022/4/2
+     */
+    @ApiOperation(value = "根据组id查询视频课&视频课组")
+    @GetMapping(value = "/selectVideoLesson")
+    public HttpResponseResult<VideoLessonStudentVo> selectVideoLesson(@NotNull(message = "视频组id不能为空") Long groupId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null || sysUser.getId() == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+
+        VideoLessonStudentVo videoLessonStudentVo = lessonGroupService.selectVideoLesson(groupId);
+        if (videoLessonStudentVo.getLessonGroup().getTeacherId().equals(sysUser.getId())) {
+            videoLessonStudentVo.setMyself(true);
+        } else {
+            videoLessonStudentVo.setMyself(false);
+        }
+        if (videoLessonStudentVo.getLessonGroup() != null && sysUser.getId().equals(videoLessonStudentVo.getLessonGroup().getId())) {
+            videoLessonStudentVo.setAlreadyBuy(true);
+        } else {
+            videoLessonStudentVo.setAlreadyBuy(false);
+        }
+        return succeed(videoLessonStudentVo);
+    }
+
     /**
      * 设置排序值 和加精
      */

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDetailDao.java

@@ -36,5 +36,5 @@ public interface VideoLessonGroupDetailDao extends BaseMapper<VideoLessonGroupDe
 
     List<VideoLessonGroupDetailVo> selectPageAuth(IPage page, @Param("param") VideoLessonSearch query);
     
-    List<VideoLessonGroupDetail> queryByVideoLessonGroupId(Long videoLessonGroupId);
+    List<VideoLessonGroupDetailDto> queryByVideoLessonGroupId(Long videoLessonGroupId);
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupDetailService.java

@@ -43,7 +43,7 @@ public interface VideoLessonGroupDetailService extends IService<VideoLessonGroup
      * @param lessonStudentVo VideoLessonStudentVo
      * @param musicAlbumInfos List<CourseRelationWrapper.MusicAlbumInfo>
      */
-    void updateCourseRelationMusicAlbumInfo(VideoLessonStudentVo lessonStudentVo,
+    void updateCourseRelationMusicAlbumInfo(List<VideoLessonGroupDetailDto> lessonStudentVo,
                                             List<CourseRelationWrapper.MusicAlbumInfo> musicAlbumInfos);
 
 }

+ 9 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -26,6 +26,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.coupon.CouponOrderWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.string.MessageFormatter;
@@ -1077,7 +1078,14 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Override
     public IPage<CourseGroupVideoVo> selectVideoGroup(IPage<CourseGroupVideoVo> page, CourseGroupSearch search) {
         search.setStatus(AuthStatusEnum.PASS.getCode());
-        return baseMapper.selectVideoGroup(page, search);
+        IPage<CourseGroupVideoVo> courseGroupVideoVoIPage = baseMapper.selectVideoGroup(page, search);
+        for (CourseGroupVideoVo record : courseGroupVideoVoIPage.getRecords()) {
+            if (record.getDraftFlag() != null && record.getDraftFlag().equals(YesOrNoEnum.YES)) {
+                record.setShelvesFlag(2);
+            }
+        }
+        return courseGroupVideoVoIPage;
+
     }
 
     @Override

+ 4 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupDetailServiceImpl.java

@@ -251,7 +251,7 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
             musicAlbumInfos = getCourseRelationMusicAlbumInfos(recordInfos);
 
             // 填充课程关联曲目、专辑信息
-            updateCourseRelationMusicAlbumInfo(lessonStudentVo, musicAlbumInfos);
+            updateCourseRelationMusicAlbumInfo(lessonStudentVo.getDetailList(), musicAlbumInfos);
         }
         //lessonStudentVo.setMusicAlbumInfos(musicAlbumInfos);
 
@@ -265,15 +265,15 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
      * @param musicAlbumInfos List<CourseRelationWrapper.MusicAlbumInfo>
      */
     @Override
-    public void updateCourseRelationMusicAlbumInfo(VideoLessonStudentVo lessonStudentVo,
+    public void updateCourseRelationMusicAlbumInfo(List<VideoLessonGroupDetailDto> lessonStudentVo,
                                                    List<CourseRelationWrapper.MusicAlbumInfo> musicAlbumInfos) {
 
         Map<Long, List<CourseRelationWrapper.MusicAlbumInfo>> collect = musicAlbumInfos.stream()
                 .collect(Collectors.groupingBy(CourseRelationWrapper.MusicAlbumInfo::getCourseId));
 
-        if (CollectionUtils.isNotEmpty(lessonStudentVo.getDetailList())) {
+        if (CollectionUtils.isNotEmpty(lessonStudentVo)) {
 
-            for (VideoLessonGroupDetailDto item : lessonStudentVo.getDetailList()) {
+            for (VideoLessonGroupDetailDto item : lessonStudentVo) {
 
                 item.setMusicAlbumInfos(collect.getOrDefault(item.getId(), Lists.newArrayList()));
             }

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

@@ -530,7 +530,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
             musicAlbumInfos = videoLessonGroupDetailService.getCourseRelationMusicAlbumInfos(recordInfos);
 
             // 填充课程关联曲目、专辑信息
-            videoLessonGroupDetailService.updateCourseRelationMusicAlbumInfo(lessonStudentVo, musicAlbumInfos);
+            videoLessonGroupDetailService.updateCourseRelationMusicAlbumInfo(lessonStudentVo.getDetailList(), musicAlbumInfos);
         }
         //lessonStudentVo.setMusicAlbumInfos(musicAlbumInfos);
 
@@ -685,7 +685,18 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     public IPage<VideoLessonAuthGroup> queryGroupHistoryList(IPage<VideoLessonAuthGroup> page, VideoGroupSearch query) {
     	List<VideoLessonAuthGroup> list = baseMapper.queryGroupHistoryList(page, query);
     	for(VideoLessonAuthGroup g : list){
-    		g.setVideoList(JsonUtil.parseArray(g.getVideoDetailJson(), VideoLessonGroupDetail.class));
+            List<VideoLessonGroupDetailDto> videoLessonGroupDetailDtoList = JsonUtil.parseArray(g.getVideoDetailJson(),
+                                                                                                VideoLessonGroupDetailDto.class);
+            g.setVideoList(videoLessonGroupDetailDtoList);
+
+
+            List<CourseRelationMusicAlbum> recordInfos = videoLessonGroupDetailDtoList.stream()
+                                  .filter(x -> CollectionUtils.isNotEmpty(x.getCourseRelationMusicAlbumList()))
+                                  .flatMap(x -> x.getCourseRelationMusicAlbumList().stream()).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(recordInfos)) {
+                // 设置曲目关联信息
+                setCourseRelationInfo(videoLessonGroupDetailDtoList, recordInfos);
+            }
     	}
         return page.setRecords(list);
     }
@@ -694,20 +705,47 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     public VideoLessonAuthGroup authGroupDetil(Long videoGroupId) {
         VideoLessonAuthGroup videoLessonAuthGroup = baseMapper.authGroupDetil(videoGroupId);
         
-        List<VideoLessonGroupDetail> details = videoLessonGroupDetailDao.queryByVideoLessonGroupId(videoGroupId);
+        List<VideoLessonGroupDetailDto> details = videoLessonGroupDetailDao.queryByVideoLessonGroupId(videoGroupId);
         videoLessonAuthGroup.setVideoList(details);
 
+        // 查询当前的关联曲目
+        List<CourseRelationMusicAlbum> list = courseRelationMusicAlbumService.lambdaQuery()
+                             .eq(CourseRelationMusicAlbum::getCourseGroupId,  videoGroupId)
+                             .ne(CourseRelationMusicAlbum::getDelFlog, 0) .list();
+        // 设置曲目关联信息
+        setCourseRelationInfo(details, list);
+
         //查询上一次的提交
         VideoLessonGroupLog lastDetil = videoLessonGroupLogService.queryByVideoLessonGroupId(videoGroupId, videoLessonAuthGroup.getVersion());
         videoLessonAuthGroup.setLastVideoLessonGroupLog(lastDetil);
         
         if(lastDetil != null){
-        	lastDetil.setVideoList(JsonUtil.parseArray(lastDetil.getVideoDetailJson(), VideoLessonGroupDetailDto.class));
+            List<VideoLessonGroupDetailDto> videoLessonGroupDetailDtoList = JsonUtil.parseArray(
+                    lastDetil.getVideoDetailJson(), VideoLessonGroupDetailDto.class);
+            lastDetil.setVideoList(videoLessonGroupDetailDtoList);
+
+
+            List<CourseRelationMusicAlbum> recordInfos = videoLessonGroupDetailDtoList.stream()
+                            .filter(x -> CollectionUtils.isNotEmpty(x.getCourseRelationMusicAlbumList()))
+                            .flatMap(x -> x.getCourseRelationMusicAlbumList().stream()).collect(Collectors.toList());
+            // 设置曲目关联信息
+            setCourseRelationInfo(videoLessonGroupDetailDtoList, recordInfos);
         }
         
         return videoLessonAuthGroup;
     }
 
+    private void setCourseRelationInfo(List<VideoLessonGroupDetailDto> details, List<CourseRelationMusicAlbum> list) {
+        if (CollectionUtils.isNotEmpty(list)) {
+
+            List<CourseRelationWrapper.MusicAlbumInfo> musicAlbumInfos = videoLessonGroupDetailService.getCourseRelationMusicAlbumInfos(
+                    list);
+
+            // 填充课程关联曲目、专辑信息
+            videoLessonGroupDetailService.updateCourseRelationMusicAlbumInfo(details, musicAlbumInfos);
+        }
+    }
+
     /**
      * @Description: 学生端-我的-我的课程-购买的视频课组
      * @Author: cy

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVideoVo.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
 import com.yonge.cooleshow.common.entity.BaseEntity;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -37,6 +38,17 @@ public class CourseGroupVideoVo extends BaseEntity {
     @ApiModelProperty(value = "是否上架 (0:否  1:是)")
     private Integer shelvesFlag;
 
+    @ApiModelProperty(value = "草稿状态, 0正式1草稿")
+    private YesOrNoEnum draftFlag;
+
+    public YesOrNoEnum getDraftFlag() {
+        return draftFlag;
+    }
+
+    public void setDraftFlag(YesOrNoEnum draftFlag) {
+        this.draftFlag = draftFlag;
+    }
+
     public Date getRecordTime() {
         return recordTime;
     }

+ 4 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonAuthGroup.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -33,7 +34,7 @@ public class VideoLessonAuthGroup extends VideoLessonGroup {
     private String remarks;
 
     @ApiModelProperty("视频集合")
-    private List<VideoLessonGroupDetail> videoList;
+    private List<VideoLessonGroupDetailDto> videoList;
 
     @ApiModelProperty("上一次的修改记录")
     private VideoLessonGroupLog lastVideoLessonGroupLog;
@@ -90,11 +91,11 @@ public class VideoLessonAuthGroup extends VideoLessonGroup {
         this.videoGroupId = videoGroupId;
     }
 
-    public List<VideoLessonGroupDetail> getVideoList() {
+    public List<VideoLessonGroupDetailDto> getVideoList() {
         return videoList;
     }
 
-    public void setVideoList(List<VideoLessonGroupDetail> videoList) {
+    public void setVideoList(List<VideoLessonGroupDetailDto> videoList) {
         this.videoList = videoList;
     }
 

+ 2 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -583,7 +583,8 @@
             u.real_name_ AS teacherRealName,
             g.create_time_ AS createTime,
             r.create_time_ AS recordTime,
-            g.shelves_flag_ as shelvesFlag
+            g.shelves_flag_ as shelvesFlag,
+        g.draft_flag_ as draftFlag
         FROM video_lesson_group g
         LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
         LEFT JOIN sys_user u ON g.teacher_id_=u.id_

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupDetailMapper.xml

@@ -127,7 +127,7 @@
 		WHERE video_lesson_group_id_ = #{groupId}
 	</delete>
 	
-	<select id="queryByVideoLessonGroupId" resultMap="BaseResultMap">
+	<select id="queryByVideoLessonGroupId" resultType="com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto">
 		select * from video_lesson_group_detail WHERE video_lesson_group_id_ = #{videoLessonGroupId}
 	</select>
 

+ 3 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -142,6 +143,7 @@ public class VideoLessonGroupController extends BaseController {
         if (CollectionUtils.isEmpty(lessonVo.getLessonList())) {
             return failed("课程不能为空");
         }
+        lessonVo.getLessonGroup().setDraftFlag(YesOrNoEnum.NO);
         videoLessonGroupService.add(lessonVo, sysUser);
         return succeed();
     }
@@ -216,6 +218,7 @@ public class VideoLessonGroupController extends BaseController {
         if (CollectionUtils.isEmpty(lessonVo.getLessonList())) {
             return failed("课程不能为空");
         }
+        lessonVo.getLessonGroup().setDraftFlag(YesOrNoEnum.NO);
         videoLessonGroupService.update(lessonVo, sysUser);
         return succeed();
     }