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