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!;