CallController.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using Hotline.Application.CallCenter;
  2. using Hotline.CallCenter.BlackLists;
  3. using Hotline.CallCenter.Calls;
  4. using Hotline.CallCenter.Tels;
  5. using Hotline.Share.Dtos.CallCenter;
  6. using Hotline.Share.Dtos.TrCallCenter;
  7. using Hotline.Share.Enums.CallCenter;
  8. using Microsoft.AspNetCore.Mvc;
  9. using XF.Utility.EnumExtensions;
  10. namespace Hotline.Api.Controllers
  11. {
  12. public class CallController : BaseController
  13. {
  14. private readonly ICallApplication _callApplication;
  15. public CallController(ICallApplication callApplication)
  16. {
  17. _callApplication = callApplication;
  18. }
  19. /// <summary>
  20. /// 查询分机
  21. /// </summary>
  22. [HttpGet("tels")]
  23. public Task<IReadOnlyList<TelDto>> QueryTels()
  24. => _callApplication.QueryTelsAsync(HttpContext.RequestAborted);
  25. /// <summary>
  26. /// 查询分机组
  27. /// </summary>
  28. [HttpGet("groups")]
  29. public Task<IReadOnlyList<TelGroupDto>> QueryTelGroups()
  30. => _callApplication.QueryTelGroupsAsync(HttpContext.RequestAborted);
  31. #region 黑名单
  32. //Task<string> AddBlackListAsync(AddBlacklistDto dto, CancellationToken cancellationToken);
  33. //Task RemoveBlackListAsync(string id, CancellationToken cancellationToken);
  34. //Task<List<Blacklist>> QueryBlackListsAsync(CancellationToken cancellationToken);
  35. #endregion
  36. /// <summary>
  37. /// 签入
  38. /// </summary>
  39. [HttpPost("signin")]
  40. public Task<TrOnDutyResponseDto> SignIn([FromBody] SignInDto dto)
  41. => _callApplication.SignInAsync(dto, HttpContext.RequestAborted);
  42. /// <summary>
  43. /// 签出
  44. /// </summary>
  45. [HttpPost("signout")]
  46. public Task SignOut()
  47. => _callApplication.SingOutAsync(HttpContext.RequestAborted);
  48. /// <summary>
  49. /// 签出
  50. /// </summary>
  51. [HttpPost("signout/{telNo}")]
  52. public Task SignOut(string telNo)
  53. => _callApplication.SingOutAsync(telNo, HttpContext.RequestAborted);
  54. /// <summary>
  55. /// 查询当前用户的分机状态
  56. /// </summary>
  57. /// <returns></returns>
  58. [HttpGet("tel-state")]
  59. public Task GetTelState()
  60. => _callApplication.GetTelStateAsync(HttpContext.RequestAborted);
  61. /// <summary>
  62. /// 查询通话记录(固定数据量)
  63. /// </summary>
  64. /// <param name="dto"></param>
  65. /// <returns></returns>
  66. [HttpGet("calls-fixed")]
  67. public Task<IReadOnlyList<CallNativeDto>> QueryCallsFixed([FromQuery] QueryCallsFixedDto dto)
  68. => _callApplication.QueryCallsFixedAsync(dto, HttpContext.RequestAborted);
  69. /// <summary>
  70. /// 通话记录基础数据
  71. /// </summary>
  72. /// <returns></returns>
  73. [HttpGet("base-data")]
  74. public async Task<object> BaseData()
  75. {
  76. return new
  77. {
  78. Direction = EnumExts.GetDescriptions<ECallDirection>(),
  79. EndBy = EnumExts.GetDescriptions<EEndBy>(),
  80. };
  81. }
  82. /// <summary>
  83. /// 关联通话记录与工单或回访
  84. /// </summary>
  85. /// <returns></returns>
  86. [HttpPost("relate-call-to-order")]
  87. public Task RelateCallToOrder([FromBody] LinkCallRecordDto dto) =>
  88. _callApplication.RelateCallToOrderAsync(dto, HttpContext.RequestAborted);
  89. ///// <summary>
  90. ///// 查询坐席操作记录(固定数据量)
  91. ///// </summary>
  92. ///// <param name="dto"></param>
  93. ///// <returns></returns>
  94. //[HttpGet("tel-operations-fixed")]
  95. //public Task<IReadOnlyList<TelOperation>> QueryTelOperationsFixed([FromQuery] QueryTelOperationsFixedDto dto)
  96. //{
  97. //}
  98. }
  99. }