Browse Source

添加视频课

liujunchi 2 năm trước cách đây
mục cha
commit
e717a77a23
17 tập tin đã thay đổi với 280 bổ sung51 xóa
  1. 10 2
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java
  2. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetPurchaseRecordDao.java
  3. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDetailDao.java
  4. 58 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/CourseMusicAlbumRelationDto.java
  5. 9 28
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/VideoLessonGroupDetailDto.java
  6. 28 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseRelationMusicAlbum.java
  7. 32 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java
  8. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetPurchaseRecordService.java
  9. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupDetailService.java
  10. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetPurchaseRecordServiceImpl.java
  11. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupDetailServiceImpl.java
  12. 88 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java
  13. 4 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonVo.java
  14. 19 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetPurchaseRecordMapper.xml
  15. 2 1
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupDetailController.java
  16. 2 1
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/VideoLessonGroupDetailController.java
  17. 2 2
      service.md

+ 10 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -204,7 +204,11 @@ public class VideoLessonController extends BaseController {
     @ApiOperation(value = "新增视频课组&视频课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/add", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> add(@Validated(AddGroup.class) @RequestBody VideoLessonVo lessonVo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
+
+        if (lessonVo.getLessonGroup().getTeacherId() == null) {
+            return failed("请设置所属老师");
+        }
+        SysUser sysUser = sysUserFeignService.queryUserById(lessonVo.getLessonGroup().getTeacherId());
 
         if (sysUser == null || sysUser.getId() == null) {
             return failed("用户信息获取失败");
@@ -224,7 +228,11 @@ public class VideoLessonController extends BaseController {
     @ApiOperation(value = "修改视频课组&视频课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/update", consumes = "application/json", produces = "application/json")
     public HttpResponseResult<Object> update(@Validated(UpdateGroup.class) @RequestBody VideoLessonVo lessonVo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
+
+        if (lessonVo.getLessonGroup().getTeacherId() == null) {
+            return failed("请设置所属老师");
+        }
+        SysUser sysUser = sysUserFeignService.queryUserById(lessonVo.getLessonGroup().getTeacherId());
 
         if (sysUser == null || sysUser.getId() == null) {
             return failed("用户信息获取失败");

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetPurchaseRecordDao.java

@@ -1,7 +1,11 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
+import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetPurchaseRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * MusicSheetPurchaseRecordDao数据库访问类
@@ -11,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  **/
 public interface MusicSheetPurchaseRecordDao extends BaseMapper<MusicSheetPurchaseRecord> {
 
+    void updateCourseMusicAlbum(@Param("items") List<CourseRelationMusicAlbum> updateCourseRelationMusicAlbums);
 }

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

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -25,7 +26,7 @@ public interface VideoLessonGroupDetailDao extends BaseMapper<VideoLessonGroupDe
     List<VideoLessonPurchaseStudent> selectPageStudent(IPage page,@Param("param")  VideoLessonSearch query);
 
     //新增视频课
-    void insertVideoLesson(List<VideoLessonGroupDetail> list);
+    void insertVideoLesson(List<VideoLessonGroupDetailDto> list);
 
     //修改视频课
     void updateDetail(VideoLessonGroupDetailUpVo detailUpVo);

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

@@ -0,0 +1,58 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import com.yonge.cooleshow.biz.dal.enums.course.CourseRelationTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-10-24
+ */
+public class CourseMusicAlbumRelationDto {
+
+    @ApiModelProperty("关联id")
+    private Long relationId;
+
+    @ApiModelProperty("曲目或专辑id")
+    private Long musicAlbumId;
+
+    @ApiModelProperty("关联类型 RECOMMEND:推荐 GIFT:赠品")
+    private CourseRelationTypeEnum useRelationType;
+
+    @ApiModelProperty("类型 MUSIC:曲目 ALBUM:专辑")
+    private RelationMusicAlbumEnum relationMusicAlbum;
+
+    public CourseRelationTypeEnum getUseRelationType() {
+        return useRelationType;
+    }
+
+    public void setUseRelationType(CourseRelationTypeEnum useRelationType) {
+        this.useRelationType = useRelationType;
+    }
+
+    public Long getRelationId() {
+        return relationId;
+    }
+
+    public void setRelationId(Long relationId) {
+        this.relationId = relationId;
+    }
+
+    public Long getMusicAlbumId() {
+        return musicAlbumId;
+    }
+
+    public void setMusicAlbumId(Long musicAlbumId) {
+        this.musicAlbumId = musicAlbumId;
+    }
+
+    public RelationMusicAlbumEnum getRelationMusicAlbum() {
+        return relationMusicAlbum;
+    }
+
+    public void setRelationMusicAlbum(RelationMusicAlbumEnum relationMusicAlbum) {
+        this.relationMusicAlbum = relationMusicAlbum;
+    }
+}

+ 9 - 28
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/VideoLessonGroupDetailDto.java

@@ -1,40 +1,21 @@
 package com.yonge.cooleshow.biz.dal.dto;
 
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
+import io.swagger.annotations.ApiModelProperty;
 
-/**
- * VideoLessonGroupDetailDto
- * @author yzp
- * @date   2022-03-25 23:46:28
- * @version v1.0
- **/
-public class VideoLessonGroupDetailDto extends VideoLessonGroupDetail {
-    private Integer pageNo;
-    private Integer pageSize;
-    private String search;
-
-    public int getPageNo() {
-        return pageNo;
-    }
+import java.util.List;
 
-    public void setPageNo(int pageNo) {
-        this.pageNo = pageNo;
-    }
 
-    public int getPageSize() {
-        return pageSize;
-    }
+public class VideoLessonGroupDetailDto extends VideoLessonGroupDetail {
 
-    public void setPageSize(int pageSize) {
-        this.pageSize = pageSize;
-    }
+    @ApiModelProperty("关联信息")
+    private List<CourseMusicAlbumRelationDto> relationList;
 
-    public String getSearch() {
-        return search;
+    public List<CourseMusicAlbumRelationDto> getRelationList() {
+        return relationList;
     }
 
-    public void setSearch(String search) {
-        this.search = search;
+    public void setRelationList(List<CourseMusicAlbumRelationDto> relationList) {
+        this.relationList = relationList;
     }
-
 }

+ 28 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseRelationMusicAlbum.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseRelationTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -36,9 +38,18 @@ public class CourseRelationMusicAlbum implements Serializable {
     @ApiModelProperty("关联类型, MUSIC, ALBUM ")
 	@TableField(value = "relation_type_")
     private RelationMusicAlbumEnum relationType;
+
+    @ApiModelProperty("关联类型,RECOMMEND:推荐  GIFT:赠品 ")
+    @TableField(value = "use_relation_type_")
+    private CourseRelationTypeEnum useRelationType;
+
     @ApiModelProperty("关联曲目专辑ID ")
 	@TableField(value = "music_album_id_")
     private Long musicAlbumId;
+
+    @ApiModelProperty(" 0 :删除 1:更新 2: 新增")
+    @TableField(value = "del_flag_")
+    private Integer delFlog;
     @ApiModelProperty("更新用户 ")
 	@TableField(value = "update_by_")
     private Long updateBy;
@@ -56,7 +67,23 @@ public class CourseRelationMusicAlbum implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date createTime;
 
-	public Long getId() {
+    public CourseRelationTypeEnum getUseRelationType() {
+        return useRelationType;
+    }
+
+    public void setUseRelationType(CourseRelationTypeEnum useRelationType) {
+        this.useRelationType = useRelationType;
+    }
+
+    public Integer getDelFlog() {
+        return delFlog;
+    }
+
+    public void setDelFlog(Integer delFlog) {
+        this.delFlog = delFlog;
+    }
+
+    public Long getId() {
         return id;
     }
 

+ 32 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java

@@ -2,6 +2,10 @@ package com.yonge.cooleshow.biz.dal.entity;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
+import com.yonge.cooleshow.biz.dal.enums.course.CourseRelationTypeEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import io.swagger.annotations.ApiModelProperty;
@@ -75,14 +79,37 @@ public class VideoLessonGroupLog {
 	
 	@ApiModelProperty(value = "更新时间",required = false)
 	private java.util.Date updateTime;
-	
+
+	@ApiModelProperty(value = "草稿状态, 0正式1草稿")
+	private YesOrNoEnum draftFlag;
+
+
+	@ApiModelProperty(value = "关联曲目专辑类型,RECOMMEND:推荐  GIFT:赠品")
+	private CourseRelationTypeEnum relationType;
+
 	private Long version;
 	
 	@ApiModelProperty(value = "视频课明细json串",required = false)
 	private String videoDetailJson;
 	
-    private List<VideoLessonGroupDetail> videoList;
-	
+    private List<VideoLessonGroupDetailDto> videoList;
+
+	public YesOrNoEnum getDraftFlag() {
+		return draftFlag;
+	}
+
+	public void setDraftFlag(YesOrNoEnum draftFlag) {
+		this.draftFlag = draftFlag;
+	}
+
+	public CourseRelationTypeEnum getRelationType() {
+		return relationType;
+	}
+
+	public void setRelationType(CourseRelationTypeEnum relationType) {
+		this.relationType = relationType;
+	}
+
 	public VideoLessonGroupLog setId(Long id){
 		this.id = id;
 		return this;
@@ -295,11 +322,11 @@ public class VideoLessonGroupLog {
 		this.videoDetailJson = videoDetailJson;
 	}
 
-	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;
 	}
 

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetPurchaseRecordService.java

@@ -1,9 +1,13 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetPurchaseRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * MusicSheetPurchaseRecordService服务类
@@ -21,4 +25,9 @@ public interface MusicSheetPurchaseRecordService extends IService<MusicSheetPurc
      * @return boolean
      */
     MusicSheetPurchaseRecord checkPurchase(Long userId, Long musicSheetId, ClientEnum clientType, PurchaseRecordTypeEnum purchaseType);
+
+    /**
+     * 更新赠送记录
+     */
+    void updateCourseMusicAlbum( List<CourseRelationMusicAlbum> updateCourseRelationMusicAlbums);
 }

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
@@ -22,7 +23,7 @@ public interface VideoLessonGroupDetailService extends IService<VideoLessonGroup
 
     IPage<VideoLessonPurchaseStudent> selectPageStudent(IPage<VideoLessonPurchaseStudent> page, VideoLessonSearch query);
 
-    void insertVideoLesson(List<VideoLessonGroupDetail> videoLessonList, SysUser sysUser);
+    void insertVideoLesson(List<VideoLessonGroupDetailDto> videoLessonList, SysUser sysUser);
 
     void updateDetail(VideoLessonGroupDetailUpVo detailUpVo, SysUser sysUser);
 

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetPurchaseRecordDao;
+import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetPurchaseRecord;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
@@ -45,4 +46,9 @@ public class MusicSheetPurchaseRecordServiceImpl extends ServiceImpl<MusicSheetP
         }
         return list.get(0);
     }
+
+    @Override
+    public void updateCourseMusicAlbum(List<CourseRelationMusicAlbum> updateCourseRelationMusicAlbums) {
+        musicSheetPurchaseRecordDao.updateCourseMusicAlbum(updateCourseRelationMusicAlbums);
+    }
 }

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

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 import org.apache.commons.collections.CollectionUtils;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -123,7 +124,7 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
     */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void insertVideoLesson(List<VideoLessonGroupDetail> videoLessonList, SysUser sysUser) {
+    public void insertVideoLesson(List<VideoLessonGroupDetailDto> videoLessonList, SysUser sysUser) {
         Set<Long> synSet = Collections.synchronizedSet(new HashSet<>());
         for (VideoLessonGroupDetail detail : videoLessonList) {
             detail.setTeacherId(sysUser.getId());

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
@@ -8,10 +9,18 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import com.google.common.collect.Lists;
+import com.yonge.cooleshow.biz.dal.dto.CourseMusicAlbumRelationDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetPurchaseRecord;
+import com.yonge.cooleshow.biz.dal.entity.VideoLessonPurchaseRecord;
+import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
+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;
@@ -106,6 +115,13 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     @Autowired
     private CourseRelationMusicAlbumService courseRelationMusicAlbumService;
 
+    @Autowired
+    private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
+
+
+    @Autowired
+    private VideoLessonPurchaseRecordService videoLessonPurchaseRecordService;
+
     public VideoLessonGroupDao getDao() {
         return videoLessonGroupDao;
     }
@@ -198,6 +214,75 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
             teacherService.setTeacherTag(lessonGroup.getTeacherId(), TeacherTagEnum.VIDEO);
         }
 
+        // 设置关联曲目
+        VideoLessonGroupLog videoLessonGroupLog = videoLessonGroupLogService.queryLastestShelvesInfo(
+                lessonGroup.getId());
+        List<VideoLessonGroupDetailDto> videoLessonGroupDetailDtoList = JsonUtil.parseArray(videoLessonGroupLog.getVideoDetailJson(), VideoLessonGroupDetailDto.class);
+
+        List<CourseRelationMusicAlbum> updateCourseRelationMusicAlbums = new ArrayList<>();
+        List<CourseRelationMusicAlbum> addCourseRelationMusicAlbums = new ArrayList<>();
+        List<Long> updateCourseRelationIdList = new ArrayList<>();
+        for (VideoLessonGroupDetailDto videoLessonGroupDetailDto : videoLessonGroupDetailDtoList) {
+            List<CourseMusicAlbumRelationDto> relationList = videoLessonGroupDetailDto.getRelationList();
+            for (CourseMusicAlbumRelationDto courseMusicAlbumRelationDto : relationList) {
+                CourseRelationMusicAlbum courseRelationMusicAlbum = new CourseRelationMusicAlbum();
+                if (courseMusicAlbumRelationDto.getRelationId() != null && courseMusicAlbumRelationDto.getRelationId() != 0) {
+                    updateCourseRelationIdList.add(courseMusicAlbumRelationDto.getMusicAlbumId());
+                    courseRelationMusicAlbum.setId(courseMusicAlbumRelationDto.getRelationId());
+                }
+                courseRelationMusicAlbum.setCourseGroupId(videoLessonGroupDetailDto.getVideoLessonGroupId());
+                courseRelationMusicAlbum.setCourseId(videoLessonGroupDetailDto.getId());
+                courseRelationMusicAlbum.setCourseType(CourseTypeEnum.VIDEO);
+                courseRelationMusicAlbum.setRelationType(courseMusicAlbumRelationDto.getRelationMusicAlbum());
+                courseRelationMusicAlbum.setUseRelationType(courseMusicAlbumRelationDto.getUseRelationType());
+                courseRelationMusicAlbum.setDelFlog(1);
+                courseRelationMusicAlbum.setUpdateBy(videoLessonGroupDetailDto.getUpdateBy());
+                courseRelationMusicAlbum.setUpdateTime(new Date());
+                if (courseRelationMusicAlbum.getId() == null) {
+                    courseRelationMusicAlbum.setCreateBy(videoLessonGroupDetailDto.getUpdateBy());
+                    courseRelationMusicAlbum.setCreateTime(new Date());
+                    courseRelationMusicAlbum.setDelFlog(2);
+                    addCourseRelationMusicAlbums.add(courseRelationMusicAlbum);
+                } else {
+                    updateCourseRelationMusicAlbums.add(courseRelationMusicAlbum);
+                }
+            }
+        }
+        // 查出需要删除的关联数据
+        List<CourseRelationMusicAlbum> list = courseRelationMusicAlbumService.lambdaQuery()
+                 .eq(CourseRelationMusicAlbum::getCourseGroupId, videoLessonGroupLog.getVideoLessonGroupId())
+                 .eq(CourseRelationMusicAlbum::getCourseType,CourseTypeEnum.VIDEO)
+                 .notIn(CourseRelationMusicAlbum::getId,updateCourseRelationIdList).list();
+        if (!CollectionUtils.isEmpty(list)) {
+            List<Long> idList = list.stream().map(CourseRelationMusicAlbum::getId).collect(Collectors.toList());
+            courseRelationMusicAlbumService.lambdaUpdate()
+                    .in(CourseRelationMusicAlbum::getId,idList)
+                    .set(CourseRelationMusicAlbum::getDelFlog,0)
+                    .update();
+
+            // 删除赠送记录
+            musicSheetPurchaseRecordService.remove(Wrappers.<MusicSheetPurchaseRecord>lambdaQuery()
+                                                           .in(MusicSheetPurchaseRecord::getCourseMusicAlbumId,idList));
+        }
+
+        // 保存更新的关联数据
+        courseRelationMusicAlbumService.updateBatchById(updateCourseRelationMusicAlbums);
+        courseRelationMusicAlbumService.saveOrUpdateBatch(addCourseRelationMusicAlbums);
+
+        // 更新赠送记录
+        musicSheetPurchaseRecordService.updateCourseMusicAlbum(updateCourseRelationMusicAlbums);
+
+        // 添加赠送记录
+
+        // // 查询购买人员
+        // List<VideoLessonPurchaseRecord> videoLessonPurchaseRecords = videoLessonPurchaseRecordService.lambdaQuery()
+        //                                     .eq(VideoLessonPurchaseRecord::getOrderStatus, OrderStatusEnum.PAID)
+        //                                     .eq(VideoLessonPurchaseRecord::getVideoLessonGroupId, videoLessonGroupLog.getVideoLessonGroupId())
+        //                                     .list();
+        // // 赠送
+        // MusicSheetPurchaseRecord musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
+
+
         //推送
         String status = examineVo.getAuditStatus();
         Map<Long, String> receivers = new HashMap<>();
@@ -270,7 +355,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     @Transactional(rollbackFor = Exception.class)
     public void add(VideoLessonVo lessonVo, SysUser sysUser) {
         VideoLessonGroup lessonGroup = lessonVo.getLessonGroup();
-        List<VideoLessonGroupDetail> lessonList = lessonVo.getLessonList();
+        List<VideoLessonGroupDetailDto> lessonList = lessonVo.getLessonList();
         lessonGroup.setLessonCount(lessonList.size());
 
         //校验声部
@@ -422,7 +507,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     @Transactional(rollbackFor = Exception.class)
     public void update(VideoLessonVo lessonVo, SysUser sysUser) {
         VideoLessonGroup lessonGroup = lessonVo.getLessonGroup();
-        List<VideoLessonGroupDetail> lessonList = lessonVo.getLessonList();
+        List<VideoLessonGroupDetailDto> lessonList = lessonVo.getLessonList();
         lessonGroup.setLessonCount(lessonList.size());
         lessonGroup.setTeacherId(sysUser.getId());
         //判断是否有正在审核中
@@ -552,7 +637,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         videoLessonAuthGroup.setLastVideoLessonGroupLog(lastDetil);
         
         if(lastDetil != null){
-        	lastDetil.setVideoList(JsonUtil.parseArray(lastDetil.getVideoDetailJson(), VideoLessonGroupDetail.class));
+        	lastDetil.setVideoList(JsonUtil.parseArray(lastDetil.getVideoDetailJson(), VideoLessonGroupDetailDto.class));
         }
         
         return videoLessonAuthGroup;

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.biz.dal.valid.impl.ValidList;
@@ -17,7 +18,7 @@ public class VideoLessonVo extends BaseEntity {
     @Valid
     private VideoLessonGroup lessonGroup;
 
-    private ValidList<@Valid VideoLessonGroupDetail> lessonList;
+    private ValidList<@Valid VideoLessonGroupDetailDto> lessonList;
 
     public VideoLessonGroup getLessonGroup() {
         return lessonGroup;
@@ -27,11 +28,11 @@ public class VideoLessonVo extends BaseEntity {
         this.lessonGroup = lessonGroup;
     }
 
-    public ValidList<VideoLessonGroupDetail> getLessonList() {
+    public ValidList<VideoLessonGroupDetailDto> getLessonList() {
         return lessonList;
     }
 
-    public void setLessonList(ValidList<VideoLessonGroupDetail> lessonList) {
+    public void setLessonList(ValidList<VideoLessonGroupDetailDto> lessonList) {
         this.lessonList = lessonList;
     }
 }

+ 19 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetPurchaseRecordMapper.xml

@@ -19,6 +19,23 @@
 		id_, music_sheet_id_, teacher_id_, order_no_, student_id_, purchase_time_, purchase_price_, order_status_,client_type_
 	</sql>
 
-
-
+	<update id="updateCourseMusicAlbum">
+		UPDATE music_sheet_purchase_record
+		SET
+		music_sheet_id_ = CASE course_music_album_id_
+		<foreach collection="items" item="item">
+			WHEN #{item.id} THEN #{item.musicAlbumId}
+		</foreach>
+		END,
+		purchase_type_ = CASE course_music_album_id_
+		<foreach collection="items" item="item">
+			WHEN #{item.id} THEN #{item.relationType}
+		</foreach>
+		END
+		WHERE
+		course_music_album_id_ IN
+		<foreach collection="items" item="item" separator="," open="(" close=")">
+			#{item.id}
+		</foreach>
+    </update>
 </mapper>

+ 2 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/VideoLessonGroupDetailController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonEvaluateSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonEvaluate;
@@ -75,7 +76,7 @@ public class VideoLessonGroupDetailController extends BaseController {
      */
     @ApiOperation(value = "新增视频课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/create", consumes = "application/json", produces = "application/json")
-    public HttpResponseResult<Object> create(@Validated @RequestBody ValidList<VideoLessonGroupDetail> videoLessonList) {
+    public HttpResponseResult<Object> create(@Validated @RequestBody ValidList<VideoLessonGroupDetailDto> videoLessonList) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");

+ 2 - 1
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/VideoLessonGroupDetailController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.website.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.VideoLessonGroupDetailDto;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonEvaluateSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonEvaluate;
@@ -74,7 +75,7 @@ public class VideoLessonGroupDetailController extends BaseController {
      */
     @ApiOperation(value = "新增视频课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
     @PostMapping(value = "/create", consumes = "application/json", produces = "application/json")
-    public HttpResponseResult<Object> create(@Validated @RequestBody ValidList<VideoLessonGroupDetail> videoLessonList) {
+    public HttpResponseResult<Object> create(@Validated @RequestBody ValidList<VideoLessonGroupDetailDto> videoLessonList) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");

+ 2 - 2
service.md

@@ -1,13 +1,13 @@
 - [ ] gateway-server
 - [ ] auth-server
-- [ ] admin-server
+- [x] admin-server
 - [x] teacher-server
 - [x] student-server
 - [ ] website-server
 - [ ] task-server
 - [ ] websocket-server
 - [ ] audio-analysis
-- [ ] bbs-server
+- [x] bbs-server
 - [ ] classroom-server
 - [ ] cms-server
 - [ ] mall-admin