yz_server/Server/Controllers/Help/RunLogController.cs

125 lines
4.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("删除失败,没有此日志");
}
}
}