修改代码生成

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,
"version": "1.0.0",
"type": "module",

View File

@ -7,7 +7,7 @@ import CodeGenerationService from "@/services/development_tool/low_code/CodeGene
//
const props = defineProps<{ rowData: any }>();
const codeType = ref("HZY.Models");
const codeType = ref("MiaoYu.Models");
const loading = ref(false);
const csharpEditorContainer = ref<HTMLElement>();
// monaco editor
@ -69,7 +69,7 @@ async function getCode() {
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");
}
@ -110,9 +110,9 @@ function downloadAll() {
<div class="mb-16">
<a-spin :spinning="loading">
<a-radio-group v-model:value="codeType">
<a-radio-button value="HZY.Models">实体</a-radio-button>
<a-radio-button value="HZY.Services.Admin">服务</a-radio-button>
<a-radio-button value="HZY.Controllers.Admin">控制器</a-radio-button>
<a-radio-button value="MiaoYu.Models">实体</a-radio-button>
<a-radio-button value="MiaoYu.Services.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.Info">客户端表单页</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>
/// 数据库表服务
@ -12,6 +14,7 @@ public class DatabaseTableService : IDatabaseTableService
private readonly IRepository<LowCodeTable> _lowCodeTableRepository;
private readonly IRepository<LowCodeTableInfo> _lowCodeTableInfoRepository;
private readonly IRepository<T_Image_Config> _imageConfig;
/// <summary>
///
/// </summary>
@ -21,18 +24,31 @@ public class DatabaseTableService : IDatabaseTableService
public DatabaseTableService(
IMemoryCache memoryCache,
IRepository<LowCodeTable> lowCodeTableRepository,
IRepository<LowCodeTableInfo> lowCodeTableInfoRepository)
IRepository<LowCodeTableInfo> lowCodeTableInfoRepository,
IRepository<T_Image_Config> imageConfig
)
{
_memoryCache = memoryCache;
_lowCodeTableRepository = lowCodeTableRepository;
_lowCodeTableInfoRepository = lowCodeTableInfoRepository;
_imageConfig = imageConfig;
}
/// <summary>
/// 获取所有的表 包含表下面的列
/// </summary>
/// <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>
/// 获取所有的表 包含表下面的列

View File

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

View File

@ -627,7 +627,7 @@
数据库表服务
</summary>
</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>

View File

@ -6,7 +6,7 @@
<pre>
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;
/// <summary>

View File

@ -11,7 +11,8 @@
"LastModifierUserId" ,
"DeletionTime",
"DeleterUserId",
"IsDeleted"
"IsDeleted",
"TenantId",
};
var tableInfos = Model.TableInfos
@ -68,6 +69,10 @@
{
var lowCodeTableInfo = Model.TableInfos.Where(w => w.ColumnName == "Id")?.FirstOrDefault();
if (Model.DataBase == "MiaoYuChat")
{
return "DefaultEntityV4";
}
if (lowCodeTableInfo == null) return "DefaultEntity";
if (lowCodeTableInfo.CsType.ToLower().Contains("string"))
@ -86,7 +91,8 @@
}
<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>
/// @(string.IsNullOrWhiteSpace(classNameRemark) ? className : classNameRemark)

View File

@ -32,7 +32,7 @@
}
}
<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;
/// <summary>

View File

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

View File

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

View File

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

View File

@ -1,11 +1,7 @@
using MiaoYu.Repository.ChatAI.Admin.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using MiaoYu.Repository.ChatAI.Admin.Entities;
#nullable disable
namespace MiaoYu.Repository.ChatAI.Admin.Migrations
{
[DbContext(typeof(ChatAdminDbContext))]

View File

@ -7,13 +7,14 @@
// pi
"AdminRepositoryOptions": {
// SqlServer MySql PostgreSqlOracle
"DefaultDatabaseType": "MySql",
"DefaultDatabaseType": "SqlServer",
//EFCore
"IsMonitorEFCore": false,
"IsMonitorEFCore": true,
// - 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
//"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
//"ConnectionString": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=hzy_microservices_pgsql_20230227;Pooling=true;TimeZone=Asia/Shanghai",
//// - oracle

View File

@ -7,13 +7,14 @@
// pi
"AdminRepositoryOptions": {
// SqlServer MySql PostgreSqlOracle
"DefaultDatabaseType": "MySql",
"DefaultDatabaseType": "SqlServer",
//EFCore
"IsMonitorEFCore": false,
"IsMonitorEFCore": true,
// - 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
//"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
//"ConnectionString": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=hzy_microservices_pgsql_20230227;Pooling=true;TimeZone=Asia/Shanghai",
//// - oracle