代码生成器增加同步数据结构;

修复sql server 生成float类型;
修复非system用户【代码生成器中找不到xxx的定义】;
修复用户已处理流程列表中看不到【不同意】的流程;
This commit is contained in:
yubaolee
2021-12-07 01:06:53 +08:00
parent 9fd0405721
commit c8caf9dee3
7 changed files with 118 additions and 6 deletions

View File

@@ -16,9 +16,12 @@ namespace OpenAuth.App
{
public class BuilderTableColumnApp : BaseStringApp<BuilderTableColumn,OpenAuthDBContext>
{
private DbExtension _dbExtension;
public BuilderTableColumnApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<BuilderTableColumn,OpenAuthDBContext> repository,
IAuth auth) : base(unitWork, repository,auth)
IAuth auth, DbExtension dbExtension) : base(unitWork, repository,auth)
{
_dbExtension = dbExtension;
}
/// <summary>
@@ -81,6 +84,48 @@ namespace OpenAuth.App
});
}
/// <summary>
/// 同步数据结构
/// <para>读取数据库结构与当前结构的差异,如果数据库有新增的字段,则自动加入</para>
/// </summary>
public void Sync(SyncStructureReq req)
{
var columns = _dbExtension.GetDbTableStructure(req.TableName);
if (!columns.Any())
{
throw new Exception($"未能找到{req.TableName}表结构定义");
}
var exists = Find(req.Id).Select(u=>u.ColumnName);
foreach (var column in columns)
{
if(exists.Contains(column.ColumnName)) continue;
var builderColumn = new BuilderTableColumn
{
ColumnName = column.ColumnName,
Comment = column.Comment,
ColumnType = column.ColumnType,
EntityType = column.EntityType,
EntityName = column.ColumnName,
IsKey = column.IsKey == 1,
IsRequired = column.IsNull != 1,
IsEdit = true,
IsInsert = true,
IsList = true,
MaxLength = column.MaxLength,
TableName = req.TableName,
TableId = req.Id,
CreateTime = DateTime.Now
};
UnitWork.Add(builderColumn);
}
UnitWork.Save();
}