/// <summary> /// 根据查询条件生成查询对象 /// </summary> /// <param name="filter">查询条件</param> /// <returns></returns> IQuery CreateQueryObject(JobServerHostFilterDto filter) { if (filter == null) { return(null); } IQuery query = QueryFactory.Create(filter); if (!filter.Servers.IsNullOrEmpty()) { query.In <JobServerHostQuery>(c => c.Server, filter.Servers); } if (!filter.Jobs.IsNullOrEmpty()) { query.In <JobServerHostQuery>(c => c.Job, filter.Jobs); } if (filter.RunStatus.HasValue) { query.Equal <JobServerHostQuery>(c => c.RunStatus, filter.RunStatus.Value); } if (!filter.ServerKey.IsNullOrEmpty()) { IQuery serverQuery = QueryFactory.Create <ServerNodeQuery>(); serverQuery.And <ServerNodeQuery>(QueryOperator.OR, CriteriaOperator.Like, filter.ServerKey, null, c => c.Name, c => c.Host); serverQuery.AddQueryFields <ServerNodeQuery>(c => c.Id); query.And <JobServerHostQuery>(c => c.Server, CriteriaOperator.In, serverQuery); } if (!filter.JobKey.IsNullOrEmpty()) { IQuery jobQuery = QueryFactory.Create <JobQuery>(); jobQuery.And <JobQuery>(QueryOperator.OR, CriteriaOperator.Like, filter.JobKey, null, c => c.Name); jobQuery.AddQueryFields <JobQuery>(c => c.Id); query.And <JobServerHostQuery>(c => c.Job, CriteriaOperator.In, jobQuery); } return(query); }
/// <summary> /// 获取工作承载节点列表 /// </summary> /// <param name="filter">查询条件</param> /// <returns></returns> public List <JobServerHostDto> GetJobServerHostList(JobServerHostFilterDto filter) { var jobServerHostList = jobServerHostService.GetJobServerHostList(CreateQueryObject(filter)); return(jobServerHostList.Select(c => c.MapTo <JobServerHostDto>()).ToList()); }
/// <summary> /// 获取工作承载节点 /// </summary> /// <param name="filter">查询条件</param> /// <returns></returns> public JobServerHostDto GetJobServerHost(JobServerHostFilterDto filter) { var jobServerHost = jobServerHostService.GetJobServerHost(CreateQueryObject(filter)); return(jobServerHost.MapTo <JobServerHostDto>()); }