From 52f92e3728e82e525e88fe893181bb1283b760e8 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 05 八月 2025 10:35:36 +0800
Subject: [PATCH] fix: s

---
 FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs b/FlexJobApi.User.Application/Menus/Commands/SaveMenuFieldCommandHandler.cs
index 774ce2f..3464351 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,8 +39,11 @@
             else
             {
                 var entity = new Menu();
+                entity.Path = $"{parent.Path}{parent.Code}/";
+                entity.Type = EnumMenuType.Field;
+                entity.VisitLevel = parent.VisitLevel;
                 request.Adapt(entity);
-                if (await CheckExist(entity)) throw Oops.Oh(EnumErrorCodeType.s405, "鑿滃崟缂栧彿");
+                if (await CheckExist(entity)) throw Oops.Oh(EnumErrorCodeType.s406, "鑿滃崟缂栧彿");
                 await rep.InsertAsync(entity);
                 return entity.Id;
             }
@@ -53,6 +59,7 @@
             return await rep.AsQueryable().AsNoTracking()
                 .AnyAsync(it =>
                     it.ParentId == entity.ParentId
+                    && it.Type == entity.Type
                     && it.Group == entity.Group
                     && it.Code == entity.Code
                     && it.Id != entity.Id);

--
Gitblit v1.9.1