Compare commits

...

2 Commits

Author SHA1 Message Date
yidl c1e0665826 调整默认配置 2025-08-29 23:19:23 +08:00
yidl 658b2c8115 模板 更新 2025-08-29 23:15:34 +08:00
5 changed files with 61 additions and 87 deletions

View File

@ -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,

View File

@ -41,13 +41,6 @@
"CERT_PASSWORD": "ydl825913",
"ConsulServer": "http://localhost:8500",
"AllowedOrigins": "http://localhost:19901,http://192.168.0.100:40000",
"AuthorityServer": "https://192.168.1.100:19902",
"AllowedHosts": "*",
"Urls": "http://0.0.0.0:19901",
"RedisConfig": {
"RedisType": "Normal",
"Connections": [ "redismy:6379" ],
"dbNum": 10,
"Password": "redis&&!123"
}
}

View File

@ -33,6 +33,5 @@
"AllowedOrigins": "http://localhost:19901,http://localhost:3000,http://localhost:5173",
"AllowedHosts": "*",
"RetryCount": 10,
"AuthorityServer": "https://106.52.199.114:8001",
"SystemHome": "https://106.52.199.114:8000/"
}

View File

@ -28,7 +28,7 @@
"Url": "http://*:19901"
},
"Https": {
"Url": "https://*:8001"
"Url": "https://*:19902"
}
}
},
@ -46,7 +46,10 @@
"AllowedOrigins": "http://localhost:19901,http://localhost:3000,http://localhost:5173",
"AllowedHosts": "*",
"RetryCount": 10,
"AuthorityServer": "https://106.52.199.114:8001/",
"REDIS_HOST": "localhost",
"REDIS_PASSWORD": "redis&&!123",
"REDIS_DBNUM": "1",
"AuthorityServer": "https://localhost:19901/",
"SystemHome": "https://106.52.199.114:8000/",
"Hangfire": {
"AdminPassword": "HNjt123~"

View File

@ -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<TEntity,TDto> :BaseService where TDto : BaseDto where TEntity:EntityBase<string>
public class SugarServiceBase<TEntity, TDto> : BaseService where TDto : BaseDto where TEntity : EntityBase<string>
{
#region CUD
[Autowired]
@ -56,16 +44,16 @@ namespace BZPT.Domains.Services
public virtual async Task<INPResult> Delete(string id)
{
if(string.IsNullOrWhiteSpace(id))
if (string.IsNullOrWhiteSpace(id))
{
return new FailResult<TEntity>($"id 参数不能为空");
}
var rstCount = await this.Repository.RemoveAsync(t=>t.Id== id);
var rstCount = await this.Repository.RemoveAsync(t => t.Id == id);
return new SuccessResult<int>(rstCount);
}
public virtual async Task<INPResult> Delete(Expression< Func<TEntity,bool>> deleteWhere)
public virtual async Task<INPResult> Delete(Expression<Func<TEntity, bool>> deleteWhere)
{
var rstCount = await this.Repository.RemoveAsync(deleteWhere);
return new SuccessResult<int>(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<object>();
}
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<object>();
}
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<object>(){
"IsDeleted","=",false });