| 
					
				 | 
			
			
				@@ -49,6 +49,7 @@ import com.yonge.toolset.utils.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.toolset.utils.obj.ObjectUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.jetbrains.annotations.NotNull; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.redisson.api.RLock; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.redisson.api.RMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.redisson.api.RedissonClient; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1027,6 +1028,16 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> sysConfig = getCourseJoinMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map map = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("sysConfig", sysConfig); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("studentList", studentList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @NotNull 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, String> getCourseJoinMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, String> sysConfig = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //提前XX分钟创建/进入VIP课房间时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sysConfig.put("vipStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_VIP_ROOM_MINUTE)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1044,11 +1055,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sysConfig.put("pianoStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_PIANO_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //琴房课结束后,XX分钟关闭房间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sysConfig.put("pianoEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PIANO_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map map = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        map.put("sysConfig", sysConfig); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        map.put("studentList", studentList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return sysConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1602,6 +1609,39 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     coursesPractice.setCourseGroupName(coursesPractice.getCourseGroupName() + "-" + sysUser.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置课程进入状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (homePage.getRecentCourses() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int start = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, String> courseJoinMap = getCourseJoinMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StudentHomePage.RecentCourses recentCourses = homePage.getRecentCourses(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch (recentCourses.getCourseType()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "PRACTICE": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    start= Integer.parseInt(courseJoinMap.get("practiceStartTime")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "LIVE": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    start= Integer.parseInt(courseJoinMap.get("liveStartTime")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "PIANO_ROOM_CLASS": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    start= Integer.parseInt(courseJoinMap.get("pianoStartTime")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case "VIP": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    start= Integer.parseInt(courseJoinMap.get("vipStartTime")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (start >0 && recentCourses.getStatus().equals(CourseScheduleEnum.NOT_START.getCode()) && recentCourses.getCourseStartTime() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Date date = DateUtil.addMinutes(recentCourses.getCourseStartTime(), -start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (date.before(new Date())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    recentCourses.setStatus(CourseScheduleEnum.ING.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return homePage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1762,23 +1802,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @Date: 2022/5/10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Map<String, String> selectRoomConfig() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String, String> sysConfig = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //提前XX分钟创建/进入VIP课房间时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("vipStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_VIP_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //VIP课结束后,XX分钟关闭房间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("vipEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_VIP_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //提前XX分钟创建/进入陪练课房间时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("practiceStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_PRACTICE_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //趣纠课结束后,XX分钟关闭房间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("practiceEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PRACTICE_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //提前XX分钟创建/进入直播房间的时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("liveStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_LIVE_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //直播结束后,XX分钟关闭房间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("liveEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_LIVE_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //提前XX分钟创建/进入琴房课房间时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("pianoStartTime", sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_PIANO_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //琴房课结束后,XX分钟关闭房间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysConfig.put("pianoEndTime", sysConfigService.findConfigValue(SysConfigConstant.DESTROY_EXPIRED_PIANO_ROOM_MINUTE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> sysConfig = getCourseJoinMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return sysConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |