Browse Source

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

liujunchi 2 năm trước cách đây
mục cha
commit
d1ae1f349a

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

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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;
@@ -10,6 +11,7 @@ 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.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;
@@ -121,6 +123,15 @@ public class VideoLessonController extends BaseController {
         return succeed(PageUtil.pageInfo(lessonGroupService.queryGroupHistoryList(PageUtil.getPage(search), search)));
     }
 
+    @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();
+    }
+
+
     /**
      * @Description: 审核-根据视频课组id查视频课详情
      * @Author: cy

+ 166 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/course/CourseRelationVo.java

@@ -0,0 +1,166 @@
+package com.yonge.cooleshow.admin.io.request.course;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-10-25
+ */
+public class CourseRelationVo {
+
+    @ApiModel("CourseRelationQuery-课程推荐/赠送内容查询")
+    public static class CourseRelationQuery extends QueryInfo{
+
+        @ApiModelProperty("课程组id")
+        private Long courseGroupId;
+
+        @ApiModelProperty("关联类型, MUSIC, ALBUM ")
+        private RelationMusicAlbumEnum relationType;
+
+
+        @ApiModelProperty("课程类型 ")
+        private CourseTypeEnum courseType;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+
+        public Long getCourseGroupId() {
+            return courseGroupId;
+        }
+
+        public void setCourseGroupId(Long courseGroupId) {
+            this.courseGroupId = courseGroupId;
+        }
+
+        public RelationMusicAlbumEnum getRelationType() {
+            return relationType;
+        }
+
+        public void setRelationType(RelationMusicAlbumEnum relationType) {
+            this.relationType = relationType;
+        }
+
+        public CourseTypeEnum getCourseType() {
+            return courseType;
+        }
+
+        public void setCourseType(CourseTypeEnum courseType) {
+            this.courseType = courseType;
+        }
+    }
+
+    @ApiModel("CourseRelationList-课程推荐/赠送内容列表")
+    public static class CourseRelationList {
+
+        @ApiModelProperty("编号")
+        private Long id;
+
+        @ApiModelProperty("封面")
+        private String img;
+
+        @ApiModelProperty("名称")
+        private String name;
+
+        @ApiModelProperty("标签")
+        private String tagName;
+
+        @ApiModelProperty("声部")
+        private String subjectName;
+
+        @ApiModelProperty("收费类型  VIP:会员,FREE:免费 CHARGE:购买")
+        private String paymentType;
+
+        @ApiModelProperty("价格")
+        private BigDecimal price;
+
+        @ApiModelProperty("关联类型, MUSIC, ALBUM ")
+        private RelationMusicAlbumEnum relationType;
+
+        @ApiModelProperty("课程名")
+        private String courseName;
+
+        public Long getId() {
+            return id;
+        }
+
+        public void setId(Long id) {
+            this.id = id;
+        }
+
+        public String getImg() {
+            return img;
+        }
+
+        public void setImg(String img) {
+            this.img = img;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getTagName() {
+            return tagName;
+        }
+
+        public void setTagName(String tagName) {
+            this.tagName = tagName;
+        }
+
+        public String getSubjectName() {
+            return subjectName;
+        }
+
+        public void setSubjectName(String subjectName) {
+            this.subjectName = subjectName;
+        }
+
+        public String getPaymentType() {
+            return paymentType;
+        }
+
+        public void setPaymentType(String paymentType) {
+            this.paymentType = paymentType;
+        }
+
+        public BigDecimal getPrice() {
+            return price;
+        }
+
+        public void setPrice(BigDecimal price) {
+            this.price = price;
+        }
+
+        public RelationMusicAlbumEnum getRelationType() {
+            return relationType;
+        }
+
+        public void setRelationType(RelationMusicAlbumEnum relationType) {
+            this.relationType = relationType;
+        }
+
+        public String getCourseName() {
+            return courseName;
+        }
+
+        public void setCourseName(String courseName) {
+            this.courseName = courseName;
+        }
+    }
+}

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/CourseMusicAlbumRelationDto.java

@@ -24,6 +24,17 @@ public class CourseMusicAlbumRelationDto {
     @ApiModelProperty("类型 MUSIC:曲目 ALBUM:专辑")
     private RelationMusicAlbumEnum relationMusicAlbum;
 
+    @ApiModelProperty(hidden = true,value = "冗余json转换")
+    private RelationMusicAlbumEnum relationType;
+
+    public RelationMusicAlbumEnum getRelationType() {
+        return relationType;
+    }
+
+    public void setRelationType(RelationMusicAlbumEnum relationType) {
+        this.relationType = relationType;
+    }
+
     public CourseRelationTypeEnum getUseRelationType() {
         return useRelationType;
     }
@@ -54,5 +65,6 @@ public class CourseMusicAlbumRelationDto {
 
     public void setRelationMusicAlbum(RelationMusicAlbumEnum relationMusicAlbum) {
         this.relationMusicAlbum = relationMusicAlbum;
+        this.relationType = relationMusicAlbum;
     }
 }

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

@@ -0,0 +1,58 @@
+package com.yonge.cooleshow.biz.dal.queryInfo;
+
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-10-25
+ */
+public class CourseRelationQueryInfo {
+
+
+    // 课程组id
+    private Long courseGroupId;
+
+    // 关联类型, MUSIC, ALBUM
+    private RelationMusicAlbumEnum relationType;
+
+
+    // 课程类型
+    private CourseTypeEnum courseType;
+
+
+
+    public static CouponInfoQuery from(String recv) {
+
+        return JSON.parseObject(recv, CouponInfoQuery.class);
+    }
+
+
+    public RelationMusicAlbumEnum getRelationType() {
+        return relationType;
+    }
+
+    public void setRelationType(RelationMusicAlbumEnum relationType) {
+        this.relationType = relationType;
+    }
+
+    public CourseTypeEnum getCourseType() {
+        return courseType;
+    }
+
+    public void setCourseType(CourseTypeEnum courseType) {
+        this.courseType = courseType;
+    }
+
+    public Long getCourseGroupId() {
+        return courseGroupId;
+    }
+
+    public void setCourseGroupId(Long courseGroupId) {
+        this.courseGroupId = courseGroupId;
+    }
+}

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java

@@ -7,7 +7,9 @@ import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 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.vo.*;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 
 import java.util.List;
 
@@ -75,4 +77,9 @@ public interface VideoLessonGroupService extends IService<VideoLessonGroup> {
      *
      */
     Boolean top(Long videoLessonGroupId);
+
+    /**
+     * 老师详情-视频课详情-推荐/赠送内容
+     */
+    IPage<CourseRelationWrapper.CourseMusicAlbumInfo> queryRelationMusicAlbum(IPage<CourseRelationWrapper.CourseMusicAlbumInfo> page, CouponInfoQuery query);
 }

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

@@ -11,6 +11,7 @@ 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.queryInfo.CouponInfoQuery;
 import com.yonge.cooleshow.biz.dal.service.CourseRelationMusicAlbumService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
@@ -732,5 +733,10 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 
     }
 
+    @Override
+    public IPage<CourseRelationWrapper.CourseMusicAlbumInfo> queryRelationMusicAlbum(IPage<CourseRelationWrapper.CourseMusicAlbumInfo> page, CouponInfoQuery query) {
+        return null;
+    }
+
 
 }

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

@@ -5,11 +5,14 @@ import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
+import lombok.Getter;
 import lombok.NoArgsConstructor;
+import lombok.Setter;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -108,7 +111,7 @@ public class CourseRelationWrapper {
         private OrderStatusEnum orderStatus;  //订单状态(1:已完成;0:取消)
 
         @ApiModelProperty(value = "课程关联曲目专辑ID")
-        private  Long courseMusicAlbumId;
+        private Long courseMusicAlbumId;
 
         @ApiModelProperty("购买类型 ")
         private PurchaseRecordTypeEnum purchaseType;
@@ -131,6 +134,42 @@ public class CourseRelationWrapper {
 
         @ApiModelProperty("课程组ID")
         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;
+
 
     }
 }