From b9d9c0e91d8bbdf411540daa0d5887140d6327f9 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 28 十月 2025 21:34:28 +0800
Subject: [PATCH] 添加提示信息前端弹窗显示

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs |   66 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 1 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
index a389508..686f7e5 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
@@ -2,6 +2,7 @@
 using HslCommunication.WebSocket;
 using Microsoft.Extensions.Hosting;
 using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
 using Org.BouncyCastle.Asn1.Ocsp;
 using SqlSugar.Extensions;
 using System;
@@ -10,20 +11,74 @@
 using System.Text;
 using System.Text.Json;
 using System.Threading.Tasks;
+using WIDESEA_Core.Caches;
+using WIDESEA_Core.Helper;
+using WIDESEA_Core.Seed;
 
 namespace WIDESEA_Core
 {
     public class WebSocketHostedService : IHostedService
     {
+        private readonly DBContext _dbContext;
+        private readonly ICacheService _cacheService;
         private readonly WebSocketServer _webSocketServer;
 
-        public WebSocketHostedService(WebSocketServer webSocketServer)
+        public WebSocketHostedService(DBContext dbContext, ICacheService cacheService, WebSocketServer webSocketServer)
         {
             _webSocketServer = webSocketServer;
+            _dbContext = dbContext;
+            _cacheService = cacheService;
+            _webSocketServer.OnClientConnected += webSocketServer_OnClientConnected;
+        }
+
+        private void webSocketServer_OnClientConnected(WebSocketSession session)
+        {
+            string MessageInfo = _cacheService.Get("MessageInfo");
+            if (!string.IsNullOrEmpty(MessageInfo))
+            {
+                List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+                if (messages != null && messages.Count > 0)
+                {
+                    foreach (var item in messages)
+                    {
+                        object obj = new
+                        {
+                            title = item.MessageGroupBy,
+                            name = item.MessageName,
+                            message = item.MessageInfo,
+                            date = DateTime.Now.ToString(),
+                        };
+                        //_webSocketServer.PublishAllClientPayload(obj.Serialize());
+                        _webSocketServer.SendClientPayload(session, obj.Serialize());
+                    }
+                }
+            }
         }
 
         public async Task StartAsync(CancellationToken cancellationToken)
         {
+            WebSocketSession? webSocketSession = _webSocketServer.OnlineSessions.FirstOrDefault(x => x.Url.Contains(App.User.UserName));
+            string MessageInfo = _cacheService.Get("MessageInfo");
+            if (!string.IsNullOrEmpty(MessageInfo))
+            {
+                List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+                if (messages != null && messages.Count > 0)
+                {
+                    foreach (var item in messages)
+                    {
+                        object obj = new
+                        {
+                            title = item.MessageGroupBy,
+                            name = item.MessageName,
+                            message = item.MessageInfo,
+                            date = item.Date,
+                        };
+                        //_webSocketServer.PublishAllClientPayload(obj.Serialize());
+                        if (webSocketSession != null)
+                            _webSocketServer.SendClientPayload(webSocketSession, obj.Serialize());
+                    }
+                }
+            }
             await Task.CompletedTask;
         }
 
@@ -31,5 +86,14 @@
         {
             await Task.CompletedTask;
         }
+
+        public class Message
+        {
+            public int Id { get; set; }
+            public string MessageGroupBy { get; set; }
+            public string MessageName { get; set; }
+            public string MessageInfo { get; set; }
+            public DateTime Date { get; set; }
+        }
     }
 }

--
Gitblit v1.9.3