From 7b1a0affbe9e315da8fce07bf0f17b87186c70f9 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 9 Jan 2024 14:27:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=89=8D=E7=AB=AF=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DTO/InternationalizationViewModel.cs | 16 +++-- .../Common/InternationalizationService.cs | 68 +++++++++++++++++-- .../Service/Common/_MapConfig.cs | 3 + .../Common/Internationalization.cs | 10 +-- 4 files changed, 82 insertions(+), 15 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs index 16ed714b1..c6b7567b3 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs @@ -42,6 +42,8 @@ namespace IRaCIS.Core.Application.ViewModel public string Value { get; set; } = string.Empty; public string ValueCN { get; set; } = string.Empty; + public string FrontType { get; set; } = string.Empty; + public int InternationalizationType { get; set; } } @@ -55,19 +57,23 @@ namespace IRaCIS.Core.Application.ViewModel } - public class BatchAddInternationalizationDto + public class BatchInternationalizationDto { public string Description { get; set; } = string.Empty; public string Code { get; set; } = string.Empty; public string Value { get; set; } = string.Empty; + public string FrontType { get; set; } = string.Empty; public string ValueCN { get; set; } = string.Empty; } - public class InternationalizationSimpleDto + public class BatchAddInternationalizationDto : BatchInternationalizationDto { - public string Code { get; set; } = string.Empty; - public string Value { get; set; } = string.Empty; - public string ValueCN { get; set; } = string.Empty; + + } + + public class InternationalizationSimpleDto: BatchInternationalizationDto + { + } } diff --git a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs index efdcd51e5..7a422f521 100644 --- a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs +++ b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs @@ -27,22 +27,56 @@ namespace IRaCIS.Core.Application.Service _internationalizationRepository = internationalizationRepository; } - + /// + /// 前端国际化内容接口 + /// + /// [AllowAnonymous] - - public async Task> GetFrontInternationalizationList() + [HttpGet] + public async Task> GetFrontInternationalizationList() { var list = await _internationalizationRepository.Where(t => t.InternationalizationType == 0).Select(t => new InternationalizationSimpleDto() { Code = t.Code, Value = t.Value, - ValueCN = t.ValueCN + ValueCN = t.ValueCN, + FrontType = t.FrontType, + Description = t.Description, }).ToListAsync(); return list; } + /// + /// 前端批量提交,后端判断不存在就添加,存在就更新 + /// + /// + public async Task BatchAddOrUpdateFrontInternationalization(List batchList) + { + foreach (var item in batchList) + { + var find = await _internationalizationRepository.FirstOrDefaultAsync(t => t.Code == item.Code && t.Description == item.Description && t.InternationalizationType == 0); + + if (find != null) + { + _mapper.Map(item, find); + } + else + { + var mapItem = _mapper.Map(item); + mapItem.InternationalizationType = 0; + mapItem.State = 1; + + await _internationalizationRepository.AddAsync(mapItem); + } + } + + await _internationalizationRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(); + } + [HttpPost] public async Task> GetInternationalizationList(InternationalizationQuery inQuery) { @@ -63,6 +97,11 @@ namespace IRaCIS.Core.Application.Service return pageList; } + /// + /// 后端之前批量添加接口 + /// + /// + /// [HttpPost] public async Task BatchAddInternationalization(BatchAddInternationalization batchAdd) { @@ -91,17 +130,34 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Ok(); } + /// + /// 前后端添加的时候,区分了,前端判断重复多了多了一个路由 路由+标识唯一 + /// + /// + /// public async Task AddOrUpdateInternationalization(InternationalizationAddOrEdit addOrEditInternationalization) { + var internationalizationType = addOrEditInternationalization.InternationalizationType; + + //后端验证标识重复与否 var verifyExp1 = new EntityVerifyExp() { VerifyExp = t => t.Code == addOrEditInternationalization.Code && t.InternationalizationType == addOrEditInternationalization.InternationalizationType, VerifyMsg = $"该类型已有{addOrEditInternationalization.Code}名称的国际化标识", - IsVerify = true + IsVerify = internationalizationType == 1 }; - var entity = await _internationalizationRepository.InsertOrUpdateAsync(addOrEditInternationalization, true, verifyExp1); + //前端验证标识重复与否 + var verifyExp2 = new EntityVerifyExp() + { + VerifyExp = t => t.Code == addOrEditInternationalization.Code && t.InternationalizationType == addOrEditInternationalization.InternationalizationType && t.Description == addOrEditInternationalization.Description, + + VerifyMsg = $"该类型已有{addOrEditInternationalization.Description}下的{addOrEditInternationalization.Code}名称的国际化标识", + IsVerify = internationalizationType == 0 + }; + + var entity = await _internationalizationRepository.InsertOrUpdateAsync(addOrEditInternationalization, true, verifyExp1, verifyExp2); if (addOrEditInternationalization.InternationalizationType == 1) { diff --git a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs index f157924cb..c8c297ede 100644 --- a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs @@ -74,6 +74,9 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap().ReverseMap(); + CreateMap().ReverseMap(); + + CreateMap(); diff --git a/IRaCIS.Core.Domain/Common/Internationalization.cs b/IRaCIS.Core.Domain/Common/Internationalization.cs index dc3292224..e4a7be5e9 100644 --- a/IRaCIS.Core.Domain/Common/Internationalization.cs +++ b/IRaCIS.Core.Domain/Common/Internationalization.cs @@ -33,16 +33,18 @@ namespace IRaCIS.Core.Domain.Models public int State { get; set; } - public string Description { get; set; } + public string Description { get; set; } = string.Empty; - public string Code { get; set; } + public string Code { get; set; } = string.Empty; - public string Value { get; set; } + public string Value { get; set; } = string.Empty; - public string ValueCN { get; set; } + public string ValueCN { get; set; } = string.Empty; public int InternationalizationType { get; set; } + public string FrontType { get; set; }=string.Empty; + } }