/// <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));
        }