From 0de2dc108b9bb1b6ff3692741362a3da5cb7a068 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 07 八月 2025 10:29:19 +0800 Subject: [PATCH] fix:bug --- FlexJobApi.Core/Utils/DbUtils/DbUtils.cs | 6 +++++- FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs | 1 + FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs | 1 + FlexJobApi.Core/FlexJobApi.Core.xml | 3 ++- FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs | 1 + FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs | 1 + FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs | 1 + 7 files changed, 12 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs index e2dc9f6..c28aaeb 100644 --- a/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs +++ b/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs @@ -35,6 +35,7 @@ public Task<Guid> Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken) { return request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>( + null, it => it.Id != request.Id && it.Code == request.Code, null, cancellationToken); diff --git a/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs index f9c7a0b..64ebaff 100644 --- a/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs +++ b/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs @@ -28,6 +28,7 @@ public Task<Guid> Handle(SaveDictionaryDataCommand request, CancellationToken cancellationToken) { return request.SaveData<DictionaryData, SaveDictionaryDataCommand>( + null, it => it.CategoryId == request.CategoryId && it.ParentId == request.ParentId diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index e1b7912..5781243 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -4389,13 +4389,14 @@ <param name="cancellationToken"></param> <returns></returns> </member> - <member name="M:FlexJobApi.Core.DbUtils.SaveData``2(``1,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Action{``0},System.Threading.CancellationToken)"> + <member name="M:FlexJobApi.Core.DbUtils.SaveData``2(``1,System.Func{System.Linq.IQueryable{``0},System.Linq.IQueryable{``0}},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Action{``0},System.Threading.CancellationToken)"> <summary> 淇濆瓨鏁版嵁 </summary> <typeparam name="TEntity"></typeparam> <typeparam name="TRequest"></typeparam> <param name="request"></param> + <param name="query"></param> <param name="checkExist"></param> <param name="update"></param> <param name="cancellationToken"></param> diff --git a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs index 03c260d..46a2dc2 100644 --- a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs +++ b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs @@ -305,12 +305,14 @@ /// <typeparam name="TEntity"></typeparam> /// <typeparam name="TRequest"></typeparam> /// <param name="request"></param> + /// <param name="query"></param> /// <param name="checkExist"></param> /// <param name="update"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static async Task<Guid> SaveData<TEntity, TRequest>( this TRequest request, + Func<IQueryable<TEntity>, IQueryable<TEntity>> query = null, Expression<Func<TEntity, bool>> checkExist = null, Action<TEntity> update = null, CancellationToken cancellationToken = default) @@ -324,7 +326,9 @@ throw Oops.Oh(EnumErrorCodeType.s405, $"璇summary ?? "淇℃伅"}"); if (request.Id.HasValue) { - var entity = await rep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken); + var q = rep.AsQueryable(); + if (query != null) q = query(q); + var entity = await q.FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, $"璇summary ?? "淇℃伅"}"); if (update != null) update(entity); else request.Adapt(entity); diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs index 8f77325..87db6f8 100644 --- a/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs @@ -27,6 +27,7 @@ var parent = await rep.FirstOrDefaultAsync(it => it.Id == request.ParentId); if (parent == null) throw Oops.Oh(EnumErrorCodeType.s404, "涓婄骇鑿滃崟"); return await request.SaveData<Menu, SaveMenuButtonCommand>( + null, it => it.ParentId == request.ParentId && it.Type == EnumMenuType.Button diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs index 2360402..b948e38 100644 --- a/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs @@ -31,6 +31,7 @@ public async Task<Guid> Handle(SaveMenuCommand request, CancellationToken cancellationToken) { return await request.SaveData<Menu, SaveMenuCommand>( + q => q.Include(it => it.Children), it => it.UserType == request.UserType && it.ClientType == request.ClientType diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs index a4889e4..122784d 100644 --- a/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs @@ -27,6 +27,7 @@ var parent = await rep.FirstOrDefaultAsync(it => it.Id == request.ParentId); if (parent == null) throw Oops.Oh(EnumErrorCodeType.s404, "涓婄骇鑿滃崟"); return await request.SaveData<Menu, SaveMenuFieldCommand>( + null, it => it.ParentId == request.ParentId && it.Type == EnumMenuType.Field -- Gitblit v1.9.1