调整代码生成器生成变量命名方式

This commit is contained in:
yubaolee 2025-02-24 12:18:45 +08:00
parent 329c2c9f07
commit 5eec669cde
2 changed files with 129 additions and 122 deletions

View File

@ -4,6 +4,7 @@ using System.ComponentModel;
using System.Data; using System.Data;
using System.Linq; using System.Linq;
using Autofac.Extensions.DependencyInjection; using Autofac.Extensions.DependencyInjection;
using Humanizer;
using Infrastructure; using Infrastructure;
using Infrastructure.Utilities; using Infrastructure.Utilities;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
@ -58,11 +59,11 @@ namespace OpenAuth.App
{ {
object[] objs = property.GetCustomAttributes(typeof(DescriptionAttribute), true); object[] objs = property.GetCustomAttributes(typeof(DescriptionAttribute), true);
object[] browsableObjs = property.GetCustomAttributes(typeof(BrowsableAttribute), true); object[] browsableObjs = property.GetCustomAttributes(typeof(BrowsableAttribute), true);
var description = objs.Length > 0 ? ((DescriptionAttribute) objs[0]).Description : property.Name; var description = objs.Length > 0 ? ((DescriptionAttribute)objs[0]).Description : property.Name;
if (string.IsNullOrEmpty(description)) description = property.Name; if (string.IsNullOrEmpty(description)) description = property.Name;
//如果没有BrowsableAttribute或 [Browsable(true)]表示可见,其他均为不可见,需要前端配合显示 //如果没有BrowsableAttribute或 [Browsable(true)]表示可见,其他均为不可见,需要前端配合显示
bool browsable = browsableObjs == null || browsableObjs.Length == 0 || bool browsable = browsableObjs == null || browsableObjs.Length == 0 ||
((BrowsableAttribute) browsableObjs[0]).Browsable; ((BrowsableAttribute)browsableObjs[0]).Browsable;
var typeName = property.PropertyType.Name; var typeName = property.PropertyType.Name;
if (Nullable.GetUnderlyingType(property.PropertyType) != null) if (Nullable.GetUnderlyingType(property.PropertyType) != null)
{ {
@ -88,7 +89,7 @@ namespace OpenAuth.App
public List<string> GetDbEntityNames() public List<string> GetDbEntityNames()
{ {
var names = new List<string>(); var names = new List<string>();
var models = _contexts.Select(u =>u.Model); var models = _contexts.Select(u => u.Model);
foreach (var model in models) foreach (var model in models)
{ {
@ -135,8 +136,9 @@ namespace OpenAuth.App
/// </summary> /// </summary>
private IList<SysTableColumn> GetOracleStructure(string tableName) private IList<SysTableColumn> GetOracleStructure(string tableName)
{ {
tableName = tableName.ToUpper();
var sql = $@" var sql = $@"
select utc.column_name as columnname select utc.column_name as columnname
, utc.data_type columntype , utc.data_type columntype
, utc.data_length maxlength , utc.data_length maxlength
, case utc.nullable when 'N' then 0 else 1 end isnull , case utc.nullable when 'N' then 0 else 1 end isnull
@ -171,16 +173,16 @@ select utc.column_name as columnname
('CHAR', 'VARCHAR', 'TINY TEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TINYBLOB', 'BLOB', ('CHAR', 'VARCHAR', 'TINY TEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'TINYBLOB', 'BLOB',
'MEDIUMBLOB', 'LONGBLOB', 'Time') then 'MEDIUMBLOB', 'LONGBLOB', 'Time') then
'string' 'string'
when data_type in ('Date', 'DateTime', 'TIMESTAMP(6)') then when data_type in ('DATE', 'DATETIME', 'TIMESTAMP(6)') then
'DateTime' 'DateTime'
else 'string' else 'string'
end as entitytype end as entitytype
from user_tab_columns utc from user_tab_columns utc
, user_col_comments ucc , user_col_comments ucc
where utc.table_name = ucc.table_name where utc.table_name = ucc.table_name
and utc.column_name = ucc.column_name and utc.column_name = ucc.column_name
and utc.table_name = '{tableName}' and utc.table_name = '{tableName}'
order by column_id; "; order by column_id; ";
foreach (var context in _contexts) foreach (var context in _contexts)
{ {
@ -188,6 +190,7 @@ order by column_id; ";
var columnList = columns?.ToList(); var columnList = columns?.ToList();
if (columnList != null && columnList.Any()) if (columnList != null && columnList.Any())
{ {
columnList.ForEach(u => u.ColumnName = u.ColumnName.Transform(To.LowerCase, To.TitleCase));
return columnList; return columnList;
} }
} }
@ -202,7 +205,7 @@ order by column_id; ";
{ {
var sql = $@"SELECT DISTINCT var sql = $@"SELECT DISTINCT
Column_Name AS ColumnName, Column_Name AS ColumnName,
'{ tableName}' as tableName, '{tableName}' as tableName,
Column_Comment AS Comment, Column_Comment AS Comment,
data_type as ColumnType, data_type as ColumnType,
CASE CASE
@ -253,6 +256,7 @@ order by column_id; ";
var columnList = columns?.ToList(); var columnList = columns?.ToList();
if (columnList != null && columnList.Any()) if (columnList != null && columnList.Any())
{ {
columnList.ForEach(u => u.ColumnName = u.ColumnName.Transform(To.LowerCase, To.TitleCase));
return columnList; return columnList;
} }
} }
@ -263,10 +267,11 @@ order by column_id; ";
/// <summary> /// <summary>
/// 获取Mysql表结构信息 /// 获取pgsql表结构信息
/// </summary> /// </summary>
private IList<SysTableColumn> GetPostgreStructure(string tableName) private IList<SysTableColumn> GetPostgreStructure(string tableName)
{ {
tableName = tableName.ToLower();
var sql = $@"select attr.attrelid var sql = $@"select attr.attrelid
, schema.nspname as schemaname , schema.nspname as schemaname
, class.relname as tablename -- , class.relname as tablename --
@ -309,7 +314,7 @@ order by column_id; ";
or con.conname is null then 0 or con.conname is null then 0
else 1 else 1
end as isdisplay -- end as isdisplay --
from pg_catalog.pg_class class from pg_catalog.pg_class class
inner join pg_catalog.pg_attribute attr on attr.attrelid = class.oid inner join pg_catalog.pg_attribute attr on attr.attrelid = class.oid
left join pg_catalog.pg_constraint con left join pg_catalog.pg_constraint con
on con.conrelid = class.oid and attr.attnum = any (con.conkey) and con.contype = 'p' on con.conrelid = class.oid and attr.attnum = any (con.conkey) and con.contype = 'p'
@ -317,7 +322,7 @@ from pg_catalog.pg_class class
inner join pg_catalog.pg_description comment inner join pg_catalog.pg_description comment
on comment.objoid = attr.attrelid and comment.objsubid = attr.attnum on comment.objoid = attr.attrelid and comment.objsubid = attr.attnum
inner join pg_catalog.pg_namespace schema on schema.oid = class.relnamespace inner join pg_catalog.pg_namespace schema on schema.oid = class.relnamespace
where attr.attnum > 0 where attr.attnum > 0
and not attr.attisdropped and not attr.attisdropped
and schema.nspname = 'public' -- replace 'your_schema' with your schema name and schema.nspname = 'public' -- replace 'your_schema' with your schema name
and class.relname = '{tableName}'"; and class.relname = '{tableName}'";
@ -328,6 +333,7 @@ where attr.attnum > 0
var columnList = columns?.ToList(); var columnList = columns?.ToList();
if (columnList != null && columnList.Any()) if (columnList != null && columnList.Any())
{ {
columnList.ForEach(u => u.ColumnName = u.ColumnName.Transform(To.LowerCase, To.TitleCase));
return columnList; return columnList;
} }
} }
@ -426,7 +432,7 @@ where attr.attnum > 0
LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id
AND epTwo.minor_id = 0 AND epTwo.minor_id = 0
AND epTwo.name = 'MS_Description' AND epTwo.name = 'MS_Description'
WHERE obj.name = '{ tableName}') AS t WHERE obj.name = '{tableName}') AS t
ORDER BY t.colorder"; ORDER BY t.colorder";
foreach (var context in _contexts) foreach (var context in _contexts)

View File

@ -19,6 +19,7 @@
<PackageReference Include="Autofac" Version="8.1.1" /> <PackageReference Include="Autofac" Version="8.1.1" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" /> <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Include="Autofac.Extras.Quartz" Version="5.1.0" /> <PackageReference Include="Autofac.Extras.Quartz" Version="5.1.0" />
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.2" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="5.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="5.0.0" />