|
@@ -3437,8 +3437,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);
|
|
@@ -3450,13 +3454,13 @@ public class OrderController : BaseController
|
|
|
.Where(x => x.OrderVisit.Order.Contact == phone && (SqlFunc.JsonField(x.OrgProcessingResults, "Value") == "不满意" ||
|
|
|
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 allCallNum = await _trCallRecordRepository.Queryable().Where(x => x.CallDirection == Share.Enums.CallCenter.ECallDirection.In && x.CPN == phone).CountAsync();
|
|
|
+ var connectNum = await _trCallRecordRepository.Queryable().Where(x => x.CallDirection == Share.Enums.CallCenter.ECallDirection.In && x.CPN == phone && x.Duration > 0).CountAsync();
|
|
|
+ var callBackNum = await _trCallRecordRepository.Queryable().Where(x => x.CallDirection == Share.Enums.CallCenter.ECallDirection.Out && x.CPN == phone).CountAsync();
|
|
|
+
|
|
|
+ //关注诉求
|
|
|
+ var hotspotNames = string.Join(",", oders.Select(x => x.HotspotName).Distinct().Take(5).ToList());
|
|
|
var rsp = new
|
|
|
{
|
|
|
Citizen = citizen,
|
|
@@ -3469,7 +3473,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;
|