Browse Source

市民画像

田爽 1 year ago
parent
commit
bd51671c6e
1 changed files with 14 additions and 10 deletions
  1. 14 10
      src/Hotline.Api/Controllers/OrderController.cs

+ 14 - 10
src/Hotline.Api/Controllers/OrderController.cs

@@ -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;