😎代码优化
This commit is contained in:
parent
ac3d0bb6f6
commit
142a18289f
@ -13,7 +13,7 @@ namespace Admin.NET.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class RedisQueue
|
public static class RedisQueue
|
||||||
{
|
{
|
||||||
private static ICacheProvider _cacheProvider = App.GetRequiredService<ICacheProvider>();
|
private static readonly ICacheProvider _cacheProvider = App.GetRequiredService<ICacheProvider>();
|
||||||
|
|
||||||
/// <summary>创建Redis消息队列。默认消费一次,指定消费者group时使用STREAM结构,支持多消费组共享消息</summary>
|
/// <summary>创建Redis消息队列。默认消费一次,指定消费者group时使用STREAM结构,支持多消费组共享消息</summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
|
|||||||
@ -10,7 +10,6 @@ using Aop.Api.Request;
|
|||||||
using Aop.Api.Response;
|
using Aop.Api.Response;
|
||||||
using Aop.Api.Util;
|
using Aop.Api.Util;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using NewLife.Reflection;
|
|
||||||
|
|
||||||
namespace Admin.NET.Core.Service;
|
namespace Admin.NET.Core.Service;
|
||||||
|
|
||||||
@ -86,7 +85,7 @@ public class SysAlipayService : IDynamicApiController, ITransient
|
|||||||
var entity = _db.Queryable<SysAlipayAuthInfo>().First(u =>
|
var entity = _db.Queryable<SysAlipayAuthInfo>().First(u =>
|
||||||
(!string.IsNullOrWhiteSpace(u.UserId) && u.UserId == info.UserId) ||
|
(!string.IsNullOrWhiteSpace(u.UserId) && u.UserId == info.UserId) ||
|
||||||
(!string.IsNullOrWhiteSpace(u.OpenId) && u.OpenId == info.OpenId)) ?? new();
|
(!string.IsNullOrWhiteSpace(u.OpenId) && u.OpenId == info.OpenId)) ?? new();
|
||||||
entity.Copy(info, excludes: [nameof(SysAlipayAuthInfo.Gender), nameof(SysAlipayAuthInfo.Age)]);
|
//entity.Copy(info, excludes: [nameof(SysAlipayAuthInfo.Gender), nameof(SysAlipayAuthInfo.Age)]);
|
||||||
entity.Age = int.Parse(info.Age);
|
entity.Age = int.Parse(info.Age);
|
||||||
entity.Gender = info.Gender switch
|
entity.Gender = info.Gender switch
|
||||||
{
|
{
|
||||||
|
|||||||
@ -201,7 +201,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
|
|||||||
[DisplayName("增加表")]
|
[DisplayName("增加表")]
|
||||||
public void AddTable(DbTableInput input)
|
public void AddTable(DbTableInput input)
|
||||||
{
|
{
|
||||||
if (input.DbColumnInfoList == null || !input.DbColumnInfoList.Any())
|
if (input.DbColumnInfoList == null || input.DbColumnInfoList.Count == 0)
|
||||||
throw Oops.Oh(ErrorCodeEnum.db1000);
|
throw Oops.Oh(ErrorCodeEnum.db1000);
|
||||||
|
|
||||||
if (input.DbColumnInfoList.GroupBy(u => u.DbColumnName).Any(u => u.Count() > 1))
|
if (input.DbColumnInfoList.GroupBy(u => u.DbColumnName).Any(u => u.Count() > 1))
|
||||||
@ -382,7 +382,7 @@ public class SysDatabaseService : IDynamicApiController, ITransient
|
|||||||
var records = ((IEnumerable)await query.ToListAsync()).ToDynamicList();
|
var records = ((IEnumerable)await query.ToListAsync()).ToDynamicList();
|
||||||
|
|
||||||
// 过滤已存在的数据
|
// 过滤已存在的数据
|
||||||
if (input.FilterExistingData && records.Any())
|
if (input.FilterExistingData && records.Count != 0)
|
||||||
{
|
{
|
||||||
// 获取实体类型-所有种数据数据类型
|
// 获取实体类型-所有种数据数据类型
|
||||||
var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false) && u.FullName.EndsWith("." + input.EntityName))
|
var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.IsDefined(typeof(SugarTable), false) && u.FullName.EndsWith("." + input.EntityName))
|
||||||
|
|||||||
@ -4,9 +4,6 @@
|
|||||||
//
|
//
|
||||||
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
||||||
|
|
||||||
using NewLife.Remoting;
|
|
||||||
using NewLife.Serialization;
|
|
||||||
|
|
||||||
namespace Admin.NET.Core.Service;
|
namespace Admin.NET.Core.Service;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -163,7 +160,7 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
|
|
||||||
var html = await _httpRemoteService.GetAsStringAsync("http://xzqh.mca.gov.cn/map");
|
var html = await _httpRemoteService.GetAsStringAsync("http://xzqh.mca.gov.cn/map");
|
||||||
var municipalityList = new List<string> { "北京", "天津", "上海", "重庆" };
|
var municipalityList = new List<string> { "北京", "天津", "上海", "重庆" };
|
||||||
var provList = Regex.Match(html, @"(?<=var json = )(\[\{.*?\}\])(?=;)").Value.ToJsonEntity<List<Dictionary<string, string>>>();
|
var provList = JSON.Deserialize<List<Dictionary<string, string>>>(Regex.Match(html, @"(?<=var json = )(\[\{.*?\}\])(?=;)").Value);
|
||||||
foreach (var dict1 in provList)
|
foreach (var dict1 in provList)
|
||||||
{
|
{
|
||||||
var list = new List<SysRegion>();
|
var list = new List<SysRegion>();
|
||||||
@ -229,7 +226,7 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
shengji = prov,
|
shengji = prov,
|
||||||
diji = prefecture,
|
diji = prefecture,
|
||||||
}));
|
}));
|
||||||
return json.ToJsonEntity<List<Dictionary<string, string>>>();
|
return JSON.Deserialize<List<Dictionary<string, string>>>(json);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -284,8 +281,7 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
{
|
{
|
||||||
var url = $"https://dmfw.mca.gov.cn/9095/xzqh/getList?code={code}&maxLevel=4";
|
var url = $"https://dmfw.mca.gov.cn/9095/xzqh/getList?code={code}&maxLevel=4";
|
||||||
|
|
||||||
var httpClient = new HttpClient();
|
var regionLevel0 = await _httpRemoteService.GetAsAsync<SysRegion>(url);
|
||||||
var regionLevel0 = await httpClient.GetAsync<SysRegion>(url);
|
|
||||||
if (regionLevel0 == null) return 0;
|
if (regionLevel0 == null) return 0;
|
||||||
|
|
||||||
var areaList = new List<SysRegion>();
|
var areaList = new List<SysRegion>();
|
||||||
@ -380,8 +376,7 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
// 接口说明及地址:http://lbs.tianditu.gov.cn/server/administrative2.html
|
// 接口说明及地址:http://lbs.tianditu.gov.cn/server/administrative2.html
|
||||||
var url = $"http://api.tianditu.gov.cn/v2/administrative?keyword={input.Keyword}&childLevel={input.ChildLevel}&extensions={input.Extensions}&tk={input.Tk}";
|
var url = $"http://api.tianditu.gov.cn/v2/administrative?keyword={input.Keyword}&childLevel={input.ChildLevel}&extensions={input.Extensions}&tk={input.Tk}";
|
||||||
|
|
||||||
var httpClient = new HttpClient();
|
var res = await _httpRemoteService.GetAsAsync<TiandituDto>(url);
|
||||||
var res = await httpClient.GetAsync<TiandituDto>(url);
|
|
||||||
if (res == null) return 0;
|
if (res == null) return 0;
|
||||||
|
|
||||||
var parent = res.District[0];
|
var parent = res.District[0];
|
||||||
|
|||||||
@ -12,7 +12,7 @@ namespace Admin.NET.Core.Service;
|
|||||||
[ApiDescriptionSettings(Order = 210, Description = "微信支付")]
|
[ApiDescriptionSettings(Order = 210, Description = "微信支付")]
|
||||||
public class SysWechatPayService : IDynamicApiController, ITransient
|
public class SysWechatPayService : IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private static readonly List<WechatPayEventInterceptor> wechatPayEventHandlers = new List<WechatPayEventInterceptor>();
|
private static readonly List<WechatPayEventInterceptor> wechatPayEventHandlers = [];
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 注册支付记录变化事件处理器
|
/// 注册支付记录变化事件处理器
|
||||||
@ -523,9 +523,8 @@ public class SysWechatPayService : IDynamicApiController, ITransient
|
|||||||
{
|
{
|
||||||
var vechatPay = await _sysWechatPayRep.GetFirstAsync(u => u.OutTradeNumber == input.OutTradeNumber);
|
var vechatPay = await _sysWechatPayRep.GetFirstAsync(u => u.OutTradeNumber == input.OutTradeNumber);
|
||||||
if (vechatPay == null)
|
if (vechatPay == null)
|
||||||
{
|
|
||||||
throw Oops.Bah("没有相应支付记录");
|
throw Oops.Bah("没有相应支付记录");
|
||||||
}
|
|
||||||
var request = new CreateRefundDomesticRefundRequest()
|
var request = new CreateRefundDomesticRefundRequest()
|
||||||
{
|
{
|
||||||
OutTradeNumber = input.OutTradeNumber,
|
OutTradeNumber = input.OutTradeNumber,
|
||||||
|
|||||||
@ -166,6 +166,7 @@ public class SysWxOpenService : IDynamicApiController, ITransient
|
|||||||
var wxUser = await _sysOAuthUserRep.GetFirstAsync(u => u.OpenId == input.OpenId);
|
var wxUser = await _sysOAuthUserRep.GetFirstAsync(u => u.OpenId == input.OpenId);
|
||||||
if (wxUser == null)
|
if (wxUser == null)
|
||||||
throw Oops.Oh("未找到用户信息设置失败");
|
throw Oops.Oh("未找到用户信息设置失败");
|
||||||
|
|
||||||
wxUser.NickName = input.NickName;
|
wxUser.NickName = input.NickName;
|
||||||
await _sysOAuthUserRep.AsUpdateable(wxUser).IgnoreColumns(true).ExecuteCommandAsync();
|
await _sysOAuthUserRep.AsUpdateable(wxUser).IgnoreColumns(true).ExecuteCommandAsync();
|
||||||
return;
|
return;
|
||||||
@ -182,6 +183,7 @@ public class SysWxOpenService : IDynamicApiController, ITransient
|
|||||||
var wxUser = await _sysOAuthUserRep.GetFirstAsync(u => u.OpenId == openid);
|
var wxUser = await _sysOAuthUserRep.GetFirstAsync(u => u.OpenId == openid);
|
||||||
if (wxUser == null)
|
if (wxUser == null)
|
||||||
throw Oops.Oh("未找到用户信息获取失败");
|
throw Oops.Oh("未找到用户信息获取失败");
|
||||||
|
|
||||||
return new { nickName = wxUser.NickName, avator = wxUser.Avatar };
|
return new { nickName = wxUser.NickName, avator = wxUser.Avatar };
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,7 +271,7 @@ public class SysWxOpenService : IDynamicApiController, ITransient
|
|||||||
[ApiDescriptionSettings(Name = "GenerateQRImage")]
|
[ApiDescriptionSettings(Name = "GenerateQRImage")]
|
||||||
public async Task<GenerateQRImageOutput> GenerateQRImageAsync(GenerateQRImageInput input)
|
public async Task<GenerateQRImageOutput> GenerateQRImageAsync(GenerateQRImageInput input)
|
||||||
{
|
{
|
||||||
GenerateQRImageOutput generateQRImageOutInput = new GenerateQRImageOutput();
|
GenerateQRImageOutput generateQRImageOutInput = new();
|
||||||
if (input.PagePath.IsNullOrEmpty())
|
if (input.PagePath.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
generateQRImageOutInput.Success = false;
|
generateQRImageOutInput.Success = false;
|
||||||
|
|||||||
@ -22,7 +22,7 @@ public class SqlSugarDataExecuting
|
|||||||
var items = _cache.Get<List<IDataExecuting>>(cacheKey);
|
var items = _cache.Get<List<IDataExecuting>>(cacheKey);
|
||||||
if (items == null)
|
if (items == null)
|
||||||
{
|
{
|
||||||
items = new List<IDataExecuting>();
|
items = [];
|
||||||
|
|
||||||
// 获取自定义实体过滤器
|
// 获取自定义实体过滤器
|
||||||
var ides = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.GetInterfaces().Any(i => i.HasImplementedRawGeneric(typeof(IDataExecuting))));
|
var ides = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && u.GetInterfaces().Any(i => i.HasImplementedRawGeneric(typeof(IDataExecuting))));
|
||||||
|
|||||||
@ -144,7 +144,7 @@ public static class SqlSugarFilter
|
|||||||
|
|
||||||
//var lambda = DynamicExpressionParser.ParseLambda(new[] {
|
//var lambda = DynamicExpressionParser.ParseLambda(new[] {
|
||||||
// Expression.Parameter(entityType, "u") }, typeof(bool), $"u.{nameof(EntityBaseData.CreateUserId)}=@0", userId);
|
// Expression.Parameter(entityType, "u") }, typeof(bool), $"u.{nameof(EntityBaseData.CreateUserId)}=@0", userId);
|
||||||
var lambda = entityType.GetConditionExpression<OwnerUserAttribute>(new List<long> { long.Parse(userId) });
|
var lambda = entityType.GetConditionExpression<OwnerUserAttribute>([long.Parse(userId)]);
|
||||||
|
|
||||||
db.QueryFilter.AddTableFilter(entityType, lambda);
|
db.QueryFilter.AddTableFilter(entityType, lambda);
|
||||||
dataScopeFilter.TryAdd(entityType, lambda);
|
dataScopeFilter.TryAdd(entityType, lambda);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user