|
@@ -108,10 +108,17 @@ namespace Hotline.Application.OrderApp
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
public ISugarQueryable<Order> DetailQuery(OrderAnalysisDetailDto dto, CancellationToken cancellationToken)
|
|
public ISugarQueryable<Order> DetailQuery(OrderAnalysisDetailDto dto, CancellationToken cancellationToken)
|
|
{
|
|
{
|
|
|
|
+ List<string> filterTitle = new List<string>();
|
|
|
|
+ filterTitle.Add("无声");
|
|
|
|
+ filterTitle.Add("骚扰");
|
|
|
|
+ filterTitle.Add("错拨");
|
|
|
|
+ filterTitle.Add("测试");
|
|
|
|
+
|
|
var query = _orderAnalysisRepository.Queryable()
|
|
var query = _orderAnalysisRepository.Queryable()
|
|
.LeftJoin<Order>((a, o) => a.AcceptTypeCode == o.AcceptTypeCode && a.HotspotId == o.HotspotId && o.AreaCode.StartsWith(a.AreaCode))
|
|
.LeftJoin<Order>((a, o) => a.AcceptTypeCode == o.AcceptTypeCode && a.HotspotId == o.HotspotId && o.AreaCode.StartsWith(a.AreaCode))
|
|
.Where((a, o) => a.AnalysisId == dto.AnalysisId)
|
|
.Where((a, o) => a.AnalysisId == dto.AnalysisId)
|
|
.Where((a, o) => o.CreationTime >= a.StartTime && o.CreationTime <= a.EndTime)
|
|
.Where((a, o) => o.CreationTime >= a.StartTime && o.CreationTime <= a.EndTime)
|
|
|
|
+ .Where((a, o) => filterTitle.Any(s => o.Title.Contains(s)) == false)
|
|
.Select((a, o) => o);
|
|
.Select((a, o) => o);
|
|
return query;
|
|
return query;
|
|
}
|
|
}
|
|
@@ -122,6 +129,11 @@ namespace Hotline.Application.OrderApp
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
public async Task<object> ReportQuery(OrderAnalysisDetailDto dto, CancellationToken cancellationToken)
|
|
public async Task<object> ReportQuery(OrderAnalysisDetailDto dto, CancellationToken cancellationToken)
|
|
{
|
|
{
|
|
|
|
+ List<string> filterTitle = new List<string>();
|
|
|
|
+ filterTitle.Add("无声");
|
|
|
|
+ filterTitle.Add("骚扰");
|
|
|
|
+ filterTitle.Add("错拨");
|
|
|
|
+ filterTitle.Add("测试");
|
|
|
|
|
|
var analysis = await _orderAnalysisRepository.Queryable()
|
|
var analysis = await _orderAnalysisRepository.Queryable()
|
|
.Where(x => x.AnalysisId == dto.AnalysisId)
|
|
.Where(x => x.AnalysisId == dto.AnalysisId)
|
|
@@ -132,6 +144,7 @@ namespace Hotline.Application.OrderApp
|
|
.LeftJoin<Order>((a, o) => a.AcceptTypeCode == o.AcceptTypeCode && a.HotspotId == o.HotspotId && o.AreaCode.StartsWith(a.AreaCode))
|
|
.LeftJoin<Order>((a, o) => a.AcceptTypeCode == o.AcceptTypeCode && a.HotspotId == o.HotspotId && o.AreaCode.StartsWith(a.AreaCode))
|
|
.Where((a, o) => a.AnalysisId == dto.AnalysisId)
|
|
.Where((a, o) => a.AnalysisId == dto.AnalysisId)
|
|
.Where((a, o) => o.CreationTime >= a.StartTime && o.CreationTime <= a.StartTime)
|
|
.Where((a, o) => o.CreationTime >= a.StartTime && o.CreationTime <= a.StartTime)
|
|
|
|
+ .Where((a, o) => filterTitle.Any(s => o.Title.Contains(s)) == false)
|
|
.Select((a, o) => o).ToListAsync(cancellationToken);
|
|
.Select((a, o) => o).ToListAsync(cancellationToken);
|
|
var introductionData = orders.GroupBy(x => x.SourceChannel)
|
|
var introductionData = orders.GroupBy(x => x.SourceChannel)
|
|
.Select(x => new { SourceChannel = x.Key, Num = x.Count(), Rate = Math.Round((x.Count() / (double)orders.Count) * 100, 2) })
|
|
.Select(x => new { SourceChannel = x.Key, Num = x.Count(), Rate = Math.Round((x.Count() / (double)orders.Count) * 100, 2) })
|