刘俊驰 1 rok pred
rodič
commit
9133b20093

+ 13 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomServiceImpl.java

@@ -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())) {