From 001390fea11f5a15a4a1ff01f936875e9b5e9cc6 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Fri, 14 Jun 2024 16:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=96=BE=E7=97=85=E9=A3=8E=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DiseaseRisks/CreateDiseaseRiskDto.cs | 16 +++ .../DiseaseRisks/DiseaseRiskDto.cs | 23 ++++ .../DiseaseRisks/DiseaseRiskIdInputDto.cs | 11 ++ .../DiseaseRisks/UpdateDiseaseRiskDto.cs | 20 +++ .../DiseaseRisks/DiseaseRiskAppService.cs | 104 +++++++++++++++ .../WebPeisApplicationAutoMapperProfile.cs | 6 + .../DiseaseRisks/DiseaseRiskManager.cs | 123 ++++++++++++++++++ .../UpdateDiseaseRiskSortDragDto.cs | 20 +++ ...pdateDiseaseRiskSortTopOrBottomInputDto.cs | 18 +++ 9 files changed, 341 insertions(+) create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/CreateDiseaseRiskDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskIdInputDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/UpdateDiseaseRiskDto.cs create mode 100644 src/Shentun.WebPeis.Application/DiseaseRisks/DiseaseRiskAppService.cs create mode 100644 src/Shentun.WebPeis.Domain/DiseaseRisks/DiseaseRiskManager.cs create mode 100644 src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortDragDto.cs create mode 100644 src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortTopOrBottomInputDto.cs diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/CreateDiseaseRiskDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/CreateDiseaseRiskDto.cs new file mode 100644 index 0000000..af4a0b2 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/CreateDiseaseRiskDto.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class CreateDiseaseRiskDto + { + + /// + /// 名称 + /// + public string DiseaseRiskName { get; set; } = null!; + + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskDto.cs new file mode 100644 index 0000000..edb24be --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class DiseaseRiskDto : AuditedEntityDtoName + { + /// + /// 主键 + /// + public Guid DiseaseRiskId { get; set; } + /// + /// 名称 + /// + + public string DiseaseRiskName { get; set; } = null!; + + public string SimpleCode { get; set; } = null!; + + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskIdInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskIdInputDto.cs new file mode 100644 index 0000000..ff0b361 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/DiseaseRiskIdInputDto.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class DiseaseRiskIdInputDto + { + public Guid DiseaseRiskId { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/UpdateDiseaseRiskDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/UpdateDiseaseRiskDto.cs new file mode 100644 index 0000000..f0f424e --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRisks/UpdateDiseaseRiskDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class UpdateDiseaseRiskDto + { + /// + /// 主键 + /// + public Guid DiseaseRiskId { get; set; } + /// + /// 名称 + /// + + public string DiseaseRiskName { get; set; } = null!; + + } +} diff --git a/src/Shentun.WebPeis.Application/DiseaseRisks/DiseaseRiskAppService.cs b/src/Shentun.WebPeis.Application/DiseaseRisks/DiseaseRiskAppService.cs new file mode 100644 index 0000000..485f66f --- /dev/null +++ b/src/Shentun.WebPeis.Application/DiseaseRisks/DiseaseRiskAppService.cs @@ -0,0 +1,104 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Shentun.WebPeis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace Shentun.WebPeis.DiseaseRisks +{ + /// + /// 疾病风险 + /// + [ApiExplorerSettings(GroupName = "Work")] + [Authorize] + public class DiseaseRiskAppService : ApplicationService + { + private readonly IRepository _diseaseRiskRepository; + private readonly DiseaseRiskManager _diseaseRiskManager; + private readonly CacheService _cacheService; + + public DiseaseRiskAppService( + IRepository diseaseRiskRepository, + DiseaseRiskManager diseaseRiskManager, + CacheService cacheService) + { + _diseaseRiskRepository = diseaseRiskRepository; + _diseaseRiskManager = diseaseRiskManager; + _cacheService = cacheService; + } + + + /// + /// 创建 + /// + /// + [HttpPost("api/app/DiseaseRisk/Create")] + public async Task CreateAsync(CreateDiseaseRiskDto input) + { + var createEntity = ObjectMapper.Map(input); + createEntity.DiseaseRiskId = GuidGenerator.Create(); + var entity = await _diseaseRiskManager.CreateAsync(createEntity); + entity = await _diseaseRiskRepository.InsertAsync(entity); + var dto = ObjectMapper.Map(entity); + dto.CreatorName = await _cacheService.GetSurnameAsync(dto.CreatorId); + dto.LastModifierName = await _cacheService.GetSurnameAsync(dto.LastModifierId); + return dto; + } + + /// + /// 更新 + /// + /// + /// + [HttpPost("api/app/DiseaseRisk/Update")] + public async Task UpdateAsync(UpdateDiseaseRiskDto input) + { + var entity = await _diseaseRiskRepository.GetAsync(f => f.DiseaseRiskId == input.DiseaseRiskId); + var sourceEntity = ObjectMapper.Map(input); + _diseaseRiskManager.UpdateAsync(sourceEntity, entity); + entity = await _diseaseRiskRepository.UpdateAsync(entity); + var dto = ObjectMapper.Map(entity); + dto.CreatorName = await _cacheService.GetSurnameAsync(dto.CreatorId); + dto.LastModifierName = await _cacheService.GetSurnameAsync(dto.LastModifierId); + return dto; + } + + /// + /// 删除 + /// + /// + /// + [HttpPost("api/app/DiseaseRisk/Delete")] + public async Task DeleteAsync(DiseaseRiskIdInputDto input) + { + await _diseaseRiskManager.CheckAndDeleteAsync(input.DiseaseRiskId); + } + + /// + /// 修改排序 置顶,置底 + /// + /// + /// + [HttpPost("api/app/DiseaseRisk/UpdateSortTopOrBottom")] + public async Task UpdateSortTopOrBottomAsync(UpdateDiseaseRiskSortTopOrBottomInputDto input) + { + await _diseaseRiskManager.UpdateSortTopOrBottomAsync(input.DiseaseRiskId, input.SortType); + } + + /// + /// 修改排序 拖拽 + /// + /// + /// + [HttpPost("api/app/DiseaseRisk/UpdateSortDragAsync")] + public async Task UpdateSortDragAsync(UpdateDiseaseRiskSortDragDto input) + { + await _diseaseRiskManager.UpdateSortDragAsync(input); + } + } +} diff --git a/src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs b/src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs index d6999c0..f8dd516 100644 --- a/src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs +++ b/src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs @@ -5,6 +5,7 @@ using Shentun.Peis.MaritalStatuss; using Shentun.WebPeis.AppointPatientRegisters; using Shentun.WebPeis.AppointRegisterAsbitems; using Shentun.WebPeis.AppointScheduleTemplates; +using Shentun.WebPeis.DiseaseRisks; using Shentun.WebPeis.Kinships; using Shentun.WebPeis.MaritalStatuss; using Shentun.WebPeis.MedicalPackages; @@ -99,5 +100,10 @@ public class WebPeisApplicationAutoMapperProfile : Profile CreateMap(); CreateMap(); CreateMap(); + + + CreateMap(); + CreateMap(); + CreateMap(); } } diff --git a/src/Shentun.WebPeis.Domain/DiseaseRisks/DiseaseRiskManager.cs b/src/Shentun.WebPeis.Domain/DiseaseRisks/DiseaseRiskManager.cs new file mode 100644 index 0000000..27b8c5c --- /dev/null +++ b/src/Shentun.WebPeis.Domain/DiseaseRisks/DiseaseRiskManager.cs @@ -0,0 +1,123 @@ +using Shentun.Utilities; +using Shentun.WebPeis.Models; +using Shentun.WebPeis.Questions; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Repositories; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class DiseaseRiskManager + { + + private readonly IRepository _diseaseRiskRepository; + + public DiseaseRiskManager( + IRepository diseaseRiskRepository + ) + { + _diseaseRiskRepository = diseaseRiskRepository; + } + + /// + /// 创建 + /// + /// + public async Task CreateAsync(DiseaseRisk entity) + { + DataHelper.CheckEntityIsNull(entity); + //DataHelper.CheckStringIsNull(entity.QuestionTypeName, "名称"); + + return new DiseaseRisk + { + DiseaseRiskId = entity.DiseaseRiskId, + DiseaseRiskName = entity.DiseaseRiskName, + SimpleCode = LanguageConverter.GetPYSimpleCode(entity.DiseaseRiskName), + DisplayOrder = await EntityHelper.CreateMaxDisplayOrder(_diseaseRiskRepository) + }; + } + + + /// + /// 更新 + /// + /// + /// + /// + public void UpdateAsync( + DiseaseRisk sourceEntity, + DiseaseRisk targetEntity + ) + { + DataHelper.CheckEntityIsNull(sourceEntity); + DataHelper.CheckEntityIsNull(targetEntity); + //DataHelper.CheckStringIsNull(sourceEntity.QuestionTypeName, "名称"); + + targetEntity.DiseaseRiskName = sourceEntity.DiseaseRiskName; + targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(sourceEntity.DiseaseRiskName); + } + + + + /// + /// 删除 + /// + /// + /// + /// + public async Task CheckAndDeleteAsync(Guid DiseaseRiskId) + { + + //var questionEnt = await _questionRepository.FirstOrDefaultAsync(m => m.QuestionTypeId == QuestionTypeId); + //if (questionEnt != null) + //{ + // throw new UserFriendlyException($"问卷类别已被使用,不能删除"); + //} + + await _diseaseRiskRepository.DeleteAsync(d => d.DiseaseRiskId == DiseaseRiskId); + + } + + + /// + /// 修改排序 置顶,置底 + /// + /// 需要修改的ID + /// 修改方式:1 置顶 2 置底 + /// + public async Task UpdateSortTopOrBottomAsync(Guid DiseaseRiskId, int SortType) + { + var entity = await _diseaseRiskRepository.GetAsync(f => f.DiseaseRiskId == DiseaseRiskId); + await EntityHelper.UpdateSortTopOrBottomAsync(_diseaseRiskRepository, entity, SortType); + } + + + + /// + /// 修改排序 拖拽 + /// + /// + /// + /// + /// + public async Task UpdateSortDragAsync(UpdateDiseaseRiskSortDragDto input) + { + var entitylist = await _diseaseRiskRepository.GetListAsync(o => input.ItemList.Select(s => s.DiseaseRiskId).Contains(o.DiseaseRiskId)); + + foreach (var entity in entitylist) + { + foreach (var item in input.ItemList) + { + if (item.DiseaseRiskId == entity.DiseaseRiskId) + entity.DisplayOrder = item.DisplayOrder; + } + } + + await _diseaseRiskRepository.UpdateManyAsync(entitylist); + } + } +} diff --git a/src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortDragDto.cs b/src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortDragDto.cs new file mode 100644 index 0000000..76c8dbe --- /dev/null +++ b/src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortDragDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class UpdateDiseaseRiskSortDragDto + { + public List ItemList { get; set; } + } + + + public class UpdateDiseaseRiskSortDragDetail + { + public Guid DiseaseRiskId { get; set; } + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortTopOrBottomInputDto.cs b/src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortTopOrBottomInputDto.cs new file mode 100644 index 0000000..842487c --- /dev/null +++ b/src/Shentun.WebPeis.Domain/DiseaseRisks/UpdateDiseaseRiskSortTopOrBottomInputDto.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.WebPeis.DiseaseRisks +{ + public class UpdateDiseaseRiskSortTopOrBottomInputDto + { + public Guid DiseaseRiskId { get; set; } + + /// + /// 修改方式:1 置顶 2 置底 + /// + public int SortType { get; set; } + } +}