mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-04-05 17:38:01 +08:00
Merge branch 'main' of https://gitee.com/dotnetchina/OpenAuth.Net into main
This commit is contained in:
commit
1aac54eff8
@ -236,13 +236,13 @@ namespace OpenAuth.App
|
||||
throw new Exception("未能找到正确的模版信息");
|
||||
|
||||
//生成应用层
|
||||
GenerateApp(sysTableInfo);
|
||||
GenerateApp(sysTableInfo,tableColumns);
|
||||
|
||||
//生成应用层的请求参数
|
||||
GenerateAppReq(sysTableInfo, tableColumns);
|
||||
|
||||
//生成WebApI接口
|
||||
GenerateWebApi(sysTableInfo);
|
||||
GenerateWebApi(sysTableInfo, tableColumns);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -250,7 +250,7 @@ namespace OpenAuth.App
|
||||
/// </summary>
|
||||
/// <param name="sysTableInfo"></param>
|
||||
/// <exception cref="Exception"></exception>
|
||||
private void GenerateApp(BuilderTable sysTableInfo)
|
||||
private void GenerateApp(BuilderTable sysTableInfo, List<BuilderTableColumn> sysColumns)
|
||||
{
|
||||
string appRootPath = ProjectPath.GetProjectDirectoryInfo()
|
||||
.GetDirectories().FirstOrDefault(x => x.Name.ToLower().EndsWith(".app"))?.FullName;
|
||||
@ -261,12 +261,35 @@ namespace OpenAuth.App
|
||||
|
||||
CheckExistsModule(sysTableInfo.ModuleCode);
|
||||
|
||||
string domainContent = FileHelper.ReadFile(@"Template\\BuildApp.html")
|
||||
string domainContent = FileHelper.ReadFile(@"Template\\BuildApp.html");
|
||||
domainContent = domainContent
|
||||
.Replace("{TableName}", sysTableInfo.TableName)
|
||||
.Replace("{ModuleCode}", sysTableInfo.ModuleCode)
|
||||
.Replace("{ModuleName}", sysTableInfo.ModuleName)
|
||||
.Replace("{ClassName}", sysTableInfo.ClassName)
|
||||
.Replace("{StartName}", StratName);
|
||||
|
||||
|
||||
var primarykey = sysColumns.FirstOrDefault(u => u.IsKey);
|
||||
if (primarykey == null)
|
||||
{
|
||||
throw new Exception($"未能找到表{sysTableInfo.TableName}的主键字段");
|
||||
}
|
||||
if (primarykey.ColumnType == "decimal" || primarykey.ColumnType == "numberic") //是否为数字
|
||||
{
|
||||
if(primarykey.IsIncrement) //是否自增
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseIntAutoGenApp");
|
||||
}
|
||||
else //普通的雪花算法生成id
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseLongApp");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseAppName}", "BaseStringApp");
|
||||
}
|
||||
FileHelper.WriteFile(appRootPath, sysTableInfo.ModuleCode + ".cs", domainContent);
|
||||
}
|
||||
|
||||
@ -338,7 +361,7 @@ namespace OpenAuth.App
|
||||
/// </summary>
|
||||
/// <param name="sysTableInfo"></param>
|
||||
/// <exception cref="Exception"></exception>
|
||||
private void GenerateWebApi(BuilderTable sysTableInfo)
|
||||
private void GenerateWebApi(BuilderTable sysTableInfo, List<BuilderTableColumn> sysColumns)
|
||||
{
|
||||
string domainContent;
|
||||
string apiPath = ProjectPath.GetProjectDirectoryInfo()
|
||||
@ -357,6 +380,27 @@ namespace OpenAuth.App
|
||||
.Replace("{ModuleName}", sysTableInfo.ModuleName)
|
||||
.Replace("{ClassName}", sysTableInfo.ClassName)
|
||||
.Replace("{StartName}", StratName);
|
||||
|
||||
var primarykey = sysColumns.FirstOrDefault(u => u.IsKey);
|
||||
if (primarykey == null)
|
||||
{
|
||||
throw new Exception($"未能找到表{sysTableInfo.TableName}的主键字段");
|
||||
}
|
||||
if (primarykey.ColumnType == "decimal" || primarykey.ColumnType == "numberic") //是否为数字
|
||||
{
|
||||
if(primarykey.IsIncrement) //是否自增
|
||||
{
|
||||
domainContent = domainContent.Replace("{KeyTypeName}", "int");
|
||||
}
|
||||
else //普通的雪花算法生成id
|
||||
{
|
||||
domainContent = domainContent.Replace("{KeyTypeName}", "long");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
domainContent = domainContent.Replace("{KeyTypeName}", "string");
|
||||
}
|
||||
FileHelper.WriteFile(controllerPath, controllerName + ".cs", domainContent);
|
||||
}
|
||||
|
||||
@ -365,15 +409,15 @@ namespace OpenAuth.App
|
||||
/// </summary>
|
||||
/// <param name="tableColumns"></param>
|
||||
/// <param name="sysTableInfo"></param>
|
||||
private void CreateEntityModel(List<BuilderTableColumn> sysColumn, BuilderTable tableInfo)
|
||||
private void CreateEntityModel(List<BuilderTableColumn> sysColumns, BuilderTable tableInfo)
|
||||
{
|
||||
string template = "BuildEntity.html";
|
||||
string domainContent = FileHelper.ReadFile("Template\\" + template);
|
||||
|
||||
StringBuilder attributeBuilder = new StringBuilder();
|
||||
StringBuilder constructionBuilder = new StringBuilder(); //生成构造函数初始化值
|
||||
sysColumn = sysColumn.OrderByDescending(c => c.Sort).ToList();
|
||||
foreach (BuilderTableColumn column in sysColumn)
|
||||
sysColumns = sysColumns.OrderByDescending(c => c.Sort).ToList();
|
||||
foreach (BuilderTableColumn column in sysColumns)
|
||||
{
|
||||
if (column.IsKey) continue;
|
||||
|
||||
@ -409,6 +453,27 @@ namespace OpenAuth.App
|
||||
throw new Exception("未找到生成的目录!");
|
||||
}
|
||||
|
||||
var primarykey = sysColumns.FirstOrDefault(u => u.IsKey);
|
||||
if (primarykey == null)
|
||||
{
|
||||
throw new Exception($"未能找到表{tableInfo.TableName}的主键字段");
|
||||
}
|
||||
if (primarykey.ColumnType == "decimal" || primarykey.ColumnType == "numberic") //是否为数字
|
||||
{
|
||||
if(primarykey.IsIncrement) //是否自增
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseEntityName}", "IntAutoGenEntity");
|
||||
}
|
||||
else //普通的雪花算法生成id
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseEntityName}", "LongEntity");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
domainContent = domainContent.Replace("{BaseEntityName}", "StringEntity");
|
||||
}
|
||||
|
||||
domainContent = domainContent.Replace("{ClassName}", tableInfo.ClassName)
|
||||
.Replace("{AttributeList}", attributeBuilder.ToString())
|
||||
.Replace("{Construction}", constructionBuilder.ToString());
|
||||
|
@ -120,15 +120,8 @@ namespace OpenAuth.App
|
||||
/// </summary>
|
||||
/// <param name="tableName"></param>
|
||||
/// <returns></returns>
|
||||
private IList<SysTableColumn> GetMySqlStructure(string dbandTableName)
|
||||
private IList<SysTableColumn> GetMySqlStructure(string tableName)
|
||||
{
|
||||
if (!dbandTableName.Contains("."))
|
||||
{
|
||||
throw new Exception("代码生成器使用mysql时,表名必需用【schemeName.tableName】形式");
|
||||
}
|
||||
var splits = dbandTableName.Split(".");
|
||||
var tableName = splits[1];
|
||||
var schemeName = splits[0];
|
||||
var sql = $@"SELECT DISTINCT
|
||||
Column_Name AS ColumnName,
|
||||
'{ tableName}' as tableName,
|
||||
@ -174,7 +167,7 @@ namespace OpenAuth.App
|
||||
FROM
|
||||
information_schema.COLUMNS
|
||||
WHERE
|
||||
table_name = '{tableName}' {schemeName}";
|
||||
table_name = '{tableName}'";
|
||||
|
||||
foreach (var context in _contexts)
|
||||
{
|
||||
|
@ -12,7 +12,7 @@ using OpenAuth.Repository.Interface;
|
||||
|
||||
namespace OpenAuth.App
|
||||
{
|
||||
public class {ModuleCode} : BaseStringApp<{ClassName},OpenAuthDBContext>
|
||||
public class {ModuleCode} : {BaseAppName}<{ClassName},OpenAuthDBContext>
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
@ -23,21 +23,22 @@ namespace OpenAuth.App
|
||||
var loginContext = _auth.GetCurrentUser();
|
||||
if (loginContext == null)
|
||||
{
|
||||
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
||||
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
|
||||
}
|
||||
|
||||
var properties = loginContext.GetProperties("{ClassName}");
|
||||
|
||||
if (properties == null || properties.Count == 0)
|
||||
{
|
||||
throw new Exception("当前登录用户没有访问该模块字段的权限,请联系管理员配置");
|
||||
throw new Exception("当前登录用户没有访问该模块字段的权限,请联系管理员配置");
|
||||
}
|
||||
|
||||
var result = new TableData();
|
||||
var objs = GetDataPrivilege("u");
|
||||
if (!string.IsNullOrEmpty(request.key))
|
||||
{
|
||||
objs = objs.Where(u => u.Id.Contains(request.key));
|
||||
//增加筛选条件,如:
|
||||
//objs = objs.Where(u => u.Name.Contains(request.key));
|
||||
}
|
||||
|
||||
var propertyStr = string.Join(',', properties.Select(u => u.Key));
|
||||
|
@ -20,7 +20,7 @@ namespace OpenAuth.WebApi.Controllers
|
||||
|
||||
//获取详情
|
||||
[HttpGet]
|
||||
public Response<{ClassName}> Get(string id)
|
||||
public Response<{ClassName}> Get({KeyTypeName} id)
|
||||
{
|
||||
var result = new Response<{ClassName}>();
|
||||
try
|
||||
@ -87,7 +87,7 @@ namespace OpenAuth.WebApi.Controllers
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
[HttpPost]
|
||||
public Response Delete([FromBody]string[] ids)
|
||||
public Response Delete([FromBody]{KeyTypeName}[] ids)
|
||||
{
|
||||
var result = new Response();
|
||||
try
|
||||
|
@ -13,7 +13,7 @@ using OpenAuth.Repository.Core;
|
||||
namespace OpenAuth.Repository.Domain
|
||||
{
|
||||
{AttributeManager}
|
||||
public class {ClassName} : StringEntity
|
||||
public class {ClassName} : {BaseEntityName}
|
||||
{
|
||||
public {ClassName}()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user