Quellcode durchsuchen

生成sql脚本完善

lichunlei vor 7 Monaten
Ursprung
Commit
46242f0e01

+ 5 - 0
.vscode/extensions.json

@@ -0,0 +1,5 @@
+{
+    "recommendations": [
+        "alibaba-cloud.tongyi-lingma"
+    ]
+}

+ 5 - 0
Controllers/Admin/DatabaseFieldController.cs

@@ -7,6 +7,7 @@ using Vo.Admin;
 using Mapster;
 using Infrastructure;
 using Dto.Admin;
+using Util;
 
 
 namespace Controllers.Admin
@@ -156,6 +157,10 @@ namespace Controllers.Admin
         [Route("/v1/omega_source/DatabaseField/makeDatabaseField")]
         public IActionResult makeDatabaseField([FromBody] MakeDatabaseFieldDto param)
         {
+            TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
+            int tableId = param.id.Length > 0 ? param.id[0] : 0;
+            var table = _DatabaseTableService.GetFirst(m => m.id == tableId) ?? new DatabaseTable();
+            _DatabaseFieldService.makeDatabaseField(param, table, loginUser);
             return SUCCESS("ok");
         }
 

+ 3 - 0
Controllers/Admin/DatabaseTableController.cs

@@ -7,6 +7,7 @@ using Vo.Admin;
 using Mapster;
 using Infrastructure;
 using Dto.Admin;
+using Util;
 
 
 namespace Controllers.Admin
@@ -127,6 +128,8 @@ namespace Controllers.Admin
         [Route("/v1/omega_source/DatabaseTable/makeDatabaseTable")]
         public IActionResult makeDatabaseTable([FromBody] MakeDatabaseTableDto param)
         {
+            TokenModel loginUser = JwtUtil.GetLoginUser(HttpContext);
+            _DatabaseTableService.makeDatabaseTable(param, loginUser);
             return SUCCESS("ok");
         }
 

+ 1 - 1
Model/Dto/Admin/MakeDatabaseFieldDto.cs

@@ -12,7 +12,7 @@ namespace Dto.Admin
         /// <summary>
         /// 字段ID
         /// </summary>
-        public int id { get; set; }
+        public int[] id { get; set; }
 
 
 

+ 1 - 1
Model/Dto/Admin/MakeDatabaseTableDto.cs

@@ -12,7 +12,7 @@ namespace Dto.Admin
         /// <summary>
         /// 表ID
         /// </summary>
-        public int id { get; set; }
+        public int[] id { get; set; }
 
 
 

+ 32 - 0
Services/DatabaseFieldService.cs

@@ -6,6 +6,9 @@ using Service;
 using Microsoft.AspNetCore.Mvc;
 using Vo.Admin;
 using Dto.Admin;
+using System.Linq;
+using Common;
+using Custom;
 
 
 namespace Services
@@ -16,6 +19,7 @@ namespace Services
     [AppService(ServiceType = typeof(IDatabaseFieldService), ServiceLifetime = LifeTime.Transient)]
     public class DatabaseFieldService : BaseService<DatabaseField>, IDatabaseFieldService
     {
+
         /// <summary>
         /// 数据字段-列表
         /// </summary>
@@ -84,5 +88,33 @@ namespace Services
                 Add(newField);
             }
         }
+
+
+        /// <summary>
+        /// 生成SQL脚本
+        /// </summary>
+        /// <param name="param">参数请求体</param>
+        /// <returns>生成</returns>
+        public void makeDatabaseField([FromBody] MakeDatabaseFieldDto param, DatabaseTable table, TokenModel loginUser)
+        {
+            string tableName = table.tableName;
+            List<int> fieldIds = param.id.ToList();
+            List<DatabaseField> fields = GetList(m => fieldIds.Contains(m.id));
+
+            MakeData makeData = new();
+            string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
+            makeData.requestId = requestId;
+            makeData.modePath = "Sql/dbField.sql";
+            Dictionary<string, string> attach = new();
+            attach.Add("id", "0");
+            attach.Add("kind", "dbField");
+            attach.Add("operator", loginUser.username);
+            makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
+            makeData.data = new Dictionary<string, object>();
+            makeData.data.Add("opType", "add");
+            makeData.data.Add("tableName", tableName);
+            makeData.data.Add("databaseField", fields);
+            RabbitMQClient.Instance.Push("MakeSqlQueue", Newtonsoft.Json.JsonConvert.SerializeObject(makeData));
+        }
     }
 }

+ 36 - 0
Services/DatabaseTableService.cs

@@ -6,6 +6,9 @@ using Service;
 using Microsoft.AspNetCore.Mvc;
 using Vo.Admin;
 using Dto.Admin;
+using Custom;
+using Common;
+using System.Linq;
 
 
 namespace Services
@@ -180,5 +183,38 @@ namespace Services
                 }
             }
         }
+    
+    
+    
+        /// <summary>
+        /// 生成SQL脚本
+        /// </summary>
+        /// <param name="param">参数请求体</param>
+        /// <returns>生成</returns>
+        public void makeDatabaseTable([FromBody] MakeDatabaseTableDto param, TokenModel loginUser)
+        {
+            List<int> tableIds = param.id.ToList();
+            List<DatabaseTable> tables = GetList(m => tableIds.Contains(m.id));
+            foreach(DatabaseTable table in tables)
+            {
+                table.fields = _DatabaseFieldService.GetList(m => m.tableId == table.id);
+            }
+
+            MakeData makeData = new();
+            string requestId = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(8);
+            makeData.requestId = requestId;
+            makeData.modePath = "Sql/dbTable.sql";
+            Dictionary<string, string> attach = new();
+            attach.Add("id", "0");
+            attach.Add("kind", "dbTable");
+            attach.Add("operator", loginUser.username);
+            makeData.attach = Newtonsoft.Json.JsonConvert.SerializeObject(attach);
+            makeData.data = new Dictionary<string, object>();
+            makeData.data.Add("databaseTable", tables);
+            RabbitMQClient.Instance.Push("MakeSqlQueue", Newtonsoft.Json.JsonConvert.SerializeObject(makeData));
+        }
+    
+    
+    
     }
 }

+ 9 - 0
Services/IService/IDatabaseFieldService.cs

@@ -23,5 +23,14 @@ namespace Services
         /// </summary>
         /// <param name="param">参数请求体</param>
         void copyDatabaseField([FromBody] CopyDatabaseFieldDto param, DatabaseTable targetTable);
+
+
+        /// <summary>
+        /// 添加数据字段
+        /// </summary>
+        /// <param name="param">参数请求体</param>
+        /// <param name="table">数据表</param>
+        /// <param name="loginUser">登录用户</param>
+        void makeDatabaseField([FromBody] MakeDatabaseFieldDto param, DatabaseTable table, TokenModel loginUser);
     }
 }

+ 8 - 0
Services/IService/IDatabaseTableService.cs

@@ -33,5 +33,13 @@ namespace Services
         /// <param name="param">参数请求体</param>
         /// <returns>克隆数据表</returns>
         void copyDatabaseTable([FromBody] CopyDatabaseTableDto param);
+
+
+        /// <summary>
+        /// 生成SQL脚本
+        /// </summary>
+        /// <param name="param">参数请求体</param>
+        /// <returns>生成</returns>
+        void makeDatabaseTable([FromBody] MakeDatabaseTableDto param, TokenModel loginUser);
     }
 }