From 7374d934381f81e835314f60dc411b963614d803 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 04 八月 2025 18:36:29 +0800 Subject: [PATCH] pref:菜单优化 --- FlexJobApi.User.Application/FlexJobApi.User.Application.xml | 74 ++++++++++++++++++ FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs | 2 FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs | 6 + FlexJobApi.Core/FlexJobApi.Core.xml | 135 +++++++++++++++++++++++++++++++++ FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs | 6 + 5 files changed, 223 insertions(+), 0 deletions(-) diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index 99f0bef..db1dfaa 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -1984,6 +1984,61 @@ 鍒犻櫎鑿滃崟 </summary> </member> + <member name="T:FlexJobApi.Core.SaveMenuButtonCommand"> + <summary> + 淇濆瓨鑿滃崟鎸夐挳 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Id"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.ParentId"> + <summary> + 鑿滃崟Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Code"> + <summary> + 缂栧彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Name"> + <summary> + 鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Group"> + <summary> + 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Location"> + <summary> + 浣嶇疆锛堢敤浜庢寜閽級 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Icon"> + <summary> + 鍥炬爣 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Width"> + <summary> + 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Sort"> + <summary> + 鎺掑簭 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuButtonCommand.Remark"> + <summary> + 澶囨敞 + </summary> + </member> <member name="T:FlexJobApi.Core.SaveMenuCommand"> <summary> 淇濆瓨鑿滃崟 @@ -2174,6 +2229,86 @@ 澶囨敞 </summary> </member> + <member name="T:FlexJobApi.Core.SaveMenuFieldCommand"> + <summary> + 淇濆瓨鑿滃崟瀛楁 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Id"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.ParentId"> + <summary> + 鑿滃崟Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Code"> + <summary> + 缂栧彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Name"> + <summary> + 鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Group"> + <summary> + 鍒嗙粍鍚嶇О锛堢敤浜庢寜閽�/瀛楁锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Location"> + <summary> + 浣嶇疆锛堢敤浜庢寜閽級 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Icon"> + <summary> + 鍥炬爣 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Width"> + <summary> + 瀹藉害锛堢敤浜庢寜閽�/鍒�/鍏冪礌锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Sort"> + <summary> + 鎺掑簭 + </summary> + </member> + <member name="P:FlexJobApi.Core.SaveMenuFieldCommand.Remark"> + <summary> + 澶囨敞 + </summary> + </member> + <member name="T:FlexJobApi.Core.SetMenuSwitchCommand"> + <summary> + 璁剧疆鑿滃崟鍒囨崲淇℃伅 + </summary> + </member> + <member name="P:FlexJobApi.Core.SetMenuSwitchCommand.Ids"> + <summary> + Id + </summary> + </member> + <member name="P:FlexJobApi.Core.SetMenuSwitchCommand.Type"> + <summary> + 绫诲瀷锛坣ull鏃朵笉鏇存柊锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.SetMenuSwitchCommand.IsDisabled"> + <summary> + 鏄惁绂佺敤锛坣ull鏃朵笉鏇存柊锛� + </summary> + </member> + <member name="P:FlexJobApi.Core.SetMenuSwitchCommand.IsCache"> + <summary> + 鏄惁缂撳瓨锛坣ull鏃朵笉鏇存柊锛� + </summary> + </member> <member name="T:FlexJobApi.Core.Models.GetMenuQuery"> <summary> 鏌ヨ鑿滃崟璇︽儏 diff --git a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml index 8529978..aca41b0 100644 --- a/FlexJobApi.User.Application/FlexJobApi.User.Application.xml +++ b/FlexJobApi.User.Application/FlexJobApi.User.Application.xml @@ -67,6 +67,26 @@ <member name="M:FlexJobApi.User.Application.DeleteMenuCommandHandler.Handle(FlexJobApi.Core.DeleteMenuCommand,System.Threading.CancellationToken)"> <inheritdoc/> </member> + <member name="T:FlexJobApi.User.Application.SaveMenuButtonCommandHandler"> + <summary> + 淇濆瓨鑿滃崟鎸夐挳 + </summary> + </member> + <member name="M:FlexJobApi.User.Application.SaveMenuButtonCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Menu})"> + <summary> + 淇濆瓨鑿滃崟鎸夐挳 + </summary> + </member> + <member name="M:FlexJobApi.User.Application.SaveMenuButtonCommandHandler.Handle(FlexJobApi.Core.SaveMenuButtonCommand,System.Threading.CancellationToken)"> + <inheritdoc/> + </member> + <member name="M:FlexJobApi.User.Application.SaveMenuButtonCommandHandler.CheckExist(FlexJobApi.Core.Menu)"> + <summary> + 鏍¢獙鑿滃崟鏄惁閲嶅 + </summary> + <param name="entity"></param> + <returns></returns> + </member> <member name="T:FlexJobApi.User.Application.SaveMenuCommandHandler"> <summary> 淇濆瓨鑿滃崟 @@ -128,6 +148,39 @@ <param name="cancellationToken"></param> <returns></returns> </member> + <member name="T:FlexJobApi.User.Application.SaveMenuFieldCommandHandler"> + <summary> + + </summary> + </member> + <member name="M:FlexJobApi.User.Application.SaveMenuFieldCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Menu})"> + <summary> + + </summary> + </member> + <member name="M:FlexJobApi.User.Application.SaveMenuFieldCommandHandler.Handle(FlexJobApi.Core.SaveMenuFieldCommand,System.Threading.CancellationToken)"> + <inheritdoc/> + </member> + <member name="M:FlexJobApi.User.Application.SaveMenuFieldCommandHandler.CheckExist(FlexJobApi.Core.Menu)"> + <summary> + 鏍¢獙鑿滃崟鏄惁閲嶅 + </summary> + <param name="entity"></param> + <returns></returns> + </member> + <member name="T:FlexJobApi.User.Application.SetMenuSwitchCommandHandler"> + <summary> + 璁剧疆鑿滃崟鍒囨崲淇℃伅 + </summary> + </member> + <member name="M:FlexJobApi.User.Application.SetMenuSwitchCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Menu})"> + <summary> + 璁剧疆鑿滃崟鍒囨崲淇℃伅 + </summary> + </member> + <member name="M:FlexJobApi.User.Application.SetMenuSwitchCommandHandler.Handle(FlexJobApi.Core.SetMenuSwitchCommand,System.Threading.CancellationToken)"> + <inheritdoc/> + </member> <member name="T:FlexJobApi.User.Application.MenuAppService"> <summary> 鑿滃崟 @@ -159,6 +212,27 @@ <param name="command"></param> <returns></returns> </member> + <member name="M:FlexJobApi.User.Application.MenuAppService.SaveMenuButton(FlexJobApi.Core.SaveMenuButtonCommand)"> + <summary> + 淇濆瓨鑿滃崟鎸夐挳 + </summary> + <param name="command"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.User.Application.MenuAppService.SaveMenuField(FlexJobApi.Core.SaveMenuFieldCommand)"> + <summary> + 淇濆瓨鑿滃崟瀛楁 + </summary> + <param name="command"></param> + <returns></returns> + </member> + <member name="M:FlexJobApi.User.Application.MenuAppService.SetMenuSwitch(FlexJobApi.Core.SetMenuSwitchCommand)"> + <summary> + 璁剧疆鑿滃崟鍒囨崲淇℃伅 + </summary> + <param name="command"></param> + <returns></returns> + </member> <member name="M:FlexJobApi.User.Application.MenuAppService.DeleteMenu(FlexJobApi.Core.DeleteMenuCommand)"> <summary> 鍒犻櫎鑿滃崟 diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs index 21d9a7e..3816ddf 100644 --- a/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/SaveMenuButtonCommandHandler.cs @@ -24,9 +24,12 @@ /// <inheritdoc/> public async Task<Guid> Handle(SaveMenuButtonCommand request, CancellationToken cancellationToken) { + var parent = await rep.FirstOrDefaultAsync(it => it.Id == request.ParentId); + if (parent == null) throw Oops.Oh(EnumErrorCodeType.s404, "涓婄骇鑿滃崟"); if (request.Id.HasValue) { var entity = await rep.FirstOrDefaultAsync(it => it.Id == it.Id); + if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヨ彍鍗�"); if (entity.ParentId != request.ParentId) throw Oops.Oh(EnumErrorCodeType.s410, "涓婄骇Id"); request.Adapt(entity); if (await CheckExist(entity)) throw Oops.Oh(EnumErrorCodeType.s405, "鑿滃崟缂栧彿"); @@ -36,6 +39,9 @@ else { var entity = new Menu(); + entity.Path = $"{parent.Path}{parent.Code}/"; + entity.Type = EnumMenuType.Button; + entity.VisitLevel = parent.VisitLevel; request.Adapt(entity); if (await CheckExist(entity)) throw Oops.Oh(EnumErrorCodeType.s405, "鑿滃崟缂栧彿"); await rep.InsertAsync(entity); diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs index a7f7c2a..59550fc 100644 --- a/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/SaveMenuCommandHandler.cs @@ -98,6 +98,7 @@ UserType = entity.UserType, ClientType = entity.ClientType, Type = EnumMenuType.Button, + VisitLevel = entity.VisitLevel, }; entity.Children.Add(buttonEntity); } @@ -121,6 +122,7 @@ UserType = entity.UserType, ClientType = entity.ClientType, Type = EnumMenuType.Field, + VisitLevel = entity.VisitLevel, }; entity.Children.Add(fieldEntity); } diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs index 774ce2f..5bf2ae7 100644 --- a/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs @@ -24,9 +24,12 @@ /// <inheritdoc/> public async Task<Guid> Handle(SaveMenuFieldCommand request, CancellationToken cancellationToken) { + var parent = await rep.FirstOrDefaultAsync(it => it.Id == request.ParentId); + if (parent == null) throw Oops.Oh(EnumErrorCodeType.s404, "涓婄骇鑿滃崟"); if (request.Id.HasValue) { var entity = await rep.FirstOrDefaultAsync(it => it.Id == it.Id); + if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヨ彍鍗�"); if (entity.ParentId != request.ParentId) throw Oops.Oh(EnumErrorCodeType.s410, "涓婄骇Id"); request.Adapt(entity); if (await CheckExist(entity)) throw Oops.Oh(EnumErrorCodeType.s405, "鑿滃崟缂栧彿"); @@ -36,6 +39,9 @@ else { var entity = new Menu(); + entity.Path = $"{parent.Path}{parent.Code}/"; + entity.Type = EnumMenuType.Button; + entity.VisitLevel = parent.VisitLevel; request.Adapt(entity); if (await CheckExist(entity)) throw Oops.Oh(EnumErrorCodeType.s405, "鑿滃崟缂栧彿"); await rep.InsertAsync(entity); -- Gitblit v1.9.1