模板 更新
This commit is contained in:
parent
73134b736a
commit
658b2c8115
|
@ -1,57 +1,37 @@
|
||||||
using Autofac;
|
using Autofac;
|
||||||
using Autofac.Extensions.DependencyInjection;
|
using Autofac.Extensions.DependencyInjection;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using BZPT.Api.Middleware;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
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;
|
||||||
using Microsoft.AspNetCore.Mvc.Controllers;
|
using Microsoft.AspNetCore.Mvc.Controllers;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
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 Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using NPlatform.Infrastructure.Config.Section;
|
|
||||||
using ServiceStack;
|
|
||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
using Hangfire;
|
using Microsoft.OpenApi.Models;
|
||||||
using Hangfire.Redis.StackExchange;
|
using Newtonsoft.Json;
|
||||||
using Hangfire.Dashboard.BasicAuthorization;
|
using NPlatform.API;
|
||||||
using BZPT.Domains.Application;
|
using NPlatform.Infrastructure.Config;
|
||||||
using System.Security.Claims;
|
//using Hangfire;
|
||||||
|
//using Hangfire.Redis.StackExchange;
|
||||||
|
//using Hangfire.Dashboard.BasicAuthorization;
|
||||||
using NPlatform.Infrastructure.IdGenerators;
|
using NPlatform.Infrastructure.IdGenerators;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPlatform.Middleware;
|
||||||
using Microsoft.AspNetCore.DataProtection;
|
using NPlatform.Repositories;
|
||||||
using StackExchange.Redis;
|
|
||||||
using BZPT.Api.Middleware;
|
|
||||||
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
using Serilog.Context;
|
|
||||||
using Serilog;
|
using Serilog;
|
||||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
using Serilog.Context;
|
||||||
using Microsoft.Extensions.FileProviders;
|
using ServiceStack;
|
||||||
using BZPT.Domains.IRepositories;
|
using SqlSugar;
|
||||||
using BZPT.Domains.IService.Sys;
|
using StackExchange.Redis;
|
||||||
using BZPT.Api;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using Microsoft.AspNetCore.Http.Features;
|
using System.Text;
|
||||||
using Microsoft.AspNetCore.HttpOverrides;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
var serviceConfig = builder.Configuration.GetServiceConfig();
|
var serviceConfig = builder.Configuration.GetServiceConfig();
|
||||||
|
@ -70,20 +50,20 @@ var redisConfig = builder.Configuration.GetRedisConfig();
|
||||||
//从配置获取 Redis 连接字符串
|
//从配置获取 Redis 连接字符串
|
||||||
var redisConn = $"{redisConfig.Connections?.FirstOrDefault()},password={redisConfig.Password}";
|
var redisConn = $"{redisConfig.Connections?.FirstOrDefault()},password={redisConfig.Password}";
|
||||||
Console.WriteLine("redis 连接:" + redisConn);
|
Console.WriteLine("redis 连接:" + redisConn);
|
||||||
// 配置 Hangfire
|
//// 配置 Hangfire
|
||||||
builder.Services.AddHangfire(x =>
|
//builder.Services.AddHangfire(x =>
|
||||||
{
|
//{
|
||||||
x.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
|
// x.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
|
||||||
.UseSimpleAssemblyNameTypeSerializer()
|
// .UseSimpleAssemblyNameTypeSerializer()
|
||||||
.UseRecommendedSerializerSettings()
|
// .UseRecommendedSerializerSettings()
|
||||||
.UseRedisStorage(redisConn, new RedisStorageOptions
|
// .UseRedisStorage(redisConn, new RedisStorageOptions
|
||||||
{
|
// {
|
||||||
Db = 11,
|
// Db = 11,
|
||||||
Prefix = "Hangfire:"
|
// Prefix = "Hangfire:"
|
||||||
});
|
// });
|
||||||
});
|
//});
|
||||||
|
|
||||||
builder.Services.AddHangfireServer();
|
//builder.Services.AddHangfireServer();
|
||||||
|
|
||||||
// 连接到 Redis
|
// 连接到 Redis
|
||||||
var connectionMultiplexer = ConnectionMultiplexer.Connect(redisConn);
|
var connectionMultiplexer = ConnectionMultiplexer.Connect(redisConn);
|
||||||
|
@ -214,7 +194,7 @@ builder.Services.AddAuthentication(options =>
|
||||||
options.TokenValidationParameters = new TokenValidationParameters
|
options.TokenValidationParameters = new TokenValidationParameters
|
||||||
{
|
{
|
||||||
ValidateAudience = true, // 验证 Audience
|
ValidateAudience = true, // 验证 Audience
|
||||||
ValidAudiences =new string[] { serviceConfig.ServiceID }, // 或者 "api.BZPT",取决于你的 API 需要验证哪个 Audience
|
ValidAudiences = new string[] { serviceConfig.ServiceID }, // 或者 "api.BZPT",取决于你的 API 需要验证哪个 Audience
|
||||||
ValidateIssuer = true, // 验证 Issuer
|
ValidateIssuer = true, // 验证 Issuer
|
||||||
ValidIssuer = builder.Configuration["AuthorityServer"], // 确保与 IdentityServer4 的 Issuer 配置一致
|
ValidIssuer = builder.Configuration["AuthorityServer"], // 确保与 IdentityServer4 的 Issuer 配置一致
|
||||||
ValidateLifetime = true,
|
ValidateLifetime = true,
|
||||||
|
|
|
@ -1,23 +1,11 @@
|
||||||
using BZPT.Domains.IRepositories.Sys;
|
using BZPT.Repositories;
|
||||||
using BZPT.Dto.Sys;
|
|
||||||
using BZPT.Repositories;
|
|
||||||
using Consul.Filtering;
|
|
||||||
using DevExtreme.AspNet.Data;
|
using DevExtreme.AspNet.Data;
|
||||||
using NetTaste;
|
|
||||||
using NPlatform.Domains.Entity;
|
|
||||||
using NPOI.SS.Formula.Functions;
|
|
||||||
using ServiceStack;
|
using ServiceStack;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
|
|
||||||
namespace BZPT.Domains.Services
|
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
|
#region CUD
|
||||||
[Autowired]
|
[Autowired]
|
||||||
|
@ -56,16 +44,16 @@ namespace BZPT.Domains.Services
|
||||||
|
|
||||||
public virtual async Task<INPResult> Delete(string id)
|
public virtual async Task<INPResult> Delete(string id)
|
||||||
{
|
{
|
||||||
if(string.IsNullOrWhiteSpace(id))
|
if (string.IsNullOrWhiteSpace(id))
|
||||||
{
|
{
|
||||||
return new FailResult<TEntity>($"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);
|
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);
|
var rstCount = await this.Repository.RemoveAsync(deleteWhere);
|
||||||
return new SuccessResult<int>(rstCount);
|
return new SuccessResult<int>(rstCount);
|
||||||
|
@ -127,6 +115,12 @@ namespace BZPT.Domains.Services
|
||||||
{
|
{
|
||||||
loadOptionsexp.Sort = new SortingInfo[] { new SortingInfo() { Selector = "CreateTime", Desc = true } };
|
loadOptionsexp.Sort = new SortingInfo[] { new SortingInfo() { Selector = "CreateTime", Desc = true } };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (loadOptionsexp.Filter == null)
|
||||||
|
{
|
||||||
|
loadOptionsexp.Filter = new List<object>();
|
||||||
|
}
|
||||||
|
|
||||||
Type type = typeof(TEntity);
|
Type type = typeof(TEntity);
|
||||||
// 检查是否存在指定名称的接口
|
// 检查是否存在指定名称的接口
|
||||||
Type interfaceType = type.GetInterface("ILogicDelete");
|
Type interfaceType = type.GetInterface("ILogicDelete");
|
||||||
|
@ -146,10 +140,15 @@ namespace BZPT.Domains.Services
|
||||||
{
|
{
|
||||||
loadOptionsexp.Sort = new SortingInfo[] { new SortingInfo() { Selector = "CreateTime", Desc = true } };
|
loadOptionsexp.Sort = new SortingInfo[] { new SortingInfo() { Selector = "CreateTime", Desc = true } };
|
||||||
}
|
}
|
||||||
|
if (loadOptionsexp.Filter == null)
|
||||||
|
{
|
||||||
|
loadOptionsexp.Filter = new List<object>();
|
||||||
|
}
|
||||||
|
|
||||||
Type type = typeof(TEntity);
|
Type type = typeof(TEntity);
|
||||||
// 检查是否存在指定名称的接口
|
// 检查是否存在指定名称的接口
|
||||||
Type interfaceType = type.GetInterface("ILogicDelete");
|
Type interfaceType = type.GetInterface("ILogicDelete");
|
||||||
if (interfaceType != null&&!loadOptionsexp.Filter.Contains("IsDeleted"))
|
if (interfaceType != null && !loadOptionsexp.Filter.Contains("IsDeleted"))
|
||||||
{
|
{
|
||||||
loadOptionsexp.And(new List<object>(){
|
loadOptionsexp.And(new List<object>(){
|
||||||
"IsDeleted","=",false });
|
"IsDeleted","=",false });
|
||||||
|
|
Loading…
Reference in New Issue