From b692f8e41c223cdaade444c812be2a8194ecebcc Mon Sep 17 00:00:00 2001 From: wangkaiyi Date: Wed, 11 Sep 2024 20:43:14 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E4=B8=8A=E8=A1=8C=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MasstransferCommon/Model/Constant/Topics.cs | 5 +++ .../StatExporter/Model/SystemVersion.cs | 8 ++++ .../StatExporter/SystemVersionExporter.cs | 43 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 MasstransferExporter/StatExporter/Model/SystemVersion.cs create mode 100644 MasstransferExporter/StatExporter/SystemVersionExporter.cs diff --git a/MasstransferCommon/Model/Constant/Topics.cs b/MasstransferCommon/Model/Constant/Topics.cs index dbcba63..d8b2bd2 100644 --- a/MasstransferCommon/Model/Constant/Topics.cs +++ b/MasstransferCommon/Model/Constant/Topics.cs @@ -120,4 +120,9 @@ public static class Topics /// 上行系统状态信息 /// public const string ReportSystemStat = $"up/{SN}/601/{Version}"; + + /// + /// 上行系统版本信息 + /// + public const string ReportSystemVersion = $"up/{SN}/602/{Version}"; } \ No newline at end of file diff --git a/MasstransferExporter/StatExporter/Model/SystemVersion.cs b/MasstransferExporter/StatExporter/Model/SystemVersion.cs new file mode 100644 index 0000000..b2ca8a8 --- /dev/null +++ b/MasstransferExporter/StatExporter/Model/SystemVersion.cs @@ -0,0 +1,8 @@ +namespace MasstransferExporter.StatExporter.Model; + +public class SystemVersion +{ + public Version softwareVersion { get; set; } + + public string hardwareVersion { get; set; } +} \ No newline at end of file diff --git a/MasstransferExporter/StatExporter/SystemVersionExporter.cs b/MasstransferExporter/StatExporter/SystemVersionExporter.cs new file mode 100644 index 0000000..8ac30a7 --- /dev/null +++ b/MasstransferExporter/StatExporter/SystemVersionExporter.cs @@ -0,0 +1,43 @@ +using System.Reflection; +using System.Runtime.Loader; +using MasstransferCommon.Atrributes; +using MasstransferCommon.Events; +using MasstransferCommon.Model.Constant; +using MasstransferCommunicate.Mqtt.Client; +using MasstransferExporter.StatExporter.Model; +using Minio.DataModel.Args; + +namespace MasstransferExporter.StatExporter; + +/// +/// 系统版本统计信息 +/// 定时触发,1d 一次 +/// +public class SystemVersionExporter : Instant +{ + private static async Task StartVersionExport(EventType type, bool start) + { + var version = new SystemVersion + { + softwareVersion = GetSoftwreVersion(), + hardwareVersion = "1.0.0", + }; + await MessageQueueHelper.Publish(Topics.ReportSystemVersion, version); + } + + private static Version GetSoftwreVersion() + { + var masstransferDir = "C:\\Users\\wangkaiyi\\RiderProjects\\MasstransferHost\\MasstransferDesktop\\bin\\Debug\\net7.0\\masstransfer.dll"; + // 使用 AssemblyLoadContext 动态加载程序集 + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(masstransferDir); + + // 获取程序集的 AssemblyName 对象 + var assemblyName = assembly.GetName(); + return assemblyName.Version; + } + + public void Initialized() + { + EventBus.AddEventHandler(EventType.StartUp, StartVersionExport); + } +} \ No newline at end of file