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