From 4b68438e216a571fef37a92444f38346022a2b92 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Fri, 14 Jun 2024 17:19:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=96=BE=E7=97=85=E9=A3=8E=E9=99=A9=E7=BA=A7?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateDiseaseRiskLevelDto.cs | 33 +++++ .../DiseaseRiskLevels/DiseaseRiskLevelDto.cs | 41 ++++++ .../DiseaseRiskLevelIdInputDto.cs | 11 ++ .../UpdateDiseaseRiskLevelDto.cs | 39 +++++ .../DiseaseRiskLevelAppService.cs | 106 ++++++++++++++ .../DiseaseRiskLevelManager.cs | 133 ++++++++++++++++++ .../UpdateDiseaseRiskLevelSortDragDto.cs | 21 +++ ...DiseaseRiskLevelSortTopOrBottomInputDto.cs | 18 +++ 8 files changed, 402 insertions(+) create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelIdInputDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/UpdateDiseaseRiskLevelDto.cs create mode 100644 src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs create mode 100644 src/Shentun.WebPeis.Domain/DiseaseRiskLevels/DiseaseRiskLevelManager.cs create mode 100644 src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortDragDto.cs create mode 100644 src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortTopOrBottomInputDto.cs diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelDto.cs new file mode 100644 index 0000000..1f65354 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelDto.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + public class CreateDiseaseRiskLevelDto + { + /// + /// 风险级别名称 + /// + public string DiseaseRiskLevelName { get; set; } + /// + /// 风险级别ID + /// + public Guid DiseaseRiskId { get; set; } + + + /// + /// 解释 + /// + public string? Explain { get; set; } + /// + /// 建议 + /// + public string? Suggestion { get; set; } + + /// + /// 函数 + /// + public string DiagnosisFunction { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelDto.cs new file mode 100644 index 0000000..80ff1b6 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelDto.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + public class DiseaseRiskLevelDto:AuditedEntityDtoName + { + /// + /// 风险级别ID + /// + public Guid DiseaseRiskLevelId { get; set; } + /// + /// 风险级别名称 + /// + public string DiseaseRiskLevelName { get; set; } + /// + /// 风险级别ID + /// + public Guid DiseaseRiskId { get; set; } + + + /// + /// 解释 + /// + public string? Explain { get; set; } + /// + /// 建议 + /// + public string? Suggestion { get; set; } + + /// + /// 函数 + /// + public string DiagnosisFunction { get; set; } + + public string SimpleCode { get; set; } + + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelIdInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelIdInputDto.cs new file mode 100644 index 0000000..24dc804 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelIdInputDto.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + public class DiseaseRiskLevelIdInputDto + { + public Guid DiseaseRiskLevelId { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/UpdateDiseaseRiskLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/UpdateDiseaseRiskLevelDto.cs new file mode 100644 index 0000000..684efc6 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/UpdateDiseaseRiskLevelDto.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + public class UpdateDiseaseRiskLevelDto + { + /// + /// 风险级别ID + /// + public Guid DiseaseRiskLevelId { get; set; } + /// + /// 风险级别名称 + /// + public string DiseaseRiskLevelName { get; set; } + /// + /// 风险级别ID + /// + public Guid DiseaseRiskId { get; set; } + + + /// + /// 解释 + /// + public string? Explain { get; set; } + /// + /// 建议 + /// + public string? Suggestion { get; set; } + + /// + /// 函数 + /// + public string DiagnosisFunction { get; set; } + + + } +} diff --git a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs new file mode 100644 index 0000000..4ce6720 --- /dev/null +++ b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs @@ -0,0 +1,106 @@ +using AutoMapper.Internal.Mappers; +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.DiseaseRiskLevels +{ + /// + /// 疾病风险级别 + /// + [ApiExplorerSettings(GroupName = "Work")] + [Authorize] + public class DiseaseRiskLevelAppService:ApplicationService + { + + private readonly IRepository _diseaseRiskLevelRepository; + private readonly DiseaseRiskLevelManager _diseaseRiskLevelManager; + private readonly CacheService _cacheService; + + public DiseaseRiskLevelAppService( + IRepository diseaseRiskLevelRepository, + DiseaseRiskLevelManager diseaseRiskLevelManager, + CacheService cacheService) + { + _diseaseRiskLevelRepository = diseaseRiskLevelRepository; + _diseaseRiskLevelManager = diseaseRiskLevelManager; + _cacheService = cacheService; + } + + + /// + /// 创建 + /// + /// + [HttpPost("api/app/DiseaseRiskLevel/Create")] + public async Task CreateAsync(CreateDiseaseRiskLevelDto input) + { + var createEntity = ObjectMapper.Map(input); + createEntity.DiseaseRiskId = GuidGenerator.Create(); + var entity = await _diseaseRiskLevelManager.CreateAsync(createEntity); + entity = await _diseaseRiskLevelRepository.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/DiseaseRiskLevel/Update")] + public async Task UpdateAsync(UpdateDiseaseRiskLevelDto input) + { + var entity = await _diseaseRiskLevelRepository.GetAsync(f => f.DiseaseRiskLevelId == input.DiseaseRiskLevelId); + var sourceEntity = ObjectMapper.Map(input); + _diseaseRiskLevelManager.UpdateAsync(sourceEntity, entity); + entity = await _diseaseRiskLevelRepository.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/DiseaseRiskLevel/Delete")] + public async Task DeleteAsync(DiseaseRiskLevelIdInputDto input) + { + await _diseaseRiskLevelManager.CheckAndDeleteAsync(input.DiseaseRiskLevelId); + } + + /// + /// 修改排序 置顶,置底 + /// + /// + /// + [HttpPost("api/app/DiseaseRiskLevel/UpdateSortTopOrBottom")] + public async Task UpdateSortTopOrBottomAsync(UpdateDiseaseRiskLevelSortTopOrBottomInputDto input) + { + await _diseaseRiskLevelManager.UpdateSortTopOrBottomAsync(input.DiseaseRiskLevelId, input.SortType); + } + + /// + /// 修改排序 拖拽 + /// + /// + /// + [HttpPost("api/app/DiseaseRiskLevel/UpdateSortDragAsync")] + public async Task UpdateSortDragAsync(UpdateDiseaseRiskLevelSortDragDto input) + { + await _diseaseRiskLevelManager.UpdateSortDragAsync(input); + } + } +} diff --git a/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/DiseaseRiskLevelManager.cs b/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/DiseaseRiskLevelManager.cs new file mode 100644 index 0000000..d869e4f --- /dev/null +++ b/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/DiseaseRiskLevelManager.cs @@ -0,0 +1,133 @@ +using Shentun.Utilities; +using Shentun.WebPeis.DiseaseRisks; +using Shentun.WebPeis.Models; +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; +using Volo.Abp.Domain.Services; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + public class DiseaseRiskLevelManager : DomainService + { + + private readonly IRepository _diseaseRiskLevelRepository; + + public DiseaseRiskLevelManager( + IRepository diseaseRiskLevelRepository + ) + { + _diseaseRiskLevelRepository = diseaseRiskLevelRepository; + } + + /// + /// 创建 + /// + /// + public async Task CreateAsync(DiseaseRiskLevel entity) + { + DataHelper.CheckEntityIsNull(entity); + //DataHelper.CheckStringIsNull(entity.QuestionTypeName, "名称"); + + return new DiseaseRiskLevel + { + DiseaseRiskId = entity.DiseaseRiskId, + DiagnosisFunction = entity.DiagnosisFunction, + DiseaseRiskLevelId = entity.DiseaseRiskLevelId, + DiseaseRiskLevelName = entity.DiseaseRiskLevelName, + Explain = entity.Explain, + Suggestion = entity.Suggestion, + SimpleCode = LanguageConverter.GetPYSimpleCode(entity.DiseaseRiskLevelName), + DisplayOrder = await EntityHelper.CreateMaxDisplayOrder(_diseaseRiskLevelRepository) + }; + } + + + /// + /// 更新 + /// + /// + /// + /// + public void UpdateAsync( + DiseaseRiskLevel sourceEntity, + DiseaseRiskLevel targetEntity + ) + { + DataHelper.CheckEntityIsNull(sourceEntity); + DataHelper.CheckEntityIsNull(targetEntity); + //DataHelper.CheckStringIsNull(sourceEntity.QuestionTypeName, "名称"); + + targetEntity.DiseaseRiskId = sourceEntity.DiseaseRiskId; + targetEntity.DiagnosisFunction = sourceEntity.DiagnosisFunction; + targetEntity.DiseaseRiskLevelId = sourceEntity.DiseaseRiskLevelId; + targetEntity.DiseaseRiskLevelName = sourceEntity.DiseaseRiskLevelName; + targetEntity.Explain = sourceEntity.Explain; + targetEntity.Suggestion = sourceEntity.Suggestion; + targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(sourceEntity.DiseaseRiskLevelName); + } + + + + /// + /// 删除 + /// + /// + /// + /// + public async Task CheckAndDeleteAsync(Guid DiseaseRiskLevelId) + { + + //var questionEnt = await _questionRepository.FirstOrDefaultAsync(m => m.QuestionTypeId == QuestionTypeId); + //if (questionEnt != null) + //{ + // throw new UserFriendlyException($"问卷类别已被使用,不能删除"); + //} + + await _diseaseRiskLevelRepository.DeleteAsync(d => d.DiseaseRiskLevelId == DiseaseRiskLevelId); + + } + + + /// + /// 修改排序 置顶,置底 + /// + /// 需要修改的ID + /// 修改方式:1 置顶 2 置底 + /// + public async Task UpdateSortTopOrBottomAsync(Guid DiseaseRiskLevelId, int SortType) + { + var entity = await _diseaseRiskLevelRepository.GetAsync(f => f.DiseaseRiskLevelId == DiseaseRiskLevelId); + await EntityHelper.UpdateSortTopOrBottomAsync(_diseaseRiskLevelRepository, entity, SortType); + } + + + + /// + /// 修改排序 拖拽 + /// + /// + /// + /// + /// + public async Task UpdateSortDragAsync(UpdateDiseaseRiskLevelSortDragDto input) + { + var entitylist = await _diseaseRiskLevelRepository.GetListAsync(o => input.ItemList.Select(s => s.DiseaseRiskLevelId).Contains(o.DiseaseRiskLevelId)); + + foreach (var entity in entitylist) + { + foreach (var item in input.ItemList) + { + if (item.DiseaseRiskLevelId == entity.DiseaseRiskLevelId) + entity.DisplayOrder = item.DisplayOrder; + } + } + + await _diseaseRiskLevelRepository.UpdateManyAsync(entitylist); + } + } +} diff --git a/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortDragDto.cs b/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortDragDto.cs new file mode 100644 index 0000000..289ea19 --- /dev/null +++ b/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortDragDto.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + + public class UpdateDiseaseRiskLevelSortDragDto + { + public List ItemList { get; set; } + } + + + public class UpdateDiseaseRiskLevelSortDragDetail + { + public Guid DiseaseRiskLevelId { get; set; } + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortTopOrBottomInputDto.cs b/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortTopOrBottomInputDto.cs new file mode 100644 index 0000000..25dcb86 --- /dev/null +++ b/src/Shentun.WebPeis.Domain/DiseaseRiskLevels/UpdateDiseaseRiskLevelSortTopOrBottomInputDto.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.WebPeis.DiseaseRiskLevels +{ + public class UpdateDiseaseRiskLevelSortTopOrBottomInputDto + { + public Guid DiseaseRiskLevelId { get; set; } + + /// + /// 修改方式:1 置顶 2 置底 + /// + public int SortType { get; set; } + } +}