CopyData.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using System.Data;
  2. using Infrastructure;
  3. using Model;
  4. using Services;
  5. using Util;
  6. public class CopyData
  7. {
  8. public static void CopyOldData()
  9. {
  10. var apiService = App.GetService<IApiInfoService>();
  11. var db = initDb();
  12. List<int> ids = new List<int>();
  13. ids.Add(203);
  14. ids.Add(208);
  15. ids.Add(209);
  16. ids.Add(211);
  17. ids.Add(217);
  18. List<string> tableNames = new List<string>();
  19. tableNames.Add("MyAppApi2|ApiParam");
  20. tableNames.Add("AdminApi|AdminApiParam");
  21. foreach (int projectId in ids)
  22. {
  23. foreach (var tableName in tableNames)
  24. {
  25. string[] arr = tableName.Split('|');
  26. string sql = "select * from " + arr[0] + " where DatabaseId in (select Id from MyDatabase where ProjectId=" + projectId + ") and SingleReqParam='new_mode2'";
  27. var items = db.Ado.GetDataTable(sql);
  28. if(items.Rows.Count > 0)
  29. {
  30. foreach(DataRow item in items.Rows)
  31. {
  32. int id = item.Field<int>("Id");
  33. int idNum = id;
  34. if(arr[0] == "AdminApi")
  35. {
  36. idNum += 2000;
  37. }
  38. var apiInfo = apiService.GetById(idNum);
  39. string paramSql = "select * from " + arr[1] + " where ApiId=" + id + " and ParentId=0";
  40. var paramItems = db.Ado.GetDataTable(paramSql);
  41. if(paramItems.Rows.Count > 0)
  42. {
  43. apiInfo.apiParam = new List<ApiParamObject>();
  44. foreach(DataRow paramItem in paramItems.Rows)
  45. {
  46. ApiParamObjectData(db, paramItem, id, apiInfo.apiParam, arr[1]);
  47. }
  48. apiService.Update(apiInfo);
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }
  55. public static void ApiParamObjectData(SqlSugarClient db, DataRow paramItem, int apiId, List<ApiParamObject> apiParam, string tableName = "ApiParam")
  56. {
  57. ApiParamObject param = new ApiParamObject();
  58. param.id = paramItem.Field<int>("Id");
  59. param.fieldTitle = paramItem.Field<string>("ColumnName");
  60. param.fieldName = paramItem.Field<string>("ColumnEnName");
  61. param.fieldType = PublicFunction.transferName(paramItem.Field<string>("ColumnType"));
  62. param.reqParam = paramItem.Field<ulong>("ReqFlag") == 1;
  63. param.resParam = paramItem.Field<ulong>("ResFlag") == 1;
  64. param.customFlag = paramItem.Field<string>("Kind") != "sys";
  65. param.sortMode = paramItem.Field<int>("OrderBy") == 2 ? "desc" : paramItem.Field<int>("OrderBy") == 1 ? "asc" : "";
  66. param.fieldDetail = paramItem.Field<string>("ColumnDetail");
  67. param.linkTableId = paramItem.Field<int>("LinkTableId");
  68. param.resType = "字段值";
  69. string paramSql = "select * from " + tableName + " where ApiId=" + apiId + " and ParentId=" + paramItem.Field<int>("IdNum");
  70. var subParamItems = db.Ado.GetDataTable(paramSql);
  71. if(subParamItems.Rows.Count > 0)
  72. {
  73. param.linkParam = new List<ApiParamObject>();
  74. foreach(DataRow subParamItem in subParamItems.Rows)
  75. {
  76. ApiParamObjectData(db, subParamItem, apiId, param.linkParam);
  77. }
  78. }
  79. apiParam.Add(param);
  80. }
  81. public static SqlSugarClient initDb()
  82. {
  83. //server=8.137.21.27;port=3306;user=root;password=S5jRutnCcGXZcRUZ;database=CodeMaker;charset=utf8;
  84. string server = "8.137.21.27";
  85. int port = 3306;
  86. string user = "root";
  87. string password = "S5jRutnCcGXZcRUZ";
  88. string database = "CodeMaker";
  89. var db = new SqlSugarClient(new ConnectionConfig()
  90. {
  91. ConnectionString = "server=" + server + ";port=" + port + ";user=" + user + ";password=" + password + ";database=" + database + ";charset=utf8;",
  92. DbType = SqlSugar.DbType.MySql,
  93. IsAutoCloseConnection = true,
  94. });
  95. return db;
  96. }
  97. }