2018-11-02 20:04:45 +08:00
using Longbow ;
using Longbow.Configuration ;
2018-10-21 10:02:59 +08:00
using System ;
2018-10-19 23:09:52 +08:00
using System.Collections.Generic ;
2016-11-05 15:26:42 +08:00
namespace Bootstrap.DataAccess
{
2018-10-21 10:02:59 +08:00
/// <summary>
///
/// </summary>
2016-11-05 15:26:42 +08:00
public class Log
{
/// <summary>
/// 获得/设置 操作日志主键ID
/// </summary>
2018-10-30 13:07:29 +08:00
public string Id { get ; set ; }
2016-11-05 15:26:42 +08:00
/// <summary>
/// 获得/设置 操作类型
/// </summary>
public string CRUD { get ; set ; }
/// <summary>
/// 获得/设置 用户名称
/// </summary>
public string UserName { get ; set ; }
/// <summary>
/// 获得/设置 操作时间
/// </summary>
public DateTime LogTime { get ; set ; }
/// <summary>
/// 获得/设置 客户端IP
/// </summary>
public string ClientIp { get ; set ; }
/// <summary>
/// 获取/设置 客户端信息
/// </summary>
public string ClientAgent { get ; set ; }
/// <summary>
/// 获取/设置 请求网址
/// </summary>
public string RequestUrl { get ; set ; }
2019-01-11 23:20:28 +08:00
2018-10-19 23:09:52 +08:00
/// <summary>
/// 查询所有日志信息
/// </summary>
/// <param name="tId"></param>
/// <returns></returns>
2019-01-14 12:33:09 +08:00
public virtual IEnumerable < Log > Retrieves ( ) = > DbManager . Create ( ) . Fetch < Log > ( "select * from Logs where LogTime > @0 order by LogTime desc" , DateTime . Now . AddDays ( - 7 ) ) ;
2019-01-11 23:20:28 +08:00
2018-10-21 10:02:59 +08:00
/// <summary>
/// 删除日志信息
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
2018-10-30 22:11:27 +08:00
private static void DeleteLogAsync ( )
2018-10-21 10:02:59 +08:00
{
System . Threading . Tasks . Task . Run ( ( ) = >
{
2019-01-11 23:20:28 +08:00
var dtm = DateTime . Now . AddMonths ( 0 - LgbConvert . ReadValue ( ConfigurationManager . AppSettings [ "KeepLogsPeriod" ] , 1 ) ) ;
2019-01-14 12:33:09 +08:00
DbManager . Create ( ) . Execute ( "delete from Logs where LogTime < @0" , dtm ) ;
2018-10-21 10:02:59 +08:00
} ) ;
}
2019-01-11 23:20:28 +08:00
2018-10-19 23:09:52 +08:00
/// <summary>
/// 保存新增的日志信息
/// </summary>
/// <param name="p"></param>
/// <returns></returns>
2019-01-11 23:20:28 +08:00
public virtual bool Save ( Log p )
2018-10-21 10:02:59 +08:00
{
2018-11-02 20:04:45 +08:00
if ( p = = null ) throw new ArgumentNullException ( nameof ( p ) ) ;
2018-10-21 10:02:59 +08:00
DeleteLogAsync ( ) ;
2019-01-11 23:20:28 +08:00
p . LogTime = DateTime . Now ;
2019-01-14 12:33:09 +08:00
DbManager . Create ( ) . Save ( p ) ;
2019-01-11 23:20:28 +08:00
return true ;
2018-10-21 10:02:59 +08:00
}
2016-11-05 15:26:42 +08:00
}
}