From c0a4b045720e83f8e52ffc110b773aeece590b55 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 07 八月 2025 18:26:29 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/ApiFlexJob

---
 FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs
index 6e121f5..3228f39 100644
--- a/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs
+++ b/FlexJobApi.Application/Dictionaries/Commands/DictionaryDataCommandHandler.cs
@@ -50,6 +50,10 @@
             if (category == null) throw Oops.Oh(EnumErrorCodeType.s404, "鏁版嵁瀛楀吀绫诲埆");
             request.CategoryId = category.Id;
             if (!request.Code.StartsWith($"{category.Code}-")) throw Oops.Oh(EnumErrorCodeType.s400, "缂栧彿寮�澶撮渶瑕佸寘鍚被鍒紪鍙�-");
+            var parent = request.ParentId.HasValue
+                ? await rep.AsQueryable().AsNoTracking()
+                    .FirstOrDefaultAsync(it => it.Id == request.ParentId)
+                : null;
             return await request.SaveData<DictionaryData, SaveDictionaryDataCommand>(
                 null,
                 it =>
@@ -62,10 +66,15 @@
                     if (request.Id.HasValue)
                     {
                         if (entity.Code != request.Code) throw Oops.Oh(EnumErrorCodeType.s400, "缂栧彿涓嶅彲淇敼");
-                        DbUtils.UpdateTreeDataChildrenPath<DictionaryData>(
-                           $"{entity.Path}/{entity.Code}/",
-                           $"{entity.Path}/{request.Code}/",
-                           cancellationToken).Wait();
+                        if (entity.ParentId != request.ParentId) throw Oops.Oh(EnumErrorCodeType.s400, "涓婄骇Id涓嶅彲淇敼");
+                        //DbUtils.UpdateTreeDataChildrenPath<DictionaryData>(
+                        //   $"{entity.Path}/{entity.Code}/",
+                        //   $"{entity.Path}/{request.Code}/",
+                        //   cancellationToken).Wait();
+                    }
+                    else
+                    {
+                        entity.Deep = request.ParentId == null ? 1 : parent.Deep + 1;
                     }
                     request.Adapt(entity);
                 },
@@ -114,7 +123,8 @@
         /// <param name="entities"></param>
         /// <param name="all"></param>
         /// <param name="areas"></param>
-        private void LoopSyncHumanResourcesAreaDictionaryData(Guid categoryId, List<DictionaryData> entities, List<BaseArea> all, List<BaseArea> areas)
+        /// <param name="deep"></param>
+        private void LoopSyncHumanResourcesAreaDictionaryData(Guid categoryId, List<DictionaryData> entities, List<BaseArea> all, List<BaseArea> areas, int deep = 1)
         {
             if (areas.IsNotNull())
             {
@@ -149,11 +159,12 @@
                     entity.Field3 = area.SimpleSpelling;
                     entity.Field4 = area.Layer.ToString();
                     entity.Field5 = area.Description;
+                    entity.Deep = deep;
                     entity.Sort = area.Sort ?? 0;
                     entities.Add(entity);
 
                     var children = all.Where(it => it.ParentId == area.AreaCode).ToList();
-                    LoopSyncHumanResourcesAreaDictionaryData(categoryId, entities, all, children);
+                    LoopSyncHumanResourcesAreaDictionaryData(categoryId, entities, all, children, deep + 1);
                 }
             }
         }

--
Gitblit v1.9.1