sunkean 3 лет назад
Родитель
Сommit
ca9c2ccd0f

+ 4 - 0
src/main/java/com/izouma/meta/config/Constants.java

@@ -33,6 +33,10 @@ public interface Constants {
 
     String META_WEBSOCKET_NOTICE_LIVE_CLOSE = "META_WEBSOCKET_NOTICE_LIVE_CLOSE";
 
+    String META_WEBSOCKET_NOTICE_FIRE = "META_WEBSOCKET_NOTICE_FIRE";
+
+    String META_WEBSOCKET_NOTICE_LIVE = "META_WEBSOCKET_NOTICE_LIVE";
+
     interface MetaRestCode {
 
         int success = 200;

+ 12 - 0
src/main/java/com/izouma/meta/repo/MetaSwitchRepo.java

@@ -0,0 +1,12 @@
+package com.izouma.meta.repo;
+
+
+import com.izouma.meta.domain.MetaSwitch;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface MetaSwitchRepo extends JpaRepository<MetaSwitch, Long>, JpaSpecificationExecutor<MetaSwitch> {
+
+    MetaSwitch findByNameAndDel(String name, boolean del);
+
+}

+ 22 - 0
src/main/java/com/izouma/meta/websocket/WebSocket.java

@@ -5,9 +5,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.izouma.meta.config.Constants;
 import com.izouma.meta.domain.MetaEmail;
 import com.izouma.meta.domain.MetaEmailRecord;
+import com.izouma.meta.domain.MetaSwitch;
 import com.izouma.meta.dto.PublicScreenChatExceptionMsg;
 import com.izouma.meta.repo.MetaEmailRecordRepo;
 import com.izouma.meta.repo.MetaEmailRepo;
+import com.izouma.meta.repo.MetaSwitchRepo;
 import com.izouma.meta.repo.MetaZouMaLightRepo;
 import com.izouma.meta.utils.ApplicationContextUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -42,6 +44,8 @@ public class WebSocket {
 
     private MetaZouMaLightRepo metaZouMaLightRepo;
 
+    private MetaSwitchRepo metaSwitchRepo;
+
     private void init() {
         if (Objects.isNull(websocketCommon)) {
             websocketCommon = (WebsocketCommon) ApplicationContextUtil.getBean("websocketCommon");
@@ -55,6 +59,9 @@ public class WebSocket {
         if (Objects.isNull(metaZouMaLightRepo)) {
             metaZouMaLightRepo = (MetaZouMaLightRepo) ApplicationContextUtil.getBean("metaZouMaLightRepo");
         }
+        if (Objects.isNull(metaSwitchRepo)) {
+            metaSwitchRepo = (MetaSwitchRepo) ApplicationContextUtil.getBean("metaSwitchRepo");
+        }
     }
 
     @OnOpen
@@ -74,6 +81,21 @@ public class WebSocket {
         }
         log.info("现在来连接的sessionId:" + session.getId() + "玩家id:" + userId);
         clients.put(userId, session);
+        MetaSwitch metaSwitchFire = metaSwitchRepo.findByNameAndDel(Constants.META_WEBSOCKET_NOTICE_FIRE, false);
+        if (Objects.isNull(metaSwitchFire)) {
+            return;
+        }
+        if (metaSwitchFire.isStatus()) {
+            websocketCommon.sendMessageTo(clients, JSON.toJSONString(Constants.META_WEBSOCKET_NOTICE_FIRE_OPEN), userId);
+        }
+        MetaSwitch metaSwitchLive = metaSwitchRepo.findByNameAndDel(Constants.META_WEBSOCKET_NOTICE_LIVE, false);
+        if (Objects.isNull(metaSwitchLive)) {
+            return;
+        }
+        if (metaSwitchLive.isStatus()) {
+            websocketCommon.sendMessageTo(clients, JSON.toJSONString(Constants.META_WEBSOCKET_NOTICE_LIVE_OPEN), userId);
+        }
+
     }
 
     @OnError