From 0b81608b03c5e1e8a20db987dd04cb45bd94c1ad Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 12 六月 2025 19:45:48 +0800
Subject: [PATCH] 1

---
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomAuthorizeFilter.cs      |   20 ++++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs             |   29 +++++++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomProfile.cs              |   27 +++++++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperConfig.cs           |   18 ++++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutofacPropertityModuleReg.cs |   17 +++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketHostService.cs       |   25 ++++++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip             |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperSetup.cs            |   16 +++++
 8 files changed, 152 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip"
new file mode 100644
index 0000000..ab3f21e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperConfig.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperConfig.cs"
new file mode 100644
index 0000000..5b2cc51
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperConfig.cs"
@@ -0,0 +1,18 @@
+锘縰sing AutoMapper;
+
+namespace WIDESEAWCS_WCSServer.Filter
+{
+    /// <summary>
+    /// 闈欐�佸叏灞� AutoMapper 閰嶇疆鏂囦欢
+    /// </summary>
+    public class AutoMapperConfig
+    {
+        public static MapperConfiguration RegisterMappings()
+        {
+            return new MapperConfiguration(cfg =>
+            {
+                cfg.AddProfile(new CustomProfile());
+            });
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperSetup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperSetup.cs"
new file mode 100644
index 0000000..d1ac9d1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutoMapperSetup.cs"
@@ -0,0 +1,16 @@
+锘縩amespace WIDESEAWCS_WCSServer.Filter
+{
+    /// <summary>
+    /// Automapper 鍚姩鏈嶅姟
+    /// </summary>
+    public static class AutoMapperSetup
+    {
+        public static void AddAutoMapperSetup(this IServiceCollection services)
+        {
+            if (services == null) throw new ArgumentNullException(nameof(services));
+
+            services.AddAutoMapper(typeof(AutoMapperConfig));
+            AutoMapperConfig.RegisterMappings();
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutofacPropertityModuleReg.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutofacPropertityModuleReg.cs"
new file mode 100644
index 0000000..6191ee7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/AutofacPropertityModuleReg.cs"
@@ -0,0 +1,17 @@
+锘縰sing Autofac;
+using Microsoft.AspNetCore.Mvc;
+
+namespace WIDESEAWCS_WCSServer.Filter
+{
+    public class AutofacPropertityModuleReg : Autofac.Module
+    {
+        protected override void Load(ContainerBuilder builder)
+        {
+            var controllerBaseType = typeof(ControllerBase);
+            builder.RegisterAssemblyTypes(typeof(Program).Assembly)
+                .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
+                .PropertiesAutowired();
+
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomAuthorizeFilter.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomAuthorizeFilter.cs"
new file mode 100644
index 0000000..854f249
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomAuthorizeFilter.cs"
@@ -0,0 +1,20 @@
+锘縰sing Microsoft.AspNetCore.Mvc.Filters;
+using Microsoft.AspNetCore.Mvc;
+
+namespace WIDESEAWCS_Server.Filter
+{
+    public class CustomAuthorizeFilter : IAuthorizationFilter
+    {
+        public void OnAuthorization(AuthorizationFilterContext context)
+        {
+
+            // 浣犵殑鑷畾涔夋巿鏉冮�昏緫
+            // 渚嬪锛屸�屾鏌ョ敤鎴锋槸鍚﹀凡鐧诲綍锛屸�屾垨鑰呬粬浠槸鍚︽湁鐗瑰畾鐨勮鑹叉垨鏉冮檺
+            if (!context.HttpContext.User.Identity.IsAuthenticated)
+            {
+                // 鐢ㄦ埛鏈櫥褰曪紝鈥岄噸瀹氬悜鍒扮櫥褰曢〉闈㈡垨杩斿洖401鐘舵�佺爜
+                context.Result = new ChallengeResult();
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomProfile.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomProfile.cs"
new file mode 100644
index 0000000..4956725
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/CustomProfile.cs"
@@ -0,0 +1,27 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_DTO.System;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.Models;
+
+namespace WIDESEAWCS_WCSServer.Filter
+{
+    public class CustomProfile : Profile
+    {
+        /// <summary>
+        /// 閰嶇疆鏋勯�犲嚱鏁帮紝鐢ㄦ潵鍒涘缓鍏崇郴鏄犲皠
+        /// </summary>
+        public CustomProfile()
+        {
+            CreateMap<Sys_Menu, MenuDTO>();
+            CreateMap<Dt_DeviceInfo,DeviceInfoDTO>();
+            CreateMap<WMSTaskDTO, Dt_Task>().ForMember(a => a.WMSId, b => b.MapFrom(b => b.Id));
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketHostService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketHostService.cs"
new file mode 100644
index 0000000..2710b1c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketHostService.cs"
@@ -0,0 +1,25 @@
+锘�
+using HslCommunication.WebSocket;
+
+namespace WIDESEAWCS_Server.Filter
+{
+    public class WebSocketHostService : IHostedService
+    {
+        WebSocketServer _webSocketServer;
+         public WebSocketHostService(WebSocketServer webSocketServer)
+        {
+            _webSocketServer = webSocketServer;
+        }
+
+        public Task StartAsync(CancellationToken cancellationToken)
+        {
+            _webSocketServer.PublishAllClientPayload("绋嬪簭鍚姩");
+            return Task.CompletedTask;
+        }
+
+        public Task StopAsync(CancellationToken cancellationToken)
+        {
+            return Task.CompletedTask;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs"
new file mode 100644
index 0000000..26232e4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs"
@@ -0,0 +1,29 @@
+锘縰sing HslCommunication.WebSocket;
+using WIDESEAWCS_Core.Helper;
+
+namespace WIDESEAWCS_Server.HostedService
+{
+    public static class WebSocketSetup
+    {
+        public static void AddWebSocketSetup(this IServiceCollection services)
+        {
+            if (services == null) throw new ArgumentNullException(nameof(services));
+
+            if(AppSettings.Get("WebSocketEnable").ObjToBool())
+            {
+                int port = AppSettings.Get("WebSocketPort").ObjToInt();
+                if (port == 0)
+                {
+                    port = 9296;
+                }
+
+                services.AddSingleton(x =>
+                {
+                    WebSocketServer socketServer = new WebSocketServer();
+                    socketServer.ServerStart(port);
+                    return socketServer;
+                });
+            }
+        }
+    }
+}

--
Gitblit v1.9.3