|
@@ -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
|
|
|
}
|
|
|
|
|
|
});
|
|
|
-
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+
|