2023-02-23 11:06:46 +08:00
|
|
|
|
using Infrastructure;
|
|
|
|
|
|
using SqlSugar;
|
2021-09-07 18:37:21 +08:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
2023-06-10 18:26:18 +08:00
|
|
|
|
using ZR.CodeGenerator.Model;
|
2021-09-07 18:37:21 +08:00
|
|
|
|
using ZR.Model;
|
|
|
|
|
|
|
|
|
|
|
|
namespace ZR.CodeGenerator.Service
|
|
|
|
|
|
{
|
2021-09-08 18:12:08 +08:00
|
|
|
|
public class CodeGeneraterService : DbProvider
|
2021-09-07 18:37:21 +08:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取所有数据库名
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2021-09-09 18:18:37 +08:00
|
|
|
|
public List<string> GetAllDataBases()
|
2021-09-07 18:37:21 +08:00
|
|
|
|
{
|
2021-09-08 18:12:08 +08:00
|
|
|
|
var db = GetSugarDbContext();
|
2023-02-23 11:06:46 +08:00
|
|
|
|
//Oracle库特殊处理
|
2023-06-23 16:36:00 +08:00
|
|
|
|
DbConfigs configs = AppSettings.Get<DbConfigs>(nameof(GlobalConstant.CodeGenDbConfig));
|
2023-06-12 21:24:15 +08:00
|
|
|
|
if (configs.DbType == 3)
|
2023-02-23 11:06:46 +08:00
|
|
|
|
{
|
2023-06-12 21:24:15 +08:00
|
|
|
|
return new List<string>() { configs?.DbName };
|
2023-02-23 11:06:46 +08:00
|
|
|
|
}
|
2021-12-11 16:37:08 +08:00
|
|
|
|
var templist = db.DbMaintenance.GetDataBaseList(db);
|
2021-09-08 18:12:08 +08:00
|
|
|
|
|
2023-06-12 21:24:15 +08:00
|
|
|
|
return templist.FindAll(f => !f.Contains("schema"));
|
2021-09-07 18:37:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取所有表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="dbName"></param>
|
|
|
|
|
|
/// <param name="tableName"></param>
|
|
|
|
|
|
/// <param name="pager"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2021-09-08 18:12:08 +08:00
|
|
|
|
public List<DbTableInfo> GetAllTables(string dbName, string tableName, PagerInfo pager)
|
2021-09-07 18:37:21 +08:00
|
|
|
|
{
|
|
|
|
|
|
var tableList = GetSugarDbContext(dbName).DbMaintenance.GetTableInfoList(true);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(tableName))
|
|
|
|
|
|
{
|
2021-09-13 18:38:54 +08:00
|
|
|
|
tableList = tableList.Where(f => f.Name.ToLower().Contains(tableName.ToLower())).ToList();
|
2021-09-07 18:37:21 +08:00
|
|
|
|
}
|
2021-09-29 15:57:56 +08:00
|
|
|
|
//tableList = tableList.Where(f => !new string[] { "gen", "sys_" }.Contains(f.Name)).ToList();
|
2021-09-07 18:37:21 +08:00
|
|
|
|
pager.TotalNum = tableList.Count;
|
|
|
|
|
|
return tableList.Skip(pager.PageSize * (pager.PageNum - 1)).Take(pager.PageSize).OrderBy(f => f.Name).ToList();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-09-17 18:19:53 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取单表数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="dbName"></param>
|
|
|
|
|
|
/// <param name="tableName"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public DbTableInfo GetTableInfo(string dbName, string tableName)
|
|
|
|
|
|
{
|
|
|
|
|
|
var tableList = GetSugarDbContext(dbName).DbMaintenance.GetTableInfoList(true);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(tableName))
|
|
|
|
|
|
{
|
2021-12-14 21:50:30 +08:00
|
|
|
|
return tableList.Where(f => f.Name.Equals(tableName, System.StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
2021-09-17 18:19:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
2021-09-07 18:37:21 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取列信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="dbName"></param>
|
|
|
|
|
|
/// <param name="tableName"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public List<DbColumnInfo> GetColumnInfo(string dbName, string tableName)
|
|
|
|
|
|
{
|
2021-09-08 18:12:08 +08:00
|
|
|
|
return GetSugarDbContext(dbName).DbMaintenance.GetColumnInfosByTableName(tableName, true);
|
2021-09-07 18:37:21 +08:00
|
|
|
|
}
|
2023-06-10 18:26:18 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取Oracle所有序列
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="dbName"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public List<OracleSeq> GetAllOracleSeqs(string dbName)
|
|
|
|
|
|
{
|
|
|
|
|
|
string sql = "SELECT * FROM USER_SEQUENCES";
|
|
|
|
|
|
var seqs = GetSugarDbContext(dbName).Ado.SqlQuery<OracleSeq>(sql);
|
|
|
|
|
|
|
|
|
|
|
|
return seqs.ToList();
|
|
|
|
|
|
}
|
2021-09-07 18:37:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|