From a8b475881959d4a88d821951a615f03e7d0d1725 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 07 八月 2025 13:28:30 +0800 Subject: [PATCH] feat:字典优化 --- FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs | 30 ++++++++++++++++++++++++++++-- 1 files changed, 28 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs b/FlexJobApi.Application/Dictionaries/Commands/DictionaryCategoryCommandHandler.cs index ec0ca8a..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,10 +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>( - (q, e, r) => q.Any(it => it.Id != request.Id && it.Code == request.Code), + null, + it => it.Id != request.Id && it.Code == request.Code, + (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