using SqlSugar; using WMS.BZModels; using WMS.BZModels.Dto.Log; using WMS.BZModels.Models.Log; using WMS.BZSqlSugar; using WMS.Info; using Extensions = WMS.BZModels.Extensions; namespace WMS.BZServices.KLHC { /// /// 日志中心服务 /// public class LogHubService { private readonly Repository _logHubRepository; public LogHubService(Repository logHubRepository) { _logHubRepository = logHubRepository; } public PagedInfo GetPageList(Pagination pagination, LogInfoModeQueryDto wCSTaskinfoQueryDto) { var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.KeyWord), m => m.SourceMethod.ToString().Contains(wCSTaskinfoQueryDto.KeyWord)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.LogLevel), m => m.LogLevel.Equals(wCSTaskinfoQueryDto.LogLevel)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.LogSource), m => m.LogSource.ToString().Contains(wCSTaskinfoQueryDto.LogSource)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceSystem), m => m.SourceSystem.ToString().Contains(wCSTaskinfoQueryDto.SourceSystem)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceClass), m => m.SourceClass.ToString().Contains(wCSTaskinfoQueryDto.SourceClass)); predicate = predicate.AndIF(!string.IsNullOrEmpty(wCSTaskinfoQueryDto?.SourceMethod), m => m.SourceMethod.ToString().Contains(wCSTaskinfoQueryDto.SourceMethod)); var list = _logHubRepository.Queryable().With(SqlWith.NoLock).Where(predicate.ToExpression()).ToPage(pagination); return list; } /// /// 获取日志级别列表 /// /// public List GetLogLevelList() { return Extensions.EnumToList(); } /// /// 获取日志来源列表 /// /// public List GetLogSourceList() { var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.LogSource).Select(x => new EnumEntity2 { id = x.LogSource.ToString(), text = x.LogSource.ToString() }).ToList(); return list; } /// /// 获取日志来源系统列表 /// /// public List GetSourceSystemList() { var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceSystem).Select(x => new EnumEntity2 { id = x.SourceSystem.ToString(), text = x.SourceSystem.ToString() }).ToList(); return list; } /// /// 获取日志来源类列表 /// /// public List GetSourceClassList() { var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceClass).Select(x => new EnumEntity2 { id = x.SourceClass.ToString(), text = x.SourceClass.ToString() }).ToList(); return list; } /// /// 获取日志来源方法列表 /// /// public List GetSourceMethodList() { var list = _logHubRepository.Queryable().With(SqlWith.NoLock).GroupBy(x => x.SourceMethod).Select(x => new EnumEntity2 { id = x.SourceMethod.ToString(), text = x.SourceMethod.ToString() }).ToList(); return list; } } }