Преглед на файлове

视频课详情-推荐/赠送内容

liujunchi преди 2 години
родител
ревизия
1e35c8a20b

+ 14 - 4
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.admin.io.request.coupon.CouponIssueVo;
 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;
@@ -11,10 +14,12 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
 import com.yonge.cooleshow.biz.dal.queryInfo.CourseRelationQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
 import com.yonge.cooleshow.biz.dal.valid.UpdateGroup;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.valid.AddGroup;
@@ -40,6 +45,8 @@ import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.List;
 
+import static com.yonge.cooleshow.common.entity.HttpResponseResult.succeed;
+
 /**
  * @Author: cy
  * @Date: 2022/4/2
@@ -125,10 +132,13 @@ public class VideoLessonController extends BaseController {
 
     @ApiOperation(value = "老师详情-视频课详情-推荐/赠送内容", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/queryRelationMusicAlbum", consumes = "application/json", produces = "application/json")
-    public HttpResponseResult<PageInfo<CourseRelationVo.CourseRelationList>> queryRelationMusicAlbum(@RequestBody CourseRelationVo.CourseRelationQuery query) {
-        lessonGroupService.queryRelationMusicAlbum(PageUtil.getPage(query),
-                                                   CourseRelationQueryInfo.from(query.jsonString()));
-        return succeed();
+    public HttpResponseResult<PageInfo<CourseRelationWrapper.MusicAlbumInfo>> queryRelationMusicAlbum(@RequestBody CourseRelationVo.CourseRelationQuery query) {
+
+        query.setCourseType(CourseTypeEnum.VIDEO);
+        IPage<CourseRelationWrapper.MusicAlbumInfo> iPage = lessonGroupService
+                .queryRelationMusicAlbum(PageUtil.getPage(query), CourseRelationQueryInfo.from(query.jsonString()));
+        return succeed(PageUtil.pageInfo(iPage));
+
     }
 
 

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java

@@ -2,6 +2,9 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import java.util.List;
 
+import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
+import com.yonge.cooleshow.biz.dal.queryInfo.CourseRelationQueryInfo;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/CourseRelationQueryInfo.java

@@ -26,9 +26,9 @@ public class CourseRelationQueryInfo {
 
 
 
-    public static CouponInfoQuery from(String recv) {
+    public static CourseRelationQueryInfo from(String recv) {
 
-        return JSON.parseObject(recv, CouponInfoQuery.class);
+        return JSON.parseObject(recv, CourseRelationQueryInfo.class);
     }
 
 

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.queryInfo.CouponInfoQuery;
+import com.yonge.cooleshow.biz.dal.queryInfo.CourseRelationQueryInfo;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 
@@ -79,7 +80,7 @@ public interface VideoLessonGroupService extends IService<VideoLessonGroup> {
     Boolean top(Long videoLessonGroupId);
 
     /**
-     * 老师详情-视频课详情-推荐/赠送内容
+     * 课程关联的曲目 /专辑信息
      */
-    IPage<CourseRelationWrapper.CourseMusicAlbumInfo> queryRelationMusicAlbum(IPage<CourseRelationWrapper.CourseMusicAlbumInfo> page, CouponInfoQuery query);
+    IPage<CourseRelationWrapper.MusicAlbumInfo> queryRelationMusicAlbum(IPage<CourseRelationWrapper.MusicAlbumInfo> page, CourseRelationQueryInfo queryInfo);
 }

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

@@ -326,6 +326,7 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
 
                 item.name(music.getMusicSheetName())
                         .cover(music.getTitleImg());
+                item.setRemark(music.getComposer());
             }
 
             if (RelationMusicAlbumEnum.ALBUM == item.getRelationType()
@@ -335,6 +336,7 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
 
                 item.name(album.getAlbumName())
                         .cover(album.getAlbumCoverUrl());
+                item.setRemark(album.getAlbumDesc());
             }
         }
         return musicAlbumInfos;

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

@@ -8,10 +8,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.queryInfo.CouponInfoQuery;
+import com.yonge.cooleshow.biz.dal.queryInfo.CourseRelationQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.CourseRelationMusicAlbumService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
@@ -303,6 +305,9 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
                 } else {
                     updateCourseRelationMusicAlbums.add(courseRelationMusicAlbum);
                 }
+                if (CollectionUtils.isEmpty(videoLessonGroupDetailDto.getCourseRelationMusicAlbumList())) {
+                    videoLessonGroupDetailDto.setCourseRelationMusicAlbumList(new ArrayList<>());
+                }
                 videoLessonGroupDetailDto.getCourseRelationMusicAlbumList().add(courseRelationMusicAlbum);
             }
         }
@@ -391,6 +396,11 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
             lessonGroup.setSortNumber(0);
         }
 
+        // 草稿状态不审核
+        if (lessonGroup.getDraftFlag() == null) {
+            lessonGroup.setDraftFlag(YesOrNoEnum.NO);
+        }
+
         //添加组
         lessonGroup.setTeacherId(sysUser.getId());
         lessonGroup.setAuditVersion(YesOrNoEnum.NO);
@@ -417,10 +427,6 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         record.setAuthType(AuthTypeEnum.ADD);
         recordDao.insert(record);*/
 
-        // 草稿状态不审核
-        if (lessonGroup.getDraftFlag() == null) {
-            lessonGroup.setDraftFlag(YesOrNoEnum.NO);
-        }
 
         // 设置关联曲目
         courseMusicAlbumRelation(lessonList,lessonGroup.getId());
@@ -735,8 +741,38 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     }
 
     @Override
-    public IPage<CourseRelationWrapper.CourseMusicAlbumInfo> queryRelationMusicAlbum(IPage<CourseRelationWrapper.CourseMusicAlbumInfo> page, CouponInfoQuery query) {
-        return null;
+    public IPage<CourseRelationWrapper.MusicAlbumInfo> queryRelationMusicAlbum(IPage<CourseRelationWrapper.MusicAlbumInfo> page, CourseRelationQueryInfo queryInfo) {
+        IPage courseRelationMusicAlbumIPage = new Page<>(page.getCurrent(),page.getSize());
+        courseRelationMusicAlbumIPage = courseRelationMusicAlbumService.lambdaQuery()
+                           .eq(CourseRelationMusicAlbum::getCourseGroupId,queryInfo.getCourseGroupId())
+                            .eq(CourseRelationMusicAlbum::getCourseType, queryInfo.getCourseType())
+                            .ne(CourseRelationMusicAlbum::getDelFlog,0)
+                           .orderByAsc(CourseRelationMusicAlbum::getCourseId)
+                           .orderByDesc( CourseRelationMusicAlbum::getId)
+                           .page(courseRelationMusicAlbumIPage);
+        List<CourseRelationMusicAlbum> records = courseRelationMusicAlbumIPage.getRecords();
+        List<CourseRelationWrapper.MusicAlbumInfo> courseRelationMusicAlbumInfos = videoLessonGroupDetailService.getCourseRelationMusicAlbumInfos(
+                records);
+
+        // 课程id集合
+        List<Long> courseIdList = courseRelationMusicAlbumInfos.stream()
+                                                          .map(CourseRelationWrapper.MusicAlbumInfo::getCourseId)
+                                                          .collect(Collectors.toList());
+        // 查询课程名
+        List<VideoLessonGroupDetail> list = videoLessonGroupDetailService.lambdaQuery()
+                                                                         .in(VideoLessonGroupDetail::getId,
+                                                                             courseIdList)
+                                                                         .list();
+        Map<Long, String> collect = list.stream()
+                                        .collect(Collectors.toMap(VideoLessonGroupDetail::getId,
+                                                                  VideoLessonGroupDetail::getVideoTitle));
+        for (CourseRelationWrapper.MusicAlbumInfo courseRelationMusicAlbumInfo : courseRelationMusicAlbumInfos) {
+            courseRelationMusicAlbumInfo.setVideoTitle(collect.get(courseRelationMusicAlbumInfo.getCourseId()));
+        }
+
+        courseRelationMusicAlbumIPage.setRecords(courseRelationMusicAlbumInfos);
+        return courseRelationMusicAlbumIPage;
+
     }
 
 

+ 8 - 36
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseRelationWrapper.java

@@ -56,12 +56,20 @@ public class CourseRelationWrapper {
         @ApiModelProperty("图标/封面")
         private String cover;
 
+        @ApiModelProperty("曲目音乐人 专辑简介")
+        private String remark;
+
+        @ApiModelProperty("视频标题")
+        private String videoTitle;
 
         public MusicAlbumInfo name(String name) {
             this.name = name;
             return this;
         }
 
+
+
+
         public MusicAlbumInfo cover(String cover) {
             this.cover = cover;
             return this;
@@ -136,40 +144,4 @@ public class CourseRelationWrapper {
         private Long groupId;
     }
 
-    /**
-     * 课程关联的内容信息
-     */
-    @Getter
-    @Setter
-    public static class CourseMusicAlbumInfo {
-
-        // 编号
-        private Long id;
-
-        //封面
-        private String img;
-
-        //名称")
-        private String name;
-
-        //标签")
-        private String tagName;
-
-        //声部")
-        private String subjectName;
-
-        //收费类型  VIP:会员,FREE:免费 CHARGE:购买")
-        private String paymentType;
-
-        //价格")
-        private BigDecimal price;
-
-        //关联类型, MUSIC, ALBUM ")
-        private RelationMusicAlbumEnum relationType;
-
-        //课程名")
-        private String courseName;
-
-
-    }
 }