From 13263cf39c0a3831787851e9193e4ca48cd62df6 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 21 Aug 2023 15:28:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E9=82=AE=E4=BB=B6=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=A2=84=E5=85=88=E4=BF=AE=E6=94=B9-002?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/IRaCIS.Core.API.xml | 2 +- .../Common/DTO/EmailNoticeConfigViewModel.cs | 6 ++ .../Common/EmailNoticeConfigService.cs | 55 +++++++++++++++++-- .../Service/Common/_MapConfig.cs | 4 ++ .../Common/EmailNoticeConfig.cs | 7 ++- 5 files changed, 68 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml index 1324dfafd..7812272dd 100644 --- a/IRaCIS.Core.API/IRaCIS.Core.API.xml +++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml @@ -227,7 +227,7 @@ - 数据上传、导出、 邮件附件 、邮件Html 通过 ----new + 1:数据上传 2:导出、 3:邮件附件 4:邮件Html 通过 ----new diff --git a/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs index 6f03964d3..da793f91b 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/EmailNoticeConfigViewModel.cs @@ -103,9 +103,15 @@ namespace IRaCIS.Core.Application.Contracts public string EmailHtmlName { get; set; } public string EmailHtmlNameCN { get; set; } + + public List ToUserTypeList { get; set; } + public List CopyUserTypeList { get; set; } + } + + } diff --git a/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs index 06c8d5430..aa3a5d652 100644 --- a/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Common/EmailNoticeConfigService.cs @@ -17,10 +17,12 @@ namespace IRaCIS.Core.Application.Contracts public class EmailNoticeConfigService : BaseService, IEmailNoticeConfigService { private readonly IRepository _emailNoticeConfigrepository; + private readonly IRepository _emailNoticeUserTypeRepository; - public EmailNoticeConfigService(IRepository repository) + public EmailNoticeConfigService(IRepository repository, IRepository emailNoticeUserTypeRepository) { _emailNoticeConfigrepository = repository; + _emailNoticeUserTypeRepository = emailNoticeUserTypeRepository; } [HttpPost] @@ -38,10 +40,55 @@ namespace IRaCIS.Core.Application.Contracts public async Task AddOrUpdateEmailNoticeConfig(EmailNoticeConfigAddOrEdit addOrEditEmailNoticeConfig) { - - var entity = await _emailNoticeConfigrepository.InsertOrUpdateAsync(addOrEditEmailNoticeConfig, true); + if (addOrEditEmailNoticeConfig.Id == null) + { + + var entity = _mapper.Map(addOrEditEmailNoticeConfig); + + + foreach (var item in addOrEditEmailNoticeConfig.ToUserTypeList) + { + entity.EmailNoticeUserTypeList.Add(new EmailNoticeUserType() { EmailUserType = EmailUserType.To, UserType = item }); + + } + + foreach (var item in addOrEditEmailNoticeConfig.CopyUserTypeList) + { + entity.EmailNoticeUserTypeList.Add(new EmailNoticeUserType() { EmailUserType = EmailUserType.Copy, UserType = item }); + + } + + + await _emailNoticeConfigrepository.AddAsync(entity, true); + + return ResponseOutput.Ok(entity.Id.ToString()); + } + else + { + var emailNoticeConfigId = addOrEditEmailNoticeConfig.Id; + await _emailNoticeUserTypeRepository.BatchDeleteNoTrackingAsync(t => t.EmailNoticeConfigId == emailNoticeConfigId); + + + foreach (var item in addOrEditEmailNoticeConfig.ToUserTypeList) + { + await _emailNoticeUserTypeRepository.AddAsync(new EmailNoticeUserType() { EmailUserType = EmailUserType.To, UserType = item,EmailNoticeConfigId= (Guid)emailNoticeConfigId }); + + } + + foreach (var item in addOrEditEmailNoticeConfig.CopyUserTypeList) + { + await _emailNoticeUserTypeRepository.AddAsync(new EmailNoticeUserType() { EmailUserType = EmailUserType.Copy, UserType = item, EmailNoticeConfigId = (Guid)emailNoticeConfigId }); + + } + + + var entity = await _emailNoticeConfigrepository.UpdateFromDTOAsync(addOrEditEmailNoticeConfig, true); + + return ResponseOutput.Ok(entity.Id.ToString()); + + + } - return ResponseOutput.Ok(entity.Id.ToString()); } diff --git a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs index c3e4f56c4..9c7238886 100644 --- a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs @@ -20,6 +20,10 @@ namespace IRaCIS.Core.Application.Service CreateMap().ReverseMap(); CreateMap().ReverseMap(); + + + + CreateMap(); CreateMap() diff --git a/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs b/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs index 9752aa344..f7f26639d 100644 --- a/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs +++ b/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs @@ -18,6 +18,8 @@ namespace IRaCIS.Core.Domain.Models [Table("EmailNoticeConfig")] public class EmailNoticeConfig : Entity, IAuditUpdate, IAuditAdd,ISoftDelete { + [JsonIgnore] + public List EmailNoticeUserTypeList { get; set; } public string Code { get; set; } = String.Empty; public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } @@ -63,6 +65,9 @@ namespace IRaCIS.Core.Domain.Models public string EmailHtmlNameCN { get; set; } + + + /// /// 是否区分标准 /// @@ -103,7 +108,7 @@ namespace IRaCIS.Core.Domain.Models [Table("EmailNoticeUserType")] - public class EmailNoticeUserType + public class EmailNoticeUserType:Entity { [JsonIgnore] public EmailNoticeConfig EmailNoticeConfig { get; set; }