字典和邮件添加增加验证
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-08-22 11:00:43 +08:00
parent a43abebc6e
commit dd07057ca5
5 changed files with 39 additions and 25 deletions

View File

@ -11278,6 +11278,11 @@
系统邮件配置表
</summary>
</member>
<member name="M:IRaCIS.Core.Application.Contracts.EmailNoticeConfigService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.EmailNoticeConfig},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.EmailNoticeUserType})">
<summary>
系统邮件配置表
</summary>
</member>
<member name="T:IRaCIS.Core.Application.Contracts.ISystemBasicDataService">
<summary>
ISystemBasicDataService

View File

@ -88,6 +88,14 @@ namespace IRaCIS.Application.Services
IsVerify = true
};
if((addBasicDicAndChild.DataTypeEnum == DicDataTypeEnum.Enum || addBasicDicAndChild.DataTypeEnum == DicDataTypeEnum.Bool))
{
if(addBasicDicAndChild.ChildList.GroupBy(t => t.Code).Where(g => g.Count() > 1).Any())
{
return ResponseOutput.NotOk(_localizer["Dictionary_RepeateCode"]);
}
}
var entity = await _dicRepository.InsertFromDTOAsync(addBasicDicAndChild, false, verifyExp1);
@ -148,16 +156,15 @@ namespace IRaCIS.Application.Services
IsVerify = addOrEditBasic.ParentId == null
};
var verifyExp2 = new EntityVerifyExp<Dictionary>()
{
VerifyExp = t => t.Code == addOrEditBasic.Code && t.ParentId == addOrEditBasic.ParentId && t.Code==addOrEditBasic.Code,
VerifyMsg = _localizer["Dictionary_RepeateCode"],
IsVerify = addOrEditBasic.ParentId != null && (addOrEditBasic.DataTypeEnum == DicDataTypeEnum.Enum || addOrEditBasic.DataTypeEnum == DicDataTypeEnum.Bool)
};
//// 验证阅片标准是否可禁用
//if (!addOrEditBasic.IsEnable&&addOrEditBasic.Id!=null)
//{
// var result = await _readingQuestionService.SetSystemCriterionDisable(addOrEditBasic.Id.Value,addOrEditBasic.ParentId);
// if (!result.IsSuccess)
// {
// return result;
// }
//}
if (addOrEditBasic.Id != null && addOrEditBasic.ParentId == null)
@ -167,7 +174,7 @@ namespace IRaCIS.Application.Services
//await _dicRepository.BatchUpdateNoTrackingAsync(t => t.ParentId == addOrEditBasic.Id, c => new Dictionary() { DataTypeEnum = addOrEditBasic.DataTypeEnum });
}
var entity = await _dicRepository.InsertOrUpdateAsync(addOrEditBasic, true, verifyExp1);
var entity = await _dicRepository.InsertOrUpdateAsync(addOrEditBasic, true, verifyExp1, verifyExp2);

View File

@ -14,17 +14,10 @@ namespace IRaCIS.Core.Application.Contracts
/// 系统邮件配置表
/// </summary>
[ApiExplorerSettings(GroupName = "Common")]
public class EmailNoticeConfigService : BaseService, IEmailNoticeConfigService
public class EmailNoticeConfigService(IRepository<EmailNoticeConfig> _emailNoticeConfigrepository,
IRepository<EmailNoticeUserType> _emailNoticeUserTypeRepository) : BaseService, IEmailNoticeConfigService
{
private readonly IRepository<EmailNoticeConfig> _emailNoticeConfigrepository;
private readonly IRepository<EmailNoticeUserType> _emailNoticeUserTypeRepository;
public EmailNoticeConfigService(IRepository<EmailNoticeConfig> repository, IRepository<EmailNoticeUserType> emailNoticeUserTypeRepository)
{
_emailNoticeConfigrepository = repository;
_emailNoticeUserTypeRepository = emailNoticeUserTypeRepository;
}
[HttpPost]
public async Task<PageOutput<EmailNoticeConfigView>> GetEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig)
{
@ -44,6 +37,14 @@ namespace IRaCIS.Core.Application.Contracts
public async Task<IResponseOutput> AddOrUpdateEmailNoticeConfig(EmailNoticeConfigAddOrEdit addOrEditEmailNoticeConfig)
{
var verifyExp1 = new EntityVerifyExp<EmailNoticeConfig>()
{
VerifyExp = t => t.BusinessScenarioEnum == addOrEditEmailNoticeConfig.BusinessScenarioEnum,
VerifyMsg = _localizer["EmailNoticeConfig_RepeatEmailScenario"]
};
if (addOrEditEmailNoticeConfig.Id == null)
{
@ -63,7 +64,7 @@ namespace IRaCIS.Core.Application.Contracts
}
await _emailNoticeConfigrepository.AddAsync(entity, true);
await _emailNoticeConfigrepository.AddAsync(entity, true, verifyExp1);
return ResponseOutput.Ok(entity.Id.ToString());
}
@ -86,7 +87,7 @@ namespace IRaCIS.Core.Application.Contracts
}
var entity = await _emailNoticeConfigrepository.UpdateFromDTOAsync(addOrEditEmailNoticeConfig, true);
var entity = await _emailNoticeConfigrepository.UpdateFromDTOAsync(addOrEditEmailNoticeConfig, true, false,verifyExp1);
return ResponseOutput.Ok(entity.Id.ToString());

View File

@ -96,7 +96,7 @@ namespace IRaCIS.Core.Infra.EFCore
}
public interface ICommandRepository<TEntity, TKey> where TEntity : class
public interface ICommandRepository<TEntity, TKey> where TEntity : Entity
{
EntityEntry<TEntity> Attach(TEntity entity);
@ -128,7 +128,7 @@ namespace IRaCIS.Core.Infra.EFCore
Task<int> CountAsync(Expression<Func<TEntity, bool>> whereLambda = null, bool ignoreQueryFilters = false);
ValueTask<TEntity> AddAsync(TEntity entity, bool autoSave = false);
ValueTask<TEntity> AddAsync(TEntity entity, bool autoSave = false, params EntityVerifyExp<TEntity>[] verify);
Task<IEnumerable<TEntity>> AddRangeAsync(IEnumerable<TEntity> entities, bool autoSave = false);

View File

@ -62,8 +62,9 @@ namespace IRaCIS.Core.Infra.EFCore
}
/// <summary>EF跟踪方式 添加</summary>
public async ValueTask<TEntity> AddAsync(TEntity entity, bool autoSave = false)
public async ValueTask<TEntity> AddAsync(TEntity entity, bool autoSave = false, params EntityVerifyExp<TEntity>[] verify)
{
await _dbContext.EntityVerifyAsync(true, verify);
await _dbSet.AddAsync(entity).ConfigureAwait(false);