|  | @@ -201,6 +201,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private SysMessageConfigDao sysMessageConfigDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private TenantInfoService tenantInfoService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private static final Logger LOGGER = LoggerFactory.getLogger(VipGroup.class);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -5080,35 +5083,48 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public void closeLiveCourseRoom() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        List<TenantInfo> list = tenantInfoService.list();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          Integer studentRemindTime = Integer.parseInt(sysConfigService.findByParamName(SysConfigService.liveClassStudentRemindTime).getParanValue());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Integer closeTime = Integer.parseInt(sysConfigService.findByParamName(SysConfigService.closeClassStudentRemindTime).getParanValue());
 | 
	
		
			
				|  |  | -        // 查询非连堂课  且  已经结束的课程
 | 
	
		
			
				|  |  | -        List<CourseSchedule> scheduleList = courseScheduleDao.getCloseLiveCourseRoom(studentRemindTime, null);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // 通知学生退出直播间
 | 
	
		
			
				|  |  | +        for (TenantInfo tenantInfo : list) {
 | 
	
		
			
				|  |  | +            // 是否是连堂课
 | 
	
		
			
				|  |  | +            String continueCourseTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME, tenantInfo.getId());
 | 
	
		
			
				|  |  | +            if (StringUtils.isEmpty(continueCourseTime)) {
 | 
	
		
			
				|  |  | +                continueCourseTime = "5";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            Integer messageTime = Integer.parseInt(continueCourseTime) + studentRemindTime;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        scheduleList.forEach(data -> {
 | 
	
		
			
				|  |  | -            ImLiveBroadcastRoom imLiveBroadcastRoomVo = imLiveBroadcastRoomService.getByRoomUid(data.getLiveRoomId());
 | 
	
		
			
				|  |  | -            if (!Objects.isNull(imLiveBroadcastRoomVo) ) {
 | 
	
		
			
				|  |  | -                if(imLiveBroadcastRoomVo.getLiveState() == 1) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    try {
 | 
	
		
			
				|  |  | -                        imLiveBroadcastRoomService.sendForcedOffline(imLiveBroadcastRoomVo);
 | 
	
		
			
				|  |  | +            // 查询非连堂课  且  已经结束的课程
 | 
	
		
			
				|  |  | +            List<CourseSchedule> scheduleList = courseScheduleDao.getCloseLiveCourseRoom(messageTime, null, tenantInfo.getId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                        courseScheduleDao.updateLiveRemind(data.getId(), 1);
 | 
	
		
			
				|  |  | -                    } catch (Exception e) {
 | 
	
		
			
				|  |  | -                        log.error("发送直播间退出消息失败", e);
 | 
	
		
			
				|  |  | +            // 通知学生退出直播间
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            scheduleList.forEach(data -> {
 | 
	
		
			
				|  |  | +                ImLiveBroadcastRoom imLiveBroadcastRoomVo = imLiveBroadcastRoomService.getByRoomUid(data.getLiveRoomId());
 | 
	
		
			
				|  |  | +                if (!Objects.isNull(imLiveBroadcastRoomVo)) {
 | 
	
		
			
				|  |  | +                    if (imLiveBroadcastRoomVo.getLiveState() == 1) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        try {
 | 
	
		
			
				|  |  | +                            imLiveBroadcastRoomService.sendForcedOffline(imLiveBroadcastRoomVo);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            courseScheduleDao.updateLiveRemind(data.getId(), 1);
 | 
	
		
			
				|  |  | +                        } catch (Exception e) {
 | 
	
		
			
				|  |  | +                            log.error("发送直播间退出消息失败", e);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    } else if (imLiveBroadcastRoomVo.getLiveState() == 2) {
 | 
	
		
			
				|  |  | +                        // 直播未开始 设置通知状态
 | 
	
		
			
				|  |  | +                        courseScheduleDao.updateLiveRemind(data.getId(), 2);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                } else if (imLiveBroadcastRoomVo.getLiveState() == 2) {
 | 
	
		
			
				|  |  | -                    // 直播未开始 设置通知状态
 | 
	
		
			
				|  |  | -                    courseScheduleDao.updateLiveRemind(data.getId(), 2);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 没有直播流 关闭直播间
 | 
	
		
			
				|  |  | -        scheduleList = courseScheduleDao.getCloseLiveCourseRoom(null, closeTime);
 | 
	
		
			
				|  |  | +        List<CourseSchedule> scheduleList = courseScheduleDao.getCloseLiveCourseRoom(null, closeTime,null);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 检测直播间是否有直播流
 | 
	
		
			
				|  |  |          scheduleList.forEach(data -> {
 | 
	
	
		
			
				|  | @@ -5132,6 +5148,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 |