统计报表
parent
3e028d9e8c
commit
99d2a59be1
|
|
@ -1,4 +1,5 @@
|
|||
using Infrastructure;
|
||||
using DocumentFormat.OpenXml.Bibliography;
|
||||
using Infrastructure;
|
||||
using Infrastructure.Cache;
|
||||
using Infrastructure.CloudSdk.minio;
|
||||
using Infrastructure.Helpers;
|
||||
|
|
@ -194,17 +195,26 @@ namespace OpenAuth.App.ServiceApp
|
|||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaTaskAiLog>>>> GetAiLogList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaTaskAiLogResp>>>> GetAiLogList(int page, int limit, string key)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaTaskAiLog.AsQueryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(key), (a) => a.Data.Contains(key))
|
||||
.LeftJoin<LasaTaskAi>((a,b)=>a.AiTaskId==b.Id)
|
||||
.WhereIF(!string.IsNullOrEmpty(key), (a,b) => a.Data.Contains(key))
|
||||
.Select((a,b)=>new LasaTaskAiLogResp()
|
||||
{
|
||||
AiTaskId = a.AiTaskId,
|
||||
State = a.State,
|
||||
CreateTime = a.CreateTime,
|
||||
Data = a.Data,
|
||||
Platform = b.Platform,
|
||||
})
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaTaskAiLog>>>
|
||||
return new Response<PageInfo<List<LasaTaskAiLogResp>>>
|
||||
{
|
||||
Result = new PageInfo<List<LasaTaskAiLog>> { Items = list, Total = totalCount }
|
||||
Result = new PageInfo<List<LasaTaskAiLogResp>> { Items = list, Total = totalCount }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -303,8 +313,8 @@ namespace OpenAuth.App.ServiceApp
|
|||
var tomorrow = today.AddDays(1);
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list =await db.LasaTaskAi.AsQueryable()
|
||||
.LeftJoin<LasaTaskAiLog>((t,p)=>t.AiTaskId==p.Id)
|
||||
var list = await db.LasaTaskAi.AsQueryable()
|
||||
.LeftJoin<LasaTaskAiLog>((t, p) => t.AiTaskId == p.Id)
|
||||
.Where((t, p) => p.CreateTime >= today && p.CreateTime < tomorrow)
|
||||
.GroupBy((t, p) => new { t.Platform, t.State })
|
||||
.Select((t, p) => new
|
||||
|
|
@ -314,7 +324,8 @@ namespace OpenAuth.App.ServiceApp
|
|||
TodayPushCount = SqlFunc.AggregateCount(p.Id),
|
||||
TodaySuccessCount = SqlFunc.AggregateSum(
|
||||
SqlFunc.IIF(p.State == true, 1, 0)
|
||||
)}).ToListAsync();
|
||||
)
|
||||
}).ToListAsync();
|
||||
|
||||
// 计算成功率
|
||||
var result = list.Select(x => new PlatformDashboardResp
|
||||
|
|
@ -323,7 +334,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
ConnectState = x.ConnectState,
|
||||
TodayPushCount = x.TodayPushCount,
|
||||
TodaySuccessCount = x.TodaySuccessCount,
|
||||
SuccessRate = x.TodayPushCount == 0? 0: Math.Round((decimal)x.TodaySuccessCount / x.TodayPushCount * 100, 2)
|
||||
SuccessRate = x.TodayPushCount == 0 ? 0 : Math.Round((decimal)x.TodaySuccessCount / x.TodayPushCount * 100, 2)
|
||||
}).ToList();
|
||||
|
||||
|
||||
|
|
@ -334,6 +345,47 @@ namespace OpenAuth.App.ServiceApp
|
|||
};
|
||||
}
|
||||
}
|
||||
public async Task<Response<List<WeekPushChartResp>>> GetWeekPushChart()
|
||||
{
|
||||
// 本周一 00:00
|
||||
var weekStart = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + 1);
|
||||
// 下周一 00:00
|
||||
var weekEnd = weekStart.AddDays(7);
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
|
||||
var list = await db.LasaTaskAi.AsQueryable()
|
||||
.InnerJoin<LasaTaskAiLog>((t, p) => t.AiTaskId == p.AiTaskId)
|
||||
.Where((t, p) => p.CreateTime >= weekStart && p.CreateTime < weekEnd)
|
||||
.GroupBy((t, p) => new
|
||||
{
|
||||
Year = SqlFunc.DateValue(p.CreateTime, DateType.Year),
|
||||
Month = SqlFunc.DateValue(p.CreateTime, DateType.Month),
|
||||
Day = SqlFunc.DateValue(p.CreateTime, DateType.Day),
|
||||
t.Platform
|
||||
})
|
||||
.Select((t, p) => new WeekPushChartResp
|
||||
{
|
||||
Year = SqlFunc.DateValue(p.CreateTime, DateType.Year),
|
||||
Month = SqlFunc.DateValue(p.CreateTime, DateType.Month),
|
||||
Day = SqlFunc.DateValue(p.CreateTime, DateType.Day),
|
||||
Platform = t.Platform,
|
||||
PushCount = SqlFunc.AggregateCount(p.Id)
|
||||
}).MergeTable()
|
||||
.OrderBy(it => it.Year)
|
||||
.OrderBy(it => it.Month)
|
||||
.OrderBy(it => it.Day)
|
||||
.ToListAsync();
|
||||
return new Response<List<WeekPushChartResp>>
|
||||
{
|
||||
Result = list,
|
||||
Message = "获取数据成功"
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.Response
|
||||
{
|
||||
public class LasaTaskAiLogResp
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// ai任务id
|
||||
/// </summary>
|
||||
public string AiTaskId { get; set; }
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public bool State { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
/// <summary>
|
||||
/// 内容
|
||||
/// </summary>
|
||||
public string Data { get; set; }
|
||||
/// <summary>
|
||||
/// 平台名称
|
||||
/// </summary>
|
||||
public string Platform { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.Response
|
||||
{
|
||||
public class WeekPushChartResp
|
||||
{
|
||||
public int Year { get; set; }
|
||||
public int Month { get; set; }
|
||||
public int Day { get; set; }
|
||||
public string Platform { get; set; }
|
||||
public int PushCount { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -117,9 +117,9 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<PageInfo<List<LasaTaskAiLog>>>> GetAiLogList(int page, int limit, string key)
|
||||
public async Task<Response<PageInfo<List<LasaTaskAiLogResp>>>> GetAiLogList(int page, int limit, string key)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaTaskAiLog>>>();
|
||||
var result = new Response<PageInfo<List<LasaTaskAiLogResp>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetAiLogList(page, limit, key);
|
||||
|
|
@ -155,6 +155,26 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 统计图表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<List<WeekPushChartResp>>> GetWeekPushChart()
|
||||
{
|
||||
var result = new Response<List<WeekPushChartResp>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetWeekPushChart();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue