| 
					
				 | 
			
			
				@@ -1,5 +1,20 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.yonge.cooleshow.biz.dal.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Comparator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,35 +25,43 @@ import com.yonge.cooleshow.biz.dal.dao.TeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.VideoLessonAuthRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.dto.LiveSaleOutDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.search.VideoGroupSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.Subject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.Teacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.VideoLessonAuthRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupLog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.ClientEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.service.SysConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.service.SysConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.SysMessageService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.TeacherService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupLogService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.vo.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.CountVideoGroupVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.LessonGroupVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonExamineVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupUpVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonShelvesVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentDetailVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonTeacherVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.VideoLessonVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.common.constant.SysConfigConstant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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 io.netty.util.internal.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.utils.json.JsonUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * VideoLessonGroupService服务实现类 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,6 +93,9 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SysConfigService sysConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private VideoLessonGroupLogService videoLessonGroupLogService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public VideoLessonGroupDao getDao() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return videoLessonGroupDao; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,14 +108,21 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<VideoLessonGroupVo> selectPage(IPage<VideoLessonGroupVo> page, VideoLessonGroupSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(!StringUtil.isNullOrEmpty(query.getAuditStatus())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(query.getAuditStatus().equals("OUT_SALE")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                query.setAuditStatus(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                query.setShelvesFlag(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                query.setShelvesFlag(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,9 +161,13 @@ 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoLessonGroup lessonGroup = baseMapper.selectById(examineVo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //插从表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoLessonAuthRecord record = new VideoLessonAuthRecord(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,6 +176,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setAuditId(examineVo.getAuditId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setAuditName(examineVo.getAuditName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setRemarks(examineVo.getRemarks()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        record.setVersion(videoLessonGroupLogService.queryMaxVersion(examineVo.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         recordDao.insert(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //清状态 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -224,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()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -232,6 +271,8 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!longList.contains(subjectId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("该声部无法选择"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //添加组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lessonGroup.setTeacherId(sysUser.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -252,10 +293,29 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         videoLessonGroupDao.updateGroup(groupUpVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //记录video_lesson_auth_record 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        VideoLessonAuthRecord record = new VideoLessonAuthRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*VideoLessonAuthRecord record = new VideoLessonAuthRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setVideoGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        record.setGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         record.setAuditStatus(AuthStatusEnum.DOING.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        recordDao.insert(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -300,6 +360,12 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoLessonGroupVo videoLessonGroupVo = detail(groupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (videoLessonGroupVo == null) return lessonStudentVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Teacher teacher = teacherService.getById(videoLessonGroupVo.getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (teacher != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lessonStudentVo.setTeacherFlag(teacher.getTeacherFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            lessonStudentVo.setDegreeFlag(teacher.getDegreeFlag()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lessonStudentVo.setLessonGroup(videoLessonGroupVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoLessonSearch search = new VideoLessonSearch(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         search.setVideoLessonGroupId(groupId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -323,43 +389,78 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @Date: 2022/4/7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void update(VideoLessonVo lessonVo, SysUser sysUser) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoLessonGroup lessonGroup = lessonVo.getLessonGroup(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<VideoLessonGroupDetail> lessonList = lessonVo.getLessonList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询原评审信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<VideoLessonAuthRecord> recordList = recordDao.selectList(Wrappers.<VideoLessonAuthRecord>lambdaQuery().eq(VideoLessonAuthRecord::getVideoGroupId, lessonGroup.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Long> recoreIds = recordList.stream().map(VideoLessonAuthRecord::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //清除原有组&课 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        videoLessonGroupDao.deleteById(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        videoLessonGroupDetailDao.deleteByGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //添加组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lessonGroup.setLessonCount(lessonList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         lessonGroup.setTeacherId(sysUser.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        videoLessonGroupDao.insert(lessonGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (VideoLessonGroupDetail detail : lessonList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            detail.setVideoLessonGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            detail.setTeacherId(sysUser.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //判断是否有正在审核中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        QueryWrapper<VideoLessonAuthRecord> wrapper = new QueryWrapper<VideoLessonAuthRecord>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        wrapper.eq("video_group_id_", lessonGroup.getId()).eq("audit_status_", AuthStatusEnum.DOING.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<VideoLessonAuthRecord> videoLessonAuthRecords = recordDao.selectList(wrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(CollectionUtils.isNotEmpty(videoLessonAuthRecords)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	throw new BizException("正在审核中,无法修改"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //添加课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        videoLessonGroupDetailDao.insertVideoLesson(lessonList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //校验声部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long subjectId = Long.valueOf(lessonGroup.getLessonSubject()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Subject> subjectList = teacherDao.querySubject(sysUser.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> longList = subjectList.stream().map(Subject::getId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!longList.contains(subjectId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new BizException("该声部无法选择"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*//创建新的评审记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VideoLessonAuthRecord authRecord = new VideoLessonAuthRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authRecord.setGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authRecord.setAuditStatus(AuthStatusEnum.DOING.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authRecord.setAuthType(AuthTypeEnum.MODIFY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authRecord.setVideoGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //提交审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lessonGroup.setAuditStatus(AuthStatusEnum.DOING); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lessonGroup.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        videoLessonGroupDao.updateById(lessonGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //刷新统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoLessonGroupUpVo groupUpVo = new VideoLessonGroupUpVo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         groupUpVo.setId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         videoLessonGroupDao.updateGroup(groupUpVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //更新历史记录的组id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        recordDao.updateIds(recoreIds, lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //重新提审 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        VideoLessonAuthRecord record = new VideoLessonAuthRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        record.setVideoGroupId(lessonGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        record.setAuditStatus(AuthStatusEnum.DOING.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        recordDao.insert(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -370,15 +471,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<LessonGroupVo> selectLessonGroup(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.setAuditStatus(AuthStatusEnum.PASS.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(!StringUtil.isNullOrEmpty(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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -389,9 +482,52 @@ 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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //查询上一次的提交 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VideoLessonGroupLog lastDetil = videoLessonGroupLogService.queryByVideoLessonGroupId(videoGroupId, videoLessonAuthGroup.getVersion()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        videoLessonAuthGroup.setLastVideoLessonGroupLog(lastDetil); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(lastDetil != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	lastDetil.setVideoList(JsonUtil.parseArray(lastDetil.getVideoDetailJson(), VideoLessonGroupDetail.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return videoLessonAuthGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @Description: 学生端-我的-我的课程-购买的视频课组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @Author: cy 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -399,7 +535,8 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<LessonGroupVo> selectLessonGroupById(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return page.setRecords(baseMapper.selectLessonGroup(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return page.setRecords(baseMapper.queryMyLessonGroup(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |