liujunchi %!s(int64=2) %!d(string=hai) anos
pai
achega
c2b8558ac5

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

@@ -203,7 +203,7 @@ 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) {
+    public HttpResponseResult<Object> add( @RequestBody VideoLessonVo lessonVo) {
 
         if (lessonVo.getLessonGroup().getTeacherId() == null) {
             return failed("请设置所属老师");
@@ -227,7 +227,7 @@ 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) {
+    public HttpResponseResult<Object> update(@RequestBody VideoLessonVo lessonVo) {
 
         if (lessonVo.getLessonGroup().getTeacherId() == null) {
             return failed("请设置所属老师");

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/VideoLessonGroupDetailDto.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto;
 
+import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -11,6 +12,18 @@ public class VideoLessonGroupDetailDto extends VideoLessonGroupDetail {
     @ApiModelProperty("关联信息")
     private List<CourseMusicAlbumRelationDto> relationList;
 
+
+    @ApiModelProperty("保存在log json的关联信息")
+    private List<CourseRelationMusicAlbum> relationVoList;
+
+    public List<CourseRelationMusicAlbum> getRelationVoList() {
+        return relationVoList;
+    }
+
+    public void setRelationVoList(List<CourseRelationMusicAlbum> relationVoList) {
+        this.relationVoList = relationVoList;
+    }
+
     public List<CourseMusicAlbumRelationDto> getRelationList() {
         return relationList;
     }

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

@@ -14,6 +14,7 @@ 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.CourseRelationTypeEnum;
 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;
@@ -212,30 +213,91 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         // 设置标签
         if (AuthStatusEnum.PASS.getCode().equals(examineVo.getAuditStatus())) {
             teacherService.setTeacherTag(lessonGroup.getTeacherId(), TeacherTagEnum.VIDEO);
+
+            // 设置关联的曲目
+
+        }
+
+        //推送
+        String status = examineVo.getAuditStatus();
+        Map<Long, String> receivers = new HashMap<>();
+        SysUser teacher = sysUserFeignService.queryUserById(lessonGroup.getTeacherId());
+        receivers.put(lessonGroup.getTeacherId(), teacher.getPhone());
+        if (status.equals("PASS")) {
+            try {
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIDEO_SHEET_AUTH_PASS,
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(), lessonGroup.getLessonName());
+            } catch (Exception e) {
+                log.warn("视频课审核失败,{}", e.getMessage());
+            }
+        } else {
+            try {
+                String remark = "无";
+                if (!StringUtils.isEmpty(examineVo.getRemarks())) {
+                    remark = examineVo.getRemarks();
+                }
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIDEO_SHEET_AUTH_UNPASS,
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(), lessonGroup.getLessonName(), remark);
+            } catch (Exception e) {
+                log.warn("视频课审核失败,{}", e.getMessage());
+            }
         }
+    }
 
+    /**
+     * 处理课程曲目关联关系
+     */
+    private void courseMusicAlbumRelation(VideoLessonGroup lessonGroup) {
         // 设置关联曲目
         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<CourseRelationMusicAlbum> relationMusicAlbumList = courseRelationMusicAlbumService.lambdaQuery()
+                        .eq(CourseRelationMusicAlbum::getCourseGroupId,  lessonGroup.getId())
+                        .ne(CourseRelationMusicAlbum::getDelFlog, 0)
+                        .list();
+        Map<Long, List<CourseRelationMusicAlbum>> courseRelationMusicAlbumList = new HashMap<>();
+        // 根据课程id分组
+        if (CollectionUtils.isEmpty(relationMusicAlbumList)) {
+            courseRelationMusicAlbumList = relationMusicAlbumList.stream()
+                         .collect(Collectors.groupingBy(CourseRelationMusicAlbum::getCourseId));
+        }
+
+        // 需要更新的id
         List<Long> updateCourseRelationIdList = new ArrayList<>();
         for (VideoLessonGroupDetailDto videoLessonGroupDetailDto : videoLessonGroupDetailDtoList) {
+            // 需要修改的关联数据
             List<CourseMusicAlbumRelationDto> relationList = videoLessonGroupDetailDto.getRelationList();
+
+            // 原本的关联数据
+            List<CourseRelationMusicAlbum> oldRelationList = courseRelationMusicAlbumList.get(
+                    videoLessonGroupDetailDto.getId());
+
             for (CourseMusicAlbumRelationDto courseMusicAlbumRelationDto : relationList) {
                 CourseRelationMusicAlbum courseRelationMusicAlbum = new CourseRelationMusicAlbum();
+                // 修改的数据
                 if (courseMusicAlbumRelationDto.getRelationId() != null && courseMusicAlbumRelationDto.getRelationId() != 0) {
-                    updateCourseRelationIdList.add(courseMusicAlbumRelationDto.getMusicAlbumId());
-                    courseRelationMusicAlbum.setId(courseMusicAlbumRelationDto.getRelationId());
+                    updateCourseRelationIdList.add(courseMusicAlbumRelationDto.getRelationId());
+                    for (CourseRelationMusicAlbum relationMusicAlbum : oldRelationList) {
+                        if (relationMusicAlbum.getId().equals(courseMusicAlbumRelationDto.getRelationId())) {
+                            courseRelationMusicAlbum = relationMusicAlbum;
+                            break;
+                        }
+                    }
                 }
                 courseRelationMusicAlbum.setCourseGroupId(videoLessonGroupDetailDto.getVideoLessonGroupId());
                 courseRelationMusicAlbum.setCourseId(videoLessonGroupDetailDto.getId());
                 courseRelationMusicAlbum.setCourseType(CourseTypeEnum.VIDEO);
+                courseRelationMusicAlbum.setDelFlog(1);
                 courseRelationMusicAlbum.setRelationType(courseMusicAlbumRelationDto.getRelationMusicAlbum());
                 courseRelationMusicAlbum.setUseRelationType(courseMusicAlbumRelationDto.getUseRelationType());
-                courseRelationMusicAlbum.setDelFlog(1);
                 courseRelationMusicAlbum.setUpdateBy(videoLessonGroupDetailDto.getUpdateBy());
                 courseRelationMusicAlbum.setUpdateTime(new Date());
                 if (courseRelationMusicAlbum.getId() == null) {
@@ -248,65 +310,19 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
                 }
             }
         }
-        // 查出需要删除关联数据
-        List<CourseRelationMusicAlbum> list = courseRelationMusicAlbumService.lambdaQuery()
+        // 删除关联数据
+        courseRelationMusicAlbumService.lambdaUpdate()
                  .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));
-        }
+                 .notIn(CourseRelationMusicAlbum::getId,updateCourseRelationIdList)
+                 .set(CourseRelationMusicAlbum::getDelFlog,0)
+                 .set(CourseRelationMusicAlbum::getUpdateTime,new Date())
+                 .update();
 
         // 保存更新的关联数据
         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<>();
-        SysUser teacher = sysUserFeignService.queryUserById(lessonGroup.getTeacherId());
-        receivers.put(lessonGroup.getTeacherId(), teacher.getPhone());
-        if (status.equals("PASS")) {
-            try {
-                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIDEO_SHEET_AUTH_PASS,
-                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(), lessonGroup.getLessonName());
-            } catch (Exception e) {
-                log.warn("视频课审核失败,{}", e.getMessage());
-            }
-        } else {
-            try {
-                String remark = "无";
-                if (!StringUtils.isEmpty(examineVo.getRemarks())) {
-                    remark = examineVo.getRemarks();
-                }
-                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIDEO_SHEET_AUTH_UNPASS,
-                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(), lessonGroup.getLessonName(), remark);
-            } catch (Exception e) {
-                log.warn("视频课审核失败,{}", e.getMessage());
-            }
-        }
     }
 
     @Override
@@ -401,23 +417,33 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         record.setAuditStatus(AuthStatusEnum.DOING.getCode());
         record.setAuthType(AuthTypeEnum.ADD);
         recordDao.insert(record);*/
-        
-        VideoLessonGroupLog  videoLessonGroupLog = new VideoLessonGroupLog();
-        
-        try {
-        	org.springframework.beans.BeanUtils.copyProperties(lessonGroup, videoLessonGroupLog);
-		} catch (Exception e) {
-			throw new BizException("属性复制失败");
-		}
-        videoLessonGroupLog.setId(null);
-        videoLessonGroupLog.setVideoLessonGroupId(lessonGroup.getId());
-        videoLessonGroupLog.setCreateTime(date);
-        videoLessonGroupLog.setUpdateTime(date);
-        videoLessonGroupLog.setModifierId(sysUser.getId());
-        videoLessonGroupLog.setVideoDetailJson(JsonUtil.toJSONString(lessonList));
-        videoLessonGroupLog.setVersion(videoLessonGroupLogService.queryMaxVersion(lessonGroup.getId()) + 1);
-        
-        videoLessonGroupLogService.insert(videoLessonGroupLog);
+
+        // 草稿状态不审核
+        if (lessonGroup.getDraftFlag() == null) {
+            lessonGroup.setDraftFlag(YesOrNoEnum.NO);
+        }
+
+        // 设置关联曲目
+        courseMusicAlbumRelation(lessonGroup);
+
+        if (YesOrNoEnum.YES.equals(lessonGroup.getDraftFlag())) {
+            VideoLessonGroupLog videoLessonGroupLog = new VideoLessonGroupLog();
+
+            try {
+                org.springframework.beans.BeanUtils.copyProperties(lessonGroup, videoLessonGroupLog);
+            } catch (Exception e) {
+                throw new BizException("属性复制失败");
+            }
+            videoLessonGroupLog.setId(null);
+            videoLessonGroupLog.setVideoLessonGroupId(lessonGroup.getId());
+            videoLessonGroupLog.setCreateTime(date);
+            videoLessonGroupLog.setUpdateTime(date);
+            videoLessonGroupLog.setModifierId(sysUser.getId());
+            videoLessonGroupLog.setVideoDetailJson(JsonUtil.toJSONString(lessonList));
+            videoLessonGroupLog.setVersion(videoLessonGroupLogService.queryMaxVersion(lessonGroup.getId()) + 1);
+
+            videoLessonGroupLogService.insert(videoLessonGroupLog);
+        }
     }
 
     /**
@@ -548,23 +574,31 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 			// 添加课程
 			videoLessonGroupDetailDao.insertVideoLesson(lessonList);
 		}
-        
-        VideoLessonGroupLog  videoLessonGroupLog = new VideoLessonGroupLog();
-        
-        try {
-        	org.springframework.beans.BeanUtils.copyProperties(lessonGroup, videoLessonGroupLog);
-		} catch (Exception e) {
-			throw new BizException("属性复制失败");
-		}
-        videoLessonGroupLog.setId(null);
-        videoLessonGroupLog.setVideoLessonGroupId(lessonGroup.getId());
-        videoLessonGroupLog.setCreateTime(date);
-        videoLessonGroupLog.setUpdateTime(date);
-        videoLessonGroupLog.setModifierId(sysUser.getId());
-        videoLessonGroupLog.setVideoDetailJson(JsonUtil.toJSONString(lessonList));
-        videoLessonGroupLog.setVersion(videoLessonGroupLogService.queryMaxVersion(lessonGroup.getId()) + 1);
-        
-        videoLessonGroupLogService.insert(videoLessonGroupLog);
+
+
+        // 草稿状态不审核
+        if (lessonGroup.getDraftFlag() == null) {
+            lessonGroup.setDraftFlag(YesOrNoEnum.NO);
+        }
+        if (lessonGroup.getDraftFlag().equals(YesOrNoEnum.YES)) {
+
+            VideoLessonGroupLog videoLessonGroupLog = new VideoLessonGroupLog();
+
+            try {
+                org.springframework.beans.BeanUtils.copyProperties(lessonGroup, videoLessonGroupLog);
+            } catch (Exception e) {
+                throw new BizException("属性复制失败");
+            }
+            videoLessonGroupLog.setId(null);
+            videoLessonGroupLog.setVideoLessonGroupId(lessonGroup.getId());
+            videoLessonGroupLog.setCreateTime(date);
+            videoLessonGroupLog.setUpdateTime(date);
+            videoLessonGroupLog.setModifierId(sysUser.getId());
+            videoLessonGroupLog.setVideoDetailJson(JsonUtil.toJSONString(lessonList));
+            videoLessonGroupLog.setVersion(videoLessonGroupLogService.queryMaxVersion(lessonGroup.getId()) + 1);
+
+            videoLessonGroupLogService.insert(videoLessonGroupLog);
+        }
 
         //修改课程组记录
         lessonGroup.setAuditVersion(YesOrNoEnum.NO);
@@ -572,6 +606,8 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         lessonGroup.setUpdateTime(date);
         videoLessonGroupDao.updateById(lessonGroup);
 
+        // 设置关联曲目
+        courseMusicAlbumRelation(lessonGroup);
         //刷新统计
         VideoLessonGroupUpVo groupUpVo = new VideoLessonGroupUpVo();
         groupUpVo.setId(lessonGroup.getId());