From c08ea62064cc522d7cca9c90a5f15f23d833b6e3 Mon Sep 17 00:00:00 2001 From: tk Date: Tue, 30 Apr 2024 11:27:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20take=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [skip ci] --- .../Services/Sys/JobService.cs | 16 ++++++++-------- .../Services/Sys/MenuService.cs | 16 ++++++++++------ .../Services/Sys/RoleService.cs | 7 +++++-- .../Services/Sys/UserProfileService.cs | 15 +++++++++------ .../Services/Sys/VerifyCodeService.cs | 6 +++--- 5 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs index d66aaf17..7415ea07 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/JobService.cs @@ -127,14 +127,14 @@ public sealed class JobService(DefaultRepository rpo, IJobRecordService } ] }; - var job - = await QueryInternal(new QueryReq { DynamicFilter = df, Count = 1, Order = Orders.Random }) - .Where(a => !Rpo.Orm.Select() - .As("b") - .Where(b => b.JobId == a.Id && b.TimeId == a.NextTimeId) - .Any()) - .ToOneAsync() - .ConfigureAwait(false); + var job = await QueryInternal(new QueryReq { DynamicFilter = df, Order = Orders.Random }) + .Take(1) + .Where(a => !Rpo.Orm.Select() + .As("b") + .Where(b => b.JobId == a.Id && b.TimeId == a.NextTimeId) + .Any()) + .ToOneAsync() + .ConfigureAwait(false); return job == null ? null : await UpdateAsync(job.Adapt() with { diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs index 46e73c68..75d7a289 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/MenuService.cs @@ -131,11 +131,15 @@ public sealed class MenuService(DefaultRepository rpo, IUserService us private ISelect QueryInternal(QueryReq req) { var ret = Rpo.Select.WhereDynamicFilter(req.DynamicFilter).WhereDynamic(req.Filter); - return req.Order == Orders.Random - ? ret.OrderByRandom() - : ret.OrderByPropertyNameIf(req.Prop?.Length > 0, req.Prop, req.Order == Orders.Ascending) - .OrderByDescending(a => a.Sort) - .OrderBy(a => a.Name) - .OrderBy(a => a.Id); + #pragma warning disable IDE0072 + return req.Order switch { + Orders.None => ret + , Orders.Random => ret.OrderByRandom() + , _ => ret.OrderByPropertyNameIf(req.Prop?.Length > 0, req.Prop, req.Order == Orders.Ascending) + .OrderByDescending(a => a.Sort) + .OrderBy(a => a.Name) + .OrderBy(a => a.Id) + }; + #pragma warning restore IDE0072 } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs index 4399b80d..289270f1 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/RoleService.cs @@ -124,8 +124,11 @@ public sealed class RoleService(DefaultRepository rpo) // req.Keywords?.Length > 0 , a => a.Id == req.Keywords.Int64Try(0) || a.Name.Contains(req.Keywords) || a.Summary.Contains(req.Keywords)); - if (req.Order == Orders.Random) { - return ret.OrderByRandom(); + switch (req.Order) { + case Orders.None: + return ret; + case Orders.Random: + return ret.OrderByRandom(); } ret = ret.OrderByPropertyNameIf(req.Prop?.Length > 0, req.Prop, req.Order == Orders.Ascending); diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs index 72986d60..9073e424 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/UserProfileService.cs @@ -152,7 +152,7 @@ public sealed class UserProfileService(DefaultRepository rpo) / private ISelect QueryInternal( QueryReq req) { - #pragma warning disable CA1305 + #pragma warning disable CA1305,IDE0072 var ret = Rpo.Orm.Select() .LeftJoin((a, b, _, __, ___) => a.NationArea.ToString() == b.Value && b.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) @@ -164,10 +164,13 @@ public sealed class UserProfileService(DefaultRepository rpo) / .LeftJoin((a, _, __, ___, e) => a.EmergencyContactArea.ToString() == e.Value && e.CatalogId == Numbers.ID_DIC_CATALOG_GEO_AREA) .WhereDynamicFilter(req.DynamicFilter); - return req.Order == Orders.Random - ? ret.OrderByRandom() - : ret.OrderByPropertyNameIf(req.Prop?.Length > 0, req.Prop, req.Order == Orders.Ascending) - .OrderByDescending((a, _, __, ___, ____) => a.Id); - #pragma warning restore CA1305 + + return req.Order switch { + Orders.None => ret + , Orders.Random => ret.OrderByRandom() + , _ => ret.OrderByPropertyNameIf(req.Prop?.Length > 0, req.Prop, req.Order == Orders.Ascending) + .OrderByDescending((a, _, __, ___, ____) => a.Id) + }; + #pragma warning restore CA1305,IDE0072 } } \ No newline at end of file diff --git a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs index bed29e43..526ef7b7 100644 --- a/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs +++ b/src/backend/NetAdmin.SysComponent.Application/Services/Sys/VerifyCodeService.cs @@ -173,8 +173,7 @@ public sealed class VerifyCodeService(DefaultRepository rpo, IEv private Task GetLastSentAsync(string destDevice) { return QueryInternal(new QueryReq { - Count = 1 - , DynamicFilter + DynamicFilter = new DynamicFilterInfo { Field = nameof( Sys_VerifyCode.DestDevice) @@ -182,7 +181,8 @@ public sealed class VerifyCodeService(DefaultRepository rpo, IEv , Value = destDevice } }) - .ToOneAsync(); + .Take(1) + .ToOneAsync(); } private ISelect QueryInternal(QueryReq req)