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; }
+    }
+}