From d2756a9b07b458060b3b49e0b212a166dac2aa40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=86=9B?= <510423039@qq.com> Date: Thu, 30 Sep 2021 10:51:17 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20dotnetcore.cap=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9F=BA=E4=BA=8E=E5=86=85=E5=AD=98=20=E2=9C=A8=20es=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=8F=AF=E9=80=89=20=E2=9C=A8=20=E6=B7=BB=E5=8A=A0=20?= =?UTF-8?q?UserDataSeedContributor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aspnet-core/Directory.Build.props | 1 + .../CompanyName.ProjectName.CAP.csproj | 7 ++- .../ElasticSearchs/LogAppService.cs | 22 +++++-- ...ompanyName.ProjectName.HttpApi.Host.csproj | 3 - .../Filters/HiddenAbpDefaultApiFilter.cs | 16 ++--- .../ProjectNameHttpApiHostModule.cs | 60 +++++++++++-------- .../appsettings.Development.json | 19 +++--- .../Users/UserDataSeedContributor.cs | 38 +++++++++++- vben271/.env.production | 2 +- vben271/_nginx/default.conf | 4 ++ vben271/_nginx/nginx.conf | 11 +++- 11 files changed, 127 insertions(+), 56 deletions(-) diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props index e0590569..35930d61 100644 --- a/aspnet-core/Directory.Build.props +++ b/aspnet-core/Directory.Build.props @@ -2,6 +2,7 @@ 4.4.0 + 5.1.4 \ No newline at end of file diff --git a/aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/CompanyName.ProjectName.CAP.csproj b/aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/CompanyName.ProjectName.CAP.csproj index 6d485d8a..a66439af 100644 --- a/aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/CompanyName.ProjectName.CAP.csproj +++ b/aspnet-core/frameworks/CAP/src/CompanyName.ProjectName.CAP/CompanyName.ProjectName.CAP.csproj @@ -5,9 +5,14 @@ - + + + + + + diff --git a/aspnet-core/modules/QueryManagement/src/CompanyName.ProjectName.QueryManagement.Application/ElasticSearchs/LogAppService.cs b/aspnet-core/modules/QueryManagement/src/CompanyName.ProjectName.QueryManagement.Application/ElasticSearchs/LogAppService.cs index 6cddf3f3..c8410380 100644 --- a/aspnet-core/modules/QueryManagement/src/CompanyName.ProjectName.QueryManagement.Application/ElasticSearchs/LogAppService.cs +++ b/aspnet-core/modules/QueryManagement/src/CompanyName.ProjectName.QueryManagement.Application/ElasticSearchs/LogAppService.cs @@ -1,21 +1,35 @@ -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Threading.Tasks; using CompanyName.ProjectName.Extensions.Customs.Dtos; using CompanyName.ProjectName.QueryManagement.ElasticSearchs.Dtos; +using Microsoft.Extensions.Configuration; namespace CompanyName.ProjectName.QueryManagement.ElasticSearchs { public class LogAppService : QueryManagementAppService, ILogAppService { private readonly ICompanyNameProjectNameLogRepository _companyNameProjectNameLogRepository; + private readonly IConfiguration _configuration; - public LogAppService(ICompanyNameProjectNameLogRepository companyNameProjectNameLogRepository) + public LogAppService( + ICompanyNameProjectNameLogRepository companyNameProjectNameLogRepository, + IConfiguration configuration) { _companyNameProjectNameLogRepository = companyNameProjectNameLogRepository; + _configuration = configuration; } - public Task> PaingLogAsync(PagingElasticSearchLogInput input) + public async Task> PaingLogAsync(PagingElasticSearchLogInput input) { - return _companyNameProjectNameLogRepository.PaingAsync(input); + var enabled = _configuration.GetValue("LogToElasticSearch:Enabled", false); + if (enabled) + { + return await _companyNameProjectNameLogRepository.PaingAsync(input); + } + else + { + return new CustomePagedResultDto(0, new List()); + } } } } \ No newline at end of file diff --git a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj index 6f3d3a8b..887364e2 100644 --- a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj +++ b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/CompanyName.ProjectName.HttpApi.Host.csproj @@ -34,9 +34,6 @@ - - - diff --git a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Extensions/Filters/HiddenAbpDefaultApiFilter.cs b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Extensions/Filters/HiddenAbpDefaultApiFilter.cs index ec023a51..6feaaae2 100644 --- a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Extensions/Filters/HiddenAbpDefaultApiFilter.cs +++ b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/Extensions/Filters/HiddenAbpDefaultApiFilter.cs @@ -42,14 +42,14 @@ namespace CompanyName.ProjectName.Extensions.Filters private List GetHiddenAbpDefaultApiList() { return new List() { - "/api/abp/multi-tenancy/tenants", - "/api/account", - "/api/feature-management/features", - "/api/permission-management/permissions", - "/api/identity/my-profile", - "/api/identity", - "/api/multi-tenancy/tenants", - "/api/setting-management/emailing" + // "/api/abp/multi-tenancy/tenants", + // "/api/account", + // "/api/feature-management/features", + // "/api/permission-management/permissions", + // "/api/identity/my-profile", + // "/api/identity", + // "/api/multi-tenancy/tenants", + // "/api/setting-management/emailing" }; } } diff --git a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs index ad604388..579d5e7d 100644 --- a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs +++ b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs @@ -47,6 +47,7 @@ using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.MultiTenancy; using CompanyName.ProjectName.Extensions.Customs.Http; using CompanyName.ProjectName.QueryManagement.ElasticSearch; +using Savorboard.CAP.InMemoryMessageQueue; using Serilog; using Volo.Abp.AspNetCore.ExceptionHandling; @@ -72,7 +73,7 @@ namespace CompanyName.ProjectName public override void OnPostApplicationInitialization(ApplicationInitializationContext context) { - // context.CreateRecurringJob(); + // context.CreateRecurringJob(); base.OnPostApplicationInitialization(context); } @@ -145,9 +146,8 @@ namespace CompanyName.ProjectName private void ConfigureAbpExceptions(ServiceConfigurationContext context) { context.Services.Configure(options => { options.SendExceptionsDetailsToClients = true; }); - - } + public void ConfigureHangfireMysql(ServiceConfigurationContext context) { Configure(options => { options.IsJobExecutionEnabled = true; }); @@ -261,7 +261,7 @@ namespace CompanyName.ProjectName private void ConfigureVirtualFileSystem(ServiceConfigurationContext context) { Configure(options => { options.FileSets.AddEmbedded(); }); - + // var hostingEnvironment = context.Services.GetHostingEnvironment(); // // if (hostingEnvironment.IsDevelopment()) @@ -287,11 +287,11 @@ namespace CompanyName.ProjectName private void ConfigurationStsHttpClient(ServiceConfigurationContext context) { context.Services.AddHttpClient(HttpClientNameConsts.Sts, - options => - { - options.BaseAddress = - new Uri(context.Services.GetConfiguration().GetSection("HttpClient:Sts:Url").Value); - }); + options => + { + options.BaseAddress = + new Uri(context.Services.GetConfiguration().GetSection("HttpClient:Sts:Url").Value); + }); } private void ConfigureConventionalControllers() @@ -414,27 +414,39 @@ namespace CompanyName.ProjectName }); }); } - + private void ConfigurationCap(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); - context.AddAbpCap(capOptions => + var enabled = configuration.GetValue("Cap:Enabled", false); + if (enabled) { - capOptions.UseEntityFramework(); - capOptions.UseRabbitMQ(option => + context.AddAbpCap(capOptions => { - option.HostName = configuration.GetValue("RabbitMq:HostName"); - option.UserName = configuration.GetValue("RabbitMq:UserName"); - option.Password = configuration.GetValue("RabbitMq:Password"); - }); - - var hostingEnvironment = context.Services.GetHostingEnvironment(); - bool auth = !hostingEnvironment.IsDevelopment(); - capOptions.UseDashboard(options => + capOptions.UseEntityFramework(); + capOptions.UseRabbitMQ(option => + { + option.HostName = configuration.GetValue("Cap:RabbitMq:HostName"); + option.UserName = configuration.GetValue("Cap:RabbitMq:UserName"); + option.Password = configuration.GetValue("Cap:RabbitMq:Password"); + }); + + var hostingEnvironment = context.Services.GetHostingEnvironment(); + bool auth = !hostingEnvironment.IsDevelopment(); + capOptions.UseDashboard(options => { options.UseAuth = auth; }); + }); + } + else + { + context.AddAbpCap(capOptions => { - options.UseAuth = auth; - }); - }); + capOptions.UseInMemoryStorage(); + capOptions.UseInMemoryMessageQueue(); + var hostingEnvironment = context.Services.GetHostingEnvironment(); + bool auth = !hostingEnvironment.IsDevelopment(); + capOptions.UseDashboard(options => { options.UseAuth = auth; }); + }); + } } } } \ No newline at end of file diff --git a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json index 68d6034e..dd6b2314 100644 --- a/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json +++ b/aspnet-core/services/host/CompanyName.ProjectName.HttpApi.Host/appsettings.Development.json @@ -24,12 +24,6 @@ "DatabaseId": 0 } }, - "AuthServer": { - "Authority": "https://localhost:44354", - "RequireHttpsMetadata": "true", - "SwaggerClientId": "ProjectName_Swagger", - "SwaggerClientSecret": "1q2w3e*" - }, "StringEncryption": { "DefaultPassPhrase": "YFLtqf75HkDnKR0n" }, @@ -42,13 +36,16 @@ "ExpirationTime": 24 //过期时间 hour }, - "RabbitMq": { - "HostName": "localhost", - "UserName": "admin", - "Password": "admin" + "Cap": { + "Enabled": "false", + "RabbitMq": { + "HostName": "localhost", + "UserName": "admin", + "Password": "admin" + } }, "LogToElasticSearch": { - "Enabled": "true", + "Enabled": "false", "ElasticSearch": { "Url": "http://es.cn", "IndexFormat": "companyname.projectname.development", diff --git a/aspnet-core/services/src/CompanyName.ProjectName.Domain/Users/UserDataSeedContributor.cs b/aspnet-core/services/src/CompanyName.ProjectName.Domain/Users/UserDataSeedContributor.cs index 9d998218..99626693 100644 --- a/aspnet-core/services/src/CompanyName.ProjectName.Domain/Users/UserDataSeedContributor.cs +++ b/aspnet-core/services/src/CompanyName.ProjectName.Domain/Users/UserDataSeedContributor.cs @@ -1,7 +1,39 @@ -namespace CompanyName.ProjectName.Users +using System; +using System.Threading.Tasks; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Identity; + +namespace CompanyName.ProjectName.Users { - public class UserDataSeedContributor + public class UserDataSeedContributor : IDataSeedContributor, ITransientDependency { - + private readonly IdentityUserManager _userManager; + private readonly IdentityRoleManager _identityRoleManager; + + public UserDataSeedContributor( + IdentityUserManager userManager, + IdentityRoleManager identityRoleManager) + { + _userManager = userManager; + _identityRoleManager = identityRoleManager; + } + + public async Task SeedAsync(DataSeedContext context) + { + const string adminUserName = "admin"; + var adminUser = await _userManager.FindByNameAsync(adminUserName); + if (adminUser != null) + { + await _userManager.SetLockoutEndDateAsync(adminUser, DateTimeOffset.UtcNow.AddDays(-1)); + } + + var role = await _identityRoleManager.FindByNameAsync(adminUserName); + if (role != null) + { + role.IsDefault = true; + await _identityRoleManager.UpdateAsync(role); + } + } } } \ No newline at end of file diff --git a/vben271/.env.production b/vben271/.env.production index 4003896c..d7384857 100644 --- a/vben271/.env.production +++ b/vben271/.env.production @@ -34,7 +34,7 @@ VITE_USE_PWA = false # Is it compatible with older browsers VITE_LEGACY = false -VITE_BUILD_COMPRESS = 'none' +VITE_BUILD_COMPRESS = 'gzip' # 认证授权服务器地址 VITE_AUTH_URL='http://120.24.194.14:8013' diff --git a/vben271/_nginx/default.conf b/vben271/_nginx/default.conf index a7abe4f2..c6416fa1 100644 --- a/vben271/_nginx/default.conf +++ b/vben271/_nginx/default.conf @@ -11,6 +11,10 @@ server { #access_log /var/log/nginx/host.access.log main; location / { + if ($request_filename ~* .*\.html$) { + add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; + } + root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; diff --git a/vben271/_nginx/nginx.conf b/vben271/_nginx/nginx.conf index 4a06ab8e..b7fbcbfd 100644 --- a/vben271/_nginx/nginx.conf +++ b/vben271/_nginx/nginx.conf @@ -28,6 +28,15 @@ http { keepalive_timeout 65; send_timeout 600; - #gzip on; + # 开启gzip + gzip on; + # 开启gzip_static + # gzip_static 开启后可能会报错,需要安装相应的模块, 具体安装方式可以自行查询 + # 只有这个开启,vue文件打包的.gz文件才会有效果,否则不需要开启gzip进行打包 + gzip_static on; + gzip_proxied any; + gzip_min_length 1k; + gzip_buffers 4 16k; + include /etc/nginx/conf.d/*.conf; }