Exemplo n.º 1
0
        /// <summary>
        /// 从IDataReader创建PartProductInfo
        /// </summary>
        public static PartProductInfo BuildPartProductFromReader(IDataReader reader)
        {
            PartProductInfo partProductInfo = new PartProductInfo();

            partProductInfo.Pid = TypeHelper.ObjectToInt(reader["pid"]);
            partProductInfo.PSN = reader["psn"].ToString();
            partProductInfo.CateId = TypeHelper.ObjectToInt(reader["cateid"]);
            partProductInfo.BrandId = TypeHelper.ObjectToInt(reader["brandid"]);
            partProductInfo.StoreId = TypeHelper.ObjectToInt(reader["storeid"]);
            partProductInfo.StoreCid = TypeHelper.ObjectToInt(reader["storecid"]);
            partProductInfo.StoreSTid = TypeHelper.ObjectToInt(reader["storestid"]);
            partProductInfo.SKUGid = TypeHelper.ObjectToInt(reader["skugid"]);
            partProductInfo.Name = reader["name"].ToString();
            partProductInfo.ShopPrice = TypeHelper.ObjectToDecimal(reader["shopprice"]);
            partProductInfo.MarketPrice = TypeHelper.ObjectToDecimal(reader["marketprice"]);
            partProductInfo.CostPrice = TypeHelper.ObjectToDecimal(reader["costprice"]);
            partProductInfo.State = TypeHelper.ObjectToInt(reader["state"]);
            partProductInfo.IsBest = TypeHelper.ObjectToInt(reader["isbest"]);
            partProductInfo.IsHot = TypeHelper.ObjectToInt(reader["ishot"]);
            partProductInfo.IsNew = TypeHelper.ObjectToInt(reader["isnew"]);
            partProductInfo.DisplayOrder = TypeHelper.ObjectToInt(reader["displayorder"]);
            partProductInfo.Weight = TypeHelper.ObjectToInt(reader["weight"]);
            partProductInfo.ShowImg = reader["showimg"].ToString();
            partProductInfo.SaleCount = TypeHelper.ObjectToInt(reader["salecount"]);
            partProductInfo.VisitCount = TypeHelper.ObjectToInt(reader["visitcount"]);
            partProductInfo.ReviewCount = TypeHelper.ObjectToInt(reader["reviewcount"]);
            partProductInfo.Star1 = TypeHelper.ObjectToInt(reader["star1"]);
            partProductInfo.Star2 = TypeHelper.ObjectToInt(reader["star2"]);
            partProductInfo.Star3 = TypeHelper.ObjectToInt(reader["star3"]);
            partProductInfo.Star4 = TypeHelper.ObjectToInt(reader["star4"]);
            partProductInfo.Star5 = TypeHelper.ObjectToInt(reader["star5"]);
            partProductInfo.AddTime = TypeHelper.ObjectToDateTime(reader["addtime"]);

            return partProductInfo;
        }
Exemplo n.º 2
0
 /// <summary>
 /// 创建OrderProductInfo
 /// </summary>
 public static OrderProductInfo BuildOrderProduct(PartProductInfo partProuctInfo)
 {
     OrderProductInfo orderProductInfo = new OrderProductInfo();
     orderProductInfo.Pid = partProuctInfo.Pid;
     orderProductInfo.PSN = partProuctInfo.PSN;
     orderProductInfo.CateId = partProuctInfo.CateId;
     orderProductInfo.BrandId = partProuctInfo.BrandId;
     orderProductInfo.StoreId = partProuctInfo.StoreId;
     orderProductInfo.StoreCid = partProuctInfo.StoreCid;
     orderProductInfo.StoreSTid = partProuctInfo.StoreSTid;
     orderProductInfo.Name = partProuctInfo.Name;
     orderProductInfo.DiscountPrice = partProuctInfo.ShopPrice;
     orderProductInfo.ShopPrice = partProuctInfo.ShopPrice;
     orderProductInfo.MarketPrice = partProuctInfo.MarketPrice;
     orderProductInfo.CostPrice = partProuctInfo.CostPrice;
     orderProductInfo.Weight = partProuctInfo.Weight;
     orderProductInfo.ShowImg = partProuctInfo.ShowImg;
     return orderProductInfo;
 }
Exemplo n.º 3
0
 /// <summary>
 /// 添加满赠到购物车中
 /// </summary>
 /// <param name="orderProductList">订单商品列表</param>
 /// <param name="partProductInfo">购买商品</param>
 /// <param name="fullSendPromotionInfo">满赠促销活动</param>
 /// <param name="sid">用户sessionId</param>
 /// <param name="uid">用户id</param>
 /// <param name="buyTime">购买时间</param>
 public static void AddFullSendToCart(ref List<OrderProductInfo> orderProductList, PartProductInfo partProductInfo, FullSendPromotionInfo fullSendPromotionInfo, string sid, int uid, DateTime buyTime)
 {
     OrderProductInfo orderProductInfo = BuildOrderProduct(partProductInfo);
     InitOrderProduct(orderProductInfo, 0, sid, uid, buyTime);
     SetFullSendOrderProduct(orderProductInfo, fullSendPromotionInfo);
     AddOrderProductList(new List<OrderProductInfo>() { orderProductInfo });
     orderProductList.Add(orderProductInfo);
 }
Exemplo n.º 4
0
 /// <summary>
 /// 将商品添加到购物车
 /// </summary>
 /// <param name="orderProductList">订单商品列表</param>
 /// <param name="buyCount">购买数量</param>
 /// <param name="partProductInfo">购买商品</param>
 /// <param name="sid">用户sessionId</param>
 /// <param name="uid">用户id</param>
 /// <param name="buyTime">购买时间</param>
 public static void AddProductToCart(ref List<OrderProductInfo> orderProductList, int buyCount, PartProductInfo partProductInfo, string sid, int uid, DateTime buyTime)
 {
     if (orderProductList.Count == 0)
     {
         AddNewProductToCart(ref orderProductList, buyCount, partProductInfo, sid, uid, buyTime);
     }
     else
     {
         OrderProductInfo orderProductInfo = GetCommonOrderProductByPid(partProductInfo.Pid, orderProductList);
         if (orderProductInfo == null)//此商品作为普通商品不存在于购物车中时
             AddNewProductToCart(ref orderProductList, buyCount, partProductInfo, sid, uid, buyTime);
         else//此商品作为普通商品存在于购物车中时
             AddExistProductToCart(ref orderProductList, buyCount, orderProductInfo, buyTime);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// 添加新商品到购物车
        /// </summary>
        /// <param name="orderProductList">订单商品列表</param>
        /// <param name="buyCount">购买数量</param>
        /// <param name="partProductInfo">购买商品</param>
        /// <param name="sid">用户sessionId</param>
        /// <param name="uid">用户id</param>
        /// <param name="buyTime">购买时间</param>
        public static void AddNewProductToCart(ref List<OrderProductInfo> orderProductList, int buyCount, PartProductInfo partProductInfo, string sid, int uid, DateTime buyTime)
        {
            //需要添加的商品列表
            List<OrderProductInfo> addOrderProductList = new List<OrderProductInfo>();

            //初始化订单商品
            OrderProductInfo mainOrderProductInfo = BuildOrderProduct(partProductInfo);
            InitOrderProduct(mainOrderProductInfo, buyCount, sid, uid, buyTime);

            //获得买送促销活动
            BuySendPromotionInfo buySendPromotionInfo = Promotions.GetBuySendPromotion(buyCount, partProductInfo.StoreId, partProductInfo.Pid, buyTime);
            //当买送促销活动存在时设置订单商品信息
            if (buySendPromotionInfo != null)
                SetBuySendPromotionOfOrderProduct(mainOrderProductInfo, buyCount, buySendPromotionInfo);

            //获得单品促销活动
            SinglePromotionInfo singlePromotionInfo = Promotions.GetSinglePromotionByPidAndTime(partProductInfo.Pid, buyTime);
            //当单品促销活动存在时则设置订单商品信息
            if (singlePromotionInfo != null)
                SetSinglePromotionOfOrderProduct(mainOrderProductInfo, singlePromotionInfo);

            //获得满赠促销活动
            FullSendPromotionInfo fullSendPromotionInfo = Promotions.GetFullSendPromotionByStoreIdAndPidAndTime(partProductInfo.StoreId, partProductInfo.Pid, buyTime);
            if (fullSendPromotionInfo != null)
                SetFullSendPromotionOfOrderProduct(mainOrderProductInfo, fullSendPromotionInfo);

            //获得满减促销活动
            FullCutPromotionInfo fullCutPromotionInfo = Promotions.GetFullCutPromotionByStoreIdAndPidAndTime(partProductInfo.StoreId, partProductInfo.Pid, buyTime);
            if (fullCutPromotionInfo != null)
                SetFullCutPromotionOfOrderProduct(mainOrderProductInfo, fullCutPromotionInfo);


            //将商品添加到"需要添加的商品列表"中
            addOrderProductList.Add(mainOrderProductInfo);

            //获得赠品列表
            GiftPromotionInfo giftPromotionInfo = Promotions.GetGiftPromotionByPidAndTime(partProductInfo.Pid, buyTime);
            if (giftPromotionInfo != null)
            {
                List<ExtGiftInfo> extGiftList = Promotions.GetExtGiftList(giftPromotionInfo.PmId);
                if (extGiftList.Count > 0)
                {
                    mainOrderProductInfo.ExtCode3 = giftPromotionInfo.PmId;
                    foreach (ExtGiftInfo extGiftInfo in extGiftList)
                    {
                        OrderProductInfo giftOrderProduct = BuildOrderProduct(extGiftInfo);
                        InitOrderProduct(giftOrderProduct, 0, sid, uid, buyTime);
                        SetGiftOrderProduct(giftOrderProduct, 1, mainOrderProductInfo.RealCount, extGiftInfo.Number, giftPromotionInfo.PmId);
                        //将赠品添加到"需要添加的商品列表"中
                        addOrderProductList.Add(giftOrderProduct);
                    }
                }
            }

            //将需要添加的商品持久化
            AddOrderProductList(addOrderProductList);

            orderProductList.AddRange(addOrderProductList);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 搜索店铺商品
        /// </summary>
        /// <param name="pageSize">每页数</param>
        /// <param name="pageNumber">当前页数</param>
        /// <param name="keyword">关键词</param>
        /// <param name="storeId">店铺id</param>
        /// <param name="storeCid">店铺分类id</param>
        /// <param name="startPrice">开始价格</param>
        /// <param name="endPrice">结束价格</param>
        /// <param name="sortColumn">排序列</param>
        /// <param name="sortDirection">排序方向</param>
        /// <returns></returns>
        public List<PartProductInfo> SearchStoreProducts(int pageSize, int pageNumber, string keyword, int storeId, int storeCid, int startPrice, int endPrice, int sortColumn, int sortDirection)
        {
            StringBuilder commandText = new StringBuilder();

            if (pageNumber == 1)
            {
                commandText.AppendFormat("SELECT TOP {1} [p].[pid],[p].[psn],[p].[cateid],[p].[brandid],[p].[storeid],[p].[storecid],[p].[storestid],[p].[skugid],[p].[name],[p].[shopprice],[p].[marketprice],[p].[costprice],[p].[state],[p].[isbest],[p].[ishot],[p].[isnew],[p].[displayorder],[p].[weight],[p].[showimg],[p].[salecount],[p].[visitcount],[p].[reviewcount],[p].[star1],[p].[star2],[p].[star3],[p].[star4],[p].[star5],[p].[addtime] FROM [{0}products] AS [p]", RDBSHelper.RDBSTablePre, pageSize);

                commandText.AppendFormat(" LEFT JOIN [{0}productkeywords] AS [pk] ON [p].[pid]=[pk].[pid]", RDBSHelper.RDBSTablePre);

                commandText.AppendFormat(" WHERE [p].[storeid]={0}", storeId);

                if (storeCid > 0)
                    commandText.AppendFormat(" AND [p].[storecid]={0}", storeCid);

                if (startPrice > 0)
                    commandText.AppendFormat(" AND [p].[shopprice]>={0}", startPrice);
                if (endPrice > 0)
                    commandText.AppendFormat(" AND [p].[shopprice]<={0}", endPrice);

                commandText.Append(" AND [p].[state]=0");

                commandText.AppendFormat(" AND [pk].[keyword]='{0}'", keyword);

                commandText.Append(" ORDER BY ");
                switch (sortColumn)
                {
                    case 0:
                        commandText.Append("[pk].[relevancy]");
                        break;
                    case 1:
                        commandText.Append("[p].[salecount]");
                        break;
                    case 2:
                        commandText.Append("[p].[shopprice]");
                        break;
                    case 3:
                        commandText.Append("[p].[reviewcount]");
                        break;
                    case 4:
                        commandText.Append("[p].[addtime]");
                        break;
                    case 5:
                        commandText.Append("[p].[visitcount]");
                        break;
                    default:
                        commandText.Append("[pk].[relevancy]");
                        break;
                }
                switch (sortDirection)
                {
                    case 0:
                        commandText.Append(" DESC");
                        break;
                    case 1:
                        commandText.Append(" ASC");
                        break;
                    default:
                        commandText.Append(" DESC");
                        break;
                }
            }
            else
            {
                commandText.Append("SELECT [pid],[psn],[cateid],[brandid],[storeid],[storecid],[storestid],[skugid],[name],[shopprice],[marketprice],[costprice],[state],[isbest],[ishot],[isnew],[displayorder],[weight],[showimg],[salecount],[visitcount],[reviewcount],[star1],[star2],[star3],[star4],[star5],[addtime] FROM");
                commandText.Append(" (SELECT ROW_NUMBER() OVER (ORDER BY ");
                switch (sortColumn)
                {
                    case 0:
                        commandText.Append("[pk].[relevancy]");
                        break;
                    case 1:
                        commandText.Append("[p].[salecount]");
                        break;
                    case 2:
                        commandText.Append("[p].[shopprice]");
                        break;
                    case 3:
                        commandText.Append("[p].[reviewcount]");
                        break;
                    case 4:
                        commandText.Append("[p].[addtime]");
                        break;
                    case 5:
                        commandText.Append("[p].[visitcount]");
                        break;
                    default:
                        commandText.Append("[pk].[relevancy]");
                        break;
                }
                switch (sortDirection)
                {
                    case 0:
                        commandText.Append(" DESC");
                        break;
                    case 1:
                        commandText.Append(" ASC");
                        break;
                    default:
                        commandText.Append(" DESC");
                        break;
                }
                commandText.AppendFormat(") AS [rowid],[p].[pid],[p].[psn],[p].[cateid],[p].[brandid],[p].[storeid],[p].[storecid],[p].[storestid],[p].[skugid],[p].[name],[p].[shopprice],[p].[marketprice],[p].[costprice],[p].[state],[p].[isbest],[p].[ishot],[p].[isnew],[p].[displayorder],[p].[weight],[p].[showimg],[p].[salecount],[p].[visitcount],[p].[reviewcount],[p].[star1],[p].[star2],[p].[star3],[p].[star4],[p].[star5],[p].[addtime] FROM [{0}products] AS [p]", RDBSHelper.RDBSTablePre);

                commandText.AppendFormat(" LEFT JOIN [{0}productkeywords] AS [pk] ON [p].[pid]=[pk].[pid]", RDBSHelper.RDBSTablePre);

                commandText.AppendFormat(" WHERE [p].[storeid]={0}", storeId);

                if (storeCid > 0)
                    commandText.AppendFormat(" AND [p].[storecid]={0}", storeCid);

                if (startPrice > 0)
                    commandText.AppendFormat(" AND [p].[shopprice]>={0}", startPrice);
                if (endPrice > 0)
                    commandText.AppendFormat(" AND [p].[shopprice]<={0}", endPrice);

                commandText.Append(" AND [p].[state]=0");

                commandText.AppendFormat(" AND [pk].[keyword]='{0}'", keyword);

                commandText.Append(") AS [temp]");
                commandText.AppendFormat(" WHERE [rowid] BETWEEN {0} AND {1}", pageSize * (pageNumber - 1) + 1, pageSize * pageNumber);
            }

            List<PartProductInfo> partProductList = new List<PartProductInfo>();
            IDataReader reader = RDBSHelper.ExecuteReader(CommandType.Text, commandText.ToString());
            while (reader.Read())
            {
                PartProductInfo partProductInfo = new PartProductInfo();

                partProductInfo.Pid = TypeHelper.ObjectToInt(reader["pid"]);
                partProductInfo.PSN = reader["psn"].ToString();
                partProductInfo.CateId = TypeHelper.ObjectToInt(reader["cateid"]);
                partProductInfo.BrandId = TypeHelper.ObjectToInt(reader["brandid"]);
                partProductInfo.StoreId = TypeHelper.ObjectToInt(reader["storeid"]);
                partProductInfo.StoreCid = TypeHelper.ObjectToInt(reader["storecid"]);
                partProductInfo.StoreSTid = TypeHelper.ObjectToInt(reader["storestid"]);
                partProductInfo.SKUGid = TypeHelper.ObjectToInt(reader["skugid"]);
                partProductInfo.Name = reader["name"].ToString();
                partProductInfo.ShopPrice = TypeHelper.ObjectToDecimal(reader["shopprice"]);
                partProductInfo.MarketPrice = TypeHelper.ObjectToDecimal(reader["marketprice"]);
                partProductInfo.CostPrice = TypeHelper.ObjectToDecimal(reader["costprice"]);
                partProductInfo.State = TypeHelper.ObjectToInt(reader["state"]);
                partProductInfo.IsBest = TypeHelper.ObjectToInt(reader["isbest"]);
                partProductInfo.IsHot = TypeHelper.ObjectToInt(reader["ishot"]);
                partProductInfo.IsNew = TypeHelper.ObjectToInt(reader["isnew"]);
                partProductInfo.DisplayOrder = TypeHelper.ObjectToInt(reader["displayorder"]);
                partProductInfo.Weight = TypeHelper.ObjectToInt(reader["weight"]);
                partProductInfo.ShowImg = reader["showimg"].ToString();
                partProductInfo.SaleCount = TypeHelper.ObjectToInt(reader["salecount"]);
                partProductInfo.VisitCount = TypeHelper.ObjectToInt(reader["visitcount"]);
                partProductInfo.ReviewCount = TypeHelper.ObjectToInt(reader["reviewcount"]);
                partProductInfo.Star1 = TypeHelper.ObjectToInt(reader["star1"]);
                partProductInfo.Star2 = TypeHelper.ObjectToInt(reader["star2"]);
                partProductInfo.Star3 = TypeHelper.ObjectToInt(reader["star3"]);
                partProductInfo.Star4 = TypeHelper.ObjectToInt(reader["star4"]);
                partProductInfo.Star5 = TypeHelper.ObjectToInt(reader["star5"]);
                partProductInfo.AddTime = TypeHelper.ObjectToDateTime(reader["addtime"]);

                partProductList.Add(partProductInfo);
            }
            reader.Close();

            return partProductList;
        }