ソースを参照

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

Eric 2 年 前
コミット
2283149de5
15 ファイル変更210 行追加71 行削除
  1. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupLogDao.java
  2. 24 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java
  3. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupLogService.java
  4. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  5. 14 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherAuthEntryRecordServiceImpl.java
  6. 35 22
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupDetailServiceImpl.java
  7. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupLogServiceImpl.java
  8. 63 30
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java
  9. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonAuthGroup.java
  10. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonExamineVo.java
  11. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  12. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  13. 11 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupLogMapper.xml
  14. 5 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml
  15. 15 10
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/VideoLessonController.java

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupLogDao.java

@@ -10,4 +10,11 @@ public interface VideoLessonGroupLogDao extends BaseDAO<Long, VideoLessonGroupLo
 	Long queryMaxVersion(Long videoLessonGroupId);
 	
 	VideoLessonGroupLog queryByVideoLessonGroupId(@Param("videoLessonGroupId") Long videoLessonGroupId, @Param("version") Long version);
+	
+	/**
+	 * 查询最新上架信息
+	 * @param videoLessonGroupId
+	 * @return
+	 */
+	VideoLessonGroupLog queryLastestShelvesInfo(Long videoLessonGroupId);
 }

+ 24 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/VideoLessonGroupLog.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
+import java.util.List;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
+
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -75,6 +78,11 @@ public class VideoLessonGroupLog {
 	
 	private Long version;
 	
+	@ApiModelProperty(value = "视频课明细json串",required = false)
+	private String videoDetailJson;
+	
+    private List<VideoLessonGroupDetail> videoList;
+	
 	public VideoLessonGroupLog setId(Long id){
 		this.id = id;
 		return this;
@@ -279,6 +287,22 @@ public class VideoLessonGroupLog {
 		this.version = version;
 	}
 
+	public String getVideoDetailJson() {
+		return videoDetailJson;
+	}
+
+	public void setVideoDetailJson(String videoDetailJson) {
+		this.videoDetailJson = videoDetailJson;
+	}
+
+	public List<VideoLessonGroupDetail> getVideoList() {
+		return videoList;
+	}
+
+	public void setVideoList(List<VideoLessonGroupDetail> videoList) {
+		this.videoList = videoList;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -8,4 +8,11 @@ public interface VideoLessonGroupLogService extends BaseService<Long, VideoLesso
 	Long queryMaxVersion(Long videoLessonGroupId);
 	
 	VideoLessonGroupLog queryByVideoLessonGroupId(Long videoLessonGroupId, Long version);
+	
+	/**
+	 * 查询最新上架信息
+	 * @param videoLessonGroupId
+	 * @return
+	 */
+	VideoLessonGroupLog queryLastestShelvesInfo(Long videoLessonGroupId);
 }

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

@@ -318,6 +318,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
     @Override
     public IPage<MusicSheetVo> myMusic(IPage<MusicSheetVo> page, StudentMusicSheetSearch query) {
+        query.setDelFlag(null);
         return page.setRecords(baseMapper.selectMyMusicPage(page, query));
     }
 

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

@@ -102,9 +102,9 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
                 teacher.setIntroduction(StringUtil.isEmpty(teacher.getIntroduction()) ? build.getIntroduction() : teacher.getIntroduction());
                 teacher.setGraduateSchool(StringUtil.isEmpty(teacher.getGraduateSchool()) ? build.getGraduateSchool() : teacher.getGraduateSchool());
                 teacher.setSubject(StringUtil.isEmpty(teacher.getSubject()) ? build.getSubject() : teacher.getSubject());
-                teacher.setGradCertificate(StringUtil.isEmpty(teacher.getGradCertificate()) ? build.getGradCertificate() : teacher.getGradCertificate());
-                teacher.setDegreeCertificate(StringUtil.isEmpty(teacher.getDegreeCertificate()) ? build.getDegreeCertificate() : teacher.getDegreeCertificate());
-                teacher.setTeacherCertificate(StringUtil.isEmpty(teacher.getTeacherCertificate()) ? build.getTeacherCertificate() : teacher.getTeacherCertificate());
+                teacher.setGradCertificate( StringUtil.isEmpty(build.getGradCertificate())?"":build.getGradCertificate());
+                teacher.setDegreeCertificate(StringUtil.isEmpty( build.getDegreeCertificate())?"":build.getDegreeCertificate());
+                teacher.setTeacherCertificate( StringUtil.isEmpty(build.getTeacherCertificate())?"":build.getTeacherCertificate());
 
                 //老师风采视频
                 String styleVideoJson = build.getStyleVideoJson();
@@ -161,6 +161,17 @@ public class TeacherAuthEntryRecordServiceImpl extends ServiceImpl<TeacherAuthEn
      * @param verifyUserId
      */
     private void saveStyleVideo(String styleVideoJson, Long userId, Long verifyUserId) {
+
+        // 如果已经有认证审核的数据,就不在保存
+
+        Integer count = teacherStyleVideoService.lambdaQuery()
+                .eq(TeacherStyleVideo::getUserId,userId)
+                .eq(TeacherStyleVideo::getEntryFlag, YesOrNoEnum.YES)
+                .count();
+        if (count > 0) {
+            return;
+        }
+
         if (!StringUtil.isEmpty(styleVideoJson)) {
             JSONArray jsonArray = JSONObject.parseArray(styleVideoJson);
             List<TeacherStyleVideo> batchVideoList = new ArrayList<>();

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

@@ -1,10 +1,23 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao;
+import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDetailDao;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
@@ -12,26 +25,21 @@ import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
-import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDetailDao;
-
-import com.yonge.cooleshow.biz.dal.entity.VideoLessonPurchaseRecord;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.UserOrderService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
-import com.yonge.cooleshow.biz.dal.vo.*;
-import com.yonge.toolset.base.exception.BizException;
-import com.yonge.toolset.utils.obj.ObjectUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-import org.springframework.beans.factory.annotation.Autowired;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
+import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupLogService;
+import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupDetailUpVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupDetailVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupUpVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseStudent;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentVo;
+import com.yonge.toolset.utils.json.JsonUtil;
 
 /**
  * VideoLessonGroupDetailService服务实现类
@@ -52,6 +60,9 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
     private VideoLessonPurchaseRecordDao videoLessonPurchaseRecordDao;
     @Autowired
     private UserOrderService orderService;
+    
+    @Autowired
+    private VideoLessonGroupLogService videoLessonGroupLogService;
 
     @Autowired
     private TeacherService teacherService;
@@ -169,11 +180,13 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
         VideoLessonGroupSearch query = new VideoLessonGroupSearch();
         //筛选已审核的视频课
         query.setGroupId(groupId);
-        List<VideoLessonGroupVo> lessonGroup = videoLessonGroupDao.selectPage(null, query);
-        if (lessonGroup.isEmpty()){
-            return lessonStudentVo;
-        }
-        VideoLessonGroupVo videoLessonGroupVo = lessonGroup.get(0);
+
+        VideoLessonGroupVo videoLessonGroupVo = new VideoLessonGroupVo();
+        VideoLessonGroupLog videoLessonGroupLog = videoLessonGroupLogService.queryLastestShelvesInfo(groupId);
+        
+        BeanUtils.copyProperties(videoLessonGroupLog, videoLessonGroupVo);
+        
+        videoLessonGroupVo.setId(videoLessonGroupLog.getVideoLessonGroupId());
 
         Teacher teacher = teacherService.getById(videoLessonGroupVo.getTeacherId());
         if (teacher != null) {
@@ -185,7 +198,7 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
 
         VideoLessonSearch search = new VideoLessonSearch();
         search.setVideoLessonGroupId(groupId);
-        lessonStudentVo.setDetailList(videoLessonGroupDetailDao.selectPage(null, search));
+        lessonStudentVo.setDetailList(JsonUtil.parseArray(videoLessonGroupLog.getVideoDetailJson(), VideoLessonGroupDetail.class));
         return lessonStudentVo;
     }
 

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

@@ -29,5 +29,10 @@ public class VideoLessonGroupLogServiceImpl extends BaseServiceImpl<Long, VideoL
 	public VideoLessonGroupLog queryByVideoLessonGroupId(Long videoLessonGroupId, Long version) {
 		return videoLessonGroupLogDao.queryByVideoLessonGroupId(videoLessonGroupId, version);
 	}
+
+	@Override
+	public VideoLessonGroupLog queryLastestShelvesInfo(Long videoLessonGroupId) {
+		return videoLessonGroupLogDao.queryLastestShelvesInfo(videoLessonGroupId);
+	}
 	
 }

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

@@ -61,6 +61,7 @@ import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.string.MessageFormatter;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
+import com.yonge.toolset.utils.json.JsonUtil;
 
 /**
  * VideoLessonGroupService服务实现类
@@ -107,16 +108,21 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
      */
     @Override
     public IPage<VideoLessonGroupVo> selectPage(IPage<VideoLessonGroupVo> page, VideoLessonGroupSearch query) {
-        if(org.apache.commons.lang3.StringUtils.isNotBlank(query.getAuditStatus())){
-            if(query.getAuditStatus().equals(AuthStatusEnum.OUT_SALE.getCode())){
-                query.setAuditStatus(null);
-                query.setShelvesFlag(0);
-            }else if(query.getAuditStatus().equals(AuthStatusEnum.PASS.getCode())){
-                query.setShelvesFlag(1);
-            }else{
-            	query.setShelvesFlag(0);
-            }
-        }
+		if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getAuditStatus())) {
+
+			if (query.getAuditStatus().equals(AuthStatusEnum.DOING.getCode())) {
+				query.setShelvesFlag(null);
+			} else if (query.getAuditStatus().equals(AuthStatusEnum.UNPASS.getCode())) {
+				query.setShelvesFlag(null);
+			} else {
+				if (query.getAuditStatus().equals(AuthStatusEnum.OUT_SALE.getCode())) {
+					query.setAuditStatus(AuthStatusEnum.PASS.getCode());
+					query.setShelvesFlag(0);
+				} else if (query.getAuditStatus().equals(AuthStatusEnum.PASS.getCode())) {
+					query.setShelvesFlag(1);
+				}
+			}
+		}
         return page.setRecords(baseMapper.selectPage(page, query));
     }
 
@@ -155,6 +161,10 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void updateGroup(VideoLessonExamineVo examineVo) {
+    	
+    	if (examineVo.getAuditStatus().equals("PASS")) {
+    		examineVo.setShelvesFlag(1);
+    	}
         //改主表
         videoLessonGroupDao.updateExamine(examineVo);
 
@@ -252,6 +262,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     public void add(VideoLessonVo lessonVo, SysUser sysUser) {
         VideoLessonGroup lessonGroup = lessonVo.getLessonGroup();
         List<VideoLessonGroupDetail> lessonList = lessonVo.getLessonList();
+        lessonGroup.setLessonCount(lessonList.size());
 
         //校验声部
         Long subjectId = Long.valueOf(lessonGroup.getLessonSubject());
@@ -301,6 +312,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         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);
@@ -381,6 +393,8 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     public void update(VideoLessonVo lessonVo, SysUser sysUser) {
         VideoLessonGroup lessonGroup = lessonVo.getLessonGroup();
         List<VideoLessonGroupDetail> lessonList = lessonVo.getLessonList();
+        lessonGroup.setLessonCount(lessonList.size());
+        lessonGroup.setTeacherId(sysUser.getId());
         //判断是否有正在审核中
         QueryWrapper<VideoLessonAuthRecord> wrapper = new QueryWrapper<VideoLessonAuthRecord>();
         wrapper.eq("video_group_id_", lessonGroup.getId()).eq("audit_status_", AuthStatusEnum.DOING.getCode());
@@ -409,6 +423,17 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         //提交审核
         recordDao.insert(authRecord);*/
         
+        videoLessonGroupDetailDao.deleteByGroupId(lessonGroup.getId());
+		if (lessonList != null && lessonList.size() > 0) {
+			for (VideoLessonGroupDetail detail : lessonList) {
+				detail.setVideoLessonGroupId(lessonGroup.getId());
+				detail.setTeacherId(sysUser.getId());
+				detail.setUpdateBy(sysUser.getId());
+			}
+			// 添加课程
+			videoLessonGroupDetailDao.insertVideoLesson(lessonList);
+		}
+        
         VideoLessonGroupLog  videoLessonGroupLog = new VideoLessonGroupLog();
         
         try {
@@ -422,6 +447,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         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);
@@ -431,15 +457,6 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         lessonGroup.setAuditStatus(AuthStatusEnum.DOING);
         lessonGroup.setUpdateTime(date);
         videoLessonGroupDao.updateById(lessonGroup);
-        
-		if (lessonList != null && lessonList.size() > 0) {
-			for (VideoLessonGroupDetail detail : lessonList) {
-				detail.setVideoLessonGroupId(lessonGroup.getId());
-				detail.setTeacherId(sysUser.getId());
-			}
-			// 添加课程
-			videoLessonGroupDetailDao.insertVideoLesson(lessonList);
-		}
 
         //刷新统计
         VideoLessonGroupUpVo groupUpVo = new VideoLessonGroupUpVo();
@@ -455,15 +472,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
     @Override
     public IPage<LessonGroupVo> selectLessonGroup(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) {
         query.setAuditStatus(AuthStatusEnum.PASS.getCode());
-
-        if(org.apache.commons.lang3.StringUtils.isNoneBlank(query.getAuditStatus())){
-            if(query.getAuditStatus().equals("OUT_SALE")){
-                query.setAuditStatus(null);
-                query.setShelvesFlag(0);
-            }else{
-                query.setShelvesFlag(1);
-            }
-        }
+        query.setShelvesFlag(1);
         return page.setRecords(baseMapper.selectLessonGroup(page, query));
     }
 
@@ -474,18 +483,38 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
      */
     @Override
     public IPage<VideoLessonAuthGroup> queryGroupList(IPage<VideoLessonAuthGroup> page, VideoGroupSearch query) {
+        if(org.apache.commons.lang3.StringUtils.isNotBlank(query.getAuditStatus())){
+        	
+        	if(query.getAuditStatus().equals(AuthStatusEnum.DOING.getCode())){
+            	query.setShelvesFlag(null);
+        	}else if(query.getAuditStatus().equals(AuthStatusEnum.UNPASS.getCode())){
+            	query.setShelvesFlag(null);
+        	}else{
+        		if(query.getAuditStatus().equals(AuthStatusEnum.OUT_SALE.getCode())){
+                    query.setAuditStatus(AuthStatusEnum.PASS.getCode());
+                    query.setShelvesFlag(0);
+                }else if(query.getAuditStatus().equals(AuthStatusEnum.PASS.getCode())){
+                    query.setShelvesFlag(1);
+                }
+        	}
+        	
+        }
         return page.setRecords(baseMapper.queryGroupList(page, query));
     }
 
     @Override
     public IPage<VideoLessonAuthGroup> queryGroupHistoryList(IPage<VideoLessonAuthGroup> page, VideoGroupSearch query) {
-        return page.setRecords(baseMapper.queryGroupHistoryList(page, query));
+    	List<VideoLessonAuthGroup> list = baseMapper.queryGroupHistoryList(page, query);
+    	for(VideoLessonAuthGroup g : list){
+    		g.setVideoList(JsonUtil.parseArray(g.getVideoDetailJson(), VideoLessonGroupDetail.class));
+    	}
+        return page.setRecords(list);
     }
 
     @Override
     public VideoLessonAuthGroup authGroupDetil(Long videoGroupId) {
         VideoLessonAuthGroup videoLessonAuthGroup = baseMapper.authGroupDetil(videoGroupId);
-
+        
         List<VideoLessonGroupDetail> details = videoLessonGroupDetailDao.queryByVideoLessonGroupId(videoGroupId);
         videoLessonAuthGroup.setVideoList(details);
 
@@ -493,6 +522,10 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         VideoLessonGroupLog lastDetil = videoLessonGroupLogService.queryByVideoLessonGroupId(videoGroupId, videoLessonAuthGroup.getVersion());
         videoLessonAuthGroup.setLastVideoLessonGroupLog(lastDetil);
         
+        if(lastDetil != null){
+        	lastDetil.setVideoList(JsonUtil.parseArray(lastDetil.getVideoDetailJson(), VideoLessonGroupDetail.class));
+        }
+        
         return videoLessonAuthGroup;
     }
 

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonAuthGroup.java

@@ -38,6 +38,8 @@ public class VideoLessonAuthGroup extends VideoLessonGroup {
     @ApiModelProperty("上一次的修改记录")
     private VideoLessonGroupLog lastVideoLessonGroupLog;
     
+    private String videoDetailJson;
+    
     private Long version;
 
     public String getRemarks() {
@@ -112,4 +114,12 @@ public class VideoLessonAuthGroup extends VideoLessonGroup {
 		this.version = version;
 	}
 
+	public String getVideoDetailJson() {
+		return videoDetailJson;
+	}
+
+	public void setVideoDetailJson(String videoDetailJson) {
+		this.videoDetailJson = videoDetailJson;
+	}
+
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonExamineVo.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
 import com.yonge.cooleshow.common.entity.BaseEntity;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -33,6 +34,8 @@ public class VideoLessonExamineVo extends BaseEntity {
     private Long auditId;
 
     private String auditName;
+    
+    private Integer shelvesFlag;
 
     public Long getAuditId() {
         return auditId;
@@ -65,4 +68,12 @@ public class VideoLessonExamineVo extends BaseEntity {
     public void setAuditStatus(String auditStatus) {
         this.auditStatus = auditStatus;
     }
+
+	public Integer getShelvesFlag() {
+		return shelvesFlag;
+	}
+
+	public void setShelvesFlag(Integer shelvesFlag) {
+		this.shelvesFlag = shelvesFlag;
+	}
 }

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

@@ -592,7 +592,7 @@
             WHERE order_status_='PAID' GROUP BY video_lesson_group_id_) p ON g.id_=p.video_lesson_group_id_
         LEFT JOIN (
             SELECT video_group_id_,create_time_ FROM video_lesson_auth_record
-            WHERE audit_status_='PASS') r ON g.id_=r.video_group_id_
+            WHERE audit_status_='PASS' order by version_ desc limit 1) r ON g.id_=r.video_group_id_
         <where>
             <if test="param.search != null and param.search != ''">
                 AND (

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

@@ -520,6 +520,7 @@
             <if test="param.idAndName != null and param.idAndName != ''">
                 and (su.id_ like concat('%',#{param.idAndName} ,'%')
                 or su.username_ like concat('%',#{param.idAndName},'%')
+                or ms.music_sheet_name_ like concat('%',#{param.idAndName},'%')
                 or su.phone_ like concat('%',#{param.idAndName},'%'))
             </if>
             <if test="param.auditName != null and param.auditName != ''">

+ 11 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupLogMapper.xml

@@ -28,6 +28,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="version_" property="version" />
+		<result column="video_detail_json_" property="videoDetailJson" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -48,8 +49,8 @@
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO
 		video_lesson_group_log
-		(id_,video_lesson_group_id_,lesson_name_,lesson_subject_,lesson_desc_,lesson_price_,lesson_cover_url_,teacher_id_,lesson_count_,sort_number_,lesson_tag_,top_flag_,hot_flag_,shelves_flag_,shelves_time_,shelves_reason_,shelves_id_,modifier_id_,remarks,audit_version_,create_time_,update_time_,version_)
-		VALUES(#{id},#{videoLessonGroupId},#{lessonName},#{lessonSubject},#{lessonDesc},#{lessonPrice},#{lessonCoverUrl},#{teacherId},#{lessonCount},#{sortNumber},#{lessonTag},#{topFlag},#{hotFlag},#{shelvesFlag},#{shelvesTime},#{shelvesReason},#{shelvesId},#{modifierId},#{remarks},#{auditVersion},#{createTime},#{updateTime},#{version})
+		(id_,video_lesson_group_id_,lesson_name_,lesson_subject_,lesson_desc_,lesson_price_,lesson_cover_url_,teacher_id_,lesson_count_,sort_number_,lesson_tag_,top_flag_,hot_flag_,shelves_flag_,shelves_time_,shelves_reason_,shelves_id_,modifier_id_,remarks,audit_version_,create_time_,update_time_,version_,video_detail_json_)
+		VALUES(#{id},#{videoLessonGroupId},#{lessonName},#{lessonSubject},#{lessonDesc},#{lessonPrice},#{lessonCoverUrl},#{teacherId},#{lessonCount},#{sortNumber},#{lessonTag},#{topFlag},#{hotFlag},#{shelvesFlag},#{shelvesTime},#{shelvesReason},#{shelvesId},#{modifierId},#{remarks},#{auditVersion},#{createTime},#{updateTime},#{version},#{videoDetailJson})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -126,6 +127,9 @@
 			<if test="version != null">
 				version_ = #{version},
 			</if>
+			<if test="videoDetailJson != null">
+				video_detail_json_ = #{videoDetailJson},
+			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -154,4 +158,9 @@
 	<select id="queryByVideoLessonGroupId" resultMap="BaseResultMap">
 		SELECT * FROM video_lesson_group_log where video_lesson_group_id_ = #{videoLessonGroupId} and version_ = #{version}
 	</select>
+	
+	<select id="queryLastestShelvesInfo" resultMap="BaseResultMap">
+		SELECT gg.* FROM video_lesson_auth_record ar left join video_lesson_group_log gg on ar.video_group_id_ = gg.video_lesson_group_id_ and ar.version_ = gg.version_
+		where ar.video_group_id_ = #{videoLessonGroupId} and ar.audit_status_ = 'PASS' order by ar.version_ desc limit 1
+	</select>
 </mapper>

+ 5 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -95,6 +95,7 @@
 	<update id="updateExamine" parameterType="com.yonge.cooleshow.biz.dal.vo.VideoLessonExamineVo">
 		UPDATE video_lesson_group
 		<set>
+			<if test="shelvesFlag !=null">shelves_flag_ = #{shelvesFlag},</if>
 			<if test="auditStatus !=null and auditStatus !=''">audit_status_ = #{auditStatus},</if>
 			<if test="auditName !=null and auditName!=''">audit_name_ = #{auditName},</if>
 			<if test="auditId !=null">audit_id_ = #{auditId},</if>
@@ -399,6 +400,7 @@
 			g.shelves_reason_ as shelvesReason,
 			g.create_time_ AS createTime,
 			g.update_time_ AS updateTime,
+			g.video_detail_json_ as videoDetailJson,
 			r.audit_id_ AS auditId,
 			r.audit_name_ AS auditName,
 			r.audit_status_ AS auditStatus,
@@ -471,9 +473,9 @@
 			g.create_time_ AS createTime,
 			g.update_time_ AS updateTime,
 			g.audit_version_ as auditVersion,
-			r.audit_id_ AS auditId,
-			r.audit_name_ AS auditName,
-			r.audit_status_ AS auditStatus,
+			g.audit_id_ AS auditId,
+			g.audit_name_ AS auditName,
+			g.audit_status_ AS auditStatus,
 			r.version_ as version,
 			r.video_group_id_ as videoGroupId,
 			r.remarks as remarks,

+ 15 - 10
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/VideoLessonController.java

@@ -1,31 +1,36 @@
 package com.yonge.cooleshow.student.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 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.search.VideoLessonEvaluateSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonEvaluate;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonEvaluateService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupDetailService;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
-import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.LessonGroupVo;
 import com.yonge.cooleshow.biz.dal.vo.VideoLessonEvaluateVo;
 import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.constraints.NotNull;
+import com.yonge.toolset.mybatis.support.PageUtil;
 
 /**
  * @Author: cy