| | |
| | | /// 任务查询处理器 |
| | | /// </summary> |
| | | public class TaskInfoQueryHandler( |
| | | IRepository<TaskInfo> rep |
| | | IRepository<TaskInfo> rep, |
| | | IRepository<DictionaryData> repDictionaryData |
| | | ) : |
| | | IRequestHandler<GetTaskInfoQuery, GetTaskInfoQueryResult>, |
| | | IRequestHandler<GetTaskInfosQuery, PagedListQueryResult<GetTaskInfosQueryResultItem>> |
| | | |
| | | { |
| | | private readonly IRepository<TaskInfo> rep = rep; |
| | | private readonly IRepository<DictionaryData> repDictionaryData = repDictionaryData; |
| | | |
| | | /// <summary> |
| | | /// 查询任务详情 |
| | |
| | | if (request.Keywords.IsNotNull()) |
| | | { |
| | | q = q.Where(it => it.Name.Contains(request.Keywords)); |
| | | } |
| | | if (request.EnterpriseId.HasValue) |
| | | { |
| | | q = q.Where(it => it.EnterpriseId == request.EnterpriseId); |
| | | } |
| | | if (request.BeginTime.HasValue && request.EndTime.HasValue) |
| | | { |
| | |
| | | { |
| | | q = q.Where(it => it.RecommendStatus == request.RecommendStatus); |
| | | } |
| | | var s = from t in q.Include(it => it.Province).Include(it => it.City) |
| | | join tu in rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() on t.Id equals tu.TaskInfoId into tug |
| | | join tb in rep.Change<TaskInfoBenefit>().AsQueryable().AsNoTracking().Include(it => it.Benefit) on t.Id equals tb.TaskInfoId into tbg |
| | | join tc in rep.Change<TaskInfoCredentialLimit>().AsQueryable().AsNoTracking().Include(it => it.Type) on t.Id equals tc.TaskInfoId into tcg |
| | | var s = from t in q |
| | | select new GetTaskInfosQueryResultItem |
| | | { |
| | | Id = t.Id, |
| | |
| | | BillingMethod = t.BillingMethod, |
| | | ServiceFee = t.ServiceFee, |
| | | SettlementCycle = t.SettlementCycle, |
| | | Benefits = tbg.Select(it => new GetTaskInfoQueryResultBenefit |
| | | Benefits = t.Benefits.Select(it => new GetTaskInfoQueryResultBenefit |
| | | { |
| | | BenefitCode = it.BenefitCode, |
| | | BenefitContent = it.Benefit.Content |
| | | }).ToList(), |
| | | GenderLimit = t.GenderLimit, |
| | | CredentialLimits = tcg.Select(it => new GetTaskInfoQueryResultCredentialLimit |
| | | CredentialLimits = t.CredentialLimits.Select(it => new GetTaskInfoQueryResultCredentialLimit |
| | | { |
| | | TypeCode = it.TypeCode, |
| | | TypeContent = it.Type.Content |
| | | }).ToList(), |
| | | ProvinceCode = t.ProvinceCode, |
| | | ProvinceContent =t.Province.Content, |
| | | ProvinceContent = t.Province.Content, |
| | | CityCode = t.CityCode, |
| | | CityContent = t.City.Content, |
| | | AddressName = t.AddressName, |
| | | AddressDetail = t.AddressDetail, |
| | | Latitude = t.Latitude, |
| | | Longitude = t.Longitude, |
| | | UserCount = tug.Count(), |
| | | UserCount = t.Users.Count(), |
| | | Status = t.Status, |
| | | BeginTime = t.BeginTime, |
| | | EndTime = t.EndTime, |