From 09bd91e68667e2e3080730368d5c3a031c4d3826 Mon Sep 17 00:00:00 2001 From: niannian zheng Date: Sat, 28 Feb 2026 16:58:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=95=B0=E6=8D=AE=E5=BA=93):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE=E6=A8=A1=E5=9E=8B=E5=B9=B6?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=88=9D=E5=A7=8B=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 InitDatabase.cs 文件,将数据库初始化逻辑移至其他位置 - 为 Portfolio、Position 和 Transaction 类添加索引 - 添加 AssetType 字段以支持多种资产类型 - 将 Shares 和 Amount 字段类型从 int 改为 decimal(18,8) --- AssetManager.Data/InitDatabase.cs | 46 ------------------------------- AssetManager.Data/Portfolio.cs | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 54 deletions(-) delete mode 100644 AssetManager.Data/InitDatabase.cs diff --git a/AssetManager.Data/InitDatabase.cs b/AssetManager.Data/InitDatabase.cs deleted file mode 100644 index 28f10f9..0000000 --- a/AssetManager.Data/InitDatabase.cs +++ /dev/null @@ -1,46 +0,0 @@ -using SqlSugar; - -namespace AssetManager.Data; - -public class InitDatabase -{ - public static void Main() - { - var db = SqlSugarConfig.GetSqlSugarClient(); - - try - { - db.CodeFirst.InitTables( - typeof(User), - typeof(Strategy), - typeof(Portfolio) - ); - - Console.WriteLine("数据库表创建成功!"); - - InsertSampleData(db); - } - catch (Exception ex) - { - Console.WriteLine($"数据库初始化失败: {ex.Message}"); - } - } - - private static void InsertSampleData(ISqlSugarClient db) - { - var now = DateTime.Now; - - db.Insertable(new Strategy - { - Id = "hfea", - UserId = "system", - Alias = "HFEA 风险平价策略", - Type = "risk_parity", - Config = "{\"cycle\": \"quarter\", \"threshold\": 0.05, \"allocation\": {\"UPRO\": 0.6, \"TMF\": 0.4}}\n", - CreatedAt = now, - UpdatedAt = now - }).ExecuteCommand(); - - Console.WriteLine("示例数据插入成功!"); - } -} diff --git a/AssetManager.Data/Portfolio.cs b/AssetManager.Data/Portfolio.cs index cdeade3..1b6b68d 100644 --- a/AssetManager.Data/Portfolio.cs +++ b/AssetManager.Data/Portfolio.cs @@ -17,13 +17,13 @@ public class Portfolio /// /// 所属用户ID /// - [SugarColumn(ColumnName = "user_id")] + [SugarColumn(ColumnName = "user_id", IndexGroupNameList = new string[] { "idx_user_id" })] public string UserId { get; set; } /// /// 所用策略ID /// - [SugarColumn(ColumnName = "strategy_id")] + [SugarColumn(ColumnName = "strategy_id", IndexGroupNameList = new string[] { "idx_strategy_id" })] public string StrategyId { get; set; } /// @@ -84,7 +84,7 @@ public class Position /// /// 所属组合ID /// - [SugarColumn(ColumnName = "portfolio_id")] + [SugarColumn(ColumnName = "portfolio_id", IndexGroupNameList = new string[] { "idx_portfolio_id" })] public string PortfolioId { get; set; } /// @@ -99,11 +99,17 @@ public class Position [SugarColumn(ColumnName = "stock_name", Length = 200)] public string StockName { get; set; } + /// + /// 资产类型 (Stock/Crypto) + /// + [SugarColumn(ColumnName = "asset_type", Length = 20)] + public string AssetType { get; set; } + /// /// 持有数量 /// - [SugarColumn(ColumnName = "shares")] - public int Shares { get; set; } + [SugarColumn(ColumnName = "shares", ColumnDataType = "decimal(18,8)")] + public decimal Shares { get; set; } /// /// 持仓均价 @@ -145,7 +151,7 @@ public class Transaction /// /// 所属组合ID /// - [SugarColumn(ColumnName = "portfolio_id")] + [SugarColumn(ColumnName = "portfolio_id", IndexGroupNameList = new string[] { "idx_portfolio_id" })] public string PortfolioId { get; set; } /// @@ -160,6 +166,12 @@ public class Transaction [SugarColumn(ColumnName = "stock_code", Length = 50)] public string StockCode { get; set; } + /// + /// 资产类型 (Stock/Crypto) + /// + [SugarColumn(ColumnName = "asset_type", Length = 20)] + public string AssetType { get; set; } + /// /// 交易标题 (如: 定期定投) /// @@ -169,8 +181,8 @@ public class Transaction /// /// 交易数量 /// - [SugarColumn(ColumnName = "amount")] - public int Amount { get; set; } + [SugarColumn(ColumnName = "amount", ColumnDataType = "decimal(18,8)")] + public decimal Amount { get; set; } /// /// 成交价格