123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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;
- }
- /// <summary>
- /// 查询分机
- /// </summary>
- [HttpGet("tels")]
- public Task<IReadOnlyList<TelDto>> QueryTels()
- => _callApplication.QueryTelsAsync(HttpContext.RequestAborted);
- /// <summary>
- /// 查询分机组
- /// </summary>
- [HttpGet("groups")]
- public Task<IReadOnlyList<TelGroupDto>> QueryTelGroups()
- => _callApplication.QueryTelGroupsAsync(HttpContext.RequestAborted);
- #region 黑名单
- //Task<string> AddBlackListAsync(AddBlacklistDto dto, CancellationToken cancellationToken);
- //Task RemoveBlackListAsync(string id, CancellationToken cancellationToken);
- //Task<List<Blacklist>> QueryBlackListsAsync(CancellationToken cancellationToken);
- #endregion
- /// <summary>
- /// 签入
- /// </summary>
- [HttpPost("signin")]
- public Task<TrOnDutyResponseDto> SignIn([FromBody] SignInDto dto)
- => _callApplication.SignInAsync(dto, HttpContext.RequestAborted);
- /// <summary>
- /// 签出
- /// </summary>
- [HttpPost("signout")]
- public Task SignOut()
- => _callApplication.SingOutAsync(HttpContext.RequestAborted);
- /// <summary>
- /// 签出
- /// </summary>
- [HttpPost("signout/{telNo}")]
- public Task SignOut(string telNo)
- => _callApplication.SingOutAsync(telNo, HttpContext.RequestAborted);
- /// <summary>
- /// 查询当前用户的分机状态
- /// </summary>
- /// <returns></returns>
- [HttpGet("tel-state")]
- public Task GetTelState()
- => _callApplication.GetTelStateAsync(HttpContext.RequestAborted);
- /// <summary>
- /// 查询通话记录(固定数据量)
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpGet("calls-fixed")]
- public Task<IReadOnlyList<CallNativeDto>> QueryCallsFixed([FromQuery] QueryCallsFixedDto dto)
- => _callApplication.QueryCallsFixedAsync(dto, HttpContext.RequestAborted);
- /// <summary>
- /// 通话记录基础数据
- /// </summary>
- /// <returns></returns>
- [HttpGet("base-data")]
- public async Task<object> BaseData()
- {
- return new
- {
- Direction = EnumExts.GetDescriptions<ECallDirection>(),
- EndBy = EnumExts.GetDescriptions<EEndBy>(),
- };
- }
- /// <summary>
- /// 关联通话记录与工单或回访
- /// </summary>
- /// <returns></returns>
- [HttpPost("relate-call-to-order")]
- public Task RelateCallToOrder([FromBody] LinkCallRecordDto dto) =>
- _callApplication.RelateCallToOrderAsync(dto, HttpContext.RequestAborted);
- ///// <summary>
- ///// 查询坐席操作记录(固定数据量)
- ///// </summary>
- ///// <param name="dto"></param>
- ///// <returns></returns>
- //[HttpGet("tel-operations-fixed")]
- //public Task<IReadOnlyList<TelOperation>> QueryTelOperationsFixed([FromQuery] QueryTelOperationsFixedDto dto)
- //{
- //}
- }
- }
|