|
@@ -35,6 +35,7 @@ using XF.Domain.Repository;
|
|
|
using Hotline.Repository.SqlSugar.System;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Hotline.Share.Dtos.Bi;
|
|
|
+using System.Net;
|
|
|
|
|
|
namespace Hotline.Application.Orders;
|
|
|
|
|
@@ -605,21 +606,17 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
if (dto.EndTime.HasValue)
|
|
|
dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
- var stTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 00:00:00");
|
|
|
- List<Kv> times = new List<Kv>();
|
|
|
- for (int i = 0; i < 24; i++)
|
|
|
- {
|
|
|
- var item = new Kv { Key = stTime.AddHours(i).ToString("hh:mm"), Value = stTime.AddHours(i + 1).AddMinutes(-1).ToString("hh:mm") };
|
|
|
- }
|
|
|
- var data = await _orderRepository.Queryable()
|
|
|
+
|
|
|
+ var data =await _orderRepository.Queryable()
|
|
|
.WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
|
|
|
.WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
|
|
|
.WhereIF(dto.IdentityType.HasValue, d => d.IdentityType == dto.IdentityType)
|
|
|
.Where(d => d.SourceChannel != null && d.SourceChannel != "")
|
|
|
- .GroupBy(d => new { Time = d.CreationTime.ToString("hh:mm"), d.SourceChannel })
|
|
|
+ .GroupBy(d => new { Time = d.CreationTime.ToString("HH"), d.SourceChannel })
|
|
|
.Select(d => new OrderSourceHeaderVo
|
|
|
{
|
|
|
- Time = d.CreationTime.ToString("hh:mm"),
|
|
|
+ Time = d.CreationTime.ToString("HH")+":00 - " + d.CreationTime.ToString("HH")+":59",
|
|
|
+ TimeSort = d.CreationTime.ToString("HH"),
|
|
|
Phone = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "RGDH", 1, 0)),
|
|
|
Web = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "YTW", 1, 0)),
|
|
|
Rests = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "QT", 1, 0)),
|
|
@@ -638,22 +635,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
Platform110 = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "YB110", 1, 0)),
|
|
|
NoService = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "SMZXBNCS", 1, 0)),
|
|
|
Iyb = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "IYB", 1, 0))
|
|
|
- }).ToListAsync();
|
|
|
-
|
|
|
- // var res = (from t1 in times
|
|
|
- //join t2 in data on t1.Key < t2.Time
|
|
|
- // into t1_t2
|
|
|
- // from item in t1_t2.DefaultIfEmpty()
|
|
|
- // select new
|
|
|
- // {
|
|
|
- // UserId = t1.UserId,
|
|
|
- // UserName = t1.UserName,
|
|
|
- // SendOrderNum = t1.SendOrderNum,
|
|
|
- // NoSendOrderNum = t1.NoSendOrderNum,
|
|
|
- // ReSendOrderNum = t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault(),
|
|
|
- // ChainRate = t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault() > 0 ?
|
|
|
- // ((double.Parse(t1.SendOrderNum.ToString()) - double.Parse(t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault().ToString())) / double.Parse(t1.SendOrderNum.ToString()) * 100).ToString("F2") + "%" : "100.00%",
|
|
|
- // }).ToList();
|
|
|
+ }).OrderBy(d=> d.TimeSort).ToListAsync();
|
|
|
|
|
|
var totalVo = new OrderSourceHeaderVo()
|
|
|
{
|