Browse Source

消息推送

24282 1 year ago
parent
commit
c88d4ee7f7

+ 12 - 0
hx-socket/src/main/java/com/fjhx/socket/core/WebSocketPush.java

@@ -112,6 +112,18 @@ public class WebSocketPush {
     }
 
     /**
+     * 推送一次消息数量
+     */
+    public static void pushMessageCount(Long userId) {
+        List<WebSocketServer> webSocketServers = WebSocketServer.webSocketMap.get(userId);
+        for (WebSocketServer webSocketServer : webSocketServers) {
+            PushParam pushParam = new PushParam();
+            pushParam.setUserId(webSocketServer.getUserId());
+            webSocketServer.sendMessage(PushTypeEnum.ANNOUNCEMENT, pushParam);
+        }
+    }
+
+    /**
      * 保存消息
      */
     private static void savePushInfo(PushTypeEnum pushTypeEnum, PushParam pushParam) {

+ 4 - 0
hx-socket/src/main/java/com/fjhx/socket/service/push/impl/PushInfoServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.socket.core.WebSocketPush;
 import com.fjhx.socket.entity.push.dto.PushInfoSelectDto;
 import com.fjhx.socket.entity.push.po.PushInfo;
 import com.fjhx.socket.entity.push.vo.PushInfoVo;
@@ -64,6 +65,9 @@ public class PushInfoServiceImpl extends ServiceImpl<PushInfoMapper, PushInfo> i
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
+
+        // 已读之后重新推送一次未读消息数量
+        WebSocketPush.pushMessageCount(SecurityUtils.getUserId());
     }
 
 }