Browse Source

体检套餐、体检套餐包含的组合而项目明细

bjmzak
wxd 2 years ago
parent
commit
523e79c727
  1. 29
      src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs
  2. 11
      src/Shentun.Peis.Application/MedicalPackages/MedicalPackageAppService.cs
  3. 29
      src/Shentun.Peis.Domain/MedicalPackageDetails/MedicalPackageDetailManager.cs
  4. 30
      src/Shentun.Peis.Domain/MedicalPackages/MedicalPackageManager.cs

29
src/Shentun.Peis.Application/MedicalPackageDetails/MedicalPackageDetailAppService.cs

@ -28,11 +28,13 @@ namespace Shentun.Peis.MedicalPackageDetails
{
private readonly IRepository<MedicalPackageDetail> _repository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly MedicalPackageDetailManager _manager;
public MedicalPackageDetailAppService(IRepository<MedicalPackageDetail> repository, IRepository<IdentityUser, Guid> userRepository)
public MedicalPackageDetailAppService(IRepository<MedicalPackageDetail> repository, IRepository<IdentityUser, Guid> userRepository, MedicalPackageDetailManager manager)
{
this._repository = repository;
this._userRepository = userRepository;
this._manager = manager;
}
///// <summary>
@ -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<CreateMedicalPackageDetailMany_Detail>, List<MedicalPackageDetail>>(input.Details);
await _repository.InsertManyAsync(createEntity);
List<MedicalPackageDetail> medicalPackageDetails = new List<MedicalPackageDetail>();
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);
}
}
}

11
src/Shentun.Peis.Application/MedicalPackages/MedicalPackageAppService.cs

@ -152,16 +152,7 @@ namespace Shentun.Peis.MedicalPackages
await _manager.CheckAndDeleteAsync(id);
}
/// <summary>
/// 修改排序 相邻之间
/// </summary>
/// <param name="id">需要修改的ID</param>
/// <param name="targetid">目标ID</param>
[HttpPut("api/app/medicalpackage/updatesort")]
public async Task UpdateSortAsync(Guid id, Guid targetid)
{
await _manager.UpdateSortAsync(id, targetid);
}
/// <summary>
/// 修改排序 置顶,置底

29
src/Shentun.Peis.Domain/MedicalPackageDetails/MedicalPackageDetailManager.cs

@ -21,6 +21,30 @@ namespace Shentun.Peis.MedicalPackageDetails
this._repository = repository;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 删除套餐明细
/// </summary>
@ -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);
}
}
}
}

30
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<MedicalPackage, Guid>(_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
}
/// <summary>
/// 修改排序 相邻之间
/// 验证新增、修改字段
/// </summary>
/// <param name="id">需要修改的ID</param>
/// <param name="targetid">目标ID</param>
public async Task UpdateSortAsync(Guid id, Guid targetid)
/// <param name="entity"></param>
/// <exception cref="ArgumentException"></exception>
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, "是否启用");
}
/// <summary>
/// 修改排序 置顶,置底
/// </summary>

Loading…
Cancel
Save