125 lines
4.0 KiB
C#
125 lines
4.0 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// 获取机器人信息
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost, ErrorFilter]
|
||
public WebResult GetRobotInfo()
|
||
{
|
||
var PageIndex = GetInt("PageIndex");
|
||
var PageSize = GetInt("PageSize");
|
||
var tNumber = 0;
|
||
|
||
var Keyword = GetString("Keyword");
|
||
|
||
var exp = Expressionable.Create<Robot>();
|
||
|
||
if (!string.IsNullOrEmpty(Keyword))
|
||
{
|
||
exp.And(f => f.Nickname.Contains(Keyword));
|
||
}
|
||
var DataList = Db.Queryable<Robot>().Where(exp.ToExpression())
|
||
.Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname })
|
||
.ToPageList(PageIndex, PageSize, ref tNumber);
|
||
|
||
var res = new PageResult<RobotInfo>(DataList, tNumber, PageSize, PageIndex);
|
||
return PutData(res);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询运行日志
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[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<Log>();
|
||
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>("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<Log>()
|
||
.SplitTable(MinTime, MaxTime)
|
||
.LeftJoin<Robot>((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<RunLogShow>(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<Log>(CreateTime);
|
||
|
||
var res = Db.Deleteable<Log>().Where(f=>f.Id == Id).SplitTable(i => i.InTableNames(tableName)).ExecuteCommand();
|
||
|
||
if (res > 0)
|
||
{
|
||
Db.OnLog("服务端", "删除日志");
|
||
return PutSuccess;
|
||
}
|
||
else
|
||
return PutData("删除失败,没有此日志");
|
||
}
|
||
}
|
||
}
|