/// <summary> /// 获取采购数据列表 /// </summary> /// <returns></returns> public async Task <ActionResult> List(BigProdNumStateEnum?state) { GridRequest request = new GridRequest(Request); Expression <Func <OnlinePurchaseProduct, bool> > predicate = FilterHelper.GetExpression <OnlinePurchaseProduct>(request.FilterGroup); var data = await Task.Run(() => { int count = 0; int adminId = AuthorityHelper.OperatorId ?? 0; var query = _onlinePurchaseProductContract.OnlinePurchaseProducts; var config = _onlinePurchaseProductContract.GetConfig(); if (state.HasValue) { switch (state.Value) { case BigProdNumStateEnum.普通: query = query.Where(o => o.CreatedTime <config.NewProductTime && o.CreatedTime> config.ClassicProductTime); break; case BigProdNumStateEnum.新品: query = query.Where(o => o.CreatedTime >= config.NewProductTime); break; case BigProdNumStateEnum.经典: query = query.Where(o => o.CreatedTime <= config.ClassicProductTime); break; default: break; } } query = query.Where <OnlinePurchaseProduct, int>(predicate, request.PageCondition, out count); var list = query.Select(x => new { x.Id, x.CreatedTime, x.StartDate, x.EndDate, x.IsDeleted, x.IsEnabled, x.NoticeTitle, x.NoticeQuantity, x.UpdatedTime, x.UniqueCode, AdminName = x.Operator.Member.MemberName, Quantity = x.OnlinePurchaseProductItems.Where(w => w.IsEnabled && !w.IsDeleted).Count(), }).ToList() .Select(x => new { x.Id, x.StartDate, x.EndDate, x.IsDeleted, x.IsEnabled, x.NoticeTitle, x.NoticeQuantity, x.UpdatedTime, x.UniqueCode, x.AdminName, x.Quantity, x.CreatedTime, State = _onlinePurchaseProductContract.GetOnlinePurchaseState(x.CreatedTime, config).ToString() }).ToList(); return(new GridData <object>(list, count, request.RequestInfo)); }); return(Json(data, JsonRequestBehavior.AllowGet)); }