fix 框架调整,优化数据返回

This commit is contained in:
2024-02-23 16:20:24 +08:00
parent ef782d6892
commit f255a87138
36 changed files with 534 additions and 34 deletions

View File

@@ -36,7 +36,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Kurisu.AspNetCore" Version="0.5.2" />
<PackageReference Include="Kurisu.AspNetCore" Version="0.5.3" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.4" />
</ItemGroup>

View File

@@ -39,6 +39,7 @@ public class BalancesController : ControllerBase
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("device/page")]
[IgnoreTenant]
public async Task<Pagination<BalanceRecordResponse>> GetPageByDeviceUniqueNoGetAsync([FromQuery] BalanceRecordPageByDeviceUniqueNoRequest request)
{
return await _balanceService.GetPageByDeviceUniqueNoAsync(request);
@@ -50,6 +51,7 @@ public class BalancesController : ControllerBase
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("device/page")]
[IgnoreTenant]
public async Task<Pagination<BalanceRecordResponse>> GetPageByDeviceUniqueNoPostAsync(BalanceRecordPageByDeviceUniqueNoRequest request)
{
return await _balanceService.GetPageByDeviceUniqueNoAsync(request);

View File

@@ -407,7 +407,7 @@ public class BalanceService : IBalanceService
}
[IgnoreTenant]
public async Task<Pagination<BalanceRecordResponse>> GetPageByDeviceUniqueNoAsync(BalanceRecordPageByDeviceUniqueNoRequest request)
{
var now = DateTime.Now;

View File

@@ -7,6 +7,14 @@
},
"dotnetRunMessages": true,
"applicationUrl": "http://localhost:5008"
},
"Docker": {
"commandName": "Docker",
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_URLS": "http://+:80"
},
"publishAllPorts": true
}
},
"$schema": "https://json.schemastore.org/launchsettings.json"

View File

@@ -1,5 +1,9 @@
using Kurisu.AspNetCore.Startup;
using Kurisu.Core.DataAccess.Entity;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Microsoft.AspNetCore.Mvc.Filters;
using SqlSugar;
namespace Dlhis.Canteen;
@@ -12,3 +16,101 @@ public class SqlSugarPack : BaseAppPack
services.AddSqlSugar();
}
}
/// <summary>
/// 日志
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
public class LogAttribute : Attribute, IAsyncActionFilter
{
public LogAttribute(string title)
{
Title = title;
}
/// <summary>
///
/// </summary>
public string Title { get; set; }
/// <summary>
/// 是否处理差异
/// </summary>
public bool Diff { get; set; }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
PreSetting(context.HttpContext);
await next();
}
private void PreSetting(HttpContext httpContext)
{
var options = httpContext.RequestServices.GetService<ISqlSugarOptionsService>();
options.Title = Title;
options.Diff = Diff;
options.BatchNo = Guid.NewGuid();
options.RoutePath = httpContext.Request.Path.Value;
options.RaiseTime = DateTime.Now;
}
}
/// <summary>
/// 事务
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
public class TransactionalAttribute : Attribute, IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var dbContext = context.HttpContext.RequestServices.GetRequiredService<ISqlSugarClient>();
await dbContext.Ado.BeginTranAsync();
try
{
var result = await next();
if (result.Exception != null)
{
throw result.Exception;
}
else
{
await dbContext.Ado.CommitTranAsync();
}
}
catch (Exception)
{
await dbContext.Ado.RollbackTranAsync();
throw;
}
}
}
/// <summary>
/// 忽略租户
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
public class IgnoreTenantAttribute : Attribute, IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var dbContext = context.HttpContext.RequestServices.GetRequiredService<ISqlSugarClient>();
var options = context.HttpContext!.RequestServices.GetService<ISqlSugarOptionsService>();
try
{
dbContext.QueryFilter.ClearAndBackup<ITenantId>();
options.IgnoreTenant = true;
await next();
}
finally
{
options.IgnoreTenant = false;
dbContext.QueryFilter.Restore();
}
}
}