using Hotline.Application.CallCenter; using Hotline.CallCenter.BlackLists; using Hotline.CallCenter.Calls; using Hotline.CallCenter.Tels; using Hotline.Share.Dtos.CallCenter; using Hotline.Share.Dtos.TrCallCenter; using Hotline.Share.Enums.CallCenter; using Microsoft.AspNetCore.Mvc; using XF.Utility.EnumExtensions; namespace Hotline.Api.Controllers { public class CallController : BaseController { private readonly ICallApplication _callApplication; public CallController(ICallApplication callApplication) { _callApplication = callApplication; } /// /// 查询分机 /// [HttpGet("tels")] public Task> QueryTels() => _callApplication.QueryTelsAsync(HttpContext.RequestAborted); /// /// 查询分机组 /// [HttpGet("groups")] public Task> QueryTelGroups() => _callApplication.QueryTelGroupsAsync(HttpContext.RequestAborted); #region 黑名单 //Task AddBlackListAsync(AddBlacklistDto dto, CancellationToken cancellationToken); //Task RemoveBlackListAsync(string id, CancellationToken cancellationToken); //Task> QueryBlackListsAsync(CancellationToken cancellationToken); #endregion /// /// 签入 /// [HttpPost("signin")] public Task SignIn([FromBody] SignInDto dto) => _callApplication.SignInAsync(dto, HttpContext.RequestAborted); /// /// 签出 /// [HttpPost("signout")] public Task SignOut() => _callApplication.SingOutAsync(HttpContext.RequestAborted); /// /// 签出 /// [HttpPost("signout/{telNo}")] public Task SignOut(string telNo) => _callApplication.SingOutAsync(telNo, HttpContext.RequestAborted); /// /// 查询当前用户的分机状态 /// /// [HttpGet("tel-state")] public Task GetTelState() => _callApplication.GetTelStateAsync(HttpContext.RequestAborted); /// /// 查询通话记录(固定数据量) /// /// /// [HttpGet("calls-fixed")] public Task> QueryCallsFixed([FromQuery] QueryCallsFixedDto dto) => _callApplication.QueryCallsFixedAsync(dto, HttpContext.RequestAborted); /// /// 通话记录基础数据 /// /// [HttpGet("base-data")] public async Task BaseData() { return new { Direction = EnumExts.GetDescriptions(), EndBy = EnumExts.GetDescriptions(), }; } /// /// 关联通话记录与工单或回访 /// /// [HttpPost("relate-call-to-order")] public Task RelateCallToOrder([FromBody] LinkCallRecordDto dto) => _callApplication.RelateCallToOrderAsync(dto, HttpContext.RequestAborted); ///// ///// 查询坐席操作记录(固定数据量) ///// ///// ///// //[HttpGet("tel-operations-fixed")] //public Task> QueryTelOperationsFixed([FromQuery] QueryTelOperationsFixedDto dto) //{ //} } }