You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
4.0 KiB

1 year ago
  1. using Shentun.Utilities;
  2. using Shentun.WebPeis.Models;
  3. using Shentun.WebPeis.Questions;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Volo.Abp.Domain.Entities;
  10. using Volo.Abp.Domain.Repositories;
  11. namespace Shentun.WebPeis.DiseaseRisks
  12. {
  13. public class DiseaseRiskManager
  14. {
  15. private readonly IRepository<DiseaseRisk> _diseaseRiskRepository;
  16. public DiseaseRiskManager(
  17. IRepository<DiseaseRisk> diseaseRiskRepository
  18. )
  19. {
  20. _diseaseRiskRepository = diseaseRiskRepository;
  21. }
  22. /// <summary>
  23. /// 创建
  24. /// </summary>
  25. /// <returns></returns>
  26. public async Task<DiseaseRisk> CreateAsync(DiseaseRisk entity)
  27. {
  28. DataHelper.CheckEntityIsNull(entity);
  29. //DataHelper.CheckStringIsNull(entity.QuestionTypeName, "名称");
  30. return new DiseaseRisk
  31. {
  32. DiseaseRiskId = entity.DiseaseRiskId,
  33. DiseaseRiskName = entity.DiseaseRiskName,
  34. SimpleCode = LanguageConverter.GetPYSimpleCode(entity.DiseaseRiskName),
  35. DisplayOrder = await EntityHelper.CreateMaxDisplayOrder<DiseaseRisk>(_diseaseRiskRepository)
  36. };
  37. }
  38. /// <summary>
  39. /// 更新
  40. /// </summary>
  41. /// <param name="sourceEntity"></param>
  42. /// <param name="targetEntity"></param>
  43. /// <returns></returns>
  44. public void UpdateAsync(
  45. DiseaseRisk sourceEntity,
  46. DiseaseRisk targetEntity
  47. )
  48. {
  49. DataHelper.CheckEntityIsNull(sourceEntity);
  50. DataHelper.CheckEntityIsNull(targetEntity);
  51. //DataHelper.CheckStringIsNull(sourceEntity.QuestionTypeName, "名称");
  52. targetEntity.DiseaseRiskName = sourceEntity.DiseaseRiskName;
  53. targetEntity.SimpleCode = LanguageConverter.GetPYSimpleCode(sourceEntity.DiseaseRiskName);
  54. }
  55. /// <summary>
  56. /// 删除
  57. /// </summary>
  58. /// <param name="DiseaseRiskId"></param>
  59. /// <returns></returns>
  60. /// <exception cref="UserFriendlyException"></exception>
  61. public async Task CheckAndDeleteAsync(Guid DiseaseRiskId)
  62. {
  63. //var questionEnt = await _questionRepository.FirstOrDefaultAsync(m => m.QuestionTypeId == QuestionTypeId);
  64. //if (questionEnt != null)
  65. //{
  66. // throw new UserFriendlyException($"问卷类别已被使用,不能删除");
  67. //}
  68. await _diseaseRiskRepository.DeleteAsync(d => d.DiseaseRiskId == DiseaseRiskId);
  69. }
  70. /// <summary>
  71. /// 修改排序 置顶,置底
  72. /// </summary>
  73. /// <param name="id">需要修改的ID</param>
  74. /// <param name="SortType">修改方式:1 置顶 2 置底</param>
  75. /// <returns></returns>
  76. public async Task UpdateSortTopOrBottomAsync(Guid DiseaseRiskId, int SortType)
  77. {
  78. var entity = await _diseaseRiskRepository.GetAsync(f => f.DiseaseRiskId == DiseaseRiskId);
  79. await EntityHelper.UpdateSortTopOrBottomAsync(_diseaseRiskRepository, entity, SortType);
  80. }
  81. /// <summary>
  82. /// 修改排序 拖拽
  83. /// </summary>
  84. /// <typeparam name="TEntity"></typeparam>
  85. /// <param name="repository"></param>
  86. /// <param name="input"></param>
  87. /// <returns></returns>
  88. public async Task UpdateSortDragAsync(UpdateDiseaseRiskSortDragDto input)
  89. {
  90. var entitylist = await _diseaseRiskRepository.GetListAsync(o => input.ItemList.Select(s => s.DiseaseRiskId).Contains(o.DiseaseRiskId));
  91. foreach (var entity in entitylist)
  92. {
  93. foreach (var item in input.ItemList)
  94. {
  95. if (item.DiseaseRiskId == entity.DiseaseRiskId)
  96. entity.DisplayOrder = item.DisplayOrder;
  97. }
  98. }
  99. await _diseaseRiskRepository.UpdateManyAsync(entitylist);
  100. }
  101. }
  102. }