using System.ComponentModel.DataAnnotations;
namespace Hg.Complaint.WebApi.Controllers
{
///
/// 投诉处理
///
[ApiSignatureFilterForbid]
public class ComplaintController : BaseController
{
private readonly IComplaintDomain _complaintDomain;
///
/// 投诉处理
///
///
public ComplaintController(IComplaintDomain complaintDomain)
{
_complaintDomain = complaintDomain;
}
///
/// 投诉申请接口
///
///
///
[HttpPost("apply")]
public async Task ApplyComplaint([FromBody] ApplyComplaintDto dto)
{
return await _complaintDomain.ApplyComplaint(dto);
}
///
/// 获取队列信息
///
///
[HttpGet("Queues")]
public async Task> GetQueues()
=> await _complaintDomain.GetQueues();
///
/// 获取投诉申请分页
///
///
///
///
[HttpGet("Page")]
public async Task> GetPage([FromQuery] SearchComplaintDto dto, [FromHeader] string? appid)
=> await _complaintDomain.GetPage(dto, appid);
///
/// 重新发起队列
///
///
[HttpGet("SyncQueue")]
public async Task> SyncQueue()
=> await _complaintDomain.SyncQueue();
///
/// 获取投诉详情
///
///
///
[HttpGet("Detail")]
public async Task GetComplaintDetail(int id)
=> await _complaintDomain.GetComplaintDetail(id);
///
/// 根据资源id和业务线获取投诉详情
///
///
///
///
[HttpGet("DetailByRes")]
public async Task GetComplaintDetail(string? resid, int deptid)
=> await _complaintDomain.GetComplaintDetail(resid, deptid);
///
/// 根据appid和业务线获取投诉详情
///
///
///
///
///
[HttpGet("DetailByAppid")]
public async Task GetComplaintDetail(string? appid, string? appuserid, int deptid)
=> await _complaintDomain.GetComplaintDetail(appid, appuserid, deptid);
///
/// 更新投诉状态
///
///
///
///
[HttpPost("Status")]
public async Task UpdateComplaintStatus([FromBody] UpdateComplaintStatusDto dto, [FromHeader] string? appid)
=> await _complaintDomain.UpdateComplaintStatus(dto, appid);
///
/// 获取投诉状态
///
///
///
[HttpGet("StatusDetail")]
public async Task GetComplaintStatus(int udid)
{
return await _complaintDomain.GetComplaintStatus(udid);
}
///
/// 标记客户
///
///
///
[HttpPost("MarkCustomer")]
public async Task MarkCustomer([FromBody] MarkCustomerDto dto)
{
return await _complaintDomain.MarkCustomer(dto);
}
///
/// 批量分配客户给客服
///
///
///
///
[HttpPost("BatchAssign")]
public async Task BatchAssignComplaint([FromBody] BatchAssignComplaintDto dto, [FromHeader] string? appid)
{
return await _complaintDomain.BatchAssignComplaint(dto, appid);
}
///
/// 标记水军
///
///
///
[HttpPost("MarkTrolls")]
public async Task MarkTrolls([FromBody] MarkTrollsDto dto)
{
return await _complaintDomain.MarkTrolls(dto);
}
///
/// 获取潜在风险用户标签
///
///
///
[HttpGet("Label")]
public async Task ComplaintLabel([Required(ErrorMessage = "请输入客户ID")] string resId)
{
return await _complaintDomain.ComplaintLabel(resId);
}
}
}