コード例 #1
0
        /// <summary>
        /// 获取数据列表
        /// </summary>
        /// <returns></returns>
        public async Task <ActionResult> List(BigProdNumStateEnum?state)
        {
            GridRequest request = new GridRequest(Request);
            Expression <Func <Product, bool> > predicate = FilterHelper.GetExpression <Product>(request.FilterGroup);
            var count = 0;

            var data = await Task.Run(() =>
            {
                var strWeb  = ConfigurationHelper.GetAppSetting("WebUrl");
                var config  = _oppContract.GetConfig();
                var current = DateTime.Now;

                var bigProdNumStatDic = _oppContract.GetOnlinePurchaseBigProdNumState();
                // 有效期采购单下的款号
                var query = _oppContract.OnlinePurchaseProducts
                            .Where(w => w.IsEnabled && !w.IsDeleted)
                            .Where(x => x.StartDate <= current && x.EndDate >= current)
                            .SelectMany(x => x.OnlinePurchaseProductItems.Where(i => !i.IsDeleted && i.IsEnabled));
                // 款号过滤
                if (state.HasValue)
                {
                    var bigNums = bigProdNumStatDic.Where(i => i.Value == state.Value).Select(i => i.Key);
                    query       = query.Where(i => bigNums.Contains(i.BigProdNum));
                }

                var bigProdNums = query.Select(i => i.BigProdNum).ToArray();


                // 根据款号查询货号信息
                var list = _productContract.Products.Where(p => !p.IsDeleted && p.IsEnabled)
                           .Where(p => bigProdNums.Contains(p.BigProdNum))
                           .GroupBy(p => p.BigProdNum)
                           .Select(g => g.FirstOrDefault())
                           .Where <Product, int>(predicate, request.PageCondition, out count)
                           .Select(m => new
                {
                    m.Id,
                    ProductName = m.ProductOriginNumber.ProductName,
                    m.BigProdNum,
                    ThumbnailPath = m.ThumbnailPath ?? m.ProductOriginNumber.ThumbnailPath
                })
                           .ToList()
                           .Select(m => new
                {
                    m.Id,
                    ThumbnailPath = string.IsNullOrEmpty(m.ThumbnailPath) ? string.Empty : strWeb + m.ThumbnailPath,
                    ProductName   = m.ProductName,
                    m.BigProdNum,
                    State = bigProdNumStatDic[m.BigProdNum].ToString()
                }).ToList();
                return(new GridData <object>(list, count, request.RequestInfo));
            });

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        /// <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));
        }