diff --git a/BZPT.Api/Program.cs b/BZPT.Api/Program.cs index 43f912b..7500315 100644 --- a/BZPT.Api/Program.cs +++ b/BZPT.Api/Program.cs @@ -1,57 +1,37 @@ using Autofac; using Autofac.Extensions.DependencyInjection; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; +using BZPT.Api.Middleware; +using BZPT.Domains.IRepositories; +using BZPT.Repositories; +using IGeekFan.AspNetCore.Knife4jUI; +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.DataProtection; +using Microsoft.AspNetCore.Http.Features; +using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.ModelBinding; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.OpenApi.Models; -using System; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using NPlatform.Infrastructure.Config; -using NPlatform.Middleware; -using NPlatform.API; -using NPlatform.DI; -using NPlatform.Repositories; -using Newtonsoft.Json; -using System.Text.Json.Serialization; -using SqlSugar; -using IGeekFan.AspNetCore.Knife4jUI; -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authentication.Cookies; -using IdentityServer4.Configuration; -using System.Security.Cryptography.X509Certificates; -using BZPT.Repositories; using Microsoft.Extensions.DependencyInjection.Extensions; -using NPlatform.Infrastructure.Config.Section; -using ServiceStack; using Microsoft.IdentityModel.Tokens; -using Hangfire; -using Hangfire.Redis.StackExchange; -using Hangfire.Dashboard.BasicAuthorization; -using BZPT.Domains.Application; -using System.Security.Claims; +using Microsoft.OpenApi.Models; +using Newtonsoft.Json; +using NPlatform.API; +using NPlatform.Infrastructure.Config; +//using Hangfire; +//using Hangfire.Redis.StackExchange; +//using Hangfire.Dashboard.BasicAuthorization; using NPlatform.Infrastructure.IdGenerators; -using NPOI.SS.Formula.Functions; -using Microsoft.AspNetCore.DataProtection; -using StackExchange.Redis; -using BZPT.Api.Middleware; -using Microsoft.AspNetCore.Server.Kestrel.Core; -using Newtonsoft.Json.Linq; -using Serilog.Context; +using NPlatform.Middleware; +using NPlatform.Repositories; using Serilog; -using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.Extensions.FileProviders; -using BZPT.Domains.IRepositories; -using BZPT.Domains.IService.Sys; -using BZPT.Api; -using Microsoft.AspNetCore.Http.Features; -using Microsoft.AspNetCore.HttpOverrides; +using Serilog.Context; +using ServiceStack; +using SqlSugar; +using StackExchange.Redis; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.Json.Serialization; var builder = WebApplication.CreateBuilder(args); var serviceConfig = builder.Configuration.GetServiceConfig(); @@ -70,20 +50,20 @@ var redisConfig = builder.Configuration.GetRedisConfig(); //从配置获取 Redis 连接字符串 var redisConn = $"{redisConfig.Connections?.FirstOrDefault()},password={redisConfig.Password}"; Console.WriteLine("redis 连接:" + redisConn); -// 配置 Hangfire -builder.Services.AddHangfire(x => -{ - x.SetDataCompatibilityLevel(CompatibilityLevel.Version_170) - .UseSimpleAssemblyNameTypeSerializer() - .UseRecommendedSerializerSettings() - .UseRedisStorage(redisConn, new RedisStorageOptions - { - Db = 11, - Prefix = "Hangfire:" - }); -}); +//// 配置 Hangfire +//builder.Services.AddHangfire(x => +//{ +// x.SetDataCompatibilityLevel(CompatibilityLevel.Version_170) +// .UseSimpleAssemblyNameTypeSerializer() +// .UseRecommendedSerializerSettings() +// .UseRedisStorage(redisConn, new RedisStorageOptions +// { +// Db = 11, +// Prefix = "Hangfire:" +// }); +//}); -builder.Services.AddHangfireServer(); +//builder.Services.AddHangfireServer(); // 连接到 Redis var connectionMultiplexer = ConnectionMultiplexer.Connect(redisConn); @@ -214,7 +194,7 @@ builder.Services.AddAuthentication(options => options.TokenValidationParameters = new TokenValidationParameters { ValidateAudience = true, // 验证 Audience - ValidAudiences =new string[] { serviceConfig.ServiceID }, // 或者 "api.BZPT",取决于你的 API 需要验证哪个 Audience + ValidAudiences = new string[] { serviceConfig.ServiceID }, // 或者 "api.BZPT",取决于你的 API 需要验证哪个 Audience ValidateIssuer = true, // 验证 Issuer ValidIssuer = builder.Configuration["AuthorityServer"], // 确保与 IdentityServer4 的 Issuer 配置一致 ValidateLifetime = true, diff --git a/BZPT.Domains/Services/SugarServiceBase.cs b/BZPT.Domains/Services/SugarServiceBase.cs index 14e4a8a..1093a7b 100644 --- a/BZPT.Domains/Services/SugarServiceBase.cs +++ b/BZPT.Domains/Services/SugarServiceBase.cs @@ -1,23 +1,11 @@ -using BZPT.Domains.IRepositories.Sys; -using BZPT.Dto.Sys; -using BZPT.Repositories; -using Consul.Filtering; +using BZPT.Repositories; using DevExtreme.AspNet.Data; -using NetTaste; -using NPlatform.Domains.Entity; -using NPOI.SS.Formula.Functions; using ServiceStack; -using System; -using System.Collections.Generic; -using System.Linq; using System.Net; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; namespace BZPT.Domains.Services { - public class SugarServiceBase :BaseService where TDto : BaseDto where TEntity:EntityBase + public class SugarServiceBase : BaseService where TDto : BaseDto where TEntity : EntityBase { #region CUD [Autowired] @@ -56,16 +44,16 @@ namespace BZPT.Domains.Services public virtual async Task Delete(string id) { - if(string.IsNullOrWhiteSpace(id)) + if (string.IsNullOrWhiteSpace(id)) { return new FailResult($"id 参数不能为空"); } - var rstCount = await this.Repository.RemoveAsync(t=>t.Id== id); + var rstCount = await this.Repository.RemoveAsync(t => t.Id == id); return new SuccessResult(rstCount); } - public virtual async Task Delete(Expression< Func> deleteWhere) + public virtual async Task Delete(Expression> deleteWhere) { var rstCount = await this.Repository.RemoveAsync(deleteWhere); return new SuccessResult(rstCount); @@ -127,6 +115,12 @@ namespace BZPT.Domains.Services { loadOptionsexp.Sort = new SortingInfo[] { new SortingInfo() { Selector = "CreateTime", Desc = true } }; } + + if (loadOptionsexp.Filter == null) + { + loadOptionsexp.Filter = new List(); + } + Type type = typeof(TEntity); // 检查是否存在指定名称的接口 Type interfaceType = type.GetInterface("ILogicDelete"); @@ -146,10 +140,15 @@ namespace BZPT.Domains.Services { loadOptionsexp.Sort = new SortingInfo[] { new SortingInfo() { Selector = "CreateTime", Desc = true } }; } + if (loadOptionsexp.Filter == null) + { + loadOptionsexp.Filter = new List(); + } + Type type = typeof(TEntity); // 检查是否存在指定名称的接口 Type interfaceType = type.GetInterface("ILogicDelete"); - if (interfaceType != null&&!loadOptionsexp.Filter.Contains("IsDeleted")) + if (interfaceType != null && !loadOptionsexp.Filter.Contains("IsDeleted")) { loadOptionsexp.And(new List(){ "IsDeleted","=",false });