CostCalculationItem/IRaCIS.Core.API/Controllers/QA/QARecordController.cs

95 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.API.Controllers.QA
{
/// <summary>
/// QA 记录 和对话管理
/// </summary>
[Route("QARecord")]
[ApiController, Authorize, ApiExplorerSettings(GroupName = "Image")]
[AllowAnonymous]
public class QARecordController : ControllerBase
{
private readonly IQARecordService _qaRecordService;
public QARecordController(IQARecordService qaRecordService)
{
_qaRecordService = qaRecordService;
}
/// <summary>
///QA记录表 包含信息 包含两部分 一部分 :字典项问题项 +对应得描述 如 缺少序列 + 5个
/// 第二部分 额外补充得信息 根据 QARecord 中得Id 是否传递 判断是添加还是更新
/// </summary>
/// <param name="qaTotalCommand"></param>
/// <returns></returns>
[HttpPost, Route("AddOrUpdateQARecord")]
public IResponseOutput AddOrUpdateQARecord(QAToalCommand qaTotalCommand)
{
return _qaRecordService.AddOrUpdateQARecord(qaTotalCommand);
}
/// <summary>
/// 删除Qa记录
/// </summary>
/// <param name="qaQARecordId"></param>
/// <returns></returns>
[HttpDelete, Route("DeleteQARecord/{qaQARecordId:guid}")]
public IResponseOutput DeleteQARecord(Guid qaQARecordId)
{
return _qaRecordService.DeleteQARecord(qaQARecordId);
}
/// <summary>
/// 获取QA记录列表 一个Study 可以进行多次QA 针对每次QA 可以添加回复
/// </summary>
/// <param name="studyId"></param>
/// <param name="trialId"></param>
/// <returns></returns>
[HttpGet, Route("GetQARecordList/{studyId:guid}/{trialId:guid}")]
public IResponseOutput<QADTO> GetQARecordList(Guid studyId,Guid trialId)
{
return ResponseOutput.Ok(_qaRecordService.GetQARecordList(studyId, trialId));
}
/// <summary>
/// 针对 某条Qa 添加回复
/// </summary>
/// <param name="qaDialogCommand"></param>
/// <returns></returns>
[HttpPost, Route("AddQAReply")]
public IResponseOutput AddQAReply(QADialogCommand qaDialogCommand)
{
return _qaRecordService.AddQAReply(qaDialogCommand);
}
/// <summary>
/// 删除QA回复记录
/// </summary>
/// <param name="qaReplyId"></param>
/// <returns></returns>
[HttpDelete, Route("DeleteQAReply/{qaReplyId:guid}")]
public IResponseOutput DeleteQAReply(Guid qaReplyId)
{
return _qaRecordService.DeleteQAReply(qaReplyId);
}
/// <summary>
/// 展开 某一QA下得 聊天记录
/// </summary>
/// <param name="qaRecordId"></param>
/// <returns></returns>
[HttpGet, Route("GetQaRecordDialogList/{qaRecordId:guid}")]
public IResponseOutput<List<DialogDTO>> GetQaRecordDialogList(Guid qaRecordId)
{
return ResponseOutput.Ok(_qaRecordService.GetQaRecordDialogList(qaRecordId));
}
}
}