using System.Data; using Infrastructure; using Model; using Services; using Util; public class CopyData { public static void CopyOldData() { var apiService = App.GetService(); var db = initDb(); List ids = new List(); ids.Add(203); ids.Add(208); ids.Add(209); ids.Add(211); ids.Add(217); List tableNames = new List(); tableNames.Add("MyAppApi2|ApiParam"); tableNames.Add("AdminApi|AdminApiParam"); foreach (int projectId in ids) { foreach (var tableName in tableNames) { string[] arr = tableName.Split('|'); string sql = "select * from " + arr[0] + " where DatabaseId in (select Id from MyDatabase where ProjectId=" + projectId + ") and SingleReqParam='new_mode2'"; var items = db.Ado.GetDataTable(sql); if(items.Rows.Count > 0) { foreach(DataRow item in items.Rows) { int id = item.Field("Id"); int idNum = id; if(arr[0] == "AdminApi") { idNum += 2000; } var apiInfo = apiService.GetById(idNum); string paramSql = "select * from " + arr[1] + " where ApiId=" + id + " and ParentId=0"; var paramItems = db.Ado.GetDataTable(paramSql); if(paramItems.Rows.Count > 0) { apiInfo.apiParam = new List(); foreach(DataRow paramItem in paramItems.Rows) { ApiParamObjectData(db, paramItem, id, apiInfo.apiParam, arr[1]); } apiService.Update(apiInfo); } } } } } } public static void ApiParamObjectData(SqlSugarClient db, DataRow paramItem, int apiId, List apiParam, string tableName = "ApiParam") { ApiParamObject param = new ApiParamObject(); param.id = paramItem.Field("Id"); param.fieldTitle = paramItem.Field("ColumnName"); param.fieldName = paramItem.Field("ColumnEnName"); param.fieldType = PublicFunction.transferName(paramItem.Field("ColumnType")); param.reqParam = paramItem.Field("ReqFlag") == 1; param.resParam = paramItem.Field("ResFlag") == 1; param.customFlag = paramItem.Field("Kind") != "sys"; param.sortMode = paramItem.Field("OrderBy") == 2 ? "desc" : paramItem.Field("OrderBy") == 1 ? "asc" : ""; param.fieldDetail = paramItem.Field("ColumnDetail"); param.linkTableId = paramItem.Field("LinkTableId"); param.resType = "字段值"; string paramSql = "select * from " + tableName + " where ApiId=" + apiId + " and ParentId=" + paramItem.Field("IdNum"); var subParamItems = db.Ado.GetDataTable(paramSql); if(subParamItems.Rows.Count > 0) { param.linkParam = new List(); foreach(DataRow subParamItem in subParamItems.Rows) { ApiParamObjectData(db, subParamItem, apiId, param.linkParam); } } apiParam.Add(param); } public static SqlSugarClient initDb() { //server=8.137.21.27;port=3306;user=root;password=S5jRutnCcGXZcRUZ;database=CodeMaker;charset=utf8; string server = "8.137.21.27"; int port = 3306; string user = "root"; string password = "S5jRutnCcGXZcRUZ"; string database = "CodeMaker"; var db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "server=" + server + ";port=" + port + ";user=" + user + ";password=" + password + ";database=" + database + ";charset=utf8;", DbType = SqlSugar.DbType.MySql, IsAutoCloseConnection = true, }); return db; } }