|
@@ -72,12 +72,26 @@ namespace Hotline.Repository.SqlSugar.CallCenter
|
|
|
return resultList;
|
|
|
}
|
|
|
|
|
|
- public async Task GetCallHotLineList(DateTime beginDate, DateTime endDate, int noConnectByeTimes, int effectiveTimes, int connectByeTimes)
|
|
|
+ public async Task<List<CallHotLineDto>> GetCallHotLineList(DateTime beginDate, DateTime endDate,string lineNum, int noConnectByeTimes, int effectiveTimes, int connectByeTimes,int ringTims)
|
|
|
{
|
|
|
endDate = endDate.AddDays(1).AddSeconds(-1);
|
|
|
- Db.Queryable<TrCallRecord>()
|
|
|
- .Where(x => x.CreatedTime >= beginDate && x.CreatedTime <= endDate);
|
|
|
- //.GroupBy(x=>x.);
|
|
|
+ var list =await Db.Queryable<TrCallRecord>()
|
|
|
+ .Where(x => x.CreatedTime >= beginDate && x.CreatedTime <= endDate)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(lineNum), x => x.Gateway == lineNum)
|
|
|
+ .GroupBy(x => x.Gateway)
|
|
|
+ .Select(x => new CallHotLineDto()
|
|
|
+ {
|
|
|
+ GateWay = x.Gateway,
|
|
|
+ CallInCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In, 1, 0)),//接通
|
|
|
+ ConnectCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In && x.OnState == EOnState.On, 1, 0)),//接通
|
|
|
+ NoConnectByeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In && x.Duration == 0 && x.RingTimes <= noConnectByeTimes && x.RingTimes > 0, 1, 0)), //未接通秒挂
|
|
|
+ EffectiveCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In && x.Duration >= effectiveTimes, 1, 0)),//有效接通
|
|
|
+ DurationSum = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In && x.OnState == EOnState.On,x.Duration,0)),//通话总时长
|
|
|
+ ConnectByeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In && x.Duration > 0 && x.Duration <= connectByeTimes, 1, 0)), //接通秒挂
|
|
|
+ TimelyAnswerCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.CallDirection == ECallDirection.In && x.OnState == EOnState.On && x.RingTimes<= ringTims,1,0))//及时应答
|
|
|
+ }).ToListAsync();
|
|
|
+
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|