155 lines
5.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |