using Common.DbExtends.Extends;
using Common.Models.Enums;
using Common.Models.SubTables;
using Common.Models.UnqTables;
using Server.MyClass.Views;
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.Help
{
public class RunLogController : DefaultController
{
///
/// 获取机器人信息
///
///
[HttpPost, ErrorFilter]
public WebResult GetRobotInfo()
{
var PageIndex = GetInt("PageIndex");
var PageSize = GetInt("PageSize");
var tNumber = 0;
var Keyword = GetString("Keyword");
var exp = Expressionable.Create();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Nickname.Contains(Keyword));
}
var DataList = Db.Queryable().Where(exp.ToExpression())
.Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname })
.ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
///
/// 查询运行日志
///
///
[HttpPost, ErrorFilter]
public WebResult GetRunLog()
{
var MinTime = GetTime("MinTime");
var MaxTime = GetTime("MaxTime");
if (MinTime == DateTime.MinValue) MinTime = DateTime.Now.AddDays(-7);
if (MaxTime == DateTime.MinValue) MaxTime = DateTime.Now;
var exp = Expressionable.Create();
exp.And(f => f.CreateTime > MinTime && f.CreateTime < MaxTime);
var RobotId = GetInt("RobotId");
if (RobotId > 0) exp.And(f => f.RobotId == RobotId);
/*
* 日志类型:1:正常 2:错误 3:警告
*/
var LogType = GetEnum("LogType");
if (LogType > 0) exp.And(f => f.LogType == LogType);
var Keyword = GetString("Keyword");
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Message.Contains(Keyword));
}
var PageIndex = GetInt("PageIndex", true);
var PageSize = GetInt("PageSize", true);
var tNumber = 0;
var DataList = Db.Queryable()
.SplitTable(MinTime, MaxTime)
.LeftJoin((f, r) => f.RobotId == r.Id)
.Where(exp.ToExpression())
.Select((f, r) => new RunLogShow
{
Id = f.Id,
CreateTime = f.CreateTime,
LogType = f.LogType,
Message = f.Message,
RobotId = f.RobotId,
RobotName = r.Nickname,
Sender = f.Sender
})
.ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
[HttpPost, ErrorFilter]
public WebResult DeleteLog()
{
var Id = GetLong("Id", true);
var CreateTime = GetTime("CreateTime", true);
var tableName = Db.GetTableName(CreateTime);
var res = Db.Deleteable().Where(f=>f.Id == Id).SplitTable(i => i.InTableNames(tableName)).ExecuteCommand();
if (res > 0)
{
Db.OnLog("服务端", "删除日志");
return PutSuccess;
}
else
return PutData("删除失败,没有此日志");
}
}
}