From 63322f39d7fd9b5255f516d97ff76ae06f738e96 Mon Sep 17 00:00:00 2001 From: tanglong <842690096@qq.com> Date: Tue, 13 Jan 2026 14:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DBContext/AppDbContext.cs | 2 + AiSportsMicrospaceDB/Entities/AppVersion.cs | 48 +++++++++++++++++++ Wpf_AiSportsMicrospace/Common/AppSettings.cs | 45 +++++++++++++++++ .../Wpf_AiSportsMicrospace.csproj | 6 +++ Wpf_AiSportsMicrospace/appsettings.json | 1 + Wpf_AiSportsMicrospace/version.txt | 1 + 6 files changed, 103 insertions(+) create mode 100644 AiSportsMicrospaceDB/Entities/AppVersion.cs create mode 100644 Wpf_AiSportsMicrospace/version.txt diff --git a/AiSportsMicrospaceDB/DBContext/AppDbContext.cs b/AiSportsMicrospaceDB/DBContext/AppDbContext.cs index fb91f03..97b1724 100644 --- a/AiSportsMicrospaceDB/DBContext/AppDbContext.cs +++ b/AiSportsMicrospaceDB/DBContext/AppDbContext.cs @@ -20,6 +20,8 @@ namespace AiSportsMicrospaceDB.DBContext public DbSet SixGroupPoints { get; set; } public DbSet JumpLongPoints { get; set; } + public DbSet AppVersion { get; set; } + public DbSet DeviceAssocSchool { get; set; } } } diff --git a/AiSportsMicrospaceDB/Entities/AppVersion.cs b/AiSportsMicrospaceDB/Entities/AppVersion.cs new file mode 100644 index 0000000..639a748 --- /dev/null +++ b/AiSportsMicrospaceDB/Entities/AppVersion.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AiSportsMicrospaceDB.Entities +{ + [Table("AppVersion")] + public class AppVersion + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + + /// + /// 应用类型 + /// + [Required] + public int AppType { get; set; } + + /// + /// 备注 + /// + [Column(TypeName = "nvarchar(2000)")] + public string? Remarks { get; set; } + + /// + /// 版本号 + /// + [Column(TypeName = "nvarchar(200)")] + public string? Version { get; set; } + + /// + /// 下载地址 + /// + [Column(TypeName = "nvarchar(2000)")] + public string? Url { get; set; } + + /// + /// 创建时间 + /// + [Required] + public DateTime CreateDate { get; set; } = DateTime.MinValue; + } +} diff --git a/Wpf_AiSportsMicrospace/Common/AppSettings.cs b/Wpf_AiSportsMicrospace/Common/AppSettings.cs index 0551909..4b22b76 100644 --- a/Wpf_AiSportsMicrospace/Common/AppSettings.cs +++ b/Wpf_AiSportsMicrospace/Common/AppSettings.cs @@ -1,8 +1,10 @@ using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; +using System.IO; using System.Net.Sockets; using System.Text; +using System.Text.Json; namespace Common { @@ -11,6 +13,7 @@ namespace Common public static string Code; public static string SchoolCode; public static string BackendUrl; + public static string Version; public static void Init(IConfiguration configuration) @@ -18,6 +21,48 @@ namespace Common Code = configuration["Code"] ?? ""; SchoolCode = configuration["SchoolCode"] ?? ""; BackendUrl = configuration["BackendUrl"] ?? ""; + Version = configuration["Version"] ?? ""; + } + + public static void UpdateCodeAndSchool(string filePath, string code, string schoolCode) + { + if (!File.Exists(filePath)) + throw new FileNotFoundException("appsettings.json not found", filePath); + + // 读取 JSON + var json = File.ReadAllText(filePath); + var jsonDoc = JsonSerializer.Deserialize>(json); + + if (jsonDoc == null) + throw new Exception("Failed to parse JSON"); + + // 更新值 + jsonDoc["Code"] = code; + jsonDoc["SchoolCode"] = schoolCode; + + // 写回文件,缩进美化 + var options = new JsonSerializerOptions { WriteIndented = true }; + File.WriteAllText(filePath, JsonSerializer.Serialize(jsonDoc, options)); + } + + public static void UpdateVersion(string filePath, string version) + { + if (!File.Exists(filePath)) + throw new FileNotFoundException("appsettings.json not found", filePath); + + // 读取 JSON + var json = File.ReadAllText(filePath); + var jsonDoc = JsonSerializer.Deserialize>(json); + + if (jsonDoc == null) + throw new Exception("Failed to parse JSON"); + + // 更新值 + jsonDoc["Version"] = version; + + // 写回文件,缩进美化 + var options = new JsonSerializerOptions { WriteIndented = true }; + File.WriteAllText(filePath, JsonSerializer.Serialize(jsonDoc, options)); } } } diff --git a/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj b/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj index 2f2913c..3c31460 100644 --- a/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj +++ b/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj @@ -502,4 +502,10 @@ + + + Always + + + diff --git a/Wpf_AiSportsMicrospace/appsettings.json b/Wpf_AiSportsMicrospace/appsettings.json index ccc2182..83b7985 100644 --- a/Wpf_AiSportsMicrospace/appsettings.json +++ b/Wpf_AiSportsMicrospace/appsettings.json @@ -4,5 +4,6 @@ }, "Code": "04-68-74-3F-87-72", "SchoolCode": "202501060001", + "Version": "1.0.0", "BackendUrl": "http://localhost:9991/api/StudentFace" } \ No newline at end of file diff --git a/Wpf_AiSportsMicrospace/version.txt b/Wpf_AiSportsMicrospace/version.txt new file mode 100644 index 0000000..60453e6 --- /dev/null +++ b/Wpf_AiSportsMicrospace/version.txt @@ -0,0 +1 @@ +v1.0.0 \ No newline at end of file