修改代码生成

This commit is contained in:
zpc 2024-07-18 15:12:49 +08:00
parent 54ec2b977b
commit 1d8ccfca40
14 changed files with 81 additions and 32 deletions

View File

@ -1,5 +1,5 @@
{ {
"name": "hzy-admin", "name": "MiaoYu-admin",
"private": true, "private": true,
"version": "1.0.0", "version": "1.0.0",
"type": "module", "type": "module",

View File

@ -7,7 +7,7 @@ import CodeGenerationService from "@/services/development_tool/low_code/CodeGene
// //
const props = defineProps<{ rowData: any }>(); const props = defineProps<{ rowData: any }>();
const codeType = ref("HZY.Models"); const codeType = ref("MiaoYu.Models");
const loading = ref(false); const loading = ref(false);
const csharpEditorContainer = ref<HTMLElement>(); const csharpEditorContainer = ref<HTMLElement>();
// monaco editor // monaco editor
@ -69,7 +69,7 @@ async function getCode() {
standaloneCodeEditor?.setValue(result?.data?.code); standaloneCodeEditor?.setValue(result?.data?.code);
// //
if (codeType.value == "HZY.Models" || codeType.value == "HZY.Services.Admin" || codeType.value == "HZY.Controllers.Admin") { if (codeType.value == "MiaoYu.Models" || codeType.value == "MiaoYu.Services.Admin" || codeType.value == "MiaoYu.Controllers.Admin") {
monaco.editor.setModelLanguage(standaloneCodeEditor?.getModel()!, "csharp"); monaco.editor.setModelLanguage(standaloneCodeEditor?.getModel()!, "csharp");
} }
@ -110,9 +110,9 @@ function downloadAll() {
<div class="mb-16"> <div class="mb-16">
<a-spin :spinning="loading"> <a-spin :spinning="loading">
<a-radio-group v-model:value="codeType"> <a-radio-group v-model:value="codeType">
<a-radio-button value="HZY.Models">实体</a-radio-button> <a-radio-button value="MiaoYu.Models">实体</a-radio-button>
<a-radio-button value="HZY.Services.Admin">服务</a-radio-button> <a-radio-button value="MiaoYu.Services.Admin">服务</a-radio-button>
<a-radio-button value="HZY.Controllers.Admin">控制器</a-radio-button> <a-radio-button value="MiaoYu.Controllers.Admin">控制器</a-radio-button>
<a-radio-button value="Client.Index">客户端列表页</a-radio-button> <a-radio-button value="Client.Index">客户端列表页</a-radio-button>
<a-radio-button value="Client.Info">客户端表单页</a-radio-button> <a-radio-button value="Client.Info">客户端表单页</a-radio-button>
<a-radio-button value="Client.Service">客户端服务</a-radio-button> <a-radio-button value="Client.Service">客户端服务</a-radio-button>

View File

@ -1,4 +1,6 @@
namespace MiaoYu.Api.Admin.ApplicationServices.DevelopmentTools.LowCode.Impl; using MiaoYu.Repository.ChatAI.Admin.Entities;
namespace MiaoYu.Api.Admin.ApplicationServices.DevelopmentTools.LowCode.Impl;
/// <summary> /// <summary>
/// 数据库表服务 /// 数据库表服务
@ -12,6 +14,7 @@ public class DatabaseTableService : IDatabaseTableService
private readonly IRepository<LowCodeTable> _lowCodeTableRepository; private readonly IRepository<LowCodeTable> _lowCodeTableRepository;
private readonly IRepository<LowCodeTableInfo> _lowCodeTableInfoRepository; private readonly IRepository<LowCodeTableInfo> _lowCodeTableInfoRepository;
private readonly IRepository<T_Image_Config> _imageConfig;
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -21,18 +24,31 @@ public class DatabaseTableService : IDatabaseTableService
public DatabaseTableService( public DatabaseTableService(
IMemoryCache memoryCache, IMemoryCache memoryCache,
IRepository<LowCodeTable> lowCodeTableRepository, IRepository<LowCodeTable> lowCodeTableRepository,
IRepository<LowCodeTableInfo> lowCodeTableInfoRepository) IRepository<LowCodeTableInfo> lowCodeTableInfoRepository,
IRepository<T_Image_Config> imageConfig
)
{ {
_memoryCache = memoryCache; _memoryCache = memoryCache;
_lowCodeTableRepository = lowCodeTableRepository; _lowCodeTableRepository = lowCodeTableRepository;
_lowCodeTableInfoRepository = lowCodeTableInfoRepository; _lowCodeTableInfoRepository = lowCodeTableInfoRepository;
_imageConfig = imageConfig;
} }
/// <summary> /// <summary>
/// 获取所有的表 包含表下面的列 /// 获取所有的表 包含表下面的列
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public virtual List<DbTableInfo> GetAllTableInfos() => _lowCodeTableRepository.UnitOfWork.FreeSqlOrm.DbFirst.GetTablesByDatabase(); public virtual List<DbTableInfo> GetAllTableInfos()
{
var list = _lowCodeTableRepository.UnitOfWork.FreeSqlOrm.DbFirst.GetTablesByDatabase();
var tlist = _imageConfig.UnitOfWork.FreeSqlOrm.DbFirst.GetTablesByDatabase();
tlist.ForEach(t =>
{
t.Schema = t.Schema + "." + "MiaoYuChat";
});
list.AddRange(tlist);
return list;
}
/// <summary> /// <summary>
/// 获取所有的表 包含表下面的列 /// 获取所有的表 包含表下面的列

View File

@ -11,12 +11,10 @@ public class LowCodeTableService : ApplicationService<IRepository<LowCodeTable>>
private readonly LowCodeTableInfoService _lowCodeTableInfoService; private readonly LowCodeTableInfoService _lowCodeTableInfoService;
private readonly IDatabaseTableService _databaseTableService; private readonly IDatabaseTableService _databaseTableService;
private readonly ICodeGenerationService _codeGenerationService; private readonly ICodeGenerationService _codeGenerationService;
public LowCodeTableService( public LowCodeTableService(
IRepository<LowCodeTable> defaultRepository, IRepository<LowCodeTable> defaultRepository,
LowCodeTableInfoService lowCodeTableInfoService, LowCodeTableInfoService lowCodeTableInfoService,
IRepository<LowCodeTableInfo> lowCodeTableInfoRepository, IRepository<LowCodeTableInfo> lowCodeTableInfoRepository,
IRepository<T_Image_Config> imageConfig,
IDatabaseTableService databaseTableService, IDatabaseTableService databaseTableService,
ICodeGenerationService codeGenerationService) : base(defaultRepository) ICodeGenerationService codeGenerationService) : base(defaultRepository)
{ {
@ -24,6 +22,7 @@ public class LowCodeTableService : ApplicationService<IRepository<LowCodeTable>>
_lowCodeTableInfoRepository = lowCodeTableInfoRepository; _lowCodeTableInfoRepository = lowCodeTableInfoRepository;
_databaseTableService = databaseTableService; _databaseTableService = databaseTableService;
_codeGenerationService = codeGenerationService; _codeGenerationService = codeGenerationService;
} }
/// <summary> /// <summary>
@ -33,6 +32,7 @@ public class LowCodeTableService : ApplicationService<IRepository<LowCodeTable>>
/// <returns></returns> /// <returns></returns>
public async Task<PagingView> FindListAsync(PagingSearchInput<LowCodeTable> pagingSearchInput) public async Task<PagingView> FindListAsync(PagingSearchInput<LowCodeTable> pagingSearchInput)
{ {
var query = _defaultRepository.SelectNoTracking var query = _defaultRepository.SelectNoTracking
.WhereIf(!string.IsNullOrWhiteSpace(pagingSearchInput.Search.TableName), .WhereIf(!string.IsNullOrWhiteSpace(pagingSearchInput.Search.TableName),
w => w.TableName.Contains(pagingSearchInput.Search.TableName)) w => w.TableName.Contains(pagingSearchInput.Search.TableName))
@ -51,6 +51,7 @@ public class LowCodeTableService : ApplicationService<IRepository<LowCodeTable>>
w.Remark, w.Remark,
w.LastModificationTime, w.LastModificationTime,
w.CreationTime, w.CreationTime,
w.DataBase,
}) })
; ;
@ -97,10 +98,12 @@ public class LowCodeTableService : ApplicationService<IRepository<LowCodeTable>>
var ids = new List<Guid>(); var ids = new List<Guid>();
foreach (var item in allTables) foreach (var item in allTables)
{ {
var table = oldAllTables.Find(w => w.TableName == item.Name); var table = oldAllTables.Find(w => w.TableName == item.Name);
var id = Guid.NewGuid(); var id = Guid.NewGuid();
if (table == null) if (table == null)
{ {
var lowCodeTable = new LowCodeTable var lowCodeTable = new LowCodeTable
{ {
Id = id, Id = id,
@ -108,11 +111,24 @@ public class LowCodeTableService : ApplicationService<IRepository<LowCodeTable>>
TableName = item.Name, TableName = item.Name,
EntityName = item.Name.ToLineConvertHump() EntityName = item.Name.ToLineConvertHump()
}; };
if (item.Schema.Contains(".MiaoYuChat"))
{
item.Schema = item.Schema.Replace(".MiaoYuChat", "");
lowCodeTable.Schema = item.Schema;
lowCodeTable.DataBase = "MiaoYuChat";
}
insertList.Add(lowCodeTable); insertList.Add(lowCodeTable);
} }
else else
{ {
id = table.Id; id = table.Id;
if (item.Schema.Contains(".MiaoYuChat"))
{
item.Schema = item.Schema.Replace(".MiaoYuChat", "");
table.Schema = item.Schema;
table.DataBase = "MiaoYuChat";
}
updateList.Add(table); updateList.Add(table);
} }

View File

@ -627,7 +627,7 @@
数据库表服务 数据库表服务
</summary> </summary>
</member> </member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.DevelopmentTools.LowCode.Impl.DatabaseTableService.#ctor(Microsoft.Extensions.Caching.Memory.IMemoryCache,HZY.Framework.Repository.EntityFramework.IRepository{MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTable},HZY.Framework.Repository.EntityFramework.IRepository{MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTableInfo})"> <member name="M:MiaoYu.Api.Admin.ApplicationServices.DevelopmentTools.LowCode.Impl.DatabaseTableService.#ctor(Microsoft.Extensions.Caching.Memory.IMemoryCache,HZY.Framework.Repository.EntityFramework.IRepository{MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTable},HZY.Framework.Repository.EntityFramework.IRepository{MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTableInfo},HZY.Framework.Repository.EntityFramework.IRepository{MiaoYu.Repository.ChatAI.Admin.Entities.T_Image_Config})">
<summary> <summary>
</summary> </summary>

View File

@ -6,7 +6,7 @@
<pre> <pre>
using @(Model.Namespace).Api.Admin.ApplicationServices.Apps; using @(Model.Namespace).Api.Admin.ApplicationServices.Apps;
using @(Model.Namespace).Repository.EntityFramework.Admin.Entities.Apps; using @(Model.Namespace).@(Model.DataBase == "MiaoYuChat" ? "Repository.ChatAI.Admin.Entities.Apps;" : "Repository.EntityFramework.Admin.Entities.Apps;");
namespace @(Model.Namespace).Api.Admin.Controllers.Apps; namespace @(Model.Namespace).Api.Admin.Controllers.Apps;
/// <summary> /// <summary>

View File

@ -11,7 +11,8 @@
"LastModifierUserId" , "LastModifierUserId" ,
"DeletionTime", "DeletionTime",
"DeleterUserId", "DeleterUserId",
"IsDeleted" "IsDeleted",
"TenantId",
}; };
var tableInfos = Model.TableInfos var tableInfos = Model.TableInfos
@ -68,6 +69,10 @@
{ {
var lowCodeTableInfo = Model.TableInfos.Where(w => w.ColumnName == "Id")?.FirstOrDefault(); var lowCodeTableInfo = Model.TableInfos.Where(w => w.ColumnName == "Id")?.FirstOrDefault();
if (Model.DataBase == "MiaoYuChat")
{
return "DefaultEntityV4";
}
if (lowCodeTableInfo == null) return "DefaultEntity"; if (lowCodeTableInfo == null) return "DefaultEntity";
if (lowCodeTableInfo.CsType.ToLower().Contains("string")) if (lowCodeTableInfo.CsType.ToLower().Contains("string"))
@ -86,7 +91,8 @@
} }
<pre> <pre>
namespace @(Model.Namespace).Repository.EntityFramework.Admin.Entities.Apps;
namespace @(Model.Namespace).@(Model.DataBase == "MiaoYuChat" ? "Repository.ChatAI.Admin.Entities.Apps;" : "Repository.EntityFramework.Admin.Entities.Apps;")
/// <summary> /// <summary>
/// @(string.IsNullOrWhiteSpace(classNameRemark) ? className : classNameRemark) /// @(string.IsNullOrWhiteSpace(classNameRemark) ? className : classNameRemark)

View File

@ -32,7 +32,7 @@
} }
} }
<pre> <pre>
using @(Model.Namespace).Repository.EntityFramework.Admin.Entities.Apps; using @(Model.Namespace).@(Model.DataBase == "MiaoYuChat" ? "Repository.ChatAI.Admin.Entities.Apps;" : "Repository.EntityFramework.Admin.Entities.Apps;")
namespace @(Model.Namespace).Api.Admin.ApplicationServices.Apps; namespace @(Model.Namespace).Api.Admin.ApplicationServices.Apps;
/// <summary> /// <summary>

View File

@ -11,6 +11,11 @@ public class LowCodeTable : DefaultEntity
/// </summary> /// </summary>
public string? Schema { get; set; } public string? Schema { get; set; }
/// <summary>
/// 所属数据库
/// </summary>
public string? DataBase { get; set; }
/// <summary> /// <summary>
/// 类型 /// 类型
/// </summary> /// </summary>

View File

@ -344,6 +344,11 @@
</summary> </summary>
</member> </member>
<member name="P:MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTable.DataBase">
<summary>
所属数据库
</summary>
</member>
<member name="P:MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTable.Type"> <member name="P:MiaoYu.Repository.Admin.Entities.LowCode.LowCodeTable.Type">
<summary> <summary>
类型 类型

View File

@ -1,6 +1,8 @@
// <auto-generated /> // <auto-generated />
using System; using System;
using MiaoYu.Repository.Admin; using MiaoYu.Repository.Admin;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Metadata;
@ -388,7 +390,8 @@ namespace MiaoYu.Repository.Admin.Migrations
b.Property<string>("Schema") b.Property<string>("Schema")
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<string>("DataBase")
.HasColumnType("nvarchar(100)");
b.Property<string>("ServicePath") b.Property<string>("ServicePath")
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");

View File

@ -1,11 +1,7 @@
using MiaoYu.Repository.ChatAI.Admin.Entities; 
using MiaoYu.Repository.ChatAI.Admin.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
#nullable disable
namespace MiaoYu.Repository.ChatAI.Admin.Migrations namespace MiaoYu.Repository.ChatAI.Admin.Migrations
{ {
[DbContext(typeof(ChatAdminDbContext))] [DbContext(typeof(ChatAdminDbContext))]

View File

@ -7,13 +7,14 @@
// pi // pi
"AdminRepositoryOptions": { "AdminRepositoryOptions": {
// SqlServer MySql PostgreSqlOracle // SqlServer MySql PostgreSqlOracle
"DefaultDatabaseType": "MySql", "DefaultDatabaseType": "SqlServer",
//EFCore //EFCore
"IsMonitorEFCore": false, "IsMonitorEFCore": true,
// - mysql // - mysql
"ConnectionString": "Server=localhost; port=3306; Database=hzy_admin_mysql_20230227; uid=root; pwd=123456; Convert Zero Datetime=False" //"ConnectionString": "Server=localhost; port=3306; Database=hzy_admin_mysql_20230227; uid=root; pwd=123456; Convert Zero Datetime=False"
//// - sqlserver //// - sqlserver
//"ConnectionString": "Server=.;Database=hzy_microservices_sqlserver_20230227;User ID=sa;Password=123456;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;", //"ConnectionString": "Server=192.168.195.2;Database=MiaoYu;User ID=zpc;Password=zpc;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;",
"ConnectionString": "Server=192.168.195.2;Database=HZY;User ID=zpc;Password=zpc;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;"
//// - postgresql //// - postgresql
//"ConnectionString": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=hzy_microservices_pgsql_20230227;Pooling=true;TimeZone=Asia/Shanghai", //"ConnectionString": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=hzy_microservices_pgsql_20230227;Pooling=true;TimeZone=Asia/Shanghai",
//// - oracle //// - oracle

View File

@ -7,13 +7,14 @@
// pi // pi
"AdminRepositoryOptions": { "AdminRepositoryOptions": {
// SqlServer MySql PostgreSqlOracle // SqlServer MySql PostgreSqlOracle
"DefaultDatabaseType": "MySql", "DefaultDatabaseType": "SqlServer",
//EFCore //EFCore
"IsMonitorEFCore": false, "IsMonitorEFCore": true,
// - mysql // - mysql
"ConnectionString": "Server=localhost; port=3306; Database=hzy_admin_mysql_20230227; uid=root; pwd=123456; Convert Zero Datetime=False" //"ConnectionString": "Server=localhost; port=3306; Database=hzy_admin_mysql_20230227; uid=root; pwd=123456; Convert Zero Datetime=False"
//// - sqlserver //// - sqlserver
//"ConnectionString": "Server=.;Database=hzy_microservices_sqlserver_20230227;User ID=sa;Password=123456;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;", //"ConnectionString": "Server=192.168.195.2;Database=MiaoYu;User ID=zpc;Password=zpc;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;",
"ConnectionString": "Server=192.168.195.2;Database=HZY;User ID=zpc;Password=zpc;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;"
//// - postgresql //// - postgresql
//"ConnectionString": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=hzy_microservices_pgsql_20230227;Pooling=true;TimeZone=Asia/Shanghai", //"ConnectionString": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=hzy_microservices_pgsql_20230227;Pooling=true;TimeZone=Asia/Shanghai",
//// - oracle //// - oracle