/// <summary> /// 查询用户访问分页数据 /// </summary> /// <param name="po"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="ip"></param> /// <returns></returns> public virtual Page <Trace> RetrievePages(PaginationOption po, DateTime?startTime, DateTime?endTime, string?ip) { if (string.IsNullOrEmpty(po.Order)) { po.Order = "desc"; } if (string.IsNullOrEmpty(po.Sort)) { po.Sort = "LogTime"; } var sql = new Sql("select * from Traces"); if (startTime.HasValue) { sql.Where("LogTime > @0", startTime.Value); } if (endTime.HasValue) { sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1)); } if (startTime == null && endTime == null) { sql.Where("LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod())); } if (!string.IsNullOrEmpty(ip)) { sql.Where("IP = @0", ip); } sql.OrderBy($"{po.Sort} {po.Order}"); using var db = DbManager.Create(); return(db.Page <Trace>(po.PageIndex, po.Limit, sql)); }
/// <summary> /// /// </summary> /// <param name="po"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="ip"></param> /// <returns></returns> public virtual Page <Trace> RetrievePages(PaginationOption po, DateTime?startTime, DateTime?endTime, string ip) { var sql = new Sql("select UserName, LogTime, IP, Browser, OS, City, RequestUrl from Traces"); if (startTime.HasValue) { sql.Where("LogTime > @0", startTime.Value); } if (endTime.HasValue) { sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1)); } if (startTime == null && endTime == null) { sql.Where("LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod())); } if (!string.IsNullOrEmpty(ip)) { sql.Where("IP = @0", ip); } sql.OrderBy($"{po.Sort} {po.Order}"); return(DbManager.Create().Page <Trace>(po.PageIndex, po.Limit, sql)); }
private static void ClearTraces() => System.Threading.Tasks.Task.Run(() => { DbManager.Create().Execute("delete from Traces where LogTime < @0", DateTime.Now.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod())); });
public void RetrieveAccessLogPeriod_Ok() { Assert.Equal(1, DictHelper.RetrieveAccessLogPeriod()); }