From 9fd157a63dfbb8ee9f32fff7540c97eb4a3d3cce Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 01 八月 2025 17:00:30 +0800 Subject: [PATCH] feat:菜单开发 --- FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs index 4ab1616..f7d5f52 100644 --- a/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs +++ b/FlexJobApi.User.Application/Menus/Commands/MenuSaveCommandHandler.cs @@ -29,10 +29,30 @@ ? await menuRep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken) : new Menu(); if (menu == null) throw Oops.Oh(EnumUserErrorCodeType.s100, "鑿滃崟"); + + if (request.Id.HasValue && menu.Code != request.Code) + { + throw Oops.Oh(EnumUserErrorCodeType.s200, "缂栧彿涓嶅彲淇敼"); + } + request.Adapt(menu); + + if (menu.ParentId.HasValue) + { + menu.Path = await menuRep.AsQueryable().AsNoTracking().Where(it => it.Id == menu.ParentId).Select(it => it.Path).FirstOrDefaultAsync(); + menu.Path = $"{menu.Path}/{menu.Code}"; + } + else + { + menu.Path = "/"; + } + var result = request.Id == null - ? await menuRep.InsertNowAsync(menu, cancellationToken: cancellationToken) - : await menuRep.UpdateNowAsync(menu, cancellationToken: cancellationToken); + ? await menuRep.InsertAsync(menu, cancellationToken: cancellationToken) + : await menuRep.UpdateAsync(menu); + + await menuRep.SaveNowAsync(cancellationToken); + return menu.Id; } } -- Gitblit v1.9.1