From 8df3cb9481d1b47dd19b7dd89beef5dc6e5d3bd4 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Sat, 15 Jun 2024 18:50:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E5=90=88=E9=A1=B9=E7=9B=AE=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AsbitemRecommendLevelDto.cs | 20 ++++ .../UpdateAsbitemRecommendLevelDto.cs | 16 +++ .../AsbitemRecommendLevelAppService.cs | 113 ++++++++++++++++++ .../WebPeisApplicationAutoMapperProfile.cs | 5 + .../AsbitemRecommendLevelManager.cs | 96 +++++++++++++++ .../UpdateAsbitemRecommendLevelSortDragDto.cs | 20 ++++ ...emRecommendLevelSortTopOrBottomInputDto.cs | 18 +++ .../Models/AsbitemRecommendLevel.cs | 9 ++ 8 files changed, 297 insertions(+) create mode 100644 src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/AsbitemRecommendLevelDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelDto.cs create mode 100644 src/Shentun.WebPeis.Application/AsbitemRecommendLevels/AsbitemRecommendLevelAppService.cs create mode 100644 src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/AsbitemRecommendLevelManager.cs create mode 100644 src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortDragDto.cs create mode 100644 src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortTopOrBottomInputDto.cs diff --git a/src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/AsbitemRecommendLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/AsbitemRecommendLevelDto.cs new file mode 100644 index 0000000..fad5d27 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/AsbitemRecommendLevelDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.AsbitemRecommendLevels +{ + public class AsbitemRecommendLevelDto : AuditedEntityDtoName + { + /// + /// 主键 + /// + public short AsbitemRecommendLevelId { get; set; } + + public string AsbitemRecommendLevelName { get; set; } + + public string SimpleCode { get; set; } + + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelDto.cs new file mode 100644 index 0000000..2fe59be --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelDto.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.AsbitemRecommendLevels +{ + public class UpdateAsbitemRecommendLevelDto + { + /// + /// 主键 + /// + public short AsbitemRecommendLevelId { get; set; } + + public string AsbitemRecommendLevelName { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application/AsbitemRecommendLevels/AsbitemRecommendLevelAppService.cs b/src/Shentun.WebPeis.Application/AsbitemRecommendLevels/AsbitemRecommendLevelAppService.cs new file mode 100644 index 0000000..81f8e78 --- /dev/null +++ b/src/Shentun.WebPeis.Application/AsbitemRecommendLevels/AsbitemRecommendLevelAppService.cs @@ -0,0 +1,113 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Shentun.WebPeis.Models; +using Shentun.WebPeis.QuestionTypes; +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.AsbitemRecommendLevels +{ + /// + /// 组合项目推荐级别 + /// + [ApiExplorerSettings(GroupName = "Work")] + [Authorize] + public class AsbitemRecommendLevelAppService : ApplicationService + { + + private readonly IRepository _asbitemRecommendLevelRepository; + private readonly AsbitemRecommendLevelManager _asbitemRecommendLevelManager; + private readonly CacheService _cacheService; + + public AsbitemRecommendLevelAppService( + CacheService cacheService, + IRepository asbitemRecommendLevelRepository, + AsbitemRecommendLevelManager asbitemRecommendLevelManager + ) + { + _cacheService = cacheService; + _asbitemRecommendLevelRepository = asbitemRecommendLevelRepository; + _asbitemRecommendLevelManager = asbitemRecommendLevelManager; + } + + + /// + /// 获取列表 + /// + /// + [HttpPost("api/app/AsbitemRecommendLevel/GetList")] + public async Task> GetListAsync() + { + var entlist = await _asbitemRecommendLevelRepository.GetQueryableAsync(); + + var entdto = entlist.Select(s => new AsbitemRecommendLevelDto + { + CreationTime = s.CreationTime, + CreatorId = s.CreatorId, + DisplayOrder = s.DisplayOrder, + LastModificationTime = s.LastModificationTime, + LastModifierId = s.LastModifierId, + SimpleCode = s.SimpleCode, + AsbitemRecommendLevelId = s.AsbitemRecommendLevelId, + AsbitemRecommendLevelName = s.AsbitemRecommendLevelName, + CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result, + LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result + }).OrderBy(o => o.DisplayOrder).ToList(); + + return entdto; + + + } + + + + /// + /// 更新 + /// + /// + /// + [HttpPost("api/app/AsbitemRecommendLevel/Update")] + public async Task UpdateAsync(UpdateAsbitemRecommendLevelDto input) + { + var entity = await _asbitemRecommendLevelRepository.GetAsync(f => f.AsbitemRecommendLevelId == input.AsbitemRecommendLevelId); + var sourceEntity = new AsbitemRecommendLevel + { + AsbitemRecommendLevelName = input.AsbitemRecommendLevelName + }; + await _asbitemRecommendLevelManager.UpdateAsync(sourceEntity, entity); + entity = await _asbitemRecommendLevelRepository.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/AsbitemRecommendLevel/UpdateSortTopOrBottom")] + public async Task UpdateSortTopOrBottomAsync(UpdateAsbitemRecommendLevelSortTopOrBottomInputDto input) + { + await _asbitemRecommendLevelManager.UpdateSortTopOrBottomAsync(input.AsbitemRecommendLevelId, input.SortType); + } + + /// + /// 修改排序 拖拽 + /// + /// + /// + [HttpPost("api/app/AsbitemRecommendLevel/UpdateSortDragAsync")] + public async Task UpdateSortDragAsync(UpdateAsbitemRecommendLevelSortDragDto input) + { + await _asbitemRecommendLevelManager.UpdateSortDragAsync(input); + } + } +} diff --git a/src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs b/src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs index f8dd516..300c1c2 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.DiseaseRiskLevels; using Shentun.WebPeis.DiseaseRisks; using Shentun.WebPeis.Kinships; using Shentun.WebPeis.MaritalStatuss; @@ -105,5 +106,9 @@ public class WebPeisApplicationAutoMapperProfile : Profile CreateMap(); CreateMap(); CreateMap(); + + CreateMap(); + CreateMap(); + CreateMap(); } } diff --git a/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/AsbitemRecommendLevelManager.cs b/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/AsbitemRecommendLevelManager.cs new file mode 100644 index 0000000..0375d86 --- /dev/null +++ b/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/AsbitemRecommendLevelManager.cs @@ -0,0 +1,96 @@ +using Shentun.Utilities; +using Shentun.WebPeis.Models; +using Shentun.WebPeis.QuestionTypes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Domain.Services; + +namespace Shentun.WebPeis.AsbitemRecommendLevels +{ + + + + public class AsbitemRecommendLevelManager : DomainService + { + + private readonly IRepository _asbitemRecommendLevelRepository; + + public AsbitemRecommendLevelManager(IRepository asbitemRecommendLevelRepository) + { + _asbitemRecommendLevelRepository = asbitemRecommendLevelRepository; + } + + + /// + /// 更新 + /// + /// + /// + /// + public async Task UpdateAsync( + AsbitemRecommendLevel sourceEntity, + AsbitemRecommendLevel targetEntity + ) + { + DataHelper.CheckEntityIsNull(sourceEntity); + DataHelper.CheckEntityIsNull(targetEntity); + DataHelper.CheckStringIsNull(sourceEntity.AsbitemRecommendLevelName, "名称"); + if (sourceEntity.AsbitemRecommendLevelName != targetEntity.AsbitemRecommendLevelName) + { + var isQuestionType = await _asbitemRecommendLevelRepository.FirstOrDefaultAsync(f => f.AsbitemRecommendLevelId != sourceEntity.AsbitemRecommendLevelId + && f.AsbitemRecommendLevelName == sourceEntity.AsbitemRecommendLevelName); + if (isQuestionType != null) + throw new UserFriendlyException($"组合项目推荐级别名称{sourceEntity.AsbitemRecommendLevelName}已存在"); + targetEntity.AsbitemRecommendLevelName = sourceEntity.AsbitemRecommendLevelName; + targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(targetEntity.AsbitemRecommendLevelName); + + } + + } + + + /// + /// 修改排序 置顶,置底 + /// + /// 需要修改的ID + /// 修改方式:1 置顶 2 置底 + /// + public async Task UpdateSortTopOrBottomAsync(short AsbitemRecommendLevelId, int SortType) + { + var entity = await _asbitemRecommendLevelRepository.GetAsync(f => f.AsbitemRecommendLevelId == AsbitemRecommendLevelId); + await EntityHelper.UpdateSortTopOrBottomAsync(_asbitemRecommendLevelRepository, entity, SortType); + } + + + + /// + /// 修改排序 拖拽 + /// + /// + /// + /// + /// + public async Task UpdateSortDragAsync(UpdateAsbitemRecommendLevelSortDragDto input) + { + var entitylist = await _asbitemRecommendLevelRepository.GetListAsync(o => input.ItemList.Select(s => s.AsbitemRecommendLevelId).Contains(o.AsbitemRecommendLevelId)); + + foreach (var entity in entitylist) + { + foreach (var item in input.ItemList) + { + if (item.AsbitemRecommendLevelId == entity.AsbitemRecommendLevelId) + entity.DisplayOrder = item.DisplayOrder; + } + } + + await _asbitemRecommendLevelRepository.UpdateManyAsync(entitylist); + } + } + + +} diff --git a/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortDragDto.cs b/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortDragDto.cs new file mode 100644 index 0000000..092d746 --- /dev/null +++ b/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortDragDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.WebPeis.AsbitemRecommendLevels +{ + + public class UpdateAsbitemRecommendLevelSortDragDto + { + public List ItemList { get; set; } + } + + public class UpdateAsbitemRecommendLevelSortDragDetail + { + public short AsbitemRecommendLevelId { get; set; } + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortTopOrBottomInputDto.cs b/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortTopOrBottomInputDto.cs new file mode 100644 index 0000000..2247298 --- /dev/null +++ b/src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortTopOrBottomInputDto.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shentun.WebPeis.AsbitemRecommendLevels +{ + public class UpdateAsbitemRecommendLevelSortTopOrBottomInputDto + { + public short AsbitemRecommendLevelId { get; set; } + + /// + /// 修改方式:1 置顶 2 置底 + /// + public int SortType { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs b/src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs index 8db57cc..0eb7b40 100644 --- a/src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs +++ b/src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs @@ -8,10 +8,19 @@ using Volo.Abp.Domain.Entities.Auditing; namespace Shentun.WebPeis.Models { + /// + /// 组合项目推荐级别表 + /// public class AsbitemRecommendLevel : AuditedEntity, IHasConcurrencyStamp, IDisplayOrder { + /// + /// 主键 + /// public short AsbitemRecommendLevelId { get; set; } + /// + /// 名称 + /// public string AsbitemRecommendLevelName { get; set; } = null!; public string SimpleCode { get; set; } = null!;