Esempio n. 1
0
 /// <summary>
 /// 按运费模板查询商品
 /// </summary>
 /// <param name="inputDTO"></param>
 /// <returns></returns>
 public Deploy.CustomDTO.ResultDTO <SearchCommodityByFreightTemplateOutputDTO> SearchCommodity3(SearchCommodityByFreightTemplateInputDTO inputDTO)
 {
     base.Do();
     return(this.Command.GetCommodityByFreightTemplate(inputDTO));
 }
Esempio n. 2
0
        public Deploy.CustomDTO.ResultDTO <SearchCommodityByFreightTemplateOutputDTO> GetCommodityByFreightTemplateExt(SearchCommodityByFreightTemplateInputDTO inputDTO)
        {
            if (inputDTO == null)
            {
                throw new ArgumentNullException();
            }

            var appId             = inputDTO.AppId;
            var templateId        = inputDTO.TemplateId;
            var showAssociated    = inputDTO.ShowAssociated;
            var commodityName     = inputDTO.CommodityName;
            var takeCount         = inputDTO.PageSize;
            var skipCount         = inputDTO.PageIndex > 0 ? --inputDTO.PageIndex * takeCount : 0;
            var defaultTemplateId = Guid.Empty;
            var joinPromotion     = inputDTO.JoinPromotion;

            var query = Commodity.ObjectSet().Where(predicate =>
                                                    predicate.AppId == appId &&
                                                    (showAssociated ? predicate.FreightTemplateId == templateId : (predicate.FreightTemplateId == null || predicate.FreightTemplateId == defaultTemplateId)) &&
                                                    (!string.IsNullOrEmpty(commodityName) ? predicate.Name.Contains(commodityName) : true));

            if (!showAssociated && joinPromotion)
            {
                //过滤出搞活动的商品
                query = from commodity in query
                        join promo in Promotion.ObjectSet() on commodity.AppId equals promo.AppId into cpcontainer
                        from promo in cpcontainer.DefaultIfEmpty()
                        join promoItem in PromotionItems.ObjectSet()
                        on new
                {
                    promoId     = promo.Id,
                    commodityId = commodity.Id
                } equals
                new
                {
                    promoId     = promoItem.PromotionId,
                    commodityId = promoItem.CommodityId
                }
                where promo.StartTime >= DateTime.Now && promo.EndTime <= DateTime.Now
                select commodity;
            }

            var total = query.Count();

            var list = query.OrderBy(selector => selector.SubTime).Skip(skipCount).Take(takeCount).Select(selector => new ComdtyList4SelCDTO
            {
                Id    = selector.Id,
                Name  = selector.Name,
                Pic   = selector.PicturesPath,
                Price = selector.Price,
                Stock = selector.Stock
            }).ToList();

            var outputDTO = new ResultDTO <SearchCommodityByFreightTemplateOutputDTO>
            {
                Data = new SearchCommodityByFreightTemplateOutputDTO
                {
                    Total       = total,
                    Commodities = list
                },
                isSuccess  = true,
                ResultCode = 0
            };

            return(outputDTO);
        }