Dragon 3 years ago
parent
commit
87a5039987
  1. 1
      Readme.md
  2. 176
      aspnet-core/Directory.Build.Volo.targets
  3. 38
      aspnet-core/Directory.Build.targets
  4. 6
      aspnet-core/frameworks/Extensions/src/Lion.AbpPro.Extension/Customs/Dtos/WrapResultAttribute.cs
  5. 14
      aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs
  6. 5
      aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs
  7. 31
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs
  8. 99
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/MVC/Filters/ResultExceptionFilter.cs
  9. 6
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/System/DontWrapResultAttribute.cs
  10. 3
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/GlobalUsings.cs
  11. 80
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj
  12. 3
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json
  13. 10
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/GlobalUsings.cs
  14. 2
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion.AbpPro.Shared.Hosting.Microservices.csproj
  15. 87
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/Mvc/Filters/LionExceptionFilter.cs
  16. 33
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/Mvc/Filters/LionResultFilter.cs
  17. 31
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/SharedHostingMicroserviceModule.cs
  18. 1
      vben28/.eslintignore
  19. 4
      vben28/build/vite/plugin/index.ts
  20. 6
      vben28/build/vite/plugin/styleImport.ts
  21. 6
      vben28/src/main.ts
  22. 18
      vben28/src/services/ServiceProxyBase.ts
  23. 11
      vben28/src/views/sys/lock/useNow.ts
  24. 8
      vben28/tsconfig.json
  25. 5
      vben28/vite.config.ts

1
Readme.md

@ -11,7 +11,6 @@
## 🔗 链接
- [文档地址](http://doc.cncore.club/)
- [演示地址](http://116.205.176.173/)
- [视频教程](https://www.bilibili.com/video/BV1pt4y1E7aZ)

176
aspnet-core/Directory.Build.Volo.targets

@ -1,92 +1,92 @@
<Project>
<ItemGroup>
<PackageReference Update="Volo.Abp.Autofac" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Json" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Validation" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Ddd.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AutoMapper" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.ObjectMapping" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.AspNetCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Caching" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.BlobStoring.Aliyun" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.BackgroundJobs" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.HangFire" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.SignalR" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TestBase" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.MySQL" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Account.Web" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Caching.StackExchangeRedis" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.Serilog" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Swashbuckle" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Ddd.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Ddd.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Authorization" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Dapper" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Http.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.MongoDB" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.Sqlite" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Http.Client.IdentityModel" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.MultiTenancy" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Account.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.Application" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.ObjectExtending" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Account.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.Application.Contracts" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Emailing" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Domain.Identity" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AuditLogging.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.Domain" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AuditLogging.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.Domain.Shared" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Account.HttpApi" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.HttpApi" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.HttpApi" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.HttpApi" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.HttpApi" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.HttpApi" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Account.HttpApi.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Identity.HttpApi.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.PermissionManagement.HttpApi.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.TenantManagement.HttpApi.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.FeatureManagement.HttpApi.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.SettingManagement.HttpApi.Client" Version="5.3.4"/>
<PackageReference Update="Volo.Abp" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Core" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.TestBase" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.EventBus.Kafka" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.EventBus" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Kafka" Version="5.3.4"/>
<PackageReference Update="Volo.Abp.Autofac" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Json" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Validation" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Ddd.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AutoMapper" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.ObjectMapping" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.AspNetCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Caching" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.BlobStoring.Aliyun" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.HangFire" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.SignalR" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TestBase" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.MySQL" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AuditLogging.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Account.Web" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Caching.StackExchangeRedis" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Serilog" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Swashbuckle" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Ddd.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Ddd.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Authorization" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Dapper" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Http.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.MongoDB" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore.Sqlite" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Http.Client.IdentityModel" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.MultiTenancy" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Account.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Application" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.ObjectExtending" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Account.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Application.Contracts" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Emailing" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Domain.Identity" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AuditLogging.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Domain" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.BackgroundJobs.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AuditLogging.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.Domain.Shared" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Account.HttpApi" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.HttpApi" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.HttpApi" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.HttpApi" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.HttpApi" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.HttpApi" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Account.HttpApi.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Identity.HttpApi.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.PermissionManagement.HttpApi.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.TenantManagement.HttpApi.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.FeatureManagement.HttpApi.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.SettingManagement.HttpApi.Client" Version="6.0.1"/>
<PackageReference Update="Volo.Abp" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Core" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.EntityFrameworkCore" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.TestBase" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.EventBus.Kafka" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.EventBus" Version="6.0.1"/>
<PackageReference Update="Volo.Abp.Kafka" Version="6.0.1"/>
</ItemGroup>
</Project>

38
aspnet-core/Directory.Build.targets

@ -6,7 +6,7 @@
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>1.0.0</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<NoWarn>$(NoWarn);CS1591;CS0436;NU1504</NoWarn>
<AbpProjectType>app</AbpProjectType>
<ImplicitUsings>true</ImplicitUsings>
<Authors>WangJunZzz</Authors>
@ -32,24 +32,22 @@
<PackageReference Update="Ocelot.Provider.Polly" Version="18.0.0"/>
<PackageReference Update="FreeSql" Version="3.2.661"/>
<PackageReference Update="FreeSql.Provider.MySql" Version="3.2.661"/>
<PackageReference Update="FreeSql.Provider.Sqlite" Version="3.2.661"/>
<PackageReference Update="FreeSql" Version="3.2.682"/>
<PackageReference Update="FreeSql.Provider.MySql" Version="3.2.682"/>
<PackageReference Update="FreeSql.Provider.Sqlite" Version="3.2.682"/>
<PackageReference Update="xunit" Version="2.4.1"/>
<PackageReference Update="xunit.extensibility.execution" Version="2.4.1"/>
<PackageReference Update="xunit.runner.visualstudio" Version="2.4.3"/>
<PackageReference Update="Hangfire.PostgreSql" Version="1.8.6"/>
<PackageReference Update="Hangfire.MySqlStorage" Version="2.0.3"/>
<PackageReference Update="Hangfire.Redis.StackExchange" Version="1.8.5"/>
<PackageReference Update="DotNetCore.CAP" Version="6.1.0"/>
<PackageReference Update="DotNetCore.CAP.Dashboard" Version="6.1.0"/>
<PackageReference Update="DotNetCore.CAP.Mysql" Version="6.1.0"/>
<PackageReference Update="DotNetCore.CAP.Kafka" Version="6.1.0"/>
<PackageReference Update="DotNetCore.CAP.RabbitMQ" Version="6.1.0"/>
<PackageReference Update="DotNetCore.CAP.InMemoryStorage" Version="6.1.0"/>
<PackageReference Update="DotNetCore.CAP" Version="6.2.1"/>
<PackageReference Update="DotNetCore.CAP.Dashboard" Version="6.2.1"/>
<PackageReference Update="DotNetCore.CAP.Mysql" Version="6.2.1"/>
<PackageReference Update="DotNetCore.CAP.Kafka" Version="6.2.1"/>
<PackageReference Update="DotNetCore.CAP.RabbitMQ" Version="6.2.1"/>
<PackageReference Update="DotNetCore.CAP.InMemoryStorage" Version="6.2.1"/>
<PackageReference Update="Savorboard.CAP.InMemoryMessageQueue" Version="6.0.0"/>
<PackageReference Update="Swashbuckle.AspNetCore.SwaggerUI" Version="6.3.1"/>
@ -66,8 +64,9 @@
<PackageReference Update="Serilog.Settings.Configuration" Version="3.3.0"/>
<PackageReference Update="Serilog.Sinks.Elasticsearch" Version="8.4.1"/>
<PackageReference Update="Magicodes.IE.Excel" Version="2.6.4"/>
<PackageReference Update="Magicodes.IE.Excel" Version="2.7.0"/>
<PackageReference Update="Magicodes.IE.Excel.AspNetCore" Version="2.7.0"/>
<PackageReference Update="MiniProfiler.AspNetCore.Mvc" Version="4.2.22"/>
<PackageReference Update="MiniProfiler.EntityFrameworkCore" Version="4.2.22"/>
<PackageReference Update="MiniProfiler.Shared" Version="4.2.22"/>
@ -76,16 +75,13 @@
<PackageReference Update="prometheus-net.AspNetCore" Version="5.0.2"/>
<PackageReference Update="Aliyun.OSS.SDK.NetCore" Version="2.13.0"/>
<PackageReference Update="Zack.EFCore.Batch.MySQL.Pomelo_NET6" Version="6.0.15"/>
<PackageReference Update="Zack.EFCore.Batch.Sqlite_NET6" Version="6.0.15"/>
<PackageReference Update="StackExchangeRedis" Version="2.5.61"/>
<PackageReference Update="Zack.EFCore.Batch.MySQL.Pomelo_NET6" Version="6.1.3"/>
<PackageReference Update="Zack.EFCore.Batch.Sqlite_NET6" Version="6.1.3"/>
<PackageReference Update="Polly" Version="7.2.3"/>
<PackageReference Update="Confluent.Kafka" Version="1.8.2.0"/>
<PackageReference Update="Magicodes.IE.Excel" Version="2.6.4"/>
<PackageReference Update="Magicodes.IE.Excel.AspNetCore" Version="2.6.4"/>
<PackageReference Update="Newtonsoft.Json" Version="13.0.1"/>
<!-- Idenity 一下三个包升级到最新版导致鉴权不通过-->

6
aspnet-core/frameworks/Extensions/src/Lion.AbpPro.Extension/Customs/Dtos/WrapResultAttribute.cs

@ -0,0 +1,6 @@
namespace Lion.AbpPro.Extension.Customs.Dtos
{
public class WrapResultAttribute : Attribute
{
}
}

14
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Users/UserAppService.cs

@ -1,9 +1,11 @@
using Lion.AbpPro.BasicManagement.Localization;
using Lion.AbpPro.BasicManagement.Users.Dtos;
using Magicodes.ExporterAndImporter.Excel;
using Magicodes.ExporterAndImporter.Excel.AspNetCore;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Account;
using Volo.Abp.Identity.Localization;
namespace Lion.AbpPro.BasicManagement.Users
{
@ -15,18 +17,22 @@ namespace Lion.AbpPro.BasicManagement.Users
private readonly IIdentityUserRepository _identityUserRepository;
private readonly IExcelExporter _excelExporter;
private readonly IOptions<IdentityOptions> _options;
private readonly IStringLocalizer<IdentityResource> _localizer;
public UserAppService(
IIdentityUserAppService identityUserAppService,
IdentityUserManager userManager,
IIdentityUserRepository userRepository,
IExcelExporter excelExporter,
IOptions<IdentityOptions> options)
IOptions<IdentityOptions> options,
IStringLocalizer<IdentityResource> localizer)
{
_identityUserAppService = identityUserAppService;
_userManager = userManager;
_identityUserRepository = userRepository;
_excelExporter = excelExporter;
_options = options;
_localizer = localizer;
}
/// <summary>
@ -117,8 +123,6 @@ namespace Lion.AbpPro.BasicManagement.Users
/// <summary>
/// 修改密码
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<bool> ChangePasswordAsync(ChangePasswordInput input)
{
await _options.SetAsync();
@ -134,7 +138,7 @@ namespace Lion.AbpPro.BasicManagement.Users
}
return !result.Succeeded
? throw new UserFriendlyException(result?.Errors?.FirstOrDefault()?.Description)
? throw new BusinessException("Volo.Abp.Identity:" + result?.Errors?.FirstOrDefault()?.Code)
: result.Succeeded;
}
@ -151,4 +155,4 @@ namespace Lion.AbpPro.BasicManagement.Users
await _userManager.UpdateAsync(identityUser);
}
}
}
}

5
aspnet-core/modules/DataDictionaryManagement/src/Lion.AbpPro.DataDictionaryManagement.Application/DataDictionaries/DataDictionaryAppService.cs

@ -56,7 +56,10 @@ namespace Lion.AbpPro.DataDictionaryManagement.DataDictionaries
var details = entity.Details
.WhereIf(input.Filter.IsNotNullOrWhiteSpace(), e => (e.Code.Contains(input.Filter) || e.DisplayText.Contains(input.Filter)))
.OrderBy(e => e.Order)
.Take(input.PageSize).Skip(input.SkipCount).ToList();
.ThenBy(e=> e.CreationTime)
.Skip(input.SkipCount)
.Take(input.PageSize)
.ToList();
if (details.Count == 0)
{
return new PagedResultDto<PagingDataDictionaryDetailOutput>();

31
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs

@ -32,9 +32,8 @@ namespace Lion.AbpPro
ConfigureCache(context);
ConfigureSwaggerServices(context);
ConfigureJwtAuthentication(context, configuration);
ConfigureHangfireMysql(context);
ConfigureHangfire(context);
ConfigureMiniProfiler(context);
ConfigureAbpExceptions(context);
ConfigureIdentity(context);
ConfigureCap(context);
ConfigureAuditLog(context);
@ -84,35 +83,14 @@ namespace Lion.AbpPro
}
}
/// <summary>
/// 异常处理
/// </summary>
/// <param name="context"></param>
private void ConfigureAbpExceptions(ServiceConfigurationContext context)
{
context.Services.AddMvc(options => { options.Filters.Add(typeof(ResultExceptionFilter)); });
}
private void ConfigureHangfireMysql(ServiceConfigurationContext context)
private void ConfigureHangfire(ServiceConfigurationContext context)
{
Configure<AbpBackgroundJobOptions>(options => { options.IsJobExecutionEnabled = true; });
context.Services.AddHangfireServer();
context.Services.AddHangfire(config =>
{
config.UseStorage(new MySqlStorage(
context.Services.GetConfiguration().GetConnectionString("Default"),
new MySqlStorageOptions()
{
//CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
//SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
//QueuePollInterval = TimeSpan.Zero,
//UseRecommendedIsolationLevel = true,
//DisableGlobalLocks = true
JobExpirationCheckInterval = TimeSpan.FromMinutes(30),
TablesPrefix = "Hangfire_"
}));
config.UseRedisStorage(ConnectionMultiplexer.Connect(context.Services.GetConfiguration().GetConnectionString("Hangfire")));
var delaysInSeconds = new[] { 10, 60, 60 * 3 }; // 重试时间间隔
const int Attempts = 3; // 重试次数
config.UseFilter(new AutomaticRetryAttribute() { Attempts = Attempts, DelaysInSeconds = delaysInSeconds });
@ -198,7 +176,6 @@ namespace Lion.AbpPro
});
}
/// <summary>
/// Redis缓存
@ -323,7 +300,7 @@ namespace Lion.AbpPro
});
}
}
/// <summary>
/// 审计日志
/// </summary>

99
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/MVC/Filters/ResultExceptionFilter.cs

@ -1,99 +0,0 @@
namespace Lion.AbpPro.Extensions.MVC.Filters
{
public sealed class ResultExceptionFilter : IAsyncExceptionFilter, ITransientDependency
{
public async Task OnExceptionAsync(ExceptionContext context)
{
if (!ShouldHandleException(context))
{
return;
}
await HandleAndWrapException(context);
}
private bool ShouldHandleException(ExceptionContext context)
{
if (context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.GetCustomAttributes(typeof(DontWrapResultAttribute), true).Any())
{
return true;
}
if (context.ActionDescriptor.GetMethodInfo().GetCustomAttributes(typeof(DontWrapResultAttribute), true).Any())
{
return true;
}
return false;
}
private async Task HandleAndWrapException(ExceptionContext context)
{
var exceptionHandlingOptions = context.GetRequiredService<IOptions<AbpExceptionHandlingOptions>>().Value;
var exceptionToErrorInfoConverter = context.GetRequiredService<IExceptionToErrorInfoConverter>();
var remoteServiceErrorInfo = exceptionToErrorInfoConverter.Convert(context.Exception, options =>
{
options.SendExceptionsDetailsToClients = exceptionHandlingOptions.SendExceptionsDetailsToClients;
options.SendStackTraceToClients = exceptionHandlingOptions.SendStackTraceToClients;
});
var logLevel = context.Exception.GetLogLevel();
var remoteServiceErrorInfoBuilder = new StringBuilder();
remoteServiceErrorInfoBuilder.AppendLine($"---------- {nameof(RemoteServiceErrorInfo)} ----------");
remoteServiceErrorInfoBuilder.AppendLine(context.GetRequiredService<IJsonSerializer>().Serialize(remoteServiceErrorInfo, indented: true));
var logger = context.GetService<ILogger<ResultExceptionFilter>>(NullLogger<ResultExceptionFilter>.Instance);
logger.LogWithLevel(logLevel, remoteServiceErrorInfoBuilder.ToString());
logger.LogException(context.Exception, logLevel);
await context.GetRequiredService<IExceptionNotifier>().NotifyAsync(new ExceptionNotificationContext(context.Exception));
context.HttpContext.Response.StatusCode = 200;
var result = SimplifyMessage(context);
context.Result = new ObjectResult(result);
context.Exception = null; //Handled!
}
private WrapResult<object> SimplifyMessage(ExceptionContext context)
{
var result = new WrapResult<object>();
var localizer = context.GetService<IStringLocalizer<AbpProResource>>();
switch (context.Exception)
{
case AbpAuthorizationException:
result.SetFail("权限不足", 401);
break;
case AbpValidationException:
result.SetFail("请求参数验证失败", 400);
break;
case EntityNotFoundException:
result.SetFail("实体不存在", 506);
break;
case NotImplementedException:
result.SetFail("未实现功能", 507);
break;
default:
{
if (context.Exception is IHasErrorCode codeException)
{
result.SetFail(localizer[codeException.Code]);
foreach (var key in context.Exception.Data.Keys)
{
result.SetFail(result.Message.Replace("{" + key + "}", context.Exception.Data[key]?.ToString()));
}
}
else
{
result.SetFail(context.Exception.Message);
}
break;
}
}
return result;
}
}
}

6
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/System/DontWrapResultAttribute.cs

@ -1,6 +0,0 @@
namespace Lion.AbpPro.Extensions.System
{
public class DontWrapResultAttribute : Attribute
{
}
}

3
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/GlobalUsings.cs

@ -10,7 +10,6 @@ global using System.Threading.Tasks;
global using Hangfire;
global using Hangfire.Common;
global using Hangfire.Dashboard;
global using Hangfire.MySql;
global using Hangfire.States;
global using Hangfire.Storage;
global using Lion.AbpPro.CAP;
@ -19,8 +18,6 @@ global using Lion.AbpPro.Extension.Customs.Dtos;
global using Lion.AbpPro.Extensions;
global using Lion.AbpPro.Extensions.Hangfire;
global using Lion.AbpPro.Extensions.Middlewares;
global using Lion.AbpPro.Extensions.MVC.Filters;
global using Lion.AbpPro.Extensions.System;
global using Lion.AbpPro.MultiTenancy;
global using Lion.AbpPro.Shared.Hosting.Microservices;
global using Lion.AbpPro.Shared.Hosting.Microservices.Microsoft.AspNetCore.Builder;

80
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj

@ -10,53 +10,53 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer"/>
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis"/>
<PackageReference Include="Volo.Abp.Account.Web"/>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy"/>
<PackageReference Include="Volo.Abp.Autofac"/>
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis"/>
<PackageReference Include="Volo.Abp.AspNetCore.Serilog"/>
<PackageReference Include="Volo.Abp.Swashbuckle"/>
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer"/>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic"/>
<PackageReference Include="Serilog"/>
<PackageReference Include="Serilog.AspNetCore"/>
<PackageReference Include="Serilog.Exceptions"/>
<PackageReference Include="Serilog.Extensions.Logging"/>
<PackageReference Include="Serilog.Settings.Configuration"/>
<PackageReference Include="Serilog.Sinks.Console"/>
<PackageReference Include="Serilog.Sinks.Elasticsearch"/>
<PackageReference Include="Serilog.Sinks.File"/>
<PackageReference Include="Serilog.Sinks.Async"/>
<PackageReference Include="Hangfire.MySqlStorage"/>
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks"/>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic"/>
<PackageReference Include="MiniProfiler.AspNetCore.Mvc"/>
<PackageReference Include="DotNetCore.CAP.MySql"/>
<PackageReference Include="DotNetCore.CAP.RabbitMQ"/>
<PackageReference Include="DotNetCore.CAP.Dashboard"/>
<PackageReference Include="DotNetCore.CAP.InMemoryStorage"/>
<PackageReference Include="Savorboard.CAP.InMemoryMessageQueue"/>
<PackageReference Include="MiniProfiler.AspNetCore.Mvc"/>
<PackageReference Include="MiniProfiler.EntityFrameworkCore"/>
<PackageReference Include="MiniProfiler.Shared"/>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" />
<PackageReference Include="Volo.Abp.Account.Web" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy" />
<PackageReference Include="Volo.Abp.Autofac" />
<PackageReference Include="Volo.Abp.Caching.StackExchangeRedis" />
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" />
<PackageReference Include="Volo.Abp.Swashbuckle" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" />
<PackageReference Include="Serilog" />
<PackageReference Include="Serilog.AspNetCore" />
<PackageReference Include="Serilog.Exceptions" />
<PackageReference Include="Serilog.Extensions.Logging" />
<PackageReference Include="Serilog.Settings.Configuration" />
<PackageReference Include="Serilog.Sinks.Console" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" />
<PackageReference Include="Serilog.Sinks.File" />
<PackageReference Include="Serilog.Sinks.Async" />
<PackageReference Include="Hangfire.Redis.StackExchange" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" />
<PackageReference Include="DotNetCore.CAP.MySql" />
<PackageReference Include="DotNetCore.CAP.RabbitMQ" />
<PackageReference Include="DotNetCore.CAP.Dashboard" />
<PackageReference Include="DotNetCore.CAP.InMemoryStorage" />
<PackageReference Include="Savorboard.CAP.InMemoryMessageQueue" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" />
<PackageReference Include="MiniProfiler.EntityFrameworkCore" />
<PackageReference Include="MiniProfiler.Shared" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\frameworks\CAP\src\Lion.AbpPro.CAP\Lion.AbpPro.CAP.csproj"/>
<ProjectReference Include="..\..\..\shared\Lion.AbpPro.Shared.Hosting.Microservices\Lion.AbpPro.Shared.Hosting.Microservices.csproj"/>
<ProjectReference Include="..\..\src\Lion.AbpPro.Application\Lion.AbpPro.Application.csproj"/>
<ProjectReference Include="..\..\src\Lion.AbpPro.EntityFrameworkCore\Lion.AbpPro.EntityFrameworkCore.csproj"/>
<ProjectReference Include="..\..\src\Lion.AbpPro.HttpApi\Lion.AbpPro.HttpApi.csproj"/>
<ProjectReference Include="..\..\..\frameworks\CAP\src\Lion.AbpPro.CAP\Lion.AbpPro.CAP.csproj" />
<ProjectReference Include="..\..\..\shared\Lion.AbpPro.Shared.Hosting.Microservices\Lion.AbpPro.Shared.Hosting.Microservices.csproj" />
<ProjectReference Include="..\..\src\Lion.AbpPro.Application\Lion.AbpPro.Application.csproj" />
<ProjectReference Include="..\..\src\Lion.AbpPro.EntityFrameworkCore\Lion.AbpPro.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\src\Lion.AbpPro.HttpApi\Lion.AbpPro.HttpApi.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Logs\**"/>
<Content Remove="Logs\**"/>
<EmbeddedResource Remove="Logs\**"/>
<None Remove="Logs\**"/>
<Compile Remove="Logs\**" />
<Content Remove="Logs\**" />
<EmbeddedResource Remove="Logs\**" />
<None Remove="Logs\**" />
</ItemGroup>
</Project>

3
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json

@ -34,7 +34,8 @@
"CorsOrigins": "https://*.AbpPro.com,http://localhost:4200,http://localhost:3100"
},
"ConnectionStrings": {
"Default": "Data Source=localhost;Port=3306;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
"Default": "Data Source=localhost;Port=3306;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true",
"Hangfire": "localhost:6379,defaultdatabase=1"
},
"Redis": {
"Configuration": "localhost,password=1q2w3E*,defaultdatabase=1"

10
aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/GlobalUsings.cs

@ -6,26 +6,36 @@ global using System.Linq;
global using System.Net;
global using System.Reflection;
global using Consul;
global using Lion.AbpPro.Extension.Customs.Dtos;
global using Lion.AbpPro.Shared.Hosting.Microservices.Microsoft.Extensions.DependencyInjection;
global using Microsoft.AspNetCore.Builder;
global using Microsoft.AspNetCore.Cors;
global using Microsoft.AspNetCore.Http;
global using Microsoft.AspNetCore.Mvc;
global using Microsoft.AspNetCore.Mvc.Abstractions;
global using Microsoft.AspNetCore.Mvc.ApiExplorer;
global using Microsoft.AspNetCore.Mvc.Filters;
global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Logging.Abstractions;
global using Microsoft.Extensions.Options;
global using Microsoft.OpenApi.Any;
global using Microsoft.OpenApi.Models;
global using Newtonsoft.Json;
global using Swashbuckle.AspNetCore.SwaggerGen;
global using Volo.Abp;
global using Volo.Abp.AspNetCore.ExceptionHandling;
global using Volo.Abp.AspNetCore.Mvc;
global using Volo.Abp.AspNetCore.Mvc.AntiForgery;
global using Volo.Abp.Authorization;
global using Volo.Abp.Autofac;
global using Volo.Abp.DependencyInjection;
global using Volo.Abp.Domain.Entities;
global using Volo.Abp.ExceptionHandling;
global using Volo.Abp.Http;
global using Volo.Abp.Json;
global using Volo.Abp.Localization;
global using Volo.Abp.Modularity;
global using Volo.Abp.Swashbuckle;

2
aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Lion.AbpPro.Shared.Hosting.Microservices.csproj

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>/</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Ocelot.Provider.Polly" />

87
aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/Mvc/Filters/LionExceptionFilter.cs

@ -0,0 +1,87 @@
using System.Text;
namespace Microservices.Microsoft.AspNetCore.Mvc.Filters;
public sealed class LionExceptionFilter : IAsyncExceptionFilter, ITransientDependency
{
public async Task OnExceptionAsync(ExceptionContext context)
{
if (!ShouldHandleException(context))
{
return;
}
await HandleAndWrapException(context);
}
private bool ShouldHandleException(ExceptionContext context)
{
if (context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.GetCustomAttributes(typeof(WrapResultAttribute), true).Any())
{
return true;
}
if (context.ActionDescriptor.GetMethodInfo().GetCustomAttributes(typeof(WrapResultAttribute), true).Any())
{
return true;
}
return false;
}
private async Task HandleAndWrapException(ExceptionContext context)
{
var exceptionHandlingOptions = context.GetRequiredService<IOptions<AbpExceptionHandlingOptions>>().Value;
var exceptionToErrorInfoConverter = context.GetRequiredService<IExceptionToErrorInfoConverter>();
var remoteServiceErrorInfo = exceptionToErrorInfoConverter.Convert(context.Exception, options =>
{
options.SendExceptionsDetailsToClients = exceptionHandlingOptions.SendExceptionsDetailsToClients;
options.SendStackTraceToClients = exceptionHandlingOptions.SendStackTraceToClients;
});
var logLevel = context.Exception.GetLogLevel();
var remoteServiceErrorInfoBuilder = new StringBuilder();
remoteServiceErrorInfoBuilder.AppendLine($"---------- {nameof(RemoteServiceErrorInfo)} ----------");
remoteServiceErrorInfoBuilder.AppendLine(context.GetRequiredService<IJsonSerializer>().Serialize(remoteServiceErrorInfo, indented: true));
var logger = context.GetService<ILogger<LionExceptionFilter>>(NullLogger<LionExceptionFilter>.Instance);
logger.LogWithLevel(logLevel, remoteServiceErrorInfoBuilder.ToString());
logger.LogException(context.Exception, logLevel);
await context.GetRequiredService<IExceptionNotifier>().NotifyAsync(new ExceptionNotificationContext(context.Exception));
context.HttpContext.Response.StatusCode = 200;
var result = SimplifyMessage(context);
context.Result = new ObjectResult(result);
context.Exception = null; //Handled!
}
private WrapResult<object> SimplifyMessage(ExceptionContext context)
{
var result = new WrapResult<object>();
switch (context.Exception)
{
case AbpAuthorizationException:
result.SetFail("权限不足", 401);
break;
case AbpValidationException:
result.SetFail("请求参数验证失败", 400);
break;
case EntityNotFoundException:
result.SetFail("实体不存在", 506);
break;
case NotImplementedException:
result.SetFail("未实现功能", 507);
break;
default:
{
result.SetFail(context.Exception.Message);
break;
}
}
return result;
}
}

33
aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/Mvc/Filters/LionResultFilter.cs

@ -0,0 +1,33 @@
namespace Microservices.Microsoft.AspNetCore.Mvc.Filters;
public class LionResultFilter : IResultFilter, ITransientDependency
{
public void OnResultExecuting(ResultExecutingContext context)
{
// 如果是page 直接return
if (context.ActionDescriptor.IsPageAction()) return;
var controllerHasDontWrapResultAttribute = context.ActionDescriptor.AsControllerActionDescriptor().ControllerTypeInfo.GetCustomAttributes(typeof(WrapResultAttribute), true).Any();
var controllerActionHasDontWrapResultAttribute = context.ActionDescriptor.GetMethodInfo().GetCustomAttributes(typeof(WrapResultAttribute), true).Any();
if (controllerHasDontWrapResultAttribute || controllerActionHasDontWrapResultAttribute)
{
context.HttpContext.Response.StatusCode = 200;
var result = new WrapResult<object>();
if (context.Result is not EmptyResult)
{
result.SetSuccess(((ObjectResult)context.Result).Value);
}
context.Result = new ContentResult()
{
StatusCode = (int)HttpStatusCode.OK,
ContentType = "application/json;charset=utf-8",
Content = JsonConvert.SerializeObject(result)
};
}
}
public void OnResultExecuted(ResultExecutedContext context)
{
}
}

31
aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/SharedHostingMicroserviceModule.cs

@ -1,3 +1,5 @@
using Microservices.Microsoft.AspNetCore.Mvc.Filters;
namespace Lion.AbpPro.Shared.Hosting.Microservices
{
[DependsOn(
@ -17,20 +19,33 @@ namespace Lion.AbpPro.Shared.Hosting.Microservices
ConfigureUrls(configuration);
ConfigureConsul(context, configuration);
ConfigAntiForgery();
ConfigureAbpExceptions(context);
}
/// <summary>
/// 异常处理
/// </summary>
private void ConfigureAbpExceptions(ServiceConfigurationContext context)
{
context.Services.AddMvc
(
options =>
{
options.Filters.Add(typeof(LionExceptionFilter));
options.Filters.Add(typeof(LionResultFilter));
}
);
}
/// <summary>
/// 阻止跨站点请求伪造
/// https://docs.microsoft.com/zh-cn/aspnet/core/security/anti-request-forgery?view=aspnetcore-6.0
/// </summary>
private void ConfigAntiForgery()
{
Configure<AbpAntiForgeryOptions>(options =>
{
options.AutoValidate = false;
});
Configure<AbpAntiForgeryOptions>(options => { options.AutoValidate = false; });
}
private void ConfigureConsul(ServiceConfigurationContext context,
IConfiguration configuration)
{
@ -41,7 +56,6 @@ namespace Lion.AbpPro.Shared.Hosting.Microservices
}
/// <summary>
/// 配置跨域
/// </summary>
@ -75,10 +89,7 @@ namespace Lion.AbpPro.Shared.Hosting.Microservices
/// <param name="configuration"></param>
private void ConfigureUrls(IConfiguration configuration)
{
Configure<AppUrlOptions>(options =>
{
options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"];
});
Configure<AppUrlOptions>(options => { options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; });
}
/// <summary>

1
vben28/.eslintignore

@ -13,3 +13,4 @@ dist
.local
/bin
Dockerfile
/src/services/ServiceProxies.ts

4
vben28/build/vite/plugin/index.ts

@ -5,7 +5,7 @@ import legacy from '@vitejs/plugin-legacy';
import purgeIcons from 'vite-plugin-purge-icons';
import windiCSS from 'vite-plugin-windicss';
import VitePluginCertificate from 'vite-plugin-mkcert';
import vueSetupExtend from 'vite-plugin-vue-setup-extend';
//import vueSetupExtend from 'vite-plugin-vue-setup-extend';
import { configHtmlPlugin } from './html';
import { configPwaConfig } from './pwa';
import { configMockPlugin } from './mock';
@ -31,7 +31,7 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
// have to
vueJsx(),
// support name
vueSetupExtend(),
//vueSetupExtend(),
VitePluginCertificate({
source: 'coding',
}),

6
vben28/build/vite/plugin/styleImport.ts

@ -5,9 +5,9 @@
import { createStyleImportPlugin } from 'vite-plugin-style-import';
export function configStyleImportPlugin(_isBuild: boolean) {
// if (!isBuild) {
// return [];
// }
if (!_isBuild) {
return [];
}
const styleImportPlugin = createStyleImportPlugin({
libs: [
{

6
vben28/src/main.ts

@ -15,6 +15,12 @@ import { setupGlobDirectives } from '/@/directives';
import { setupI18n } from '/@/locales/setupI18n';
import { registerGlobComp } from '/@/components/registerGlobComp';
import Antd from 'ant-design-vue';
import { isDevMode } from './utils/env';
if (isDevMode()) {
import('ant-design-vue/es/style');
}
async function bootstrap() {
const app = createApp(App);
app.use(Antd);

18
vben28/src/services/ServiceProxyBase.ts

@ -15,15 +15,15 @@ export class ServiceProxyBase {
if (!guard) {
if (userStore.checkUserLoginExpire) {
router.replace(PageEnum.BASE_LOGIN);
return;
} else {
// 添加header
options.headers = {
'accept-language': language,
'Content-Type': 'application/json',
Authorization: 'Bearer ' + token,
__tenant: userStore.tenantId,
};
}
// 添加header
options.headers = {
'accept-language': language,
'Content-Type': 'application/json',
Authorization: 'Bearer ' + token,
__tenant: userStore.tenantId,
};
} else {
options.headers = {
'Content-Type': 'application/json',
@ -37,7 +37,7 @@ export class ServiceProxyBase {
protected transformResult(
_url: string,
response: AxiosResponse,
processor: (response: AxiosResponse) => Promise<any>
processor: (response: AxiosResponse) => Promise<any>,
): Promise<any> {
const { t } = useI18n();

11
vben28/src/views/sys/lock/useNow.ts

@ -1,11 +1,8 @@
import { dateUtil } from '/@/utils/dateUtil';
import { reactive, toRefs } from 'vue';
import { useLocaleStore } from '/@/store/modules/locale';
import { tryOnMounted, tryOnUnmounted } from '@vueuse/core';
export function useNow(immediate = true) {
const localeStore = useLocaleStore();
const localData = dateUtil.localeData(localeStore.getLocale);
let timer: IntervalHandle;
const state = reactive({
@ -28,13 +25,13 @@ export function useNow(immediate = true) {
state.year = now.get('y');
state.month = now.get('M') + 1;
state.week = localData.weekdays()[now.day()];
state.day = now.get('D');
state.week = '星期' + ['日', '一', '二', '三', '四', '五', '六'][now.day()];
state.day = now.get('date');
state.hour = h;
state.minute = m;
state.second = s;
state.meridiem = localData.meridiem(Number(h), Number(h), true);
state.meridiem = now.format('A');
};
function start() {
@ -60,4 +57,4 @@ export function useNow(immediate = true) {
start,
stop,
};
}
}

8
vben28/tsconfig.json

@ -40,5 +40,11 @@
"mock/**/*.ts",
"vite.config.ts"
],
"exclude": ["node_modules", "tests/server/**/*.ts", "dist", "**/*.js"]
"exclude": [
"node_modules",
"tests/server/**/*.ts",
"dist",
"**/*.js",
"src/services/ServiceProxies.ts"
]
}

5
vben28/vite.config.ts

@ -109,6 +109,11 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
'@iconify/iconify',
'ant-design-vue/es/locale/zh_CN',
'ant-design-vue/es/locale/en_US',
'ant-design-vue/es/style',
'echarts/core',
'echarts/charts',
'echarts/components',
'echarts/renderers',
],
},
};

Loading…
Cancel
Save