yz_server/Server/Controllers/DataOverview/DataViewController.cs

104 lines
3.2 KiB
C#

using Common.Models.SubTables;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
namespace Server.Controllers.DataOverviewController
{
public class DataViewController : DefaultController
{
/// <summary>
/// 今日数据
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetTodayData()
{
var MaxTime = DateTime.Now; //当前时间
var MinTime = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());//当天0点
var data = Db.Queryable<DataOverview>().Where(f => f.Date == DateTime.Now.Date)
.SplitTable(MinTime, MaxTime).First();
if (data == null) data = new DataOverview();
return PutData(data);
}
/// <summary>
/// 昨日数据
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetYesterdayData()
{
var data = Db.Queryable<DataOverview>().Where(f => f.Date == DateTime.Now.AddDays(-1)).First();
if (data == null)
data = new DataOverview();
return PutData(data);
}
/// <summary>
/// 获取昨日/今日数据对比
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetViewData()
{
var yestoday = Db.Queryable<DataOverview>().Where(f => f.Date == DateTime.Now.AddDays(-1)).First();
if (yestoday == null)
{
yestoday = new DataOverview();
}
var MaxTime = DateTime.Now;
var MinTime = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());
var today = Db.Queryable<DataOverview>().Where(f => f.Date == DateTime.Now.Date)
.SplitTable(MinTime, MaxTime).First();
if (today == null) today = new DataOverview();
return PutData(new {today = today, yestoday = yestoday });
}
/// <summary>
/// 指定范围时间数据
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetDataOverview()
{
var MinTime = GetTime("MinTime");
var MaxTime = GetTime("MaxTime");
if (MinTime == DateTime.MinValue) MinTime = DateTime.Now.AddMonths(-2);
if (MaxTime == DateTime.MinValue) MaxTime = DateTime.Now;
var exp = Expressionable.Create<DataOverview>();
exp.And(f => f.Date > MinTime && f.Date < MaxTime);
var PageIndex = GetInt("PageIndex");
var PageSzie = GetInt("PageSize");
var tNumber = 0;
var DataList = Db.Queryable<DataOverview>().Where(exp.ToExpression())
.SplitTable(MinTime,MaxTime)
.ToPageList(PageIndex, PageSzie, ref tNumber);
if (DataList == null)
return PutData(new PageResult<DataOverview>(new List<DataOverview>(), tNumber, PageSzie, PageIndex));
return PutData(new PageResult<DataOverview>(DataList, tNumber, PageSzie, PageIndex));
}
}
}