From 7d64d742e52809237473e13e18faec2c23dfe3c7 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 07 八月 2025 17:13:53 +0800 Subject: [PATCH] feat:企业开发 --- 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