修改一版

This commit is contained in:
he
2022-06-30 17:52:56 +08:00
parent 59a28dff89
commit 2ac0728378
4 changed files with 163 additions and 2 deletions
@@ -184,8 +184,78 @@ namespace IRaCIS.Core.Application.ViewModel
public int? ParentShowOrder { get; set; }
}
///<summary>ReadingMedicineTrialQuestionQuery 列表查询参数模型</summary>
public class ReadingMedicineTrialQuestionQuery
public class GetMedicineQuestionPreviewInDto
{
public Guid TrialId { get; set; }
}
public class GetMedicineQuestionPreviewOutDto
{
public Guid Id { get; set; }
/// <summary>
/// 类型
/// </summary>
public string Type { get; set; }
/// <summary>
/// 父问题触发值
/// </summary>
public string ParentTriggerValue { get; set; } = string.Empty;
/// <summary>
/// 问题名称
/// </summary>
public string QuestionName { get; set; }
/// <summary>
/// 类型值
/// </summary>
public string TypeValue { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public Guid TrialId { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsEnable { get; set; }
/// <summary>
/// 是否必须
/// </summary>
public bool IsRequired { get; set; }
/// <summary>
/// 排序
/// </summary>
public int ShowOrder { get; set; }
/// <summary>
/// 父问题
/// </summary>
public Guid? ParentId { get; set; }
/// <summary>
/// 是否确认
/// </summary>
public bool? IsConfirm { get; set; }
public List<GetMedicineQuestionPreviewOutDto> Childrens { get; set; }
}
///<summary>ReadingMedicineTrialQuestionQuery 列表查询参数模型</summary>
public class ReadingMedicineTrialQuestionQuery
{
/// <summary>
/// 项目Id
@@ -107,6 +107,38 @@ namespace IRaCIS.Core.Application.Service
});
}
/// <summary>
/// 获取预览问题信息
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<List<GetMedicineQuestionPreviewOutDto>> GetMedicineQuestionPreview(GetMedicineQuestionPreviewInDto inDto)
{
var trialQuestionList = await _readingMedicineTrialQuestionRepository.Where(x=>x.TrialId==inDto.TrialId)
.ProjectTo<GetMedicineQuestionPreviewOutDto>(_mapper.ConfigurationProvider).ToListAsync();
List<GetMedicineQuestionPreviewOutDto> readingQuestionList = trialQuestionList.Where(x => x.ParentId == null).ToList();
readingQuestionList.ForEach(x =>
{
FindChildQuestion(x, trialQuestionList);
});
return readingQuestionList;
}
private void FindChildQuestion(GetMedicineQuestionPreviewOutDto trialReadingQuestion, List<GetMedicineQuestionPreviewOutDto> questionlists)
{
trialReadingQuestion.Childrens = questionlists.Where(x => x.ParentId == trialReadingQuestion.Id).ToList();
if (trialReadingQuestion.Childrens != null && trialReadingQuestion.Childrens.Count != 0)
{
trialReadingQuestion.Childrens.ForEach(x =>
{
this.FindChildQuestion(x, questionlists);
});
}
}
/// <summary>
/// 新增或修改项目医学审核问题
/// </summary>
@@ -89,6 +89,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap<ReadingMedicineTrialQuestionAddOrEdit, ReadingMedicineTrialQuestion>();
CreateMap<ReadingMedicineTrialQuestion, ReadingMedicineTrialQuestionView>()
.ForMember(x=>x.ParentShowOrder,y=>y.MapFrom(n=>n.ParentQuestion.ShowOrder));
CreateMap<ReadingMedicineTrialQuestion, GetMedicineQuestionPreviewOutDto>();
#endregion