|
@@ -28,6 +28,7 @@ using Hotline.Share.Dtos.FlowEngine;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
using Hotline.Share.Dtos.Push;
|
|
|
using Hotline.Share.Dtos.Settings;
|
|
|
+using Hotline.Share.Enums.CallCenter;
|
|
|
using Hotline.Share.Enums.FlowEngine;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using Hotline.Share.Enums.Push;
|
|
@@ -3437,8 +3438,12 @@ public class OrderController : BaseController
|
|
|
var citizen = await _citizenRepository.Queryable()
|
|
|
.Includes(x => x.labelDetails)
|
|
|
.FirstAsync(x => x.PhoneNumber == phone);
|
|
|
- //工单历史
|
|
|
- var oders = await _orderRepository.Queryable().Where(x => x.Contact == phone)
|
|
|
+ var calls = await _trCallRecordRepository.Queryable().Where(x => x.CallDirection == 0 && x.CPN == phone).OrderBy(x => x.CreatedTime).ToListAsync();
|
|
|
+ var oneCallTime = calls != null && calls.Count() > 0 ? calls[0].CreatedTime : DateTime.Now;
|
|
|
+ var lastNum = calls != null && calls.Count() > 0 ? calls.Count() - 1 : -1;
|
|
|
+ var lastCallTime = lastNum >= 0 ? calls[lastNum].CreatedTime : DateTime.Now;
|
|
|
+ //工单历史
|
|
|
+ var oders = await _orderRepository.Queryable().Where(x => x.Contact == phone)
|
|
|
.OrderBy(x => x.CreationTime, OrderByType.Desc).ToListAsync();
|
|
|
var allOrderNum = oders.Count;
|
|
|
var endOrderNum = oders.Count(x => (int)x.Status >= 300);
|
|
@@ -3451,12 +3456,18 @@ public class OrderController : BaseController
|
|
|
SqlFunc.JsonField(x.OrgProcessingResults, "Value") == "非常不满意"))
|
|
|
.Distinct().Select(x => new { x.OrderVisit.OrderId }).CountAsync();
|
|
|
//来电历史
|
|
|
- var calls = await _trCallRecordRepository.Queryable().Where(x => x.CallDirection == 0 && x.CPN == phone).OrderBy(x => x.CreatedTime).ToListAsync();
|
|
|
- var oneCallTime = calls != null && calls.Count() > 0 ? calls[0].CreatedTime : DateTime.Now;
|
|
|
- var lastNum = calls != null && calls.Count() > 0 ? calls.Count() - 1 : -1;
|
|
|
- var lastCallTime = lastNum >= 0 ? calls[lastNum].CreatedTime : DateTime.Now;
|
|
|
- //关注诉求
|
|
|
- var hotspotNames = string.Join(",", oders.Select(x => x.HotspotName).Distinct().Take(5).ToList());
|
|
|
+ var callsHistory = await _trCallRecordRepository.Queryable().Where(x => x.CPN == phone).ToListAsync();
|
|
|
+ var allCallNum = 0;
|
|
|
+ var connectNum = 0;
|
|
|
+ var callBackNum = 0;
|
|
|
+ if (callsHistory != null && callsHistory.Any())
|
|
|
+ {
|
|
|
+ allCallNum = callsHistory.Count(x => x.CallDirection == ECallDirection.In);
|
|
|
+ connectNum = callsHistory.Count(x => x.CallDirection == ECallDirection.In && x.Duration > 0);
|
|
|
+ callBackNum = callsHistory.Count(x => x.CallDirection == ECallDirection.Out);
|
|
|
+ }
|
|
|
+ //关注诉求
|
|
|
+ var hotspotNames = string.Join(",", oders.Select(x => x.HotspotName).Distinct().Take(5).ToList());
|
|
|
var rsp = new
|
|
|
{
|
|
|
Citizen = citizen,
|
|
@@ -3469,7 +3480,7 @@ public class OrderController : BaseController
|
|
|
handOrderNum = handOrderNum,
|
|
|
DissatisfactionNum = DissatisfactionNum
|
|
|
},
|
|
|
- CallHistory = new { AllCallNum = 0, ConnectNum = 0, CallBackNum = 0 },
|
|
|
+ CallHistory = new { AllCallNum = allCallNum, ConnectNum = connectNum, CallBackNum = callBackNum },
|
|
|
HotspotNames = hotspotNames,
|
|
|
};
|
|
|
return rsp;
|