Exemple #1
0
        /// <summary>
        /// 查询商品的折扣
        /// </summary>
        /// <param name="commodityIds"></param>
        /// <returns></returns>
        public Dictionary <Guid, decimal> GetIntensity(List <Guid> commodityIds)
        {
            DateTime now          = DateTime.Now;
            var      promotionDic = (from p in PromotionItems.ObjectSet()
                                     join pro in Promotion.ObjectSet() on p.PromotionId equals pro.Id
                                     where commodityIds.Contains(p.CommodityId) && pro.EndTime > now && pro.StartTime < now
                                     select new { ComId = p.CommodityId, Intensity = pro.Intensity }).ToDictionary(p => p.ComId, p => p.Intensity);

            return(promotionDic);
        }
Exemple #2
0
        /// <summary>
        /// 查询所有折扣
        /// </summary>
        /// <param name="sellerID">卖家ID</param>
        /// <param name="pageSize">每页显示数量</param>
        /// <param name="pageIndex">当前页</param>
        /// <returns></returns>
        public System.Collections.Generic.List <Jinher.AMP.BTP.Deploy.PromotionDTO> GetAllPromotion(System.Guid sellerID, int pageSize, int pageIndex)
        {
            var promotionDTO = Promotion.ObjectSet().Where(n => n.AppId == sellerID && n.EndTime > DateTime.Now).OrderByDescending(n => n.SubTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            if (promotionDTO.Count == 0)
            {
                return(null);
            }
            else
            {
                return(new Promotion().ToEntityDataList(promotionDTO));
            }
        }
Exemple #3
0
        /// <summary>
        /// 查询某个商品的折扣
        /// </summary>
        /// <param name="commodityId"></param>
        /// <returns></returns>
        public Decimal SelectIntensity(Guid commodityId, Guid appid)
        {
            DateTime now       = DateTime.Now;
            var      promotion = (from data in Promotion.ObjectSet()
                                  join data1 in PromotionItems.ObjectSet() on data.Id equals data1.PromotionId
                                  where data1.CommodityId == commodityId && data.AppId == appid && data.EndTime >= now && data.StartTime <= now
                                  select data).FirstOrDefault();

            if (promotion == null)
            {
                return((decimal)10);
            }
            else
            {
                return(promotion.Intensity);
            }
        }
Exemple #4
0
        /// <summary>
        /// 数据库中商品活动信息与Redis中保存商品活动信息同步
        /// </summary>
        /// <returns>1:成功 0:失败</returns>
        public static int CommodityDataAndRedisDataSynchronization()
        {
            try
            {
                var promotionList = Promotion.ObjectSet().Where(p => p.IsEnable == true && p.IsDel == false && p.StartTime <= DateTime.Now && p.EndTime >= DateTime.Now).Select(p => p.Id);
                if (promotionList.Any())
                {
                    foreach (Guid guid in promotionList)
                    {
                        PromotionRedis(guid);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("Promotion.CommodityDataAndRedisDataSynchronization异常:Exception={0}", ex));
                return(0);
            }

            return(1);
        }
Exemple #5
0
        /// <summary>
        /// 根据促销ID查询促销商品
        /// </summary>
        /// <param name="promotionID">促销ID</param>
        /// <param name="pageSize">每页显示数量</param>
        /// <param name="pageIndex">当前页</param>
        /// <returns></returns>
        public System.Collections.Generic.IEnumerable <Jinher.AMP.BTP.Deploy.CustomDTO.PromotionItemsVM> GetPromotionItemsByPromotionID(System.Guid promotionID, int pageSize, int pageIndex)
        {
            var quary = from n in PromotionItems.ObjectSet()
                        join m in Promotion.ObjectSet() on n.PromotionId equals m.Id
                        join b in Commodity.ObjectSet() on n.CommodityId equals b.Id
                        where (n.PromotionId == promotionID && b.CommodityType == 0)
                        select new PromotionItemsVM
            {
                AppId            = n.AppId,
                PromotionId      = m.Id,
                CommodityId      = b.Id,
                CommodityName    = b.Name,
                Price            = b.Price,
                Stock            = b.Stock,
                PicturesPath     = b.PicturesPath,
                TotalCollection  = b.TotalCollection,
                TotalReview      = b.TotalReview,
                Salesvolume      = b.Salesvolume,
                State            = b.State,
                Intensity        = m.Intensity,
                No_Codes         = b.No_Code,
                PromotionSubTime = b.SubTime
            };



            var query1 = quary.OrderByDescending(n => n.PromotionSubTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            foreach (var c in query1)
            {
                c.CommodityCategorys = from cc in CommodityCategory.ObjectSet()
                                       join cate in Category.ObjectSet() on cc.CategoryId equals cate.Id
                                       where cc.CommodityId == c.CommodityId && cc.AppId == c.AppId
                                       select cate.Name;
            }
            return(query1);
        }