😎代码优化

This commit is contained in:
zuohuaijun 2025-03-02 18:10:53 +08:00
parent ac3d0bb6f6
commit 142a18289f
24 changed files with 1213 additions and 1218 deletions

View File

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

View File

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

View File

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

View File

@ -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];

View File

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

View File

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

View File

@ -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))));

View File

@ -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);