|
@@ -340,7 +340,8 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
|
|
|
Date now = new Date();
|
|
|
courseScheduleList.forEach(c -> {
|
|
|
try {
|
|
|
- liveRoomService.updateLiveCourseSchedule(preCreateRoomMinute, titleMap, remarkMap, en, now, c);
|
|
|
+ DistributedLock.of(redissonClient).runIfLockCanGet("LIVE_COURSE_CREATE:"+c.getId(), () ->
|
|
|
+ liveRoomService.updateLiveCourseSchedule(preCreateRoomMinute, titleMap, remarkMap, en, now, c));
|
|
|
} catch (Exception e) {
|
|
|
log.error("createCourseLiveRoom>>>生成直播间失败:{}", c, e);
|
|
|
}
|
|
@@ -360,9 +361,17 @@ public class LiveRoomServiceImpl extends ServiceImpl<LiveRoomDao, LiveRoom> impl
|
|
|
// 如果是同时在管乐迷和酷乐秀直播的老师
|
|
|
|
|
|
String teacherIds = sysConfigService.findConfigValue(SysConfigConstant.LIVE_TEACHER_IDS);
|
|
|
- if (StringUtils.isNotBlank(c.getRoomUid()) && (StringUtils.isBlank(teacherIds) || !Arrays.asList(teacherIds.split(",")).contains(c.getTeacherId().toString()))) {
|
|
|
- log.info("createCourseLiveRoom>>>roomUid:{} 已存在", c.getRoomUid());
|
|
|
- return;
|
|
|
+ if (StringUtils.isNotBlank(c.getRoomUid())) {
|
|
|
+ if ((StringUtils.isBlank(teacherIds) || !Arrays.asList(teacherIds.split(",")).contains(c.getTeacherId().toString()))) {
|
|
|
+ log.info("createCourseLiveRoom>>>roomUid:{} 已存在", c.getRoomUid());
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ LiveRoom room = getByRoomUid(c.getRoomUid());
|
|
|
+ if (room != null) {
|
|
|
+ log.info("createCourseLiveRoom>>>roomUid:{} 已存在", c.getRoomUid());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
LiveRoom room = new LiveRoom();
|
|
|
if (StringUtils.isBlank(c.getRoomUid())) {
|