|
@@ -55,6 +55,7 @@ namespace Hotline.Api.Controllers
|
|
|
private readonly IAiQualityService _aiQualityService;
|
|
|
private readonly IRepository<QualityTemplate> _qualityTemplate;
|
|
|
private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
|
+ private readonly IRepository<TelActionRecord> _telActionRecordRepository;
|
|
|
|
|
|
|
|
|
public IPPbxController(ITrClient trClient, IMapper mapper, IUserDomainService userDomainService,
|
|
@@ -65,7 +66,8 @@ namespace Hotline.Api.Controllers
|
|
|
IUserCacheManager userCacheManager, ICapPublisher capPublisher,
|
|
|
ITelRestRepository telRestRepository, IRepository<User> userRepository,
|
|
|
ITelApplication telApplication, IRepository<Quality.Quality> qualiteyRepository,
|
|
|
- IAiQualityService aiQualityService, IRepository<QualityTemplate> qualityTemplate, ISystemSettingCacheManager systemSettingCacheManager)
|
|
|
+ IAiQualityService aiQualityService, IRepository<QualityTemplate> qualityTemplate,
|
|
|
+ ISystemSettingCacheManager systemSettingCacheManager,IRepository<TelActionRecord> telActionRecordRepository)
|
|
|
{
|
|
|
_trClient = trClient;
|
|
|
_mapper = mapper;
|
|
@@ -87,6 +89,7 @@ namespace Hotline.Api.Controllers
|
|
|
_aiQualityService = aiQualityService;
|
|
|
_qualityTemplate = qualityTemplate;
|
|
|
_systemSettingCacheManager = systemSettingCacheManager;
|
|
|
+ _telActionRecordRepository = telActionRecordRepository;
|
|
|
}
|
|
|
|
|
|
#region 添添呼
|
|
@@ -265,6 +268,8 @@ namespace Hotline.Api.Controllers
|
|
|
var user = await _userRepository.GetAsync(work.UserId, HttpContext.RequestAborted);
|
|
|
var telRest = new TelRest(work.TelNo, work.TelNo, work.UserId, work.UserName, dto.Reason, false, user.StaffNo);
|
|
|
await _telRestRepository.AddAsync(telRest, HttpContext.RequestAborted);
|
|
|
+ var telAction = new TelActionRecord(work.UserId, work.UserName, work.TelNo, work.QueueId, EActionType.TelRest);
|
|
|
+ await _telActionRecordRepository.AddAsync(telAction, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -283,10 +288,58 @@ namespace Hotline.Api.Controllers
|
|
|
throw UserFriendlyException.SameMessage("未查询到分机休息信息");
|
|
|
telRest.EndRest();
|
|
|
await _telRestRepository.UpdateAsync(telRest, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ var telAction = await _telActionRecordRepository.GetAsync(x => x.TelNo == work.TelNo && x.ActionType == EActionType.TelRest && !x.EndTime.HasValue, HttpContext.RequestAborted);
|
|
|
+ if (telAction!=null)
|
|
|
+ {
|
|
|
+ telAction.EndAction();
|
|
|
+ await _telActionRecordRepository.UpdateAsync(telAction);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
+ #region 添添呼话后整理
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 话后整理开始
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("callennd-arrange-begin")]
|
|
|
+ public async Task CallEndArrangeBegin()
|
|
|
+ {
|
|
|
+ var work = _userCacheManager.GetWorkByUser(_sessionContext.RequiredUserId);
|
|
|
+
|
|
|
+ if (work is null)
|
|
|
+ throw UserFriendlyException.SameMessage("分机未签入,不能操作");
|
|
|
+
|
|
|
+ var telAction = new TelActionRecord(work.UserId, work.UserName, work.TelNo, work.QueueId, EActionType.CallEndArrange);
|
|
|
+ await _telActionRecordRepository.AddAsync(telAction, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 话后整理结束
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("callend-arrange-end")]
|
|
|
+ public async Task CallEndArrangeEnd()
|
|
|
+ {
|
|
|
+ var work = _userCacheManager.GetWorkByUser(_sessionContext.RequiredUserId);
|
|
|
+ if (work is null)
|
|
|
+ throw UserFriendlyException.SameMessage("分机未签入,不能操作");
|
|
|
+
|
|
|
+ var telAction = await _telActionRecordRepository.GetAsync(x => x.TelNo == work.TelNo && !x.EndTime.HasValue, HttpContext.RequestAborted);
|
|
|
+ if (telAction != null)
|
|
|
+ {
|
|
|
+ telAction.EndAction();
|
|
|
+ await _telActionRecordRepository.UpdateAsync(telAction);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
#region 通话记录(对外)
|
|
|
/// <summary>
|
|
|
/// 接收通话记录
|