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); } } }