ComplianceServer/code/Hg.Complaint.WebApi/Controllers/ComplaintController.cs

155 lines
5.2 KiB
C#

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