From d4c8b251c5fa8de97b9236352eb03afb759ec3fe Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 07 八月 2025 13:29:54 +0800
Subject: [PATCH] fix:bug

---
 FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs
index c28aaeb..e334e79 100644
--- a/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs
+++ b/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs
@@ -1,4 +1,7 @@
 锘縰sing FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+using Furion.FriendlyException;
+using Mapster;
 using MediatR;
 using System;
 using System.Collections.Generic;
@@ -11,10 +14,16 @@
     /// <summary>
     /// 瀛楀吀绫诲埆鍛戒护澶勭悊鍣�
     /// </summary>
-    public class DictionaryCategoryCommandHandler :
+    public class DictionaryCategoryCommandHandler(
+            IRepository<DictionaryCategory> rep,
+            IRepository<DictionaryData> repDictionaryData
+        ) :
         IRequestHandler<DeleteDictionaryCategoryCommand, int>,
         IRequestHandler<SaveDictionaryCategoryCommand, Guid>
     {
+        private readonly IRepository<DictionaryCategory> rep = rep;
+        private readonly IRepository<DictionaryData> repDictionaryData = repDictionaryData;
+
         /// <summary>
         /// 鍒犻櫎鏁版嵁瀛楀吀绫诲埆
         /// </summary>
@@ -32,12 +41,27 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
+        [UnitOfWork]
         public Task<Guid> Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken)
         {
             return request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>(
                  null,
                  it => it.Id != request.Id && it.Code == request.Code,
-                 null,
+                 (entity) =>
+                 {
+                     if (request.Id.HasValue && entity.Code != request.Code)
+                     {
+                         throw Oops.Oh(EnumErrorCodeType.s400, "缂栧彿涓嶅彲淇敼");
+                         //var data = repDictionaryData.AsQueryable()
+                         //   .Where(it => it.CategoryId == entity.Id)
+                         //   .ToList();
+                         //foreach (var item in data)
+                         //{
+                         //    item.Code = item.Code.Replace($"{entity.Code}-", $"{request.Code}-");
+                         //}
+                     }
+                     request.Adapt(entity);
+                 },
                  cancellationToken);
         }
     }

--
Gitblit v1.9.1