浏览代码

信件来源统计列表 未改完

田爽 10 月之前
父节点
当前提交
a43cb8d9ac

+ 2 - 2
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -3318,8 +3318,8 @@ namespace Hotline.Api.Controllers.Bi
 		[HttpPost("order_source_list/_export")]
 		public async Task<FileStreamResult> QueryOrderSourceReportList([FromBody] ExportExcelDto<QueryOrderSourceRequest> dto)
 		{
-            //var data = await _orderApplication.QueryOrderSourceList(dto.QueryDto);
-            var data = new ExpandoObject();
+            var data = await _orderApplication.QueryOrderSourceList(dto.QueryDto);
+            //var data = new ExpandoObject();
 			dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
 			var dtos = data
 				.Select(stu => _mapper.Map(stu, typeof(OrderSourceTimeVo), dynamicClass))

+ 1 - 1
src/Hotline.Application/Orders/IOrderApplication.cs

@@ -88,7 +88,7 @@ namespace Hotline.Application.Orders
         /// </summary>
 		/// <param name="dto"></param>
 		/// <returns></returns>
-		Task<DataTable> QueryOrderSourceList(QueryOrderSourceRequest dto);
+		Task<List<dynamic>> QueryOrderSourceList(QueryOrderSourceRequest dto);
 
         /// <summary>
         /// 信件来源统计列表表头

+ 34 - 32
src/Hotline.Application/Orders/OrderApplication.cs

@@ -496,7 +496,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 	/// </summary>
 	/// <param name="dto"></param>
 	/// <returns></returns>
-	public async Task<DataTable> QueryOrderSourceList(QueryOrderSourceRequest dto)
+	public async Task<List<dynamic>> QueryOrderSourceList(QueryOrderSourceRequest dto)
     {
 	    if (dto.EndTime.HasValue)
 		    dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
@@ -520,37 +520,39 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 Num = SqlFunc.AggregateCount(d.Id)
             }).ToListAsync() ;
         var header = await QueryOrderSourceHeaderList(dto);
-   //     List<dynamic> res = new List<dynamic>();
-   //     foreach (var item in time)
-   //     {
-   //         foreach (var item1 in header)
-   //         {
-   //             dynamic dynamicObj = new ExpandoObject();
-   //             dynamicObj.Name = item1.Code;
-   //             if ("Subtotal".Equals(item1.Code))
-   //             {
-   //                 var sum = data.Where(x => x.Time == item.Time).Sum(x => x.Num);
-   //                 dynamicObj.GetNumber = new Func<int>(() => sum);
-
-			//		continue;
-   //             }
-   //             if ("Time".Equals(item1.Code))
-   //             {
-   //                 continue;
-   //             }
-   //             var timeVo = data.FirstOrDefault(x => x.Time == item.Time && x.Source == item1.Header);
-   //             if (timeVo != null)
-   //             {
-	  //              dynamicObj.GetNumber = new Func<int>(() => timeVo.Num);
-   //             }
-   //             else
-   //             {
-	  //              dynamicObj.GetNumber = 0;
-   //             }
-   //         }
-			//res.Add()
-//}
-        return new DataTable();
+        List<dynamic> res = new List<dynamic>();
+        foreach (var item in time)
+        {
+	        List<dynamic> hraderRes = new List<dynamic>();
+			foreach (var item1 in header)
+            {
+                dynamic dynamicObj = new ExpandoObject();
+                dynamicObj.Name = item1.Code;
+                if ("Subtotal".Equals(item1.Code))
+                {
+                    var sum = data.Where(x => x.Time == item.Time).Sum(x => x.Num);
+                    dynamicObj.GetNumber = new Func<int>(() => sum);
+
+                    continue;
+                }
+                if ("Time".Equals(item1.Code))
+                {
+                    continue;
+                }
+                var timeVo = data.FirstOrDefault(x => x.Time == item.Time && x.Source == item1.Header);
+                if (timeVo != null)
+                {
+                    dynamicObj.GetNumber = new Func<int>(() => timeVo.Num);
+                }
+                else
+                {
+                    dynamicObj.GetNumber = 0;
+                }
+                hraderRes.Add(dynamicObj);
+			}
+            res.Add(hraderRes);
+        }
+        return res;
 	}
 
 	/// <summary>