mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-06-23 00:52:07 +08:00
🔄refactor: 调整为SqlSugar
This commit is contained in:
@@ -11,7 +11,6 @@ using Infrastructure;
|
||||
using Infrastructure.Extensions;
|
||||
using Infrastructure.Helpers;
|
||||
using Infrastructure.Utilities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyModel;
|
||||
using Microsoft.Extensions.Options;
|
||||
using OpenAuth.App.Interface;
|
||||
@@ -20,12 +19,12 @@ using OpenAuth.App.Response;
|
||||
using OpenAuth.Repository;
|
||||
using OpenAuth.Repository.Core;
|
||||
using OpenAuth.Repository.Domain;
|
||||
using OpenAuth.Repository.Interface;
|
||||
using SqlSugar;
|
||||
|
||||
|
||||
namespace OpenAuth.App
|
||||
{
|
||||
public class BuilderTableApp : BaseStringApp<BuilderTable, OpenAuthDBContext>
|
||||
public class BuilderTableApp : SqlSugarBaseApp<BuilderTable>
|
||||
{
|
||||
private BuilderTableColumnApp _builderTableColumnApp;
|
||||
private CategoryApp _categoryApp;
|
||||
@@ -34,9 +33,9 @@ namespace OpenAuth.App
|
||||
private string _startName = "";
|
||||
private IOptions<AppSetting> _appConfiguration;
|
||||
|
||||
public BuilderTableApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<BuilderTable, OpenAuthDBContext> repository,
|
||||
public BuilderTableApp(ISqlSugarClient client,
|
||||
RevelanceManagerApp app, IAuth auth, DbExtension dbExtension, BuilderTableColumnApp builderTableColumnApp,
|
||||
IOptions<AppSetting> appConfiguration, CategoryApp categoryApp) : base(unitWork, repository, auth)
|
||||
IOptions<AppSetting> appConfiguration, CategoryApp categoryApp) : base(client, auth)
|
||||
{
|
||||
_dbExtension = dbExtension;
|
||||
_builderTableColumnApp = builderTableColumnApp;
|
||||
@@ -87,7 +86,7 @@ namespace OpenAuth.App
|
||||
}
|
||||
|
||||
var result = new PagedListDataResp<BuilderTable>();
|
||||
var objs = UnitWork.Find<BuilderTable>(null);
|
||||
var objs = SugarClient.Queryable<BuilderTable>();
|
||||
if (!string.IsNullOrEmpty(request.key))
|
||||
{
|
||||
objs = objs.Where(u => u.Id.Contains(request.key));
|
||||
@@ -126,7 +125,6 @@ namespace OpenAuth.App
|
||||
Check(req);
|
||||
var obj = AddTableAndColumns(req.MapTo<BuilderTable>());
|
||||
|
||||
UnitWork.Save();
|
||||
return obj.Id;
|
||||
}
|
||||
|
||||
@@ -143,8 +141,7 @@ namespace OpenAuth.App
|
||||
var user = _auth.GetCurrentUser().User;
|
||||
obj.CreateUserId = user.Id;
|
||||
obj.CreateUserName = user.Name;
|
||||
UnitWork.Add(obj);
|
||||
UnitWork.Save(); //需要先保存表结构,后面才能正常判定
|
||||
Repository.Insert(obj);
|
||||
|
||||
_dbExtension.ProcessExternalDb(obj.Id); //先处理外部数据库连接
|
||||
var columns = _dbExtension.GetDbTableStructure(obj.TableName);
|
||||
@@ -175,7 +172,7 @@ namespace OpenAuth.App
|
||||
CreateUserName = user.Name,
|
||||
CreateTime = DateTime.Now
|
||||
};
|
||||
UnitWork.Add(builderColumn);
|
||||
SugarClient.Insertable(builderColumn).ExecuteCommand();
|
||||
}
|
||||
|
||||
return obj;
|
||||
@@ -185,7 +182,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
Check(obj);
|
||||
var user = _auth.GetCurrentUser().User;
|
||||
UnitWork.Update<BuilderTable>(u => u.Id == obj.Id, u => new BuilderTable
|
||||
Repository.Update(u => new BuilderTable
|
||||
{
|
||||
TableName = obj.TableName,
|
||||
Remark = obj.Remark,
|
||||
@@ -204,7 +201,7 @@ namespace OpenAuth.App
|
||||
UpdateUserId = user.Id,
|
||||
UpdateUserName = user.Name,
|
||||
ExternalDataSourceId = obj.ExternalDataSourceId //外部数据源ID
|
||||
});
|
||||
}, u => u.Id == obj.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -213,12 +210,10 @@ namespace OpenAuth.App
|
||||
/// <param name="ids"></param>
|
||||
public void DelTableAndcolumns(string[] ids)
|
||||
{
|
||||
UnitWork.ExecuteWithTransaction(() =>
|
||||
{
|
||||
UnitWork.Delete<BuilderTable>(u => ids.Contains(u.Id));
|
||||
UnitWork.Delete<BuilderTableColumn>(u => ids.Contains(u.TableId));
|
||||
UnitWork.Save();
|
||||
});
|
||||
SugarClient.Ado.BeginTran();
|
||||
SugarClient.Deleteable<BuilderTable>().Where(u => ids.Contains(u.Id)).ExecuteCommand();
|
||||
SugarClient.Deleteable<BuilderTableColumn>().Where(u => ids.Contains(u.TableId)).ExecuteCommand();
|
||||
SugarClient.Ado.CommitTran();
|
||||
}
|
||||
|
||||
|
||||
@@ -228,7 +223,7 @@ namespace OpenAuth.App
|
||||
/// <returns></returns>
|
||||
public void CreateEntity(CreateEntityReq req)
|
||||
{
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| tableColumns == null
|
||||
@@ -247,7 +242,7 @@ namespace OpenAuth.App
|
||||
/// <returns></returns>
|
||||
public void CreateBusiness(CreateBusiReq req)
|
||||
{
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||
var mainColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| mainColumns == null
|
||||
@@ -319,7 +314,7 @@ namespace OpenAuth.App
|
||||
|
||||
string domainContent = string.Empty;
|
||||
//查找是否存在子表的情况
|
||||
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == sysTableInfo.Id);
|
||||
var subTable = SugarClient.Queryable<BuilderTable>().First(u => u.ParentTableId == sysTableInfo.Id);
|
||||
|
||||
if (subTable == null) //如果子表不存在,则用单模版生成
|
||||
{
|
||||
@@ -386,21 +381,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new Exception($"未能找到表{sysTableInfo.TableName}的主键字段");
|
||||
}
|
||||
if (primarykey.ColumnType == "decimal" || primarykey.ColumnType == "numeric") //是否为数字
|
||||
{
|
||||
if (primarykey.IsIncrement) //是否自增
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseIntAutoGenApp");
|
||||
}
|
||||
else //普通的雪花算法生成id
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseLongApp");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseStringApp");
|
||||
}
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "SqlSugarBaseApp");
|
||||
FileHelper.WriteFile($"{appRootPath}\\{sysTableInfo.ModuleCode}", $"{sysTableInfo.ModuleCode}.cs", domainContent);
|
||||
}
|
||||
|
||||
@@ -465,7 +446,7 @@ namespace OpenAuth.App
|
||||
}
|
||||
|
||||
//查找是否存在子表的情况
|
||||
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == sysTableInfo.Id);
|
||||
var subTable = SugarClient.Queryable<BuilderTable>().First(u => u.ParentTableId == sysTableInfo.Id);
|
||||
|
||||
if (subTable != null) //如果子表存在,需要加子表的请求参数
|
||||
{
|
||||
@@ -705,7 +686,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
var types = AssemblyLoadContext.Default
|
||||
.LoadFromAssemblyName(new AssemblyName(compilation.Name))
|
||||
.GetTypes().Where(x => x.GetTypeInfo().BaseType != null
|
||||
.GetTypes().Where(x => System.Reflection.IntrospectionExtensions.GetTypeInfo(x).BaseType != null
|
||||
&& x.BaseType == typeof(StringEntity));
|
||||
foreach (var entity in types)
|
||||
{
|
||||
@@ -736,7 +717,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
||||
}
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||
|
||||
if (!string.IsNullOrEmpty(sysTableInfo.ParentTableId))
|
||||
{
|
||||
@@ -753,7 +734,7 @@ namespace OpenAuth.App
|
||||
string domainContent = string.Empty;
|
||||
|
||||
//查找是否存在子表额情况
|
||||
var subTable = Repository.FirstOrDefault(u => u.ParentTableId == req.Id);
|
||||
var subTable = SugarClient.Queryable<BuilderTable>().First(u => u.ParentTableId == req.Id);
|
||||
|
||||
if (subTable == null) //如果子表不存在,则用单模版生成
|
||||
{
|
||||
@@ -868,7 +849,7 @@ namespace OpenAuth.App
|
||||
{
|
||||
throw new Exception("请提供vue项目的根目录,如:C:\\OpenAuth.Pro\\Client");
|
||||
}
|
||||
var sysTableInfo = Repository.FirstOrDefault(u => u.Id == req.Id);
|
||||
var sysTableInfo = SugarClient.Queryable<BuilderTable>().First(u => u.Id == req.Id);
|
||||
var tableColumns = _builderTableColumnApp.Find(req.Id);
|
||||
if (sysTableInfo == null
|
||||
|| tableColumns == null
|
||||
@@ -890,7 +871,7 @@ namespace OpenAuth.App
|
||||
public async Task<PagedDynamicDataResp> AllMain()
|
||||
{
|
||||
var result = new PagedDynamicDataResp();
|
||||
var objs = UnitWork.Find<BuilderTable>(u => string.IsNullOrEmpty(u.ParentTableId)).Select(u => new
|
||||
var objs = SugarClient.Queryable<BuilderTable>().Where(u => string.IsNullOrEmpty(u.ParentTableId)).Select(u => new
|
||||
{
|
||||
Id = u.Id,
|
||||
Name = u.TableName
|
||||
|
||||
Reference in New Issue
Block a user