| 
					
				 | 
			
			
				@@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.yonge.cooleshow.biz.dal.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Collection; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -15,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.MusicAlbum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.entity.MusicTag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.course.CourseRelationTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -123,13 +125,6 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CourseRelationMusicAlbumService courseRelationMusicAlbumService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private VideoLessonPurchaseRecordService videoLessonPurchaseRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public VideoLessonGroupDao getDao() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return videoLessonGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -156,13 +151,24 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return page.setRecords(baseMapper.selectPage(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<VideoLessonGroupVo> videoLessonGroupVos = baseMapper.selectPage(page, query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (VideoLessonGroupVo videoLessonGroupVo : videoLessonGroupVos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return page.setRecords(videoLessonGroupVos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<VideoLessonGroupVo> selectPage(VideoLessonGroupSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<VideoLessonGroupVo> list = baseMapper.selectPage(null, query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<VideoLessonGroupVo> collect = list.stream().filter(videoLessonGroupVo -> !videoLessonGroupVo.getId().equals(query.getVideoLessonGroupId())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                .sorted(Comparator.comparing(VideoLessonGroupVo::getCountStudent, Comparator.reverseOrder())).limit(2).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (VideoLessonGroupVo videoLessonGroupVo : collect) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return collect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -495,7 +501,13 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<VideoLessonTeacherVo> selectTeacherPage(IPage<VideoLessonTeacherVo> page, VideoLessonSearch search) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return page.setRecords(baseMapper.selectTeacherPage(page, search)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<VideoLessonTeacherVo> videoLessonTeacherVos = baseMapper.selectTeacherPage(page, search); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (VideoLessonTeacherVo videoLessonGroupVo : videoLessonTeacherVos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (new BigDecimal(videoLessonGroupVo.getLessonPrice()).compareTo(BigDecimal.ZERO) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return page.setRecords(videoLessonTeacherVos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -556,7 +568,11 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isEmpty(lessonGroup)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return lessonGroup.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VideoLessonGroupVo videoLessonGroupVo = lessonGroup.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return videoLessonGroupVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -679,7 +695,13 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<LessonGroupVo> selectLessonGroup(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.setAuditStatus(AuthStatusEnum.PASS.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query.setShelvesFlag(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return page.setRecords(baseMapper.selectLessonGroup(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<LessonGroupVo> lessonGroupVos = baseMapper.selectLessonGroup(page, query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (LessonGroupVo videoLessonGroupVo : lessonGroupVos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return page.setRecords(lessonGroupVos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -886,5 +908,32 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setVirtualNumber() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<VideoLessonGroup> videoLessonGroups = this.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .select(VideoLessonGroup::getId,VideoLessonGroup::getVirtualNumber) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                .eq(VideoLessonGroup::getAuditStatus, AuthStatusEnum.PASS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                .eq(VideoLessonGroup::getDraftFlag, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                .eq(VideoLessonGroup::getLessonPrice, BigDecimal.ZERO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                .eq(VideoLessonGroup::getAuditVersion, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                .eq(VideoLessonGroup::getShelvesFlag, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isEmpty(videoLessonGroups)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //给每个曲目设置增长值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String value = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_VIRTUAL_NUMBER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (VideoLessonGroup videoLessonGroup : videoLessonGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int i = (int) (Math.random() * Integer.parseInt(value)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            videoLessonGroup.setVirtualNumber(i +videoLessonGroup.getVirtualNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 保存虚拟人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.updateBatchById(videoLessonGroups,100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |