CodeGeneraterService.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using Infrastructure;
  2. using Infrastructure.Model;
  3. using SqlSugar;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using ZR.CodeGenerator.Model;
  7. using ZR.Model;
  8. namespace ZR.CodeGenerator.Service
  9. {
  10. public class CodeGeneraterService : DbProvider
  11. {
  12. /// <summary>
  13. /// 获取所有数据库名
  14. /// </summary>
  15. /// <returns></returns>
  16. public List<string> GetAllDataBases()
  17. {
  18. var db = GetSugarDbContext();
  19. //Oracle库特殊处理
  20. DbConfigs configs = AppSettings.Get<DbConfigs>(nameof(GenConstants.CodeGenDbConfig));
  21. if (configs.DbType == 3)
  22. {
  23. return new List<string>() { configs?.DbName };
  24. }
  25. var templist = db.DbMaintenance.GetDataBaseList(db);
  26. return templist.FindAll(f => !f.Contains("schema"));
  27. }
  28. /// <summary>
  29. /// 获取所有表
  30. /// </summary>
  31. /// <param name="dbName"></param>
  32. /// <param name="tableName"></param>
  33. /// <param name="pager"></param>
  34. /// <returns></returns>
  35. public List<DbTableInfo> GetAllTables(string dbName, string tableName, PagerInfo pager)
  36. {
  37. var tableList = GetSugarDbContext(dbName).DbMaintenance.GetTableInfoList(true);
  38. if (!string.IsNullOrEmpty(tableName))
  39. {
  40. tableList = tableList.Where(f => f.Name.ToLower().Contains(tableName.ToLower())).ToList();
  41. }
  42. //tableList = tableList.Where(f => !new string[] { "gen", "sys_" }.Contains(f.Name)).ToList();
  43. pager.TotalNum = tableList.Count;
  44. return tableList.Skip(pager.PageSize * (pager.PageNum - 1)).Take(pager.PageSize).OrderBy(f => f.Name).ToList();
  45. }
  46. /// <summary>
  47. /// 获取单表数据
  48. /// </summary>
  49. /// <param name="dbName"></param>
  50. /// <param name="tableName"></param>
  51. /// <returns></returns>
  52. public DbTableInfo GetTableInfo(string dbName, string tableName)
  53. {
  54. var tableList = GetSugarDbContext(dbName).DbMaintenance.GetTableInfoList(true);
  55. if (!string.IsNullOrEmpty(tableName))
  56. {
  57. return tableList.Where(f => f.Name.Equals(tableName, System.StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
  58. }
  59. return null;
  60. }
  61. /// <summary>
  62. /// 获取列信息
  63. /// </summary>
  64. /// <param name="dbName"></param>
  65. /// <param name="tableName"></param>
  66. /// <returns></returns>
  67. public List<DbColumnInfo> GetColumnInfo(string dbName, string tableName)
  68. {
  69. return GetSugarDbContext(dbName).DbMaintenance.GetColumnInfosByTableName(tableName, true);
  70. }
  71. /// <summary>
  72. /// 获取Oracle所有序列
  73. /// </summary>
  74. /// <param name="dbName"></param>
  75. /// <returns></returns>
  76. public List<OracleSeq> GetAllOracleSeqs(string dbName)
  77. {
  78. string sql = "SELECT * FROM USER_SEQUENCES";
  79. var seqs = GetSugarDbContext(dbName).Ado.SqlQuery<OracleSeq>(sql);
  80. return seqs.ToList();
  81. }
  82. }
  83. }