using Infrastructure.Attribute;
using ZR.Model;
using ZR.Model.Business;
using ZR.Model.Business.Dto;
using ZR.Repository;
using ZR.Service.Business.IBusinessService;
namespace ZR.Service.Business
{
///
/// 审计日志Service业务层处理
///
[AppService(ServiceType = typeof(IOdfAuditLogsService), ServiceLifetime = LifeTime.Transient)]
public class OdfAuditLogsService : BaseService, IOdfAuditLogsService
{
///
/// 分页查询审计日志列表,支持时间范围、操作类型、表名筛选
///
public PagedInfo GetList(OdfAuditLogsQueryDto parm)
{
var predicate = Expressionable.Create();
predicate = predicate.AndIF(parm.BeginTime != null, it => it.OperationTime >= parm.BeginTime);
predicate = predicate.AndIF(parm.EndTime != null, it => it.OperationTime <= parm.EndTime);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.OperationType), it => it.OperationType == parm.OperationType);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.TableName), it => it.TableName == parm.TableName);
var total = 0;
var list = Queryable()
.Where(predicate.ToExpression())
.OrderByDescending(it => it.OperationTime)
.ToPageList(parm.PageNum, parm.PageSize, ref total);
return new PagedInfo
{
Result = list,
TotalNum = total,
PageIndex = parm.PageNum,
PageSize = parm.PageSize
};
}
///
/// 写入审计日志记录
///
public int AddLog(OdfAuditLogs log)
{
log.OperationTime ??= DateTime.Now;
return Insert(log);
}
}
}