From 30d6dcb303950a2269ce10a8abeb7ee28dbbd343 Mon Sep 17 00:00:00 2001 From: zuohuaijun Date: Fri, 19 Sep 2025 03:20:32 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entity/TableEntityCodeGenStrategy.cs | 5 +- .../api-services/system/apis/sys-auth-api.ts | 85 +++++++++++++ .../system/apis/sys-database-api.ts | 119 +----------------- ...admin-netresult-template-context-output.ts | 69 ++++++++++ Web/src/api-services/system/models/index.ts | 2 + .../system/models/template-context-output.ts | 54 ++++++++ 6 files changed, 218 insertions(+), 116 deletions(-) create mode 100644 Web/src/api-services/system/models/admin-netresult-template-context-output.ts create mode 100644 Web/src/api-services/system/models/template-context-output.ts diff --git a/Admin.NET/Admin.NET.Core/CodeGen/Strategies/Entity/TableEntityCodeGenStrategy.cs b/Admin.NET/Admin.NET.Core/CodeGen/Strategies/Entity/TableEntityCodeGenStrategy.cs index 6894e7de..f1a15f40 100644 --- a/Admin.NET/Admin.NET.Core/CodeGen/Strategies/Entity/TableEntityCodeGenStrategy.cs +++ b/Admin.NET/Admin.NET.Core/CodeGen/Strategies/Entity/TableEntityCodeGenStrategy.cs @@ -52,7 +52,10 @@ public class TableEntityCodeGenStrategy : CodeGenEntityStrategyBase _viewEngine.RunCompile(context, engine, builder)); + var result = await RenderAsync(_template, (context, builder) => _viewEngine.RunCompile(context, engine, builder => + { + builder.AddAssemblyReferenceByName("SqlSugar"); + })); result.OutPath = Path.Combine(Path.Combine(new DirectoryInfo(App.WebHostEnvironment.ContentRootPath).Parent!.FullName, input.Position), result.OutPath.Replace("{ModuleName}", input.EntityName)); return [result]; } diff --git a/Web/src/api-services/system/apis/sys-auth-api.ts b/Web/src/api-services/system/apis/sys-auth-api.ts index 7e42cccd..a4d76953 100644 --- a/Web/src/api-services/system/apis/sys-auth-api.ts +++ b/Web/src/api-services/system/apis/sys-auth-api.ts @@ -19,6 +19,7 @@ import { Configuration } from '../configuration'; import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base'; import { AdminNETResultBoolean } from '../models'; import { AdminNETResultCaptchaOutput } from '../models'; +import { AdminNETResultInt64 } from '../models'; import { AdminNETResultLoginOutput } from '../models'; import { AdminNETResultLoginUserOutput } from '../models'; import { LoginInput } from '../models'; @@ -319,6 +320,55 @@ export const SysAuthApiAxiosParamCreator = function (configuration?: Configurati options: localVarRequestOptions, }; }, + /** + * + * @summary 根据域名获取租户ID 🔖 + * @param {string} hostname + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysAuthTenantIdByHostnameHostnameGet: async (hostname: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'hostname' is not null or undefined + if (hostname === null || hostname === undefined) { + throw new RequiredError('hostname','Required parameter hostname was null or undefined when calling apiSysAuthTenantIdByHostnameHostnameGet.'); + } + const localVarPath = `/api/sysAuth/tenantIdByHostname/{hostname}` + .replace(`{${"hostname"}}`, encodeURIComponent(String(hostname))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, 'https://example.com'); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication Bearer required + // http bearer authentication required + if (configuration && configuration.accessToken) { + const accessToken = typeof configuration.accessToken === 'function' + ? await configuration.accessToken() + : await configuration.accessToken; + localVarHeaderParameter["Authorization"] = "Bearer " + accessToken; + } + + const query = new URLSearchParams(localVarUrlObj.search); + for (const key in localVarQueryParameter) { + query.set(key, localVarQueryParameter[key]); + } + for (const key in options.params) { + query.set(key, options.params[key]); + } + localVarUrlObj.search = (new URLSearchParams(query)).toString(); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, /** * * @summary 验证锁屏密码 🔖 @@ -505,6 +555,20 @@ export const SysAuthApiFp = function(configuration?: Configuration) { return axios.request(axiosRequestArgs); }; }, + /** + * + * @summary 根据域名获取租户ID 🔖 + * @param {string} hostname + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysAuthTenantIdByHostnameHostnameGet(hostname: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysAuthApiAxiosParamCreator(configuration).apiSysAuthTenantIdByHostnameHostnameGet(hostname, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, /** * * @summary 验证锁屏密码 🔖 @@ -599,6 +663,16 @@ export const SysAuthApiFactory = function (configuration?: Configuration, basePa async apiSysAuthLogoutPost(options?: AxiosRequestConfig): Promise> { return SysAuthApiFp(configuration).apiSysAuthLogoutPost(options).then((request) => request(axios, basePath)); }, + /** + * + * @summary 根据域名获取租户ID 🔖 + * @param {string} hostname + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysAuthTenantIdByHostnameHostnameGet(hostname: string, options?: AxiosRequestConfig): Promise> { + return SysAuthApiFp(configuration).apiSysAuthTenantIdByHostnameHostnameGet(hostname, options).then((request) => request(axios, basePath)); + }, /** * * @summary 验证锁屏密码 🔖 @@ -692,6 +766,17 @@ export class SysAuthApi extends BaseAPI { public async apiSysAuthLogoutPost(options?: AxiosRequestConfig) : Promise> { return SysAuthApiFp(this.configuration).apiSysAuthLogoutPost(options).then((request) => request(this.axios, this.basePath)); } + /** + * + * @summary 根据域名获取租户ID 🔖 + * @param {string} hostname + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysAuthApi + */ + public async apiSysAuthTenantIdByHostnameHostnameGet(hostname: string, options?: AxiosRequestConfig) : Promise> { + return SysAuthApiFp(this.configuration).apiSysAuthTenantIdByHostnameHostnameGet(hostname, options).then((request) => request(this.axios, this.basePath)); + } /** * * @summary 验证锁屏密码 🔖 diff --git a/Web/src/api-services/system/apis/sys-database-api.ts b/Web/src/api-services/system/apis/sys-database-api.ts index cb22486f..76933671 100644 --- a/Web/src/api-services/system/apis/sys-database-api.ts +++ b/Web/src/api-services/system/apis/sys-database-api.ts @@ -22,7 +22,7 @@ import { AdminNETResultListDbColumnOutput } from '../models'; import { AdminNETResultListDbOutput } from '../models'; import { AdminNETResultListDbTableInfo } from '../models'; import { AdminNETResultListString } from '../models'; -import { AdminNETResultString } from '../models'; +import { AdminNETResultTemplateContextOutput } from '../models'; import { AdminNETResultVisualDbTable } from '../models'; import { CreateEntityInput } from '../models'; import { CreateSeedDataInput } from '../models'; @@ -476,73 +476,6 @@ export const SysDatabaseApiAxiosParamCreator = function (configuration?: Configu options: localVarRequestOptions, }; }, - /** - * - * @summary 创建实体文件内容 - * @param {string} configId - * @param {string} tableName - * @param {string} position - * @param {string} baseClassName - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost: async (configId: string, tableName: string, position: string, baseClassName: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'configId' is not null or undefined - if (configId === null || configId === undefined) { - throw new RequiredError('configId','Required parameter configId was null or undefined when calling apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost.'); - } - // verify required parameter 'tableName' is not null or undefined - if (tableName === null || tableName === undefined) { - throw new RequiredError('tableName','Required parameter tableName was null or undefined when calling apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost.'); - } - // verify required parameter 'position' is not null or undefined - if (position === null || position === undefined) { - throw new RequiredError('position','Required parameter position was null or undefined when calling apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost.'); - } - // verify required parameter 'baseClassName' is not null or undefined - if (baseClassName === null || baseClassName === undefined) { - throw new RequiredError('baseClassName','Required parameter baseClassName was null or undefined when calling apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost.'); - } - const localVarPath = `/api/sysDatabase/generateEntity/{configId}/{tableName}/{position}/{baseClassName}` - .replace(`{${"configId"}}`, encodeURIComponent(String(configId))) - .replace(`{${"tableName"}}`, encodeURIComponent(String(tableName))) - .replace(`{${"position"}}`, encodeURIComponent(String(position))) - .replace(`{${"baseClassName"}}`, encodeURIComponent(String(baseClassName))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication Bearer required - // http bearer authentication required - if (configuration && configuration.accessToken) { - const accessToken = typeof configuration.accessToken === 'function' - ? await configuration.accessToken() - : await configuration.accessToken; - localVarHeaderParameter["Authorization"] = "Bearer " + accessToken; - } - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.params) { - query.set(key, options.params[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, /** * * @summary 创建实体文件内容 @@ -1149,23 +1082,6 @@ export const SysDatabaseApiFp = function(configuration?: Configuration) { return axios.request(axiosRequestArgs); }; }, - /** - * - * @summary 创建实体文件内容 - * @param {string} configId - * @param {string} tableName - * @param {string} position - * @param {string} baseClassName - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost(configId: string, tableName: string, position: string, baseClassName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await SysDatabaseApiAxiosParamCreator(configuration).apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost(configId, tableName, position, baseClassName, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, /** * * @summary 创建实体文件内容 @@ -1173,7 +1089,7 @@ export const SysDatabaseApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async apiSysDatabaseGenerateEntityPost(body?: CreateEntityInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + async apiSysDatabaseGenerateEntityPost(body?: CreateEntityInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { const localVarAxiosArgs = await SysDatabaseApiAxiosParamCreator(configuration).apiSysDatabaseGenerateEntityPost(body, options); return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; @@ -1403,19 +1319,6 @@ export const SysDatabaseApiFactory = function (configuration?: Configuration, ba async apiSysDatabaseDeleteTablePost(body?: DeleteDbTableInput, options?: AxiosRequestConfig): Promise> { return SysDatabaseApiFp(configuration).apiSysDatabaseDeleteTablePost(body, options).then((request) => request(axios, basePath)); }, - /** - * - * @summary 创建实体文件内容 - * @param {string} configId - * @param {string} tableName - * @param {string} position - * @param {string} baseClassName - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost(configId: string, tableName: string, position: string, baseClassName: string, options?: AxiosRequestConfig): Promise> { - return SysDatabaseApiFp(configuration).apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost(configId, tableName, position, baseClassName, options).then((request) => request(axios, basePath)); - }, /** * * @summary 创建实体文件内容 @@ -1423,7 +1326,7 @@ export const SysDatabaseApiFactory = function (configuration?: Configuration, ba * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async apiSysDatabaseGenerateEntityPost(body?: CreateEntityInput, options?: AxiosRequestConfig): Promise> { + async apiSysDatabaseGenerateEntityPost(body?: CreateEntityInput, options?: AxiosRequestConfig): Promise> { return SysDatabaseApiFp(configuration).apiSysDatabaseGenerateEntityPost(body, options).then((request) => request(axios, basePath)); }, /** @@ -1623,20 +1526,6 @@ export class SysDatabaseApi extends BaseAPI { public async apiSysDatabaseDeleteTablePost(body?: DeleteDbTableInput, options?: AxiosRequestConfig) : Promise> { return SysDatabaseApiFp(this.configuration).apiSysDatabaseDeleteTablePost(body, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @summary 创建实体文件内容 - * @param {string} configId - * @param {string} tableName - * @param {string} position - * @param {string} baseClassName - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SysDatabaseApi - */ - public async apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost(configId: string, tableName: string, position: string, baseClassName: string, options?: AxiosRequestConfig) : Promise> { - return SysDatabaseApiFp(this.configuration).apiSysDatabaseGenerateEntityConfigIdTableNamePositionBaseClassNamePost(configId, tableName, position, baseClassName, options).then((request) => request(this.axios, this.basePath)); - } /** * * @summary 创建实体文件内容 @@ -1645,7 +1534,7 @@ export class SysDatabaseApi extends BaseAPI { * @throws {RequiredError} * @memberof SysDatabaseApi */ - public async apiSysDatabaseGenerateEntityPost(body?: CreateEntityInput, options?: AxiosRequestConfig) : Promise> { + public async apiSysDatabaseGenerateEntityPost(body?: CreateEntityInput, options?: AxiosRequestConfig) : Promise> { return SysDatabaseApiFp(this.configuration).apiSysDatabaseGenerateEntityPost(body, options).then((request) => request(this.axios, this.basePath)); } /** diff --git a/Web/src/api-services/system/models/admin-netresult-template-context-output.ts b/Web/src/api-services/system/models/admin-netresult-template-context-output.ts new file mode 100644 index 00000000..7743f1cf --- /dev/null +++ b/Web/src/api-services/system/models/admin-netresult-template-context-output.ts @@ -0,0 +1,69 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * OpenAPI spec version: 1.0.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +import { TemplateContextOutput } from './template-context-output'; + /** + * 全局返回结果 + * + * @export + * @interface AdminNETResultTemplateContextOutput + */ +export interface AdminNETResultTemplateContextOutput { + + /** + * 状态码 + * + * @type {number} + * @memberof AdminNETResultTemplateContextOutput + */ + code?: number; + + /** + * 类型success、warning、error + * + * @type {string} + * @memberof AdminNETResultTemplateContextOutput + */ + type?: string | null; + + /** + * 错误信息 + * + * @type {string} + * @memberof AdminNETResultTemplateContextOutput + */ + message?: string | null; + + /** + * @type {TemplateContextOutput} + * @memberof AdminNETResultTemplateContextOutput + */ + result?: TemplateContextOutput; + + /** + * 附加数据 + * + * @type {any} + * @memberof AdminNETResultTemplateContextOutput + */ + extras?: any | null; + + /** + * 时间 + * + * @type {Date} + * @memberof AdminNETResultTemplateContextOutput + */ + time?: Date; +} diff --git a/Web/src/api-services/system/models/index.ts b/Web/src/api-services/system/models/index.ts index 6e22a724..11760ab4 100644 --- a/Web/src/api-services/system/models/index.ts +++ b/Web/src/api-services/system/models/index.ts @@ -154,6 +154,7 @@ export * from './admin-netresult-sys-user'; export * from './admin-netresult-sys-wechat-pay'; export * from './admin-netresult-system-hardware-info'; export * from './admin-netresult-system-runtime-info'; +export * from './admin-netresult-template-context-output'; export * from './admin-netresult-visual-db-table'; export * from './admin-netresult-wechat-pay-output'; export * from './admin-netresult-wechat-pay-para-output'; @@ -521,6 +522,7 @@ export * from './system-hardware-info'; export * from './system-runtime-info'; export * from './table-column-output'; export * from './table-output'; +export * from './template-context-output'; export * from './tenant-id-input'; export * from './tenant-input'; export * from './tenant-output'; diff --git a/Web/src/api-services/system/models/template-context-output.ts b/Web/src/api-services/system/models/template-context-output.ts new file mode 100644 index 00000000..fdb24964 --- /dev/null +++ b/Web/src/api-services/system/models/template-context-output.ts @@ -0,0 +1,54 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * OpenAPI spec version: 1.0.0 + * + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + /** + * 模板输出上下文 + * + * @export + * @interface TemplateContextOutput + */ +export interface TemplateContextOutput { + + /** + * 文件名 + * + * @type {string} + * @memberof TemplateContextOutput + */ + name?: string | null; + + /** + * 模板类型 + * + * @type {number} + * @memberof TemplateContextOutput + */ + type?: number; + + /** + * 输出路径 + * + * @type {string} + * @memberof TemplateContextOutput + */ + outPath?: string | null; + + /** + * 内容 + * + * @type {string} + * @memberof TemplateContextOutput + */ + context?: string | null; +}