From 523e79c7276b6ad80c601ac7f09f7a72d6b8f121 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Mon, 25 Mar 2024 15:21:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=93=E6=A3=80=E5=A5=97=E9=A4=90=E3=80=81?= =?UTF-8?q?=E4=BD=93=E6=A3=80=E5=A5=97=E9=A4=90=E5=8C=85=E5=90=AB=E7=9A=84?= =?UTF-8?q?=E7=BB=84=E5=90=88=E8=80=8C=E9=A1=B9=E7=9B=AE=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MedicalPackageDetailAppService.cs | 29 ++++++++++++++---- .../MedicalPackageAppService.cs | 11 +------ .../MedicalPackageDetailManager.cs | 29 ++++++++++++++++-- .../MedicalPackages/MedicalPackageManager.cs | 30 +++++++++++++------ 4 files changed, 72 insertions(+), 27 deletions(-) diff --git a/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs b/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs index 42d7a05..7614434 100644 --- a/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs +++ b/src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs @@ -28,11 +28,13 @@ namespace Shentun.Peis.MedicalPackageDetails { private readonly IRepository _repository; private readonly IRepository _userRepository; + private readonly MedicalPackageDetailManager _manager; - public MedicalPackageDetailAppService(IRepository repository, IRepository userRepository) + public MedicalPackageDetailAppService(IRepository repository, IRepository userRepository, MedicalPackageDetailManager manager) { this._repository = repository; this._userRepository = userRepository; + this._manager = manager; } ///// @@ -59,15 +61,32 @@ namespace Shentun.Peis.MedicalPackageDetails [HttpPost("api/app/medicalpackagedetail/createmedicalpackagedetailmany")] public async Task CreateMedicalPackageDetailManyAsync(CreateMedicalPackageDetailManyDto input) { - //删除明细 - await _repository.DeleteAsync(m => m.MedicalPackageId == input.MedicalPackageId); + //删除套餐明细 按套餐ID + await _manager.CheckAndDeleteAsync(input.MedicalPackageId); if (input.Details.Any()) { - var createEntity = ObjectMapper.Map, List>(input.Details); - await _repository.InsertManyAsync(createEntity); + List medicalPackageDetails = new List(); + foreach (var details in input.Details) + { + var entity = new MedicalPackageDetail + { + Amount = details.Amount, + Price = details.Price, + MedicalPackageId = input.MedicalPackageId, + AsbitemId = details.MedicalPackageId + }; + medicalPackageDetails.Add(_manager.CreateAsbitemAsync(entity)); + } + + if (medicalPackageDetails.Count > 0) + { + await _repository.InsertManyAsync(medicalPackageDetails); + } + } + } diff --git a/src/Shentun.Peis.Application/MedicalPackages/MedicalPackageAppService.cs b/src/Shentun.Peis.Application/MedicalPackages/MedicalPackageAppService.cs index a8a13fa..a13810e 100644 --- a/src/Shentun.Peis.Application/MedicalPackages/MedicalPackageAppService.cs +++ b/src/Shentun.Peis.Application/MedicalPackages/MedicalPackageAppService.cs @@ -152,16 +152,7 @@ namespace Shentun.Peis.MedicalPackages await _manager.CheckAndDeleteAsync(id); } - /// - /// 修改排序 相邻之间 - /// - /// 需要修改的ID - /// 目标ID - [HttpPut("api/app/medicalpackage/updatesort")] - public async Task UpdateSortAsync(Guid id, Guid targetid) - { - await _manager.UpdateSortAsync(id, targetid); - } + /// /// 修改排序 置顶,置底 diff --git a/src/Shentun.Peis.Domain/MedicalPackageDetails/MedicalPackageDetailManager.cs b/src/Shentun.Peis.Domain/MedicalPackageDetails/MedicalPackageDetailManager.cs index 53f1991..dc4dd8d 100644 --- a/src/Shentun.Peis.Domain/MedicalPackageDetails/MedicalPackageDetailManager.cs +++ b/src/Shentun.Peis.Domain/MedicalPackageDetails/MedicalPackageDetailManager.cs @@ -21,6 +21,30 @@ namespace Shentun.Peis.MedicalPackageDetails this._repository = repository; } + + /// + /// 创建 + /// + /// + /// + public MedicalPackageDetail CreateAsbitemAsync(MedicalPackageDetail entity) + { + DataHelper.CheckGuidIsDefaultValue(entity.AsbitemId, "组合项目编号"); + DataHelper.CheckGuidIsDefaultValue(entity.MedicalPackageId, "项目编号"); + if (entity.Price < 0) + { + throw new ArgumentException($"价格参数为:{entity.Price},是无效值,只能大于等于0"); + } + + if (entity.Amount <= 0) + { + throw new ArgumentException($"数量参数为:{entity.Amount},是无效值,只能大于0"); + } + + return entity; + } + + /// /// 删除套餐明细 /// @@ -32,12 +56,11 @@ namespace Shentun.Peis.MedicalPackageDetails var medicalPackageDetailList = await _repository.GetListAsync(m => m.MedicalPackageId == MedicalPackageId); if (medicalPackageDetailList.Any()) { - //删除套餐明细 await _repository.DeleteManyAsync(medicalPackageDetailList); } - + } @@ -58,7 +81,7 @@ namespace Shentun.Peis.MedicalPackageDetails await _repository.DeleteManyAsync(medicalPackageDetailList); } - + } } } diff --git a/src/Shentun.Peis.Domain/MedicalPackages/MedicalPackageManager.cs b/src/Shentun.Peis.Domain/MedicalPackages/MedicalPackageManager.cs index ae6d83a..adda53c 100644 --- a/src/Shentun.Peis.Domain/MedicalPackages/MedicalPackageManager.cs +++ b/src/Shentun.Peis.Domain/MedicalPackages/MedicalPackageManager.cs @@ -13,6 +13,7 @@ using Shentun.Peis.Models; using Shentun.Peis.CustomerOrgGroups; using NPOI.OpenXmlFormats.Wordprocessing; using Shentun.Peis.MedicalPackageDetails; +using Shentun.Peis.Enums; namespace Shentun.Peis.MedicalPackages { @@ -48,7 +49,7 @@ namespace Shentun.Peis.MedicalPackages MedicalPackage entity ) { - DataHelper.CheckStringIsNull(entity.DisplayName, "名称"); + Verify(entity); await EntityHelper.CheckSameName(_repository, entity.DisplayName); return new MedicalPackage { @@ -72,8 +73,8 @@ namespace Shentun.Peis.MedicalPackages MedicalPackage targetEntity ) { - DataHelper.CheckStringIsNull(sourceEntity.DisplayName, "名称"); - + DataHelper.CheckEntityIsNull(targetEntity); + Verify(sourceEntity); if (sourceEntity.DisplayName != targetEntity.DisplayName) { @@ -90,17 +91,28 @@ namespace Shentun.Peis.MedicalPackages } - /// - /// 修改排序 相邻之间 + /// 验证新增、修改字段 /// - /// 需要修改的ID - /// 目标ID - public async Task UpdateSortAsync(Guid id, Guid targetid) + /// + /// + private void Verify(MedicalPackage entity) { - await EntityHelper.UpdateSort(_repository, id, targetid); + DataHelper.CheckEntityIsNull(entity); + DataHelper.CheckStringIsNull(entity.DisplayName, "名称"); + if (entity.ForSexId != ForSexFlag.All + && entity.ForSexId != ForSexFlag.Male + && entity.ForSexId != ForSexFlag.Female + ) + { + throw new ArgumentException($"适用性别参数为:{entity.ForSexId},是无效值,只能为'{ForSexFlag.All}','{ForSexFlag.Male}','{ForSexFlag.Female}'"); + } + DataHelper.CheckCharIsYOrN(entity.IsActive, "是否启用"); } + + + /// /// 修改排序 置顶,置底 ///