Merge pull request 'main' (#1) from Admin.NET/Admin.NET.Pro:main into main

Reviewed-on: http://101.43.53.74:3000/362270511/Admin.NET.Pro/pulls/1
This commit is contained in:
362270511 2024-07-13 11:10:35 +08:00
commit 00ce696538
65 changed files with 2121 additions and 556 deletions

View File

@ -18,9 +18,9 @@
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.14.6" />
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.4.4" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.4.4" />
<PackageReference Include="Furion.Pure" Version="4.9.4.4" />
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.4.5" />
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.4.5" />
<PackageReference Include="Furion.Pure" Version="4.9.4.5" />
<PackageReference Include="IPTools.China" Version="1.6.0" />
<PackageReference Include="IPTools.International" Version="1.6.0" />
<PackageReference Include="Magicodes.IE.Excel" Version="2.7.5.1" />
@ -34,10 +34,10 @@
<PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.2" />
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.3.0" />
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.6.0" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.160" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.162" />
<PackageReference Include="SSH.NET" Version="2024.1.0" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.3" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1044" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1046" />
<PackageReference Include="UAParser" Version="3.1.47" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup>
@ -45,7 +45,7 @@
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
<PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />
<PackageReference Include="Lazy.Captcha.Core" Version="2.0.8" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="6.0.31" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="6.0.31" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="6.0.31" />

View File

@ -100,4 +100,9 @@ public class CacheConst
/// 系统字典缓存
/// </summary>
public const string KeyDict = "sys_dict:";
/// <summary>
/// Excel临时文件缓存
/// </summary>
public const string KeyExcelTemp = "sys_excel_temp:";
}

View File

@ -70,7 +70,7 @@ public class EnumToDictJob : IJob
});
try
{
db.Ado.BeginTran();
db.BeginTran();
if (uSysDictType.Count > 0)
await db.Updateable(uSysDictType).ExecuteCommandAsync(stoppingToken);
@ -78,11 +78,11 @@ public class EnumToDictJob : IJob
if (uSysDictData.Count > 0)
await db.Updateable(uSysDictData).ExecuteCommandAsync(stoppingToken);
db.Ado.CommitTran();
db.CommitTran();
}
catch (Exception error)
{
db.Ado.RollbackTran();
db.RollbackTran();
Log.Error($"{context.Trigger.Description}更新枚举转换字典入库错误:" + _jsonSerializer.Serialize(error));
throw new Exception($"{context.Trigger.Description}更新枚举转换字典入库错误");
}
@ -123,7 +123,7 @@ public class EnumToDictJob : IJob
});
try
{
db.Ado.BeginTran();
db.BeginTran();
if (iDictType.Count > 0)
await db.Insertable(iDictType).ExecuteCommandAsync(stoppingToken);
@ -131,11 +131,11 @@ public class EnumToDictJob : IJob
if (iDictData.Count > 0)
await db.Insertable(iDictData).ExecuteCommandAsync(stoppingToken);
db.Ado.CommitTran();
db.CommitTran();
}
catch (Exception error)
{
db.Ado.RollbackTran();
db.RollbackTran();
Log.Error($"{context.Trigger.Description}新增枚举转换字典入库错误:" + _jsonSerializer.Serialize(error));
throw new Exception($"{context.Trigger.Description}新增枚举转换字典入库错误");
}

View File

@ -19,33 +19,34 @@ public class SysBaseApiSeedData : ISqlSugarEntitySeedData<SysBaseApi>
{
return new[]
{
new SysBaseApi { Id = 1300000000001, Route = "sysAuth/login" },
new SysBaseApi { Id = 1300000000002, Route = "sysAuth/unLockScreen" },
new SysBaseApi { Id = 1300000000003, Route = "sysAuth/userInfo" },
new SysBaseApi { Id = 1300000000004, Route = "sysAuth/refreshToken" },
new SysBaseApi { Id = 1300000000005, Route = "sysAuth/loginConfig" },
new SysBaseApi { Id = 1300000000006, Route = "sysAuth/watermarkConfig" },
new SysBaseApi { Id = 1300000000007, Route = "sysAuth/captcha" },
new SysBaseApi { Id = 1300000000008, Route = "sysMenu/loginMenuTree" },
new SysBaseApi { Id = 1300000000009, Route = "sysOAuth/signIn" },
new SysBaseApi { Id = 1300000000010, Route = "sysOAuth/signInCallback" },
new SysBaseApi { Id = 1300000000011, Route = "sysOnlineUser/page" },
new SysBaseApi { Id = 1300000000012, Route = "sysOrg/list" },
new SysBaseApi { Id = 1300000000013, Route = "sysPos/list" },
new SysBaseApi { Id = 1300000000014, Route = "sysRole/page" },
new SysBaseApi { Id = 1300000000015, Route = "sysRole/list" },
new SysBaseApi { Id = 1300000000016, Route = "sysFile/uploadAvatar" },
new SysBaseApi { Id = 1300000000017, Route = "sysFile/uploadSignature" },
new SysBaseApi { Id = 1300000000018, Route = "sysUser/baseInfo" },
new SysBaseApi { Id = 1300000000019, Route = "sysUser/changePwd" },
new SysBaseApi { Id = 1300000000020, Route = "sysNotice/page" },
new SysBaseApi { Id = 1300000000021, Route = "sysNotice/add" },
new SysBaseApi { Id = 1300000000022, Route = "sysNotice/update" },
new SysBaseApi { Id = 1300000000023, Route = "sysNotice/delete" },
new SysBaseApi { Id = 1300000000024, Route = "sysNotice/public" },
new SysBaseApi { Id = 1300000000025, Route = "sysNotice/setRead" },
new SysBaseApi { Id = 1300000000026, Route = "sysNotice/pageReceived" },
new SysBaseApi { Id = 1300000000027, Route = "sysNotice/unReadList" },
new SysBaseApi { Id = 1300000000010, Route = "sysAuth/login" },
new SysBaseApi { Id = 1300000000020, Route = "sysAuth/unLockScreen" },
new SysBaseApi { Id = 1300000000030, Route = "sysAuth/userInfo" },
new SysBaseApi { Id = 1300000000040, Route = "sysAuth/refreshToken" },
new SysBaseApi { Id = 1300000000050, Route = "sysAuth/loginConfig" },
new SysBaseApi { Id = 1300000000060, Route = "sysAuth/watermarkConfig" },
new SysBaseApi { Id = 1300000000070, Route = "sysAuth/captcha" },
new SysBaseApi { Id = 1300000000080, Route = "sysAuth/logout" },
new SysBaseApi { Id = 1300000000090, Route = "sysMenu/loginMenuTree" },
new SysBaseApi { Id = 1300000000100, Route = "sysOAuth/signIn" },
new SysBaseApi { Id = 1300000000110, Route = "sysOAuth/signInCallback" },
new SysBaseApi { Id = 1300000000120, Route = "sysOnlineUser/page" },
new SysBaseApi { Id = 1300000000130, Route = "sysOrg/list" },
new SysBaseApi { Id = 1300000000140, Route = "sysPos/list" },
new SysBaseApi { Id = 1300000000150, Route = "sysRole/page" },
new SysBaseApi { Id = 1300000000160, Route = "sysRole/list" },
new SysBaseApi { Id = 1300000000170, Route = "sysFile/uploadAvatar" },
new SysBaseApi { Id = 1300000000180, Route = "sysFile/uploadSignature" },
new SysBaseApi { Id = 1300000000190, Route = "sysUser/baseInfo" },
new SysBaseApi { Id = 1300000000200, Route = "sysUser/changePwd" },
new SysBaseApi { Id = 1300000000210, Route = "sysNotice/page" },
new SysBaseApi { Id = 1300000000220, Route = "sysNotice/add" },
new SysBaseApi { Id = 1300000000230, Route = "sysNotice/update" },
new SysBaseApi { Id = 1300000000240, Route = "sysNotice/delete" },
new SysBaseApi { Id = 1300000000250, Route = "sysNotice/public" },
new SysBaseApi { Id = 1300000000260, Route = "sysNotice/setRead" },
new SysBaseApi { Id = 1300000000270, Route = "sysNotice/pageReceived" },
new SysBaseApi { Id = 1300000000280, Route = "sysNotice/unReadList" },
};
}
}

View File

@ -9,7 +9,7 @@ namespace Admin.NET.Core.Service;
/// <summary>
/// 系统域登录信息配置输入参数
/// </summary>
public class SysLdapInput : BasePageInput
public class PageSysLdapInput : BasePageInput
{
/// <summary>
/// 关键字查询

View File

@ -27,7 +27,7 @@ public class SysLdapService : IDynamicApiController, ITransient
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取系统域登录配置分页列表")]
public async Task<SqlSugarPagedList<SysLdap>> Page(SysLdapInput input)
public async Task<SqlSugarPagedList<SysLdap>> Page(PageSysLdapInput input)
{
return await _sysLdapRep.AsQueryable()
.WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u => u.Host.Contains(input.SearchKey.Trim()))

View File

@ -144,6 +144,10 @@ public class SysCacheService : IDynamicApiController, ISingleton
[DisplayName("获取缓存值")]
public object GetValue(string key)
{
// 若Key经过URL编码则进行解码
if (Regex.IsMatch(key, @"%[0-9a-fA-F]{2}"))
key = HttpUtility.UrlDecode(key);
return _cacheProvider.Cache == Cache.Default
? _cacheProvider.Cache.Get<object>($"{_cacheOptions.Prefix}{key}")
: _cacheProvider.Cache.Get<string>($"{_cacheOptions.Prefix}{key}");

View File

@ -1,192 +1,192 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
/// <summary>
/// 代码生成参数类
/// </summary>
public class CodeGenInput : BasePageInput
{
/// <summary>
/// 作者姓名
/// </summary>
public virtual string AuthorName { get; set; }
/// <summary>
/// 类名
/// </summary>
public virtual string ClassName { get; set; }
/// <summary>
/// 是否移除表前缀
/// </summary>
public virtual string TablePrefix { get; set; }
/// <summary>
/// 库定位器名
/// </summary>
public virtual string ConfigId { get; set; }
/// <summary>
/// 数据库名(保留字段)
/// </summary>
public virtual string DbName { get; set; }
/// <summary>
/// 数据库类型
/// </summary>
public virtual string DbType { get; set; }
/// <summary>
/// 数据库链接
/// </summary>
public virtual string ConnectionString { get; set; }
/// <summary>
/// 生成方式
/// </summary>
public virtual string GenerateType { get; set; }
/// <summary>
/// 数据库表名
/// </summary>
public virtual string TableName { get; set; }
/// <summary>
/// 命名空间
/// </summary>
public virtual string NameSpace { get; set; }
/// <summary>
/// 业务名(业务代码包名称)
/// </summary>
public virtual string BusName { get; set; }
/// <summary>
/// 功能名(数据库表名称)
/// </summary>
public virtual string TableComment { get; set; }
/// <summary>
/// 菜单应用分类(应用编码)
/// </summary>
public virtual string MenuApplication { get; set; }
/// <summary>
/// 是否生成菜单
/// </summary>
public virtual bool GenerateMenu { get; set; }
/// <summary>
/// 菜单父级
/// </summary>
public virtual long? MenuPid { get; set; }
/// <summary>
/// 页面目录
/// </summary>
public virtual string PagePath { get; set; }
/// <summary>
/// 支持打印类型
/// </summary>
public virtual string PrintType { get; set; }
/// <summary>
/// 打印模版名称
/// </summary>
public virtual string PrintName { get; set; }
/// <summary>
/// 是否使用 Api Service
/// </summary>
public virtual bool IsApiService { get; set; }
}
public class AddCodeGenInput : CodeGenInput
{
/// <summary>
/// 数据库表名
/// </summary>
[Required(ErrorMessage = "数据库表名不能为空")]
public override string TableName { get; set; }
/// <summary>
/// 业务名(业务代码包名称)
/// </summary>
[Required(ErrorMessage = "业务名不能为空")]
public override string BusName { get; set; }
/// <summary>
/// 命名空间
/// </summary>
[Required(ErrorMessage = "命名空间不能为空")]
public override string NameSpace { get; set; }
/// <summary>
/// 作者姓名
/// </summary>
[Required(ErrorMessage = "作者姓名不能为空")]
public override string AuthorName { get; set; }
///// <summary>
///// 类名
///// </summary>
//[Required(ErrorMessage = "类名不能为空")]
//public override string ClassName { get; set; }
///// <summary>
///// 是否移除表前缀
///// </summary>
//[Required(ErrorMessage = "是否移除表前缀不能为空")]
//public override string TablePrefix { get; set; }
/// <summary>
/// 生成方式
/// </summary>
[Required(ErrorMessage = "生成方式不能为空")]
public override string GenerateType { get; set; }
///// <summary>
///// 功能名(数据库表名称)
///// </summary>
//[Required(ErrorMessage = "数据库表名不能为空")]
//public override string TableComment { get; set; }
/// <summary>
/// 是否生成菜单
/// </summary>
[Required(ErrorMessage = "是否生成菜单不能为空")]
public override bool GenerateMenu { get; set; }
/// <summary>
/// 是否使用 Api Service
/// </summary>
public override bool IsApiService { get; set; }
}
public class DeleteCodeGenInput
{
/// <summary>
/// 代码生成器Id
/// </summary>
[Required(ErrorMessage = "代码生成器Id不能为空")]
public long Id { get; set; }
}
public class UpdateCodeGenInput : CodeGenInput
{
/// <summary>
/// 代码生成器Id
/// </summary>
[Required(ErrorMessage = "代码生成器Id不能为空")]
public long Id { get; set; }
}
public class QueryCodeGenInput : DeleteCodeGenInput
{
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
/// <summary>
/// 代码生成参数类
/// </summary>
public class PageCodeGenInput : BasePageInput
{
/// <summary>
/// 作者姓名
/// </summary>
public virtual string AuthorName { get; set; }
/// <summary>
/// 类名
/// </summary>
public virtual string ClassName { get; set; }
/// <summary>
/// 是否移除表前缀
/// </summary>
public virtual string TablePrefix { get; set; }
/// <summary>
/// 库定位器名
/// </summary>
public virtual string ConfigId { get; set; }
/// <summary>
/// 数据库名(保留字段)
/// </summary>
public virtual string DbName { get; set; }
/// <summary>
/// 数据库类型
/// </summary>
public virtual string DbType { get; set; }
/// <summary>
/// 数据库链接
/// </summary>
public virtual string ConnectionString { get; set; }
/// <summary>
/// 生成方式
/// </summary>
public virtual string GenerateType { get; set; }
/// <summary>
/// 数据库表名
/// </summary>
public virtual string TableName { get; set; }
/// <summary>
/// 命名空间
/// </summary>
public virtual string NameSpace { get; set; }
/// <summary>
/// 业务名(业务代码包名称)
/// </summary>
public virtual string BusName { get; set; }
/// <summary>
/// 功能名(数据库表名称)
/// </summary>
public virtual string TableComment { get; set; }
/// <summary>
/// 菜单应用分类(应用编码)
/// </summary>
public virtual string MenuApplication { get; set; }
/// <summary>
/// 是否生成菜单
/// </summary>
public virtual bool GenerateMenu { get; set; }
/// <summary>
/// 菜单父级
/// </summary>
public virtual long? MenuPid { get; set; }
/// <summary>
/// 页面目录
/// </summary>
public virtual string PagePath { get; set; }
/// <summary>
/// 支持打印类型
/// </summary>
public virtual string PrintType { get; set; }
/// <summary>
/// 打印模版名称
/// </summary>
public virtual string PrintName { get; set; }
/// <summary>
/// 是否使用 Api Service
/// </summary>
public virtual bool IsApiService { get; set; }
}
public class AddCodeGenInput : PageCodeGenInput
{
/// <summary>
/// 数据库表名
/// </summary>
[Required(ErrorMessage = "数据库表名不能为空")]
public override string TableName { get; set; }
/// <summary>
/// 业务名(业务代码包名称)
/// </summary>
[Required(ErrorMessage = "业务名不能为空")]
public override string BusName { get; set; }
/// <summary>
/// 命名空间
/// </summary>
[Required(ErrorMessage = "命名空间不能为空")]
public override string NameSpace { get; set; }
/// <summary>
/// 作者姓名
/// </summary>
[Required(ErrorMessage = "作者姓名不能为空")]
public override string AuthorName { get; set; }
///// <summary>
///// 类名
///// </summary>
//[Required(ErrorMessage = "类名不能为空")]
//public override string ClassName { get; set; }
///// <summary>
///// 是否移除表前缀
///// </summary>
//[Required(ErrorMessage = "是否移除表前缀不能为空")]
//public override string TablePrefix { get; set; }
/// <summary>
/// 生成方式
/// </summary>
[Required(ErrorMessage = "生成方式不能为空")]
public override string GenerateType { get; set; }
///// <summary>
///// 功能名(数据库表名称)
///// </summary>
//[Required(ErrorMessage = "数据库表名不能为空")]
//public override string TableComment { get; set; }
/// <summary>
/// 是否生成菜单
/// </summary>
[Required(ErrorMessage = "是否生成菜单不能为空")]
public override bool GenerateMenu { get; set; }
/// <summary>
/// 是否使用 Api Service
/// </summary>
public override bool IsApiService { get; set; }
}
public class DeleteCodeGenInput
{
/// <summary>
/// 代码生成器Id
/// </summary>
[Required(ErrorMessage = "代码生成器Id不能为空")]
public long Id { get; set; }
}
public class UpdateCodeGenInput : PageCodeGenInput
{
/// <summary>
/// 代码生成器Id
/// </summary>
[Required(ErrorMessage = "代码生成器Id不能为空")]
public long Id { get; set; }
}
public class QueryCodeGenInput : DeleteCodeGenInput
{
}

View File

@ -37,7 +37,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取代码生成分页列表")]
public async Task<SqlSugarPagedList<SysCodeGen>> Page(CodeGenInput input)
public async Task<SqlSugarPagedList<SysCodeGen>> Page(PageCodeGenInput input)
{
return await _db.Queryable<SysCodeGen>()
.WhereIF(!string.IsNullOrWhiteSpace(input.TableName), u => u.TableName.Contains(input.TableName.Trim()))

View File

@ -121,4 +121,23 @@ public class SysCommonService : IDynamicApiController, ITransient
}
return apiList;
}
/// <summary>
/// 下载标记错误的临时 Excel全局
/// </summary>
/// <returns></returns>
[DisplayName("下载标记错误的临时 Excel")]
public async Task<IActionResult> DownloadErrorExcelTemp([FromQuery] string fileName = null)
{
var userId = App.User?.FindFirst(ClaimConst.UserId)?.Value;
var resultStream = App.GetRequiredService<SysCacheService>().Get<MemoryStream>(CacheConst.KeyExcelTemp + userId);
if (resultStream == null)
throw Oops.Oh("错误标记文件已过期。");
return await Task.FromResult(new FileStreamResult(resultStream, "application/octet-stream")
{
FileDownloadName = $"{(string.IsNullOrEmpty(fileName) ? "_" + DateTime.Now.ToString("yyyyMMddhhmmss") : fileName)}.xlsx"
});
}
}

View File

@ -9,7 +9,7 @@ namespace Admin.NET.Core.Service;
/// <summary>
/// 开放接口身份输入参数
/// </summary>
public class OpenAccessInput : BasePageInput
public class PageOpenAccessInput : BasePageInput
{
/// <summary>
/// 身份标识

View File

@ -54,7 +54,7 @@ public class SysOpenAccessService : IDynamicApiController, ITransient
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取开放接口身份分页列表")]
public async Task<SqlSugarPagedList<OpenAccessOutput>> Page(OpenAccessInput input)
public async Task<SqlSugarPagedList<OpenAccessOutput>> Page(PageOpenAccessInput input)
{
return await _sysOpenAccessRep.AsQueryable()
.LeftJoin<SysUser>((u, a) => u.BindUserId == a.Id)

View File

@ -27,7 +27,7 @@ public class SysRoleApiService : ITransient
{
await _sysRoleApiRep.DeleteAsync(u => u.RoleId == input.Id);
var roleApis = input.ApiList.Select(u => new SysRoleApi
var roleApis = input.ApiList.Where(u => !string.IsNullOrWhiteSpace(u)).Select(u => new SysRoleApi
{
RoleId = input.Id,
Route = u

View File

@ -203,7 +203,44 @@ public static class CommonUtil
foreach (var item in drErrorInfo.FieldErrors)
message += $"\r\n{item.Key}{item.Value}(文件第{drErrorInfo.RowIndex}行)";
}
message += "字段缺失:" + string.Join("", res.TemplateErrors.Select(m => m.RequireColumnName).ToList());
message += "\r\n字段缺失" + string.Join("", res.TemplateErrors.Select(m => m.RequireColumnName).ToList());
throw Oops.Oh("导入异常:" + message);
}
return res.Data;
}
/// <summary>
/// 导入Excel数据并错误标记
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public static async Task<ICollection<T>> ImportExcelData<T>([Required] IFormFile file, Func<ImportResult<T>, ImportResult<T>> importResultCallback = null) where T : class, new()
{
IImporter importer = new ExcelImporter();
var resultStream = new MemoryStream();
var res = await importer.Import<T>(file.OpenReadStream(), resultStream, importResultCallback);
resultStream.Seek(0, SeekOrigin.Begin);
var userId = App.User?.FindFirst(ClaimConst.UserId)?.Value;
App.GetRequiredService<SysCacheService>().Remove(CacheConst.KeyExcelTemp + userId);
App.GetRequiredService<SysCacheService>().Set(CacheConst.KeyExcelTemp + userId, resultStream, TimeSpan.FromMinutes(5));
var message = string.Empty;
if (res.HasError)
{
if (res.Exception != null)
message += $"\r\n{res.Exception.Message}";
foreach (DataRowErrorInfo drErrorInfo in res.RowErrors)
{
int rowNum = drErrorInfo.RowIndex;
foreach (var item in drErrorInfo.FieldErrors)
message += $"\r\n{item.Key}{item.Value}(文件第{drErrorInfo.RowIndex}行)";
}
if (res.TemplateErrors.Count > 0)
message += "\r\n字段缺失" + string.Join("", res.TemplateErrors.Select(m => m.RequireColumnName).ToList());
if (message.Length > 200)
message = message.Substring(0, 200) + "...\r\n异常过多建议下载错误标记文件查看详细错误信息并重新导入。";
throw Oops.Oh("导入异常:" + message);
}
return res.Data;

View File

@ -20,25 +20,25 @@
<template>
<div class="@(@Model.LowerClassName)-container" v-loading="options.loading">
<el-card shadow="hover" :body-style="{ padding: '20px 20px 16px 10px', display: 'flex', width: '100%', height: '100%', alignItems: 'start' }">
<el-form :model="state.queryParams" ref="queryForm" :show-message="false" :inlineMessage="true" label-width="auto" style="flex: 1 1 0%" @@submit.prevent="handleQuery(true)" >
<el-form :model="state.queryParams" ref="queryForm" :show-message="false" :inlineMessage="true" label-width="auto" style="flex: 1 1 0%" @@submit.prevent="handleQuery" >
<el-row :gutter="10">
@if(Model.QueryWhetherList.Count > 0){
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="关键字" prop="searchKey">
<el-input v-model="state.queryParams.searchKey" placeholder="请输入模糊查询关键字" clearable @@keyup.enter.native="handleQuery(true)" />
<el-input v-model="state.queryParams.searchKey" placeholder="请输入模糊查询关键字" clearable @@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
foreach (var column in Model.QueryWhetherList) {
if(@column.EffectType == "Input" || @column.EffectType == "InputTextArea") {
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
<el-input v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="@column.ColumnComment" clearable @@keyup.enter.native="handleQuery(true)" />
<el-input v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="@column.ColumnComment" clearable @@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
} else if(@column.EffectType == "InputNumber") {
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
<el-form-item label="@column.ColumnComment">
<el-input-number v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="请输入@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery(true)" />
<el-input-number v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="请输入@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
} else if(@column.EffectType == "fk") {
@ -52,7 +52,7 @@
} else if(@column.EffectType == "Select") {
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery(true)" >
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery" >
<el-option v-for="(item,index) in dl('@(@column.DictTypeCode)')" :key="index" :value="item.code" :label="`${item.name} [${item.code}] ${item.value}`" />
</el-select>
</el-form-item>
@ -60,7 +60,7 @@
} else if(@column.EffectType == "EnumSelector") {
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery(true)" >
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery" >
<el-option v-for="(item,index) in dl('@(@column.DictTypeCode)')" :key="index" :value="item.value" :label="`${item.name} [${item.code}] ${item.value}`" />
</el-select>
</el-form-item>
@ -86,7 +86,7 @@
<el-row>
<el-col>
<el-button-group>
<el-button type="primary" icon="ele-Search" @@click="handleQuery(true)" v-auth="'@(@Model.LowerClassName):page'" :loading="options.loading"> 查询 </el-button>
<el-button type="primary" icon="ele-Search" @@click="handleQuery" v-auth="'@(@Model.LowerClassName):page'" :loading="options.loading"> 查询 </el-button>
<el-button icon="ele-Refresh" @@click="resetQuery" :loading="options.loading"> 重置 </el-button>
<el-button icon="ele-ZoomIn" @@click="changeAdvanceQueryUI" v-if="!state.showAdvanceQueryUI" style="margin-left: 5px"> 高级查询 </el-button>
<el-button icon="ele-ZoomOut" @@click="changeAdvanceQueryUI" v-if="state.showAdvanceQueryUI" style="margin-left: 5px"> 隐藏 </el-button>
@ -96,7 +96,7 @@
</el-card>
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" @@sort-change="sortChange">
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
<template #toolbar_buttons>
<el-button type="primary" icon="ele-Plus" @@click="handleAdd" v-auth="'@(@Model.LowerClassName):add'"> 新增 </el-button>
</template>
@ -154,11 +154,7 @@
@:<template #row_@(@column.LowerPropertyName)="{ row }">
@:<el-tag :type="dv('@(@column.DictTypeCode)', row.@(@column.LowerPropertyName))?.tagType"> {{dv('@(@column.DictTypeCode)', row.@column.LowerPropertyName)?.name}}</el-tag>
@:</template>
} else if(@column.EffectType == "DatePicker") {
@:<template #row_@(@column.LowerPropertyName)="{ row }">
@:<span>{{ formatDate(new Date(row.@(@column.LowerPropertyName)), 'YYYY-mm-dd HH:MM:SS') }}</span>
@:</template>
}
}
}
}
<template #row_record="{ row }">
@ -177,15 +173,6 @@
<el-button icon="ele-Delete" size="small" text type="danger" @@click="handleDelete(row)" v-auth="'@(@Model.LowerClassName):delete'" :disabled="row.status === 1" />
</el-tooltip>
</template>
<template #pager>
<vxe-pager
:loading="options.loading"
v-model:current-page="state.tableParams.page"
v-model:page-size="state.tableParams.pageSize"
:total="state.tableParams.total"
@@page-change="pageChange"
/>
</template>
</vxe-grid>
</el-card>
@ -198,8 +185,10 @@
import { onMounted, reactive, ref } from 'vue';
import { ElMessageBox, ElMessage } from "element-plus";
import { auth } from '/@@/utils/authFunction';
import { VxeGridInstance, VxePagerEvents, VxePagerDefines } from 'vxe-table';
import { useVxeTable } from '/@@/hooks/vxeTableOptionsHook';
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@@/hooks/useVxeTableOptionsHook';
import { Local } from '/@@/utils/storage';
@if(@Model.TableField.Any(x=>x.EffectType == "ConstSelector")){
@:import { codeToName, getConstType } from "/@@/utils/constHelper";
@ -260,81 +249,82 @@ const state = reactive({
}
}
},
tableParams: {
page: 1,
pageSize: 50,
field: 'id', // 默认的排序字段
order: 'aes', // 排序方向
descStr: 'desc', // 降序排序的关键字符
total: 0 as any,
localPageParam: {
pageSize: 50 as number,
defaultSort: { field: 'createTime', order: 'asc', descStr: 'desc' },
},
visible: false,
title: '',
});
// 本地存储参数
const localPageParamKey = 'localPageParam:@(@Model.LowerClassName)';
// 改变高级查询的控件显示状态
const changeAdvanceQueryUI = () => {
state.showAdvanceQueryUI = !state.showAdvanceQueryUI;
};
// 表格参数配置
const options = useVxeTable<@(@Model.ClassName)>({
id: '@(@Model.ClassName)',
name: '@(@Model.BusName)',
columns: [
{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
@foreach (var column in Model.TableField) {
var whethersortable =column.WhetherSortable == "Y" ? "sortable: true" : "sortable: false";
if(@column.WhetherTable == "Y") {
if(@column.EffectType == "Upload" || @column.EffectType == "fk" || @column.EffectType == "ApiTreeSelect" || @column.EffectType == "Switch" || @column.EffectType == "ConstSelector") {
if(@column.EffectType == "Upload") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "fk") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "ApiTreeSelect") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "Switch") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "ConstSelector") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
}
} else if(@column.EffectType == "Select") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "EnumSelector") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "DatePicker") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', @whethersortable},
}
}
}
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
{ title: '操作', fixed: 'right', width: 180, showOverflow: true, slots: { default: 'row_buttons' } },
],
enableExport: auth('@(@Model.LowerClassName):export'),
searchCallback: () => handleQuery(),
queryAllCallback: () => fetchData({ pageSize: 99999 }),
});
const options = useVxeTable<@(@Model.ClassName)>(
{
id: '@(@Model.ClassName)',
name: '@(@Model.BusName)',
columns: [
{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
@foreach (var column in Model.TableField) {
var whethersortable =column.WhetherSortable == "Y" ? "sortable: true" : "sortable: false";
if(@column.WhetherTable == "Y") {
if(@column.EffectType == "Upload" || @column.EffectType == "fk" || @column.EffectType == "ApiTreeSelect" || @column.EffectType == "Switch" || @column.EffectType == "ConstSelector") {
if(@column.EffectType == "Upload") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "fk") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "ApiTreeSelect") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "Switch") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "ConstSelector") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
}
} else if(@column.EffectType == "Select") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "EnumSelector") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
} else if(@column.EffectType == "DatePicker") {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', formatter: ({ cellValue }) => formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS'), @whethersortable },
} else {
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', @whethersortable},
}
}
}
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
{ title: '操作', fixed: 'right', width: 180, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid配置参数(此处可覆写任何参数)参考vxe-table官方文档
{
// 代理配置
proxyConfig: { autoLoad: true, ajax: { query: ({ page, sort }) => handleQueryApi(page, sort) } },
// 排序配置
sortConfig: { defaultSort: Local.get(localPageParamKey)?.defaultSort || state.localPageParam.defaultSort },
// 分页配置
pagerConfig: { pageSize: Local.get(localPageParamKey)?.pageSize || state.localPageParam.pageSize },
// 工具栏配置
toolbarConfig: { export: false },
// 行设置
rowConfig: { height: 80 },
}
);
// 页面初始化
onMounted(async () => {
await handleQuery();
});
// 查询操作
const handleQuery = async (reset = false) => {
options.loading = true;
if (reset) state.tableParams.page = 1;
var res = await fetchData(null);
xGrid.value?.loadData(res.data.result?.items ?? []);
state.tableParams.total = res.data.result?.total;
options.loading = false;
};
// 获取数据
const fetchData = async (tableParams: any) => {
let params = Object.assign(state.queryParams, state.tableParams, tableParams);
// 查询api
const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as @(@Model.ClassName)Input;
@if (@Model.IsApiService) {
@:return getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)PagePost(params);
} else {
@ -342,29 +332,20 @@ const fetchData = async (tableParams: any) => {
}
};
// 查询操作
const handleQuery = async (reset = false) => {
await xGrid.value?.commitProxy('query');
};
// 重置操作
const resetQuery = () => {
const resetQuery = async () => {
state.queryParams.searchKey = undefined,
@if(Model.QueryWhetherList.Count > 0) {
@foreach (var column in Model.QueryWhetherList) {
@:state.queryParams.@(@column.LowerPropertyName) = undefined,
}
}
handleQuery(true);
};
// 改变页码序号或页面容量
const pageChange: VxePagerEvents.PageChange = ({ currentPage, pageSize }: VxePagerDefines.PageChangeEventParams) => {
state.tableParams.page = currentPage;
state.tableParams.pageSize = pageSize;
handleQuery();
};
// 列排序
const sortChange = (options: any) => {
state.tableParams.field = options.field;
state.tableParams.order = options.order;
handleQuery();
await xGrid.value?.commitProxy('reload');
};
// 打开新增页面
@ -419,6 +400,20 @@ const handleDelete = (row: any) => {
.catch(() => {});
};
// 表格事件
const gridEvents: VxeGridListeners<@(@Model.ClassName)> = {
// 只对 pager-config 配置时有效,分页发生改变时会触发该事件
async pageChange({ pageSize }) {
state.localPageParam.pageSize = pageSize;
Local.set(localPageParamKey, state.localPageParam);
},
// 当排序条件发生变化时会触发该事件
async sortChange({ field, order }) {
state.localPageParam.defaultSort = { field: field, order: order!, descStr: 'desc' };
Local.set(localPageParamKey, state.localPageParam);
},
};
@foreach (var column in Model.QueryWhetherList) {
@if(@column.EffectType == "fk") {
@:const @LowerFirstLetter(@column.FkEntityName)@(@column.PropertyName)DropdownList = ref<any>([]);

View File

@ -36,10 +36,12 @@ public class DingTalkConst
/// 主部门Id
/// </summary>
public const string DeptId = "sys00-mainDeptId";
/// <summary>
/// 主部门
/// </summary>
public const string Dept = "sys00-mainDept";
/// <summary>
/// 职位
/// </summary>

View File

@ -73,23 +73,25 @@ public class DingTalkUser : EntityBase
[SugarColumn(ColumnDescription = "工号", Length = 16)]
[MaxLength(16)]
public string? JobNumber { get; set; }
/// <summary>
/// 主部门Id
/// </summary>
[SugarColumn(ColumnDescription = "主部门Id", Length = 16)]
[MaxLength(16)]
public string? DeptId { get; set; }
/// <summary>
/// 主部门
/// </summary>
[SugarColumn(ColumnDescription = "主部门", Length = 16)]
[MaxLength(16)]
public string? Dept { get; set; }
/// <summary>
/// 职位
/// </summary>
[SugarColumn(ColumnDescription = "职位", Length = 16)]
[MaxLength(16)]
public string? Position { get; set; }
}

View File

@ -43,7 +43,7 @@ public class DingTalkService : IDynamicApiController, IScoped
/// <param name="access_token"></param>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取在职员工列表")]
[HttpPost, DisplayName("获取在职员工列表")]
public async Task<DingTalkBaseResponse<GetDingTalkCurrentEmployeesListOutput>> GetDingTalkCurrentEmployeesList(string access_token, [Required] GetDingTalkCurrentEmployeesListInput input)
{
return await _dingTalkApi.GetDingTalkCurrentEmployeesList(access_token, input);
@ -55,7 +55,7 @@ public class DingTalkService : IDynamicApiController, IScoped
/// <param name="access_token"></param>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取员工花名册字段信息")]
[HttpPost, DisplayName("获取员工花名册字段信息")]
public async Task<DingTalkBaseResponse<List<DingTalkEmpRosterFieldVo>>> GetDingTalkCurrentEmployeesRosterList(string access_token, [Required] GetDingTalkCurrentEmployeesRosterListInput input)
{
return await _dingTalkApi.GetDingTalkCurrentEmployeesRosterList(access_token, input);

View File

@ -1,4 +1,4 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
@ -10,6 +10,7 @@ namespace Admin.NET.Plugin.GoView;
/// GoView 项目表
/// </summary>
[SugarTable(null, "GoView 项目表")]
[SysTable]
public class GoViewPro : EntityTenant
{
/// <summary>

View File

@ -10,6 +10,7 @@ namespace Admin.NET.Plugin.GoView;
/// GoView 项目数据表
/// </summary>
[SugarTable(null, "GoView 项目数据表")]
[SysTable]
public class GoViewProData : EntityTenant
{
/// <summary>

View File

@ -24,7 +24,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Rezero.Api" Version="1.7.8" />
<PackageReference Include="Rezero.Api" Version="1.7.9" />
</ItemGroup>
<ItemGroup>

View File

@ -2,7 +2,7 @@
"name": "admin.net.pro",
"type": "module",
"version": "2.4.33",
"lastBuildTime": "2024.07.10",
"lastBuildTime": "2024.07.12",
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
"author": "zuohuaijun",
"license": "MIT",
@ -31,7 +31,7 @@
"echarts": "^5.5.1",
"echarts-gl": "^2.0.9",
"echarts-wordcloud": "^2.1.0",
"element-plus": "^2.7.6",
"element-plus": "^2.7.7",
"exceljs": "^4.4.0",
"ezuikit": "^1.0.0",
"ezuikit-js": "^8.0.5",
@ -68,8 +68,8 @@
"vue-signature-pad": "^3.0.2",
"vue3-tree-org": "^4.2.2",
"vuedraggable": "4.0.3",
"vxe-pc-ui": "^4.0.58",
"vxe-table": "^4.7.47",
"vxe-pc-ui": "^4.0.64",
"vxe-table": "^4.7.49",
"vxe-table-plugin-element": "^4.0.4",
"vxe-table-plugin-export-xlsx": "^4.0.5",
"xe-utils": "^3.5.28",
@ -93,7 +93,7 @@
"less": "^4.2.0",
"prettier": "^3.3.2",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.77.7",
"sass": "^1.77.8",
"terser": "^5.31.2",
"typescript": "^5.5.3",
"vite": "^5.3.3",

View File

@ -26,8 +26,8 @@ import { AdminResultListTableOutput } from '../models';
import { AdminResultObject } from '../models';
import { AdminResultSqlSugarPagedListSysCodeGen } from '../models';
import { AdminResultSysCodeGen } from '../models';
import { CodeGenInput } from '../models';
import { DeleteCodeGenInput } from '../models';
import { PageCodeGenInput } from '../models';
import { SysCodeGen } from '../models';
import { UpdateCodeGenInput } from '../models';
/**
@ -328,11 +328,11 @@ export const SysCodeGenApiAxiosParamCreator = function (configuration?: Configur
/**
*
* @summary 🔖
* @param {CodeGenInput} [body]
* @param {PageCodeGenInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysCodeGenPagePost: async (body?: CodeGenInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
apiSysCodeGenPagePost: async (body?: PageCodeGenInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysCodeGen/page`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -661,11 +661,11 @@ export const SysCodeGenApiFp = function(configuration?: Configuration) {
/**
*
* @summary 🔖
* @param {CodeGenInput} [body]
* @param {PageCodeGenInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysCodeGenPagePost(body?: CodeGenInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysCodeGen>>> {
async apiSysCodeGenPagePost(body?: PageCodeGenInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysCodeGen>>> {
const localVarAxiosArgs = await SysCodeGenApiAxiosParamCreator(configuration).apiSysCodeGenPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
@ -799,11 +799,11 @@ export const SysCodeGenApiFactory = function (configuration?: Configuration, bas
/**
*
* @summary 🔖
* @param {CodeGenInput} [body]
* @param {PageCodeGenInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysCodeGenPagePost(body?: CodeGenInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysCodeGen>> {
async apiSysCodeGenPagePost(body?: PageCodeGenInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysCodeGen>> {
return SysCodeGenApiFp(configuration).apiSysCodeGenPagePost(body, options).then((request) => request(axios, basePath));
},
/**
@ -924,12 +924,12 @@ export class SysCodeGenApi extends BaseAPI {
/**
*
* @summary 🔖
* @param {CodeGenInput} [body]
* @param {PageCodeGenInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysCodeGenApi
*/
public async apiSysCodeGenPagePost(body?: CodeGenInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysCodeGen>> {
public async apiSysCodeGenPagePost(body?: PageCodeGenInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysCodeGen>> {
return SysCodeGenApiFp(this.configuration).apiSysCodeGenPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
/**

View File

@ -23,8 +23,8 @@ import { AdminResultListSysLdap } from '../models';
import { AdminResultSqlSugarPagedListSysLdap } from '../models';
import { AdminResultSysLdap } from '../models';
import { DeleteSysLdapInput } from '../models';
import { PageSysLdapInput } from '../models';
import { SyncSysLdapInput } from '../models';
import { SysLdapInput } from '../models';
import { UpdateSysLdapInput } from '../models';
/**
* SysLdapApi - axios parameter creator
@ -226,11 +226,11 @@ export const SysLdapApiAxiosParamCreator = function (configuration?: Configurati
/**
*
* @summary 🔖
* @param {SysLdapInput} [body]
* @param {PageSysLdapInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysLdapPagePost: async (body?: SysLdapInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
apiSysLdapPagePost: async (body?: PageSysLdapInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysLdap/page`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -482,11 +482,11 @@ export const SysLdapApiFp = function(configuration?: Configuration) {
/**
*
* @summary 🔖
* @param {SysLdapInput} [body]
* @param {PageSysLdapInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLdapPagePost(body?: SysLdapInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLdap>>> {
async apiSysLdapPagePost(body?: PageSysLdapInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLdap>>> {
const localVarAxiosArgs = await SysLdapApiAxiosParamCreator(configuration).apiSysLdapPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
@ -586,11 +586,11 @@ export const SysLdapApiFactory = function (configuration?: Configuration, basePa
/**
*
* @summary 🔖
* @param {SysLdapInput} [body]
* @param {PageSysLdapInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLdapPagePost(body?: SysLdapInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLdap>> {
async apiSysLdapPagePost(body?: PageSysLdapInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLdap>> {
return SysLdapApiFp(configuration).apiSysLdapPagePost(body, options).then((request) => request(axios, basePath));
},
/**
@ -679,12 +679,12 @@ export class SysLdapApi extends BaseAPI {
/**
*
* @summary 🔖
* @param {SysLdapInput} [body]
* @param {PageSysLdapInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysLdapApi
*/
public async apiSysLdapPagePost(body?: SysLdapInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLdap>> {
public async apiSysLdapPagePost(body?: PageSysLdapInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLdap>> {
return SysLdapApiFp(this.configuration).apiSysLdapPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
/**

View File

@ -22,7 +22,7 @@ import { AdminResultSqlSugarPagedListOpenAccessOutput } from '../models';
import { AdminResultString } from '../models';
import { DeleteOpenAccessInput } from '../models';
import { GenerateSignatureInput } from '../models';
import { OpenAccessInput } from '../models';
import { PageOpenAccessInput } from '../models';
import { UpdateOpenAccessInput } from '../models';
/**
* SysOpenAccessApi - axios parameter creator
@ -177,11 +177,11 @@ export const SysOpenAccessApiAxiosParamCreator = function (configuration?: Confi
/**
*
* @summary 🔖
* @param {OpenAccessInput} [body]
* @param {PageOpenAccessInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysOpenAccessPagePost: async (body?: OpenAccessInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
apiSysOpenAccessPagePost: async (body?: PageOpenAccessInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysOpenAccess/page`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -367,11 +367,11 @@ export const SysOpenAccessApiFp = function(configuration?: Configuration) {
/**
*
* @summary 🔖
* @param {OpenAccessInput} [body]
* @param {PageOpenAccessInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysOpenAccessPagePost(body?: OpenAccessInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListOpenAccessOutput>>> {
async apiSysOpenAccessPagePost(body?: PageOpenAccessInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListOpenAccessOutput>>> {
const localVarAxiosArgs = await SysOpenAccessApiAxiosParamCreator(configuration).apiSysOpenAccessPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
@ -447,11 +447,11 @@ export const SysOpenAccessApiFactory = function (configuration?: Configuration,
/**
*
* @summary 🔖
* @param {OpenAccessInput} [body]
* @param {PageOpenAccessInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysOpenAccessPagePost(body?: OpenAccessInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListOpenAccessOutput>> {
async apiSysOpenAccessPagePost(body?: PageOpenAccessInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListOpenAccessOutput>> {
return SysOpenAccessApiFp(configuration).apiSysOpenAccessPagePost(body, options).then((request) => request(axios, basePath));
},
/**
@ -519,12 +519,12 @@ export class SysOpenAccessApi extends BaseAPI {
/**
*
* @summary 🔖
* @param {OpenAccessInput} [body]
* @param {PageOpenAccessInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysOpenAccessApi
*/
public async apiSysOpenAccessPagePost(body?: OpenAccessInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListOpenAccessOutput>> {
public async apiSysOpenAccessPagePost(body?: PageOpenAccessInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListOpenAccessOutput>> {
return SysOpenAccessApiFp(this.configuration).apiSysOpenAccessPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
/**

View File

@ -17,9 +17,14 @@ import { Configuration } from '../configuration';
// Some imports not used depending on template conditions
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
import { AdminResultCreatePayTransactionOutput } from '../models';
import { AdminResultGetRefundDomesticRefundByOutRefundNumberResponse } from '../models';
import { AdminResultObject } from '../models';
import { AdminResultSqlSugarPagedListSysWechatPay } from '../models';
import { AdminResultSysWechatPay } from '../models';
import { AdminResultWechatPayOutput } from '../models';
import { PageSysWechatPayInput } from '../models';
import { RefundRequestInput } from '../models';
import { WechatPayParaInput } from '../models';
import { WechatPayTransactionInput } from '../models';
/**
@ -76,6 +81,54 @@ export const SysWechatPayApiAxiosParamCreator = function (configuration?: Config
options: localVarRequestOptions,
};
},
/**
*
* @summary ()
* @param {PageSysWechatPayInput} [body] PageSysWechatPayInput
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysWechatPayPagePost: async (body?: PageSysWechatPayInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysWechatPay/page`;
// 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;
}
localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';
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};
const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
return {
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
options: localVarRequestOptions,
};
},
/**
*
* @summary () 🔖
@ -259,6 +312,104 @@ export const SysWechatPayApiAxiosParamCreator = function (configuration?: Config
options: localVarRequestOptions,
};
},
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/id/{transaction_id}
* @param {string} transactionId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysWechatPayPayTransactionByIdTransactionIdGet: async (transactionId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'transactionId' is not null or undefined
if (transactionId === null || transactionId === undefined) {
throw new RequiredError('transactionId','Required parameter transactionId was null or undefined when calling apiSysWechatPayPayTransactionByIdTransactionIdGet.');
}
const localVarPath = `/api/sysWechatPay/payTransactionById/{transactionId}`
.replace(`{${"transactionId"}}`, encodeURIComponent(String(transactionId)));
// 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 () https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}
* @param {string} outTradeNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet: async (outTradeNumber: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'outTradeNumber' is not null or undefined
if (outTradeNumber === null || outTradeNumber === undefined) {
throw new RequiredError('outTradeNumber','Required parameter outTradeNumber was null or undefined when calling apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet.');
}
const localVarPath = `/api/sysWechatPay/payTransactionByOutTradeNumber/{outTradeNumber}`
.replace(`{${"outTradeNumber"}}`, encodeURIComponent(String(outTradeNumber)));
// 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 Id() 🔖
@ -302,6 +453,103 @@ export const SysWechatPayApiAxiosParamCreator = function (configuration?: Config
const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
return {
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
options: localVarRequestOptions,
};
},
/**
*
* @summary 退退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/query-by-out-refund-no.html
* @param {string} outRefundNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet: async (outRefundNumber: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'outRefundNumber' is not null or undefined
if (outRefundNumber === null || outRefundNumber === undefined) {
throw new RequiredError('outRefundNumber','Required parameter outRefundNumber was null or undefined when calling apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet.');
}
const localVarPath = `/api/sysWechatPay/refundByOutRefundNumber/{outRefundNumber}`
.replace(`{${"outRefundNumber"}}`, encodeURIComponent(String(outRefundNumber)));
// 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 退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html
* @param {RefundRequestInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysWechatPayRefundPost: async (body?: RefundRequestInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysWechatPay/refund`;
// 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;
}
localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';
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};
const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
return {
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
options: localVarRequestOptions,
@ -330,6 +578,20 @@ export const SysWechatPayApiFp = function(configuration?: Configuration) {
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary ()
* @param {PageSysWechatPayInput} [body] PageSysWechatPayInput
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPagePost(body?: PageSysWechatPayInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysWechatPay>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary () 🔖
@ -377,13 +639,41 @@ export const SysWechatPayApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayPartnerTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultObject>>> {
async apiSysWechatPayPayPartnerTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultCreatePayTransactionOutput>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayPayPartnerTransactionPost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/id/{transaction_id}
* @param {string} transactionId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayTransactionByIdTransactionIdGet(transactionId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultWechatPayOutput>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayPayTransactionByIdTransactionIdGet(transactionId, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}
* @param {string} outTradeNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet(outTradeNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultWechatPayOutput>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet(outTradeNumber, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary Id() 🔖
@ -391,13 +681,41 @@ export const SysWechatPayApiFp = function(configuration?: Configuration) {
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultObject>>> {
async apiSysWechatPayPayTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultCreatePayTransactionOutput>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayPayTransactionPost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary 退退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/query-by-out-refund-no.html
* @param {string} outRefundNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet(outRefundNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultGetRefundDomesticRefundByOutRefundNumberResponse>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet(outRefundNumber, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary 退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html
* @param {RefundRequestInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayRefundPost(body?: RefundRequestInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
const localVarAxiosArgs = await SysWechatPayApiAxiosParamCreator(configuration).apiSysWechatPayRefundPost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
}
};
@ -417,6 +735,16 @@ export const SysWechatPayApiFactory = function (configuration?: Configuration, b
async apiSysWechatPayGenerateParametersForJsapiPayPost(body?: WechatPayParaInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultObject>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayGenerateParametersForJsapiPayPost(body, options).then((request) => request(axios, basePath));
},
/**
*
* @summary ()
* @param {PageSysWechatPayInput} [body] PageSysWechatPayInput
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPagePost(body?: PageSysWechatPayInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysWechatPay>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayPagePost(body, options).then((request) => request(axios, basePath));
},
/**
*
* @summary () 🔖
@ -452,9 +780,29 @@ export const SysWechatPayApiFactory = function (configuration?: Configuration, b
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayPartnerTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultObject>> {
async apiSysWechatPayPayPartnerTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultCreatePayTransactionOutput>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayPayPartnerTransactionPost(body, options).then((request) => request(axios, basePath));
},
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/id/{transaction_id}
* @param {string} transactionId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayTransactionByIdTransactionIdGet(transactionId: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultWechatPayOutput>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayPayTransactionByIdTransactionIdGet(transactionId, options).then((request) => request(axios, basePath));
},
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}
* @param {string} outTradeNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet(outTradeNumber: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultWechatPayOutput>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet(outTradeNumber, options).then((request) => request(axios, basePath));
},
/**
*
* @summary Id() 🔖
@ -462,9 +810,29 @@ export const SysWechatPayApiFactory = function (configuration?: Configuration, b
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayPayTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultObject>> {
async apiSysWechatPayPayTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultCreatePayTransactionOutput>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayPayTransactionPost(body, options).then((request) => request(axios, basePath));
},
/**
*
* @summary 退退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/query-by-out-refund-no.html
* @param {string} outRefundNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet(outRefundNumber: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultGetRefundDomesticRefundByOutRefundNumberResponse>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet(outRefundNumber, options).then((request) => request(axios, basePath));
},
/**
*
* @summary 退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html
* @param {RefundRequestInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysWechatPayRefundPost(body?: RefundRequestInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
return SysWechatPayApiFp(configuration).apiSysWechatPayRefundPost(body, options).then((request) => request(axios, basePath));
},
};
};
@ -486,6 +854,17 @@ export class SysWechatPayApi extends BaseAPI {
public async apiSysWechatPayGenerateParametersForJsapiPayPost(body?: WechatPayParaInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultObject>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayGenerateParametersForJsapiPayPost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary ()
* @param {PageSysWechatPayInput} [body] PageSysWechatPayInput
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayPagePost(body?: PageSysWechatPayInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysWechatPay>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary () 🔖
@ -525,9 +904,31 @@ export class SysWechatPayApi extends BaseAPI {
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayPayPartnerTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultObject>> {
public async apiSysWechatPayPayPartnerTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultCreatePayTransactionOutput>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayPayPartnerTransactionPost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/id/{transaction_id}
* @param {string} transactionId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayPayTransactionByIdTransactionIdGet(transactionId: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultWechatPayOutput>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayPayTransactionByIdTransactionIdGet(transactionId, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary () https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}
* @param {string} outTradeNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet(outTradeNumber: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultWechatPayOutput>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayPayTransactionByOutTradeNumberOutTradeNumberGet(outTradeNumber, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary Id() 🔖
@ -536,7 +937,29 @@ export class SysWechatPayApi extends BaseAPI {
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayPayTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultObject>> {
public async apiSysWechatPayPayTransactionPost(body?: WechatPayTransactionInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultCreatePayTransactionOutput>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayPayTransactionPost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary 退退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/query-by-out-refund-no.html
* @param {string} outRefundNumber
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet(outRefundNumber: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultGetRefundDomesticRefundByOutRefundNumberResponse>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayRefundByOutRefundNumberOutRefundNumberGet(outRefundNumber, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary 退 https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/create.html
* @param {RefundRequestInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysWechatPayApi
*/
public async apiSysWechatPayRefundPost(body?: RefundRequestInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
return SysWechatPayApiFp(this.configuration).apiSysWechatPayRefundPost(body, options).then((request) => request(this.axios, this.basePath));
}
}

View File

@ -203,4 +203,12 @@ export interface AddCodeGenInput {
* @memberof AddCodeGenInput
*/
generateMenu: boolean;
/**
* 使 Api Service
*
* @type {boolean}
* @memberof AddCodeGenInput
*/
isApiService?: boolean;
}

View File

@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
import { SysUser } from './sys-user';
/**
*
*
@ -92,6 +93,12 @@ export interface AddOpenAccessInput {
*/
bindTenantId?: number;
/**
* @type {SysUser}
* @memberof AddOpenAccessInput
*/
bindUser?: SysUser;
/**
*
*

View File

@ -0,0 +1,69 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { CreatePayTransactionOutput } from './create-pay-transaction-output';
/**
*
*
* @export
* @interface AdminResultCreatePayTransactionOutput
*/
export interface AdminResultCreatePayTransactionOutput {
/**
*
*
* @type {number}
* @memberof AdminResultCreatePayTransactionOutput
*/
code?: number;
/**
* successwarningerror
*
* @type {string}
* @memberof AdminResultCreatePayTransactionOutput
*/
type?: string | null;
/**
*
*
* @type {string}
* @memberof AdminResultCreatePayTransactionOutput
*/
message?: string | null;
/**
* @type {CreatePayTransactionOutput}
* @memberof AdminResultCreatePayTransactionOutput
*/
result?: CreatePayTransactionOutput;
/**
*
*
* @type {any}
* @memberof AdminResultCreatePayTransactionOutput
*/
extras?: any | null;
/**
*
*
* @type {Date}
* @memberof AdminResultCreatePayTransactionOutput
*/
time?: Date;
}

View File

@ -0,0 +1,69 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { GetRefundDomesticRefundByOutRefundNumberResponse } from './get-refund-domestic-refund-by-out-refund-number-response';
/**
*
*
* @export
* @interface AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
export interface AdminResultGetRefundDomesticRefundByOutRefundNumberResponse {
/**
*
*
* @type {number}
* @memberof AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
code?: number;
/**
* successwarningerror
*
* @type {string}
* @memberof AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
type?: string | null;
/**
*
*
* @type {string}
* @memberof AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
message?: string | null;
/**
* @type {GetRefundDomesticRefundByOutRefundNumberResponse}
* @memberof AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
result?: GetRefundDomesticRefundByOutRefundNumberResponse;
/**
*
*
* @type {any}
* @memberof AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
extras?: any | null;
/**
*
*
* @type {Date}
* @memberof AdminResultGetRefundDomesticRefundByOutRefundNumberResponse
*/
time?: Date;
}

View File

@ -0,0 +1,69 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { SqlSugarPagedListSysWechatPay } from './sql-sugar-paged-list-sys-wechat-pay';
/**
*
*
* @export
* @interface AdminResultSqlSugarPagedListSysWechatPay
*/
export interface AdminResultSqlSugarPagedListSysWechatPay {
/**
*
*
* @type {number}
* @memberof AdminResultSqlSugarPagedListSysWechatPay
*/
code?: number;
/**
* successwarningerror
*
* @type {string}
* @memberof AdminResultSqlSugarPagedListSysWechatPay
*/
type?: string | null;
/**
*
*
* @type {string}
* @memberof AdminResultSqlSugarPagedListSysWechatPay
*/
message?: string | null;
/**
* @type {SqlSugarPagedListSysWechatPay}
* @memberof AdminResultSqlSugarPagedListSysWechatPay
*/
result?: SqlSugarPagedListSysWechatPay;
/**
*
*
* @type {any}
* @memberof AdminResultSqlSugarPagedListSysWechatPay
*/
extras?: any | null;
/**
*
*
* @type {Date}
* @memberof AdminResultSqlSugarPagedListSysWechatPay
*/
time?: Date;
}

View File

@ -0,0 +1,83 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { From } from './from';
/**
*
*
* @export
* @interface Amount
*/
export interface Amount {
/**
* @type {number}
* @memberof Amount
*/
total?: number;
/**
* @type {number}
* @memberof Amount
*/
refund?: number;
/**
* @type {string}
* @memberof Amount
*/
currency?: string | null;
/**
* @type {number}
* @memberof Amount
*/
payerTotal?: number;
/**
* @type {number}
* @memberof Amount
*/
payerRefund?: number;
/**
* @type {number}
* @memberof Amount
*/
settlementTotal?: number;
/**
* @type {number}
* @memberof Amount
*/
settlementRefund?: number;
/**
* @type {number}
* @memberof Amount
*/
discountRefund?: number;
/**
* @type {Array<From>}
* @memberof Amount
*/
from?: Array<From> | null;
/**
* @type {number}
* @memberof Amount
*/
refundFee?: number | null;
}

View File

@ -0,0 +1,34 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 CreatePayTransactionOutput
*/
export interface CreatePayTransactionOutput {
/**
* @type {string}
* @memberof CreatePayTransactionOutput
*/
prepayId?: string | null;
/**
* @type {string}
* @memberof CreatePayTransactionOutput
*/
outTradeNumber?: string | null;
}

View File

@ -42,6 +42,8 @@ export enum DbType {
NUMBER_21 = 21,
NUMBER_22 = 22,
NUMBER_23 = 23,
NUMBER_24 = 24,
NUMBER_25 = 25,
NUMBER_900 = 900
}

View File

@ -0,0 +1,34 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 From
*/
export interface From {
/**
* @type {number}
* @memberof From
*/
amount?: number;
/**
* @type {string}
* @memberof From
*/
account?: string | null;
}

View File

@ -0,0 +1,114 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { Amount } from './amount';
import { Promotion } from './promotion';
/**
*
*
* @export
* @interface GetRefundDomesticRefundByOutRefundNumberResponse
*/
export interface GetRefundDomesticRefundByOutRefundNumberResponse {
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
code?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
message?: string | null;
/**
* @type {{ [key: string]: any; }}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
detail?: { [key: string]: any; } | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
refundId?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
outRefundNo?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
transactionId?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
outTradeNo?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
channel?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
userReceivedAccount?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
fundsAccount?: string | null;
/**
* @type {string}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
status?: string | null;
/**
* @type {Date}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
successTime?: Date | null;
/**
* @type {Date}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
createTime?: Date;
/**
* @type {Amount}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
amount?: Amount;
/**
* @type {Array<Promotion>}
* @memberof GetRefundDomesticRefundByOutRefundNumberResponse
*/
promotionDetail?: Array<Promotion> | null;
}

View File

@ -0,0 +1,58 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 GoodsDetail
*/
export interface GoodsDetail {
/**
* @type {string}
* @memberof GoodsDetail
*/
merchantGoodsId?: string | null;
/**
* @type {string}
* @memberof GoodsDetail
*/
wechatpayGoodsId?: string | null;
/**
* @type {string}
* @memberof GoodsDetail
*/
goodsName?: string | null;
/**
* @type {number}
* @memberof GoodsDetail
*/
unitPrice?: number;
/**
* @type {number}
* @memberof GoodsDetail
*/
refundAmount?: number;
/**
* @type {number}
* @memberof GoodsDetail
*/
refundQuantity?: number;
}

View File

@ -19,9 +19,11 @@ export * from './add-sys-ldap-input';
export * from './add-tenant-input';
export * from './add-user-input';
export * from './admin-result-boolean';
export * from './admin-result-create-pay-transaction-output';
export * from './admin-result-data-set';
export * from './admin-result-data-table';
export * from './admin-result-dictionary-string-string';
export * from './admin-result-get-refund-domestic-refund-by-out-refund-number-response';
export * from './admin-result-iaction-result';
export * from './admin-result-int32';
export * from './admin-result-int64';
@ -82,6 +84,7 @@ export * from './admin-result-sql-sugar-paged-list-sys-online-user';
export * from './admin-result-sql-sugar-paged-list-sys-plugin';
export * from './admin-result-sql-sugar-paged-list-sys-print';
export * from './admin-result-sql-sugar-paged-list-sys-region';
export * from './admin-result-sql-sugar-paged-list-sys-wechat-pay';
export * from './admin-result-sql-sugar-paged-list-tenant-output';
export * from './admin-result-sql-sugar-paged-list-user-output';
export * from './admin-result-string';
@ -101,6 +104,7 @@ export * from './admin-result-visual-db-table';
export * from './admin-result-wechat-pay-output';
export * from './admin-result-wx-open-id-output';
export * from './admin-result-wx-phone-output';
export * from './amount';
export * from './api-output';
export * from './assembly';
export * from './base-api-input';
@ -114,13 +118,13 @@ export * from './card-type-enum';
export * from './change-pwd-input';
export * from './cluster-status';
export * from './code-gen-config';
export * from './code-gen-input';
export * from './column-ouput';
export * from './column-relation';
export * from './compare-info';
export * from './const-output';
export * from './constructor-info';
export * from './create-entity-input';
export * from './create-pay-transaction-output';
export * from './create-seed-data-input';
export * from './culture-info';
export * from './culture-level-enum';
@ -179,10 +183,13 @@ export * from './field-attributes';
export * from './field-info';
export * from './file-input';
export * from './file-output';
export * from './from';
export * from './gen-auth-url-input';
export * from './gender-enum';
export * from './generate-signature-input';
export * from './generic-parameter-attributes';
export * from './get-refund-domestic-refund-by-out-refund-number-response';
export * from './goods-detail';
export * from './http-method-enum';
export * from './iaction-result';
export * from './icomponent';
@ -225,8 +232,8 @@ export * from './notice-user-status-enum';
export * from './number-format-info';
export * from './oauth-user-input';
export * from './oauth-user-output';
export * from './open-access-input';
export * from './open-access-output';
export * from './page-code-gen-input';
export * from './page-config-input';
export * from './page-dict-data-input';
export * from './page-dict-type-input';
@ -236,6 +243,7 @@ export * from './page-job-trigger-record-input';
export * from './page-log-input';
export * from './page-notice-input';
export * from './page-online-user-input';
export * from './page-open-access-input';
export * from './page-plugin-input';
export * from './page-pos-input';
export * from './page-pos-output';
@ -243,6 +251,8 @@ export * from './page-print-input';
export * from './page-region-input';
export * from './page-role-input';
export * from './page-role-output';
export * from './page-sys-ldap-input';
export * from './page-sys-wechat-pay-input';
export * from './page-tenant-input';
export * from './page-user-input';
export * from './parameter-attributes';
@ -250,8 +260,10 @@ export * from './parameter-info';
export * from './platform-type-enum';
export * from './pos-output';
export * from './print-type-enum';
export * from './promotion';
export * from './property-attributes';
export * from './property-info';
export * from './refund-request-input';
export * from './reset-pwd-user-input';
export * from './role-api-input';
export * from './role-input';
@ -290,6 +302,7 @@ export * from './sql-sugar-paged-list-sys-online-user';
export * from './sql-sugar-paged-list-sys-plugin';
export * from './sql-sugar-paged-list-sys-print';
export * from './sql-sugar-paged-list-sys-region';
export * from './sql-sugar-paged-list-sys-wechat-pay';
export * from './sql-sugar-paged-list-tenant-output';
export * from './sql-sugar-paged-list-user-output';
export * from './status-enum';
@ -311,7 +324,6 @@ export * from './sys-job-detail';
export * from './sys-job-trigger';
export * from './sys-job-trigger-record';
export * from './sys-ldap';
export * from './sys-ldap-input';
export * from './sys-log-diff';
export * from './sys-log-ex';
export * from './sys-log-op';

View File

@ -30,12 +30,6 @@ export interface MemberInfo {
*/
memberType?: MemberTypes;
/**
* @type {string}
* @memberof MemberInfo
*/
name?: string | null;
/**
* @type {Type}
* @memberof MemberInfo
@ -48,6 +42,12 @@ export interface MemberInfo {
*/
reflectedType?: Type;
/**
* @type {string}
* @memberof MemberInfo
*/
name?: string | null;
/**
* @type {Module}
* @memberof MemberInfo

View File

@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
import { SysUser } from './sys-user';
/**
*
*
@ -116,6 +117,12 @@ export interface OpenAccessOutput {
*/
bindUserId?: number;
/**
* @type {SysUser}
* @memberof OpenAccessOutput
*/
bindUser?: SysUser;
/**
*
*

View File

@ -16,15 +16,15 @@
*
*
* @export
* @interface CodeGenInput
* @interface PageCodeGenInput
*/
export interface CodeGenInput {
export interface PageCodeGenInput {
/**
*
*
* @type {number}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
page?: number;
@ -32,7 +32,7 @@ export interface CodeGenInput {
*
*
* @type {number}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
pageSize?: number;
@ -40,7 +40,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
field?: string | null;
@ -48,7 +48,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
order?: string | null;
@ -56,7 +56,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
descStr?: string | null;
@ -64,7 +64,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
authorName?: string | null;
@ -72,7 +72,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
className?: string | null;
@ -80,7 +80,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
tablePrefix?: string | null;
@ -88,7 +88,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
configId?: string | null;
@ -96,7 +96,7 @@ export interface CodeGenInput {
* ()
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
dbName?: string | null;
@ -104,7 +104,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
dbType?: string | null;
@ -112,7 +112,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
connectionString?: string | null;
@ -120,7 +120,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
generateType?: string | null;
@ -128,7 +128,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
tableName?: string | null;
@ -136,7 +136,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
nameSpace?: string | null;
@ -144,7 +144,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
busName?: string | null;
@ -152,7 +152,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
tableComment?: string | null;
@ -160,7 +160,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
menuApplication?: string | null;
@ -168,7 +168,7 @@ export interface CodeGenInput {
*
*
* @type {boolean}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
generateMenu?: boolean;
@ -176,7 +176,7 @@ export interface CodeGenInput {
*
*
* @type {number}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
menuPid?: number | null;
@ -184,7 +184,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
pagePath?: string | null;
@ -192,7 +192,7 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
printType?: string | null;
@ -200,7 +200,15 @@ export interface CodeGenInput {
*
*
* @type {string}
* @memberof CodeGenInput
* @memberof PageCodeGenInput
*/
printName?: string | null;
/**
* 使 Api Service
*
* @type {boolean}
* @memberof PageCodeGenInput
*/
isApiService?: boolean;
}

View File

@ -16,15 +16,15 @@
*
*
* @export
* @interface OpenAccessInput
* @interface PageOpenAccessInput
*/
export interface OpenAccessInput {
export interface PageOpenAccessInput {
/**
*
*
* @type {number}
* @memberof OpenAccessInput
* @memberof PageOpenAccessInput
*/
page?: number;
@ -32,7 +32,7 @@ export interface OpenAccessInput {
*
*
* @type {number}
* @memberof OpenAccessInput
* @memberof PageOpenAccessInput
*/
pageSize?: number;
@ -40,7 +40,7 @@ export interface OpenAccessInput {
*
*
* @type {string}
* @memberof OpenAccessInput
* @memberof PageOpenAccessInput
*/
field?: string | null;
@ -48,7 +48,7 @@ export interface OpenAccessInput {
*
*
* @type {string}
* @memberof OpenAccessInput
* @memberof PageOpenAccessInput
*/
order?: string | null;
@ -56,7 +56,7 @@ export interface OpenAccessInput {
*
*
* @type {string}
* @memberof OpenAccessInput
* @memberof PageOpenAccessInput
*/
descStr?: string | null;
@ -64,7 +64,7 @@ export interface OpenAccessInput {
*
*
* @type {string}
* @memberof OpenAccessInput
* @memberof PageOpenAccessInput
*/
accessKey?: string | null;
}

View File

@ -16,15 +16,15 @@
*
*
* @export
* @interface SysLdapInput
* @interface PageSysLdapInput
*/
export interface SysLdapInput {
export interface PageSysLdapInput {
/**
*
*
* @type {number}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
page?: number;
@ -32,7 +32,7 @@ export interface SysLdapInput {
*
*
* @type {number}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
pageSize?: number;
@ -40,7 +40,7 @@ export interface SysLdapInput {
*
*
* @type {string}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
field?: string | null;
@ -48,7 +48,7 @@ export interface SysLdapInput {
*
*
* @type {string}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
order?: string | null;
@ -56,7 +56,7 @@ export interface SysLdapInput {
*
*
* @type {string}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
descStr?: string | null;
@ -64,7 +64,7 @@ export interface SysLdapInput {
*
*
* @type {string}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
searchKey?: string | null;
@ -72,7 +72,7 @@ export interface SysLdapInput {
*
*
* @type {string}
* @memberof SysLdapInput
* @memberof PageSysLdapInput
*/
host?: string | null;
}

View File

@ -0,0 +1,102 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 PageSysWechatPayInput
*/
export interface PageSysWechatPayInput {
/**
*
*
* @type {number}
* @memberof PageSysWechatPayInput
*/
page?: number;
/**
*
*
* @type {number}
* @memberof PageSysWechatPayInput
*/
pageSize?: number;
/**
*
*
* @type {string}
* @memberof PageSysWechatPayInput
*/
field?: string | null;
/**
*
*
* @type {string}
* @memberof PageSysWechatPayInput
*/
order?: string | null;
/**
*
*
* @type {string}
* @memberof PageSysWechatPayInput
*/
descStr?: string | null;
/**
* order_id
*
* @type {number}
* @memberof PageSysWechatPayInput
*/
orderId?: number | null;
/**
* order_status
*
* @type {number}
* @memberof PageSysWechatPayInput
*/
orderStatus?: number | null;
/**
* out_trade_number
*
* @type {string}
* @memberof PageSysWechatPayInput
*/
outTradeNumber?: string | null;
/**
* success_time范围
*
* @type {Array<Date>}
* @memberof PageSysWechatPayInput
*/
successTimeRange?: Array<Date> | null;
/**
* expire_time范围
*
* @type {Array<Date>}
* @memberof PageSysWechatPayInput
*/
expireTimeRange?: Array<Date> | null;
}

View File

@ -0,0 +1,59 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { GoodsDetail } from './goods-detail';
/**
*
*
* @export
* @interface Promotion
*/
export interface Promotion {
/**
* @type {string}
* @memberof Promotion
*/
promotionId?: string | null;
/**
* @type {string}
* @memberof Promotion
*/
scope?: string | null;
/**
* @type {string}
* @memberof Promotion
*/
type?: string | null;
/**
* @type {number}
* @memberof Promotion
*/
amount?: number;
/**
* @type {number}
* @memberof Promotion
*/
refundAmount?: number;
/**
* @type {Array<GoodsDetail>}
* @memberof Promotion
*/
goodsDetail?: Array<GoodsDetail> | null;
}

View File

@ -0,0 +1,126 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 RefundRequestInput
*/
export interface RefundRequestInput {
/**
* ()
*
* @type {string}
* @memberof RefundRequestInput
*/
outTradeNumber?: string | null;
/**
* ()
*
* @type {number}
* @memberof RefundRequestInput
*/
total?: number;
/**
* 退()
*
* @type {number}
* @memberof RefundRequestInput
*/
refund?: number;
/**
* 退
*
* @type {string}
* @memberof RefundRequestInput
*/
reason?: string | null;
/**
*
*
* @type {number}
* @memberof RefundRequestInput
*/
orderId?: number;
/**
* ()
*
* @type {number}
* @memberof RefundRequestInput
*/
orderStatus?: number;
/**
*
*
* @type {string}
* @memberof RefundRequestInput
*/
merchantGoodsId?: string | null;
/**
*
*
* @type {string}
* @memberof RefundRequestInput
*/
goodsName?: string | null;
/**
*
*
* @type {number}
* @memberof RefundRequestInput
*/
unitPrice?: number;
/**
* 退
*
* @type {number}
* @memberof RefundRequestInput
*/
refundAmount?: number;
/**
* 退
*
* @type {number}
* @memberof RefundRequestInput
*/
refundQuantity?: number;
/**
*
*
* @type {string}
* @memberof RefundRequestInput
*/
attachment?: string | null;
/**
*
*
* @type {string}
* @memberof RefundRequestInput
*/
remark?: string | null;
}

View File

@ -0,0 +1,79 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* 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 { SysWechatPay } from './sys-wechat-pay';
/**
*
*
* @export
* @interface SqlSugarPagedListSysWechatPay
*/
export interface SqlSugarPagedListSysWechatPay {
/**
*
*
* @type {number}
* @memberof SqlSugarPagedListSysWechatPay
*/
page?: number;
/**
*
*
* @type {number}
* @memberof SqlSugarPagedListSysWechatPay
*/
pageSize?: number;
/**
*
*
* @type {number}
* @memberof SqlSugarPagedListSysWechatPay
*/
total?: number;
/**
*
*
* @type {number}
* @memberof SqlSugarPagedListSysWechatPay
*/
totalPages?: number;
/**
*
*
* @type {Array<SysWechatPay>}
* @memberof SqlSugarPagedListSysWechatPay
*/
items?: Array<SysWechatPay> | null;
/**
*
*
* @type {boolean}
* @memberof SqlSugarPagedListSysWechatPay
*/
hasPrevPage?: boolean;
/**
*
*
* @type {boolean}
* @memberof SqlSugarPagedListSysWechatPay
*/
hasNextPage?: boolean;
}

View File

@ -211,4 +211,12 @@ export interface SysCodeGen {
* @memberof SysCodeGen
*/
printName?: string | null;
/**
* 使 Api Service
*
* @type {boolean}
* @memberof SysCodeGen
*/
isApiService?: boolean;
}

View File

@ -84,6 +84,22 @@ export interface SysWechatPay {
*/
isDelete?: boolean;
/**
*
*
* @type {number}
* @memberof SysWechatPay
*/
orderId?: number;
/**
* ()
*
* @type {number}
* @memberof SysWechatPay
*/
orderStatus?: number;
/**
*
*

View File

@ -204,6 +204,14 @@ export interface UpdateCodeGenInput {
*/
printName?: string | null;
/**
* 使 Api Service
*
* @type {boolean}
* @memberof UpdateCodeGenInput
*/
isApiService?: boolean;
/**
* Id
*

View File

@ -12,6 +12,7 @@
* Do not edit the class manually.
*/
import { SysUser } from './sys-user';
/**
*
*
@ -92,6 +93,12 @@ export interface UpdateOpenAccessInput {
*/
bindTenantId?: number;
/**
* @type {SysUser}
* @memberof UpdateOpenAccessInput
*/
bindUser?: SysUser;
/**
*
*

View File

@ -28,6 +28,30 @@ export interface WechatPayOutput {
*/
openId?: string | null;
/**
* (),
*
* @type {string}
* @memberof WechatPayOutput
*/
outTradeNumber?: string | null;
/**
* ()
*
* @type {number}
* @memberof WechatPayOutput
*/
orderId?: number;
/**
* ()
*
* @type {number}
* @memberof WechatPayOutput
*/
orderStatus?: number;
/**
*
*
@ -51,4 +75,36 @@ export interface WechatPayOutput {
* @memberof WechatPayOutput
*/
goodsTag?: string | null;
/**
*
*
* @type {Date}
* @memberof WechatPayOutput
*/
createTime?: Date;
/**
*
*
* @type {Date}
* @memberof WechatPayOutput
*/
successTime?: Date;
/**
* ()
*
* @type {string}
* @memberof WechatPayOutput
*/
tradeState?: string | null;
/**
* ()
*
* @type {string}
* @memberof WechatPayOutput
*/
tradeStateDescription?: string | null;
}

View File

@ -59,4 +59,20 @@ export interface WechatPayTransactionInput {
* @memberof WechatPayTransactionInput
*/
goodsTag?: string | null;
/**
*
*
* @type {number}
* @memberof WechatPayTransactionInput
*/
orderId?: number;
/**
* ()
*
* @type {number}
* @memberof WechatPayTransactionInput
*/
orderStatus?: number;
}

View File

@ -79,8 +79,9 @@ const onColumnsAsideMenuClick = async (v: RouteItem) => {
if (route.path.startsWith(redirect)) mittBus.emit('setSendColumnsChildren', setSendChildren(redirect));
else router.push(redirect);
} else {
if (!v.children) {
if (!v.children || v.children?.length === 0) {
router.push(path);
onColumnsAsideDown(v.k);
} else {
//
const resData: MittMenu = setSendChildren(path);
@ -92,7 +93,7 @@ const onColumnsAsideMenuClick = async (v: RouteItem) => {
//
// https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H
if (!v.children) themeConfig.value.isCollapse = true;
if (!v.children || v.children?.length === 0) themeConfig.value.isCollapse = true;
else if (v.children.length > 1) themeConfig.value.isCollapse = false;
};
//

View File

@ -132,8 +132,7 @@ export const useUserInfo = defineStore('userInfo', {
// 根据字典类型和代码取字典项
getDictItemByCode(typePCode: string, val: string) {
if(val!=undefined)
{
if (val != undefined) {
val = val.toString();
if (val) {
const _val = val.toString();

View File

@ -5,8 +5,8 @@
<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Postcard /> </el-icon>(About)
</h4>
<span class="text">
基于 .NET6 (Furion/SqlSugar) 实现的通用权限开发框架前端采用
Vue3+Element-plus+Vite5整合众多优秀技术和框架模块插件式开发集成多租户缓存数据校验鉴权事件总线动态API通讯远程请求任务调度打印等众多黑科技代码结构简单清晰注释详尽易于上手与二次开发即便是复杂业务逻辑也能迅速实现真正实现开箱即用
🔥基于 .NET 6/8 (Furion/SqlSugar) 实现的通用权限开发框架前端采用
Vue3/Element-plus代码简洁易扩展整合最新技术模块插件式开发前后端分离开箱即用集成多租户缓存数据校验鉴权事件总线动态API通讯远程请求任务调度打印等众多黑科技让开发更简单更通用更流行
</span>
</div>

View File

@ -7,6 +7,10 @@
<span> {{ props.title }} </span>
</div>
</template>
<div style="color: red; padding: 15px 15px; background: #faecd8; margin-bottom: 10px">
<el-icon style="transform: translateY(2px)"><ele-Bell /></el-icon>
<span> 如果是在前端生成的实体/在生成表选择项里面找不到请重启后台服务后再进行代码生成 </span>
</div>
<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto">
<el-row :gutter="10">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@ -54,6 +58,14 @@
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="生成表" prop="tableName" :rules="[{ required: true, message: '生成表不能为空', trigger: 'blur' }]">
<template v-slot:label>
<div>
生成表
<el-tooltip raw-content content="如果是在前端生成的实体/表(在生成表选择项里面找不到),请重启后台服务后再进行代码生成。" placement="top">
<SvgIcon name="fa fa-question-circle-o" :size="16" />
</el-tooltip>
</div>
</template>
<el-select v-model="state.ruleForm.tableName" @change="tableChanged" value-key="value" filterable clearable class="w100">
<el-option v-for="item in state.tableData" :key="item.entityName" :label="item.entityName + ' ( ' + item.tableName + ' ) [' + item.tableComment + ']'" :value="item" />
</el-select>

View File

@ -109,6 +109,7 @@ const state = reactive({
allEnumSelector: [] as any,
});
//
onMounted(async () => {
var res = await getAPI(SysDictDataApi).apiSysDictDataDataListCodeGet('code_gen_effect_type');
state.effectTypeList = res.data.result;
@ -140,6 +141,7 @@ onUnmounted(() => {
mittBus.off('submitRefresh', () => {});
mittBus.off('submitRefreshFk', () => {});
});
//
const effectTypeChange = (data: any, index: number) => {
let value = data.effectType;
@ -190,8 +192,8 @@ function effectTypeEnable(data: any) {
}
//
const openDialog = (addRow: any) => {
handleQuery(addRow);
const openDialog = async (addRow: any) => {
await handleQuery(addRow);
state.isShowDialog = true;
};

View File

@ -5,12 +5,12 @@
<el-row :gutter="10">
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="业务名" prop="busName">
<el-input placeholder="业务名" clearable @keyup.enter="handleQuery" v-model="state.queryParams.busName" @keyup.enter.native="handleQuery(true)" />
<el-input placeholder="业务名" clearable @keyup.enter="handleQuery" v-model="state.queryParams.busName" @keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="数据库表名" prop="tableName">
<el-input placeholder="数据库表名" clearable @keyup.enter="handleQuery" v-model="state.queryParams.tableName" @keyup.enter.native="handleQuery(true)" />
<el-input placeholder="数据库表名" clearable @keyup.enter="handleQuery" v-model="state.queryParams.tableName" @keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
</el-row>
@ -21,7 +21,7 @@
<el-row>
<el-col>
<el-button-group>
<el-button type="primary" icon="ele-Search" @click="handleQuery(true)" :loading="options.loading"> 查询 </el-button>
<el-button type="primary" icon="ele-Search" @click="handleQuery" :loading="options.loading"> 查询 </el-button>
<el-button icon="ele-Refresh" @click="resetQuery" :loading="options.loading"> 重置 </el-button>
</el-button-group>
</el-col>
@ -29,7 +29,7 @@
</el-card>
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" @sort-change="sortChange">
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
<template #toolbar_buttons>
<el-button type="primary" icon="ele-Plus" @click="handleAdd"> 新增 </el-button>
</template>
@ -62,15 +62,6 @@
<el-button icon="ele-Cpu" text type="primary" @click="handleGenerate(row)">生成</el-button>
</el-tooltip>
</template>
<template #pager>
<vxe-pager
:loading="options.loading"
v-model:current-page="state.tableParams.page"
v-model:page-size="state.tableParams.pageSize"
:total="state.tableParams.total"
@page-change="pageChange"
/>
</template>
</vxe-grid>
</el-card>
@ -84,8 +75,9 @@
import { onMounted, reactive, ref, defineAsyncComponent } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { auth } from '/@/utils/authFunction';
import { VxeGridInstance, VxePagerEvents, VxePagerDefines } from 'vxe-table';
import { useVxeTable } from '/@/hooks/vxeTableOptionsHook';
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import { Local } from '/@/utils/storage';
import { downloadByUrl } from '/@/utils/download';
import EditCodeGenDialog from './component/editCodeGenDialog.vue';
@ -93,7 +85,7 @@ import CodeConfigDialog from './component/genConfigDialog.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysCodeGenApi } from '/@/api-services/api';
import { SysCodeGen } from '/@/api-services/models';
import { SysCodeGen, PageCodeGenInput } from '/@/api-services/models';
const PreviewDialog = defineAsyncComponent(() => import('./component/previewDialog.vue'));
const xGrid = ref<VxeGridInstance>();
@ -110,90 +102,78 @@ const state = reactive({
tableName: undefined,
busName: undefined,
},
tableParams: {
page: 1,
pageSize: 50,
field: 'id', //
order: 'aes', //
descStr: 'desc', //
total: 0 as any,
localPageParam: {
pageSize: 50 as number,
defaultSort: { field: 'id', order: 'asc', descStr: 'desc' },
},
visible: false,
title: '',
applicationNamespaces: [] as Array<string>,
});
//
const localPageParamKey = 'localPageParam:sysCodeGen';
//
const options = useVxeTable<SysCodeGen>({
id: 'sysCodeGen',
name: '代码生成',
columns: [
// { type: 'checkbox', width: 40, fixed: 'left' },
{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
{ field: 'configId', title: '库定位器', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'tableName', title: '表名称', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'busName', title: '业务名', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'nameSpace', title: '命名空间', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'authorName', title: '作者姓名', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'generateType', title: '生成方式', minWidth: 140, showOverflow: 'tooltip', slots: { default: 'row_generateType' } },
{ title: '操作', fixed: 'right', width: 280, showOverflow: true, slots: { default: 'row_buttons' } },
],
enableExport: auth('sysCodeGen:export'),
searchCallback: () => handleQuery(),
queryAllCallback: () => fetchData({ pageSize: 99999 }),
});
const options = useVxeTable<SysCodeGen>(
{
id: 'sysCodeGen',
name: '代码生成',
columns: [
// { type: 'checkbox', width: 40, fixed: 'left' },
{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
{ field: 'configId', title: '库定位器', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'tableName', title: '表名称', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'busName', title: '业务名', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'nameSpace', title: '命名空间', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'authorName', title: '作者姓名', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'generateType', title: '生成方式', minWidth: 140, showOverflow: 'tooltip', slots: { default: 'row_generateType' } },
{ title: '操作', fixed: 'right', width: 280, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid()vxe-table
{
//
proxyConfig: { autoLoad: true, ajax: { query: ({ page, sort }) => handleQueryApi(page, sort) } },
//
sortConfig: { defaultSort: Local.get(localPageParamKey)?.defaultSort || state.localPageParam.defaultSort },
//
pagerConfig: { pageSize: Local.get(localPageParamKey)?.pageSize || state.localPageParam.pageSize },
//
toolbarConfig: { export: false },
}
);
//
onMounted(async () => {
state.localPageParam = Local.get(localPageParamKey) || state.localPageParam;
await handleQuery();
//
let res = await getAPI(SysCodeGenApi).apiSysCodeGenApplicationNamespacesGet();
state.applicationNamespaces = res.data.result as Array<string>;
});
//
const handleQuery = async (reset = false) => {
options.loading = true;
if (reset) state.tableParams.page = 1;
var res = await fetchData(null);
xGrid.value?.loadData(res.data.result?.items ?? []);
state.tableParams.total = res.data.result?.total;
options.loading = false;
};
//
const fetchData = async (tableParams: any) => {
let params = Object.assign(state.queryParams, state.tableParams, tableParams);
// api
const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as PageCodeGenInput;
return getAPI(SysCodeGenApi).apiSysCodeGenPagePost(params);
};
//
const handleQuery = async () => {
await xGrid.value?.commitProxy('query');
};
//
const resetQuery = () => {
const resetQuery = async () => {
state.queryParams.busName = undefined;
state.queryParams.tableName = undefined;
handleQuery(true);
};
const handleConfig = (row: any) => {
CodeConfigRef.value?.openDialog(row);
};
//
const pageChange: VxePagerEvents.PageChange = ({ currentPage, pageSize }: VxePagerDefines.PageChangeEventParams) => {
state.tableParams.page = currentPage;
state.tableParams.pageSize = pageSize;
handleQuery();
};
//
const sortChange = (options: any) => {
state.tableParams.field = options.field;
state.tableParams.order = options.order;
handleQuery();
await xGrid.value?.commitProxy('reload');
};
//
const handleAdd = () => {
state.title = '增加';
state.title = '增加代码生成';
EditCodeGenRef.value?.openDialog({
authorName: 'Admin.NET',
generateType: '200',
@ -202,12 +182,13 @@ const handleAdd = () => {
pagePath: 'main',
nameSpace: state.applicationNamespaces[0],
generateMenu: false,
isApiService: false,
});
};
//
const handleEdit = (row: any) => {
state.title = '编辑';
state.title = '编辑代码生成';
EditCodeGenRef.value?.openDialog(row);
};
@ -220,12 +201,31 @@ const handleDelete = (row: any) => {
})
.then(async () => {
await getAPI(SysCodeGenApi).apiSysCodeGenDeletePost([{ id: row.id }]);
handleQuery();
await handleQuery();
ElMessage.success('操作成功');
})
.catch(() => {});
};
//
const gridEvents: VxeGridListeners<SysCodeGen> = {
// pager-config
async pageChange({ pageSize }) {
state.localPageParam.pageSize = pageSize;
Local.set(localPageParamKey, state.localPageParam);
},
//
async sortChange({ field, order }) {
state.localPageParam.defaultSort = { field: field, order: order!, descStr: 'desc' };
Local.set(localPageParamKey, state.localPageParam);
},
};
//
const handleConfig = (row: any) => {
CodeConfigRef.value?.openDialog(row);
};
//
const handleGenerate = (row: any) => {
ElMessageBox.confirm(`确定要生成吗?`, '提示', {
@ -236,7 +236,7 @@ const handleGenerate = (row: any) => {
.then(async () => {
var res = await getAPI(SysCodeGenApi).apiSysCodeGenRunLocalPost(row);
if (res.data.result != null && res.data.result.url != null) downloadByUrl({ url: res.data.result.url });
handleQuery();
await handleQuery();
ElMessage.success('操作成功');
})
.catch(() => {});

View File

@ -104,4 +104,9 @@ export const dataTypeList = [
hasLength: false,
hasDecimalDigits: false,
},
{
value: 'boolean',
hasLength: false,
hasDecimalDigits: false,
},
];

View File

@ -32,7 +32,7 @@
<el-button-group style="padding-left: 12px; padding-right: 12px">
<el-button icon="ele-Plus" @click="showAddColumn"> 增加列 </el-button>
<el-button icon="ele-Plus" @click="showGenDialog"> 生成实体 </el-button>
<el-popover placement="bottom" title="温馨提示" :width="200" trigger="hover" content="如果是刚刚生成的实体,请重启服务后再生成种子">
<el-popover placement="bottom" title="🔔提示" :width="220" trigger="hover" content="如果是刚刚生成的实体,请重启后台服务后再生成种子">
<template #reference>
<el-button icon="ele-Plus" @click="showGenSeedDataDialog"> 生成种子 </el-button>
</template>
@ -81,7 +81,7 @@ import { onMounted, reactive, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { useRouter } from 'vue-router';
import { VxeGridInstance } from 'vxe-table';
import { useVxeTable } from '/@/hooks/vxeTableOptionsHook';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import EditTable from '/@/views/system/database/component/editTable.vue';
import EditColumn from '/@/views/system/database/component/editColumn.vue';
@ -118,54 +118,58 @@ const state = reactive({
});
//
const options = useVxeTable<DbColumnOutput>({
id: 'sysDatabase',
name: '库表信息',
columns: [
// { type: 'checkbox', width: 40, fixed: 'left' },
{ type: 'seq', title: '序号', width: 50, fixed: 'left' },
{ field: 'dbColumnName', title: '字段名', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'dataType', title: '数据类型', minWidth: 120, showOverflow: 'tooltip' },
{ field: 'isPrimarykey', title: '主键', minWidth: 70, slots: { default: 'row_isPrimarykey' } },
{ field: 'isIdentity', title: '自增', minWidth: 70, slots: { default: 'row_isIdentity' } },
{ field: 'isNullable', title: '可空', minWidth: 70, slots: { default: 'row_isNullable' } },
{ field: 'length', title: '长度', minWidth: 80, showOverflow: 'tooltip' },
{ field: 'decimalDigits', title: '精度', minWidth: 80, showOverflow: 'tooltip' },
{ field: 'defaultValue', title: '默认值', minWidth: 80, showOverflow: 'tooltip' },
{ field: 'columnDescription', title: '描述', minWidth: 200, showOverflow: 'tooltip' },
{ title: '操作', fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
],
enableExport: true,
searchCallback: () => handleQueryColumn(),
queryAllCallback: () => fetchData({ pageSize: 99999 }),
});
const options = useVxeTable<DbColumnOutput>(
{
id: 'sysDatabase',
name: '库表信息',
columns: [
// { type: 'checkbox', width: 40, fixed: 'left' },
{ type: 'seq', title: '序号', width: 50, fixed: 'left' },
{ field: 'dbColumnName', title: '字段名', minWidth: 200, showOverflow: 'tooltip' },
{ field: 'dataType', title: '数据类型', minWidth: 120, showOverflow: 'tooltip' },
{ field: 'isPrimarykey', title: '主键', minWidth: 70, slots: { default: 'row_isPrimarykey' } },
{ field: 'isIdentity', title: '自增', minWidth: 70, slots: { default: 'row_isIdentity' } },
{ field: 'isNullable', title: '可空', minWidth: 70, slots: { default: 'row_isNullable' } },
{ field: 'length', title: '长度', minWidth: 80, showOverflow: 'tooltip' },
{ field: 'decimalDigits', title: '精度', minWidth: 80, showOverflow: 'tooltip' },
{ field: 'defaultValue', title: '默认值', minWidth: 80, showOverflow: 'tooltip' },
{ field: 'columnDescription', title: '描述', minWidth: 200, showOverflow: 'tooltip' },
{ title: '操作', fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid()vxe-table
{
//
proxyConfig: { autoLoad: true, ajax: { query: () => handleQueryColumnApi() } },
//
pagerConfig: { enabled: false },
//
toolbarConfig: { export: true },
}
);
//
onMounted(async () => {
options.loading = true;
var res = await getAPI(SysDatabaseApi).apiSysDatabaseListGet();
let res = await getAPI(SysDatabaseApi).apiSysDatabaseListGet();
state.dbData = res.data.result;
options.loading = false;
let appNamesRes = await getAPI(SysCodeGenApi).apiSysCodeGenApplicationNamespacesGet();
state.appNamespaces = appNamesRes.data.result as Array<string>;
options.loading = false;
});
//
const handleQueryColumn = async () => {
// api
const handleQueryColumnApi = async () => {
if (state.tableName == '' || typeof state.tableName == 'undefined') {
await xGrid.value?.loadData([]);
options.loading = false;
return;
}
options.loading = true;
var res = await fetchData();
await xGrid.value?.loadData(res.data.result ?? []);
options.loading = false;
return getAPI(SysDatabaseApi).apiSysDatabaseColumnListTableNameConfigIdGet(state.tableName, state.configId);
};
//
const fetchData = async (tableParams?: any) => {
return getAPI(SysDatabaseApi).apiSysDatabaseColumnListTableNameConfigIdGet(state.tableName, state.configId);
//
const handleQueryColumn = async () => {
await xGrid.value?.commitProxy('query');
};
//

View File

@ -44,7 +44,7 @@
<div>
扫描触发器
<el-tooltip raw-content content="此参数只在新增作业时生效<br/>扫描定义在作业上的触发器" placement="top">
<SvgIcon name="fa fa-question-circle-o" :size="16" style="vertical-align: middle" />
<SvgIcon name="fa fa-question-circle-o" :size="16" />
</el-tooltip>
</div>
</template>

View File

@ -95,7 +95,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysLdapApi } from '/@/api-services';
import { SysLdap, SysLdapInput } from '/@/api-services/models';
import { SysLdap, PageSysLdapInput } from '/@/api-services/models';
//
const PrintDialog = defineAsyncComponent(() => import('/@/views/system/print/component/hiprint/preview.vue'));
@ -159,7 +159,7 @@ onMounted(async () => {
// api
const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as SysLdapInput;
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as PageSysLdapInput;
return getAPI(SysLdapApi).apiSysLdapPagePost(params);
};

View File

@ -130,6 +130,7 @@ const options = useVxeTable<SysMenu>(
pagerConfig: { enabled: false },
//
toolbarConfig: { export: false },
//
treeConfig: { expandAll: false },
}
);

View File

@ -71,7 +71,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysOpenAccessApi } from '/@/api-services/api';
import { OpenAccessInput, OpenAccessOutput } from '/@/api-services/models';
import { PageOpenAccessInput, OpenAccessOutput } from '/@/api-services/models';
const xGrid = ref<VxeGridInstance>();
const editRef = ref<InstanceType<typeof EditOpenAccess>>();
@ -128,7 +128,7 @@ onMounted(async () => {
// api
const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as OpenAccessInput;
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as PageOpenAccessInput;
return getAPI(SysOpenAccessApi).apiSysOpenAccessPagePost(params);
};