Browse Source

组合项目推荐级别

master
wxd 1 year ago
parent
commit
8df3cb9481
  1. 20
      src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/AsbitemRecommendLevelDto.cs
  2. 16
      src/Shentun.WebPeis.Application.Contracts/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelDto.cs
  3. 113
      src/Shentun.WebPeis.Application/AsbitemRecommendLevels/AsbitemRecommendLevelAppService.cs
  4. 5
      src/Shentun.WebPeis.Application/WebPeisApplicationAutoMapperProfile.cs
  5. 96
      src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/AsbitemRecommendLevelManager.cs
  6. 20
      src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortDragDto.cs
  7. 18
      src/Shentun.WebPeis.Domain/AsbitemRecommendLevels/UpdateAsbitemRecommendLevelSortTopOrBottomInputDto.cs
  8. 9
      src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs

20
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
{
/// <summary>
/// 主键
/// </summary>
public short AsbitemRecommendLevelId { get; set; }
public string AsbitemRecommendLevelName { get; set; }
public string SimpleCode { get; set; }
public int DisplayOrder { get; set; }
}
}

16
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
{
/// <summary>
/// 主键
/// </summary>
public short AsbitemRecommendLevelId { get; set; }
public string AsbitemRecommendLevelName { get; set; }
}
}

113
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
{
/// <summary>
/// 组合项目推荐级别
/// </summary>
[ApiExplorerSettings(GroupName = "Work")]
[Authorize]
public class AsbitemRecommendLevelAppService : ApplicationService
{
private readonly IRepository<AsbitemRecommendLevel> _asbitemRecommendLevelRepository;
private readonly AsbitemRecommendLevelManager _asbitemRecommendLevelManager;
private readonly CacheService _cacheService;
public AsbitemRecommendLevelAppService(
CacheService cacheService,
IRepository<AsbitemRecommendLevel> asbitemRecommendLevelRepository,
AsbitemRecommendLevelManager asbitemRecommendLevelManager
)
{
_cacheService = cacheService;
_asbitemRecommendLevelRepository = asbitemRecommendLevelRepository;
_asbitemRecommendLevelManager = asbitemRecommendLevelManager;
}
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost("api/app/AsbitemRecommendLevel/GetList")]
public async Task<List<AsbitemRecommendLevelDto>> 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;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/AsbitemRecommendLevel/Update")]
public async Task<AsbitemRecommendLevelDto> 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<AsbitemRecommendLevel, AsbitemRecommendLevelDto>(entity);
dto.CreatorName = await _cacheService.GetSurnameAsync(dto.CreatorId);
dto.LastModifierName = await _cacheService.GetSurnameAsync(dto.LastModifierId);
return dto;
}
/// <summary>
/// 修改排序 置顶,置底
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/AsbitemRecommendLevel/UpdateSortTopOrBottom")]
public async Task UpdateSortTopOrBottomAsync(UpdateAsbitemRecommendLevelSortTopOrBottomInputDto input)
{
await _asbitemRecommendLevelManager.UpdateSortTopOrBottomAsync(input.AsbitemRecommendLevelId, input.SortType);
}
/// <summary>
/// 修改排序 拖拽
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/AsbitemRecommendLevel/UpdateSortDragAsync")]
public async Task UpdateSortDragAsync(UpdateAsbitemRecommendLevelSortDragDto input)
{
await _asbitemRecommendLevelManager.UpdateSortDragAsync(input);
}
}
}

5
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<DiseaseRisk, DiseaseRiskDto>();
CreateMap<CreateDiseaseRiskDto, DiseaseRisk>();
CreateMap<UpdateDiseaseRiskDto, DiseaseRisk>();
CreateMap<DiseaseRiskLevel, DiseaseRiskLevelDto>();
CreateMap<CreateDiseaseRiskLevelDto, DiseaseRiskLevel>();
CreateMap<UpdateDiseaseRiskLevelDto, DiseaseRiskLevel>();
}
}

96
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<AsbitemRecommendLevel> _asbitemRecommendLevelRepository;
public AsbitemRecommendLevelManager(IRepository<AsbitemRecommendLevel> asbitemRecommendLevelRepository)
{
_asbitemRecommendLevelRepository = asbitemRecommendLevelRepository;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="sourceEntity"></param>
/// <param name="targetEntity"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 修改排序 置顶,置底
/// </summary>
/// <param name="id">需要修改的ID</param>
/// <param name="SortType">修改方式:1 置顶 2 置底</param>
/// <returns></returns>
public async Task UpdateSortTopOrBottomAsync(short AsbitemRecommendLevelId, int SortType)
{
var entity = await _asbitemRecommendLevelRepository.GetAsync(f => f.AsbitemRecommendLevelId == AsbitemRecommendLevelId);
await EntityHelper.UpdateSortTopOrBottomAsync(_asbitemRecommendLevelRepository, entity, SortType);
}
/// <summary>
/// 修改排序 拖拽
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <param name="repository"></param>
/// <param name="input"></param>
/// <returns></returns>
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);
}
}
}

20
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<UpdateAsbitemRecommendLevelSortDragDetail> ItemList { get; set; }
}
public class UpdateAsbitemRecommendLevelSortDragDetail
{
public short AsbitemRecommendLevelId { get; set; }
public int DisplayOrder { get; set; }
}
}

18
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; }
/// <summary>
/// 修改方式:1 置顶 2 置底
/// </summary>
public int SortType { get; set; }
}
}

9
src/Shentun.WebPeis.Domain/Models/AsbitemRecommendLevel.cs

@ -8,10 +8,19 @@ using Volo.Abp.Domain.Entities.Auditing;
namespace Shentun.WebPeis.Models
{
/// <summary>
/// 组合项目推荐级别表
/// </summary>
public class AsbitemRecommendLevel : AuditedEntity, IHasConcurrencyStamp, IDisplayOrder
{
/// <summary>
/// 主键
/// </summary>
public short AsbitemRecommendLevelId { get; set; }
/// <summary>
/// 名称
/// </summary>
public string AsbitemRecommendLevelName { get; set; } = null!;
public string SimpleCode { get; set; } = null!;

Loading…
Cancel
Save