using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Wood.Data.Repository; using Wood.Entity; using Wood.Entity.SystemManage; using Wood.Service.SystemManage.Dto; using Wood.Service.SystemManage.Param; namespace Wood.Service.SystemManage { /// /// 日志信息 /// public class LogService : ApiService { private readonly SqlSugarRepository _logLoginRepository; private readonly SqlSugarRepository _logJobRepository; private readonly SqlSugarRepository _logEventRepository; private readonly SqlSugarRepository _logExceptionRepository; private readonly SqlSugarRepository _logOperationRepository; private readonly SqlSugarRepository _logDiffRepository; public LogService(SqlSugarRepository logLoginRepository, SqlSugarRepository logJobRepository, SqlSugarRepository logEventRepository, SqlSugarRepository logExceptionRepository, SqlSugarRepository logDiffRepository, SqlSugarRepository logOperationRepository) { _logLoginRepository = logLoginRepository; _logJobRepository = logJobRepository; _logEventRepository = logEventRepository; _logExceptionRepository = logExceptionRepository; _logDiffRepository = logDiffRepository; _logOperationRepository = logOperationRepository; } /// /// 登录日志 /// /// /// public async Task> PagedLogin(LogLoginParam param) { return await _logLoginRepository.AsQueryable() .Where(it => it.CreateTime >= param.StartTime && it.CreateTime <= param.EndTime) .WhereIF(!string.IsNullOrEmpty(param.UserName), it => it.Account == param.UserName!) .Select(it => new LogLoginDto() { Id = it.Id.SelectAll() }) .ToPagedListAsync(param); } /// /// job日志 /// /// /// public async Task> PagedJob(LogJobParam param) { return await _logJobRepository.AsQueryable() .Where(it => it.CreateTime >= param.StartTime && it.CreateTime <= param.EndTime) .WhereIF(!string.IsNullOrEmpty(param.JobId), it => it.JobId == param.JobId!) .ToPagedListAsync(param); } /// /// 事件日志 /// /// /// public async Task> PagedEvent(LogEventParam param) { return await _logEventRepository.AsQueryable() .Where(it => it.CreateTime >= param.StartTime && it.CreateTime <= param.EndTime) .WhereIF(!string.IsNullOrEmpty(param.EventName), it => it.EventName == param.EventName!) .ToPagedListAsync(param); } /// /// 错误日志 /// /// /// public async Task> PagedException(LogExceptionParam param) { return await _logExceptionRepository.AsQueryable() .Where(it => it.CreateTime >= param.StartTime && it.CreateTime <= param.EndTime) .WhereIF(!string.IsNullOrEmpty(param.ControllerName), it => it.ControllerName == param.ControllerName!) .WhereIF(!string.IsNullOrEmpty(param.RequestUrl), it => it.RequestUrl == param.RequestUrl!) .WhereIF(!string.IsNullOrEmpty(param.Source), it => it.Source == param.Source!) .WhereIF(!string.IsNullOrEmpty(param.ActionName), it => it.ActionName == param.ActionName!) .ToPagedListAsync(param); } /// /// 操作日志 /// /// /// public async Task> PagedOperation(LogOperationParam param) { return await _logOperationRepository.AsQueryable() .Where(it => it.CreateTime >= param.StartTime && it.CreateTime <= param.EndTime) .WhereIF(!string.IsNullOrEmpty(param.ControllerName), it => it.ControllerName == param.ControllerName!) .WhereIF(!string.IsNullOrEmpty(param.ActionName), it => it.ActionName == param.ActionName!) .WhereIF(!string.IsNullOrEmpty(param.RequestUrl), it => it.RequestUrl == param.RequestUrl!) .ToPagedListAsync(param); } /// /// 差异日志 /// /// /// public async Task> PagedDiff(LogDiffParam param) { return await _logDiffRepository.AsQueryable() .Where(it => it.CreateTime >= param.StartTime && it.CreateTime <= param.EndTime) .WhereIF(!string.IsNullOrEmpty(param.TableName), it => it.Tables!.Contains(param.TableName!)) .ToPagedListAsync(param); } } }