Пример #1
0
        /// <summary>
        /// 更新商品关键词
        /// </summary>
        public ActionResult UpdateProductKeyword(string keyword = "", int relevancy = 0, int pid = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "商品不存在"));
            }

            if (string.IsNullOrWhiteSpace(keyword))
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "关键词不能为空"));
            }

            if (keyword.Length > 20)
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "关键词最多只能输入20个字"));
            }

            ProductKeywordInfo productKeywordInfo = new ProductKeywordInfo
            {
                Keyword   = keyword,
                Pid       = pid,
                Relevancy = relevancy
            };

            Searches.UpdateProductKeyword(productKeywordInfo);
            AddMallAdminLog("修改商品关键词", "修改商品关键词,商品ID:" + pid);
            return(Content("1"));
        }
Пример #2
0
        /// <summary>
        /// 添加优惠劵商品
        /// </summary>
        /// <returns></returns>
        public ActionResult AddCouponProduct(int couponTypeId = -1, int pid = 1)
        {
            CouponTypeInfo couponTypeInfo = AdminCoupons.AdminGetCouponTypeById(couponTypeId);

            if (couponTypeInfo == null)
            {
                return(PromptView("优惠劵类型不存在"));
            }
            if (couponTypeInfo.LimitProduct == 0)
            {
                return(PromptView("此优惠劵类型没有限制商品"));
            }

            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView("此商品不存在"));
            }

            if (couponTypeInfo.StoreId != partProductInfo.StoreId)
            {
                return(PromptView(Url.Action("couponproductlist", new { couponTypeId = couponTypeId }), "只能关联同一店铺的商品"));
            }

            if (AdminCoupons.IsExistCouponProduct(couponTypeId, pid))
            {
                return(PromptView("此商品已经存在"));
            }

            AdminCoupons.AddCouponProduct(couponTypeId, pid);
            AddMallAdminLog("添加优惠劵商品", "添加优惠劵商品,商品为:" + partProductInfo.Name);
            return(PromptView("优惠劵商品添加成功"));
        }
Пример #3
0
        /// <summary>
        /// 商品评价列表
        /// </summary>
        public ActionResult ProductReviewList()
        {
            int pid        = WebHelper.GetQueryInt("pid");
            int reviewType = WebHelper.GetQueryInt("reviewType");
            int page       = WebHelper.GetQueryInt("page");

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView("/", "你访问的商品不存在"));
            }

            if (reviewType < 0 || reviewType > 3)
            {
                reviewType = 0;
            }

            PageModel pageModel          = new PageModel(10, page, ProductReviews.GetProductReviewCount(pid, reviewType));
            ProductReviewListModel model = new ProductReviewListModel()
            {
                ProductInfo       = productInfo,
                CategoryInfo      = Categories.GetCategoryById(productInfo.CateId),
                BrandInfo         = Brands.GetBrandById(productInfo.BrandId),
                ReviewType        = reviewType,
                PageModel         = pageModel,
                ProductReviewList = ProductReviews.GetProductReviewList(pid, reviewType, pageModel.PageSize, pageModel.PageNumber)
            };

            return(View(model));
        }
Пример #4
0
        /// <summary>
        /// 商品咨询列表
        /// </summary>
        public ActionResult ProductConsultList()
        {
            int    pid            = WebHelper.GetQueryInt("pid");
            int    consultTypeId  = WebHelper.GetQueryInt("consultTypeId");
            string consultMessage = WebHelper.GetQueryString("consultMessage");
            int    page           = WebHelper.GetQueryInt("page");

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView("/", "你访问的商品不存在"));
            }

            PageModel pageModel           = new PageModel(10, page, ProductConsults.GetProductConsultCount(pid, consultTypeId, consultMessage));
            ProductConsultListModel model = new ProductConsultListModel()
            {
                ProductInfo            = productInfo,
                CategoryInfo           = Categories.GetCategoryById(productInfo.CateId),
                BrandInfo              = Brands.GetBrandById(productInfo.BrandId),
                ConsultTypeId          = consultTypeId,
                ConsultMessage         = consultMessage,
                PageModel              = pageModel,
                ProductConsultList     = ProductConsults.GetProductConsultList(pageModel.PageSize, pageModel.PageNumber, pid, consultTypeId, consultMessage),
                ProductConsultTypeList = ProductConsults.GetProductConsultTypeList(),
                IsVerifyCode           = CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.ShopConfig.VerifyPages)
            };

            return(View(model));
        }
Пример #5
0
        /// <summary>
        /// 商品咨询列表
        /// </summary>
        public ActionResult ProductConsultList()
        {
            int    pid            = WebHelper.GetQueryInt("pid");
            int    consultTypeId  = WebHelper.GetQueryInt("consultTypeId");
            string consultMessage = WebHelper.GetQueryString("consultMessage");
            int    page           = WebHelper.GetQueryInt("page");

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView(Url.Action("index", "home"), "你访问的商品不存在"));
            }

            if (!SecureHelper.IsSafeSqlString(consultMessage))
            {
                return(PromptView(WorkContext.UrlReferrer, "您搜索的内容不存在"));
            }

            PageModel pageModel           = new PageModel(10, page, ProductConsults.GetProductConsultCount(pid, consultTypeId, consultMessage));
            ProductConsultListModel model = new ProductConsultListModel()
            {
                ProductInfo            = productInfo,
                ConsultTypeId          = consultTypeId,
                ConsultMessage         = consultMessage,
                PageModel              = pageModel,
                ProductConsultList     = ProductConsults.GetProductConsultList(pageModel.PageSize, pageModel.PageNumber, pid, consultTypeId, consultMessage),
                ProductConsultTypeList = ProductConsults.GetProductConsultTypeList(),
                IsVerifyCode           = CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.ShopConfig.VerifyPages)
            };

            return(View(model));
        }
Пример #6
0
        /// <summary>
        /// 商品评价列表
        /// </summary>
        public ActionResult ProductReviewList()
        {
            int pid        = WebHelper.GetQueryInt("pid");
            int reviewType = WebHelper.GetQueryInt("reviewType");
            int page       = WebHelper.GetQueryInt("page");

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView(Url.Action("index", "home"), "你访问的商品不存在"));
            }

            if (reviewType < 0 || reviewType > 3)
            {
                reviewType = 0;
            }

            PageModel pageModel          = new PageModel(10, page, ProductReviews.GetProductReviewCount(pid, reviewType));
            ProductReviewListModel model = new ProductReviewListModel()
            {
                ProductInfo       = productInfo,
                ReviewType        = reviewType,
                PageModel         = pageModel,
                ProductReviewList = ProductReviews.GetProductReviewList(pid, reviewType, pageModel.PageSize, pageModel.PageNumber)
            };

            return(View(model));
        }
Пример #7
0
        /// <summary>
        /// 添加优惠劵商品
        /// </summary>
        /// <returns></returns>
        public ActionResult AddCouponProduct(int couponTypeId = -1, int pid = 1)
        {
            CouponTypeInfo couponTypeInfo = AdminCoupons.AdminGetCouponTypeById(couponTypeId);

            if (couponTypeInfo == null)
            {
                return(PromptView("优惠劵类型不存在"));
            }
            if (couponTypeInfo.LimitProduct == 0)
            {
                return(PromptView("此优惠劵类型没有限制商品"));
            }

            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView("此商品不存在"));
            }

            if (AdminCoupons.IsExistCouponProduct(couponTypeId, pid))
            {
                return(PromptView("此商品已经存在"));
            }

            AdminCoupons.AddCouponProduct(couponTypeId, pid);
            AddAdminOperateLog("添加优惠劵商品", "添加优惠劵商品,商品为:" + partProductInfo.Name);
            return(PromptView("优惠劵商品添加成功"));
        }
Пример #8
0
        /// <summary>
        /// 添加商品到收藏夹
        /// </summary>
        public ActionResult AddToFavorite()
        {
            //商品id
            int pid = WebHelper.GetQueryInt("pid");
            //商品信息
            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            //当收藏夹中已经存在此商品时
            if (Favorites.IsExistFavoriteProduct(WorkContext.Uid, pid))
            {
                return(AjaxResult("exist", "商品已经存在"));
            }

            //收藏夹已满时
            if (WorkContext.ShopConfig.FavoriteCount <= Favorites.GetFavoriteProductCount(WorkContext.Uid))
            {
                return(AjaxResult("full", "收藏夹已满"));
            }

            bool result = Favorites.AddToFavorite(WorkContext.Uid, pid, 0, DateTime.Now);

            if (result)//添加成功
            {
                return(AjaxResult("success", "收藏成功"));
            }
            else//添加失败
            {
                return(AjaxResult("error", "收藏失败"));
            }
        }
Пример #9
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.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);
        }
Пример #10
0
        /// <summary>
        /// 添加关联商品
        /// </summary>
        /// <param name="pid">主商品id</param>
        /// <param name="relatePid">关联商品id</param>
        /// <returns></returns>
        public ActionResult AddRelateProduct(int pid = -1, int relatePid = -1)
        {
            PartProductInfo partProductInfo1 = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo1 == null)
            {
                return(PromptView(Url.Action("relateproductlist", new { pid = pid }), "主商品不存在"));
            }

            PartProductInfo partProductInfo2 = AdminProducts.AdminGetPartProductById(relatePid);

            if (partProductInfo2 == null)
            {
                return(PromptView(Url.Action("relateproductlist", new { pid = pid }), "关联商品不存在"));
            }

            if (pid == relatePid)
            {
                return(PromptView(Url.Action("relateproductlist", new { pid = pid }), "不能关联自身"));
            }

            if (partProductInfo1.StoreId != partProductInfo2.StoreId)
            {
                return(PromptView(Url.Action("relateproductlist", new { pid = pid }), "只能关联同一店铺的商品"));
            }

            if (AdminProducts.IsExistRelateProduct(pid, relatePid))
            {
                return(PromptView(Url.Action("relateproductlist", new { pid = pid }), "此关联商品已经存在"));
            }

            AdminProducts.AddRelateProduct(pid, relatePid);
            AddMallAdminLog("添加关联商品", "添加关联商品,关联商品为:" + partProductInfo2.Name);
            return(PromptView(Url.Action("relateproductlist", new { pid = pid }), "关联商品添加成功"));
        }
Пример #11
0
        public ActionResult AddTimeProduct(TimeProductModel model)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(model.Pid);

            if (partProductInfo == null)
            {
                ModelState.AddModelError("Pid", "请选择商品");
            }
            if (AdminProducts.IsExistTimeProduct(model.Pid))
            {
                ModelState.AddModelError("Pid", "此商品已经存在");
            }

            if (ModelState.IsValid)
            {
                DateTime        noTime          = new DateTime(1900, 1, 1);
                TimeProductInfo timeProductInfo = new TimeProductInfo()
                {
                    Pid          = model.Pid,
                    StoreId      = partProductInfo.StoreId,
                    OnSaleState  = model.OnSaleTime == null ? 0 : 1,
                    OutSaleState = model.OutSaleTime == null ? 0 : 1,
                    OnSaleTime   = model.OnSaleTime == null ? noTime : model.OnSaleTime.Value,
                    OutSaleTime  = model.OutSaleTime == null ? noTime : model.OutSaleTime.Value
                };
                AdminProducts.AddTimeProduct(timeProductInfo);
                AddMallAdminLog("添加定时商品", "添加定时商品,定时商品为:" + partProductInfo.Name);
                return(PromptView("定时商品添加成功"));
            }
            ViewData["referer"] = MallUtils.GetMallAdminRefererCookie();
            return(View(model));
        }
Пример #12
0
        /// <summary>
        /// 添加商品图片
        /// </summary>
        public ActionResult AddProductImage(string showImg, int displayOrder = 0, int pid = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView(Url.Action("productimagelist", new { pid = pid }), "商品不存在"));
            }

            if (string.IsNullOrWhiteSpace(showImg))
            {
                return(PromptView(Url.Action("productimagelist", new { pid = pid }), "图片不能为空"));
            }

            ProductImageInfo productImageInfo = new ProductImageInfo
            {
                Pid          = pid,
                ShowImg      = showImg,
                IsMain       = 0,
                DisplayOrder = displayOrder,
                StoreId      = partProductInfo.StoreId
            };

            AdminProducts.CreateProductImage(productImageInfo);
            AddMallAdminLog("添加商品图片", "添加商品图片,商品ID为:" + pid);
            return(PromptView(Url.Action("productimagelist", new { pid = pid }), "商品图片添加成功"));
        }
Пример #13
0
        /// <summary>
        /// 添加商品关键词
        /// </summary>
        public ActionResult AddProductKeyword(string keyword, int relevancy = 0, int pid = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "商品不存在"));
            }

            if (string.IsNullOrWhiteSpace(keyword))
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "关键词不能为空"));
            }

            if (keyword.Length > 20)
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "关键词最多只能输入20个字"));
            }

            if (AdminProducts.IsExistProductKeyWord(pid, keyword))
            {
                return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "关键词已经存在"));
            }

            ProductKeywordInfo productKeywordInfo = new ProductKeywordInfo
            {
                Keyword   = keyword,
                Pid       = pid,
                Relevancy = relevancy
            };

            AdminProducts.CreateProductKeyword(productKeywordInfo);
            AddMallAdminLog("添加商品关键词", "添加商品关键词,商品ID为:" + pid);
            return(PromptView(Url.Action("productkeywordlist", new { pid = pid }), "商品关键词添加成功"));
        }
Пример #14
0
        /// <summary>
        /// 获得关联商品列表
        /// </summary>
        /// <param name="pid">商品id</param>
        /// <returns></returns>
        public static List <PartProductInfo> GetRelateProductList(int pid)
        {
            List <PartProductInfo> partProductList = null;

            if (_productnosql != null)
            {
                List <string> relatePidList = _productnosql.GetRelatePidList(pid);
                if (relatePidList == null)
                {
                    relatePidList = new List <string>();
                    foreach (DataRow row in AdminGetRelateProductList(pid).Rows)
                    {
                        relatePidList.Add(row["relatepid"].ToString());
                    }
                    _productnosql.CreateRelatePidList(pid, relatePidList);
                }
                partProductList = _productnosql.GetPartProductList(relatePidList);
            }
            else
            {
                partProductList = new List <PartProductInfo>();
                IDataReader reader = BrnShop.Core.BSPData.RDBS.GetRelateProductList(pid);
                while (reader.Read())
                {
                    PartProductInfo partProductInfo = BuildPartProductFromReader(reader);
                    partProductList.Add(partProductInfo);
                }
                reader.Close();
            }

            return(partProductList);
        }
Пример #15
0
        /// <summary>
        /// 咨询商品
        /// </summary>
        public ActionResult ConsultProduct()
        {
            //不允许游客访问
            if (WorkContext.Uid < 1)
            {
                return(AjaxResult("nologin", "请先登录"));
            }

            //验证验证码
            if (CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.ShopConfig.VerifyPages))
            {
                string verifyCode = WebHelper.GetFormString("verifyCode");//验证码
                if (string.IsNullOrWhiteSpace(verifyCode))
                {
                    return(AjaxResult("emptyverifycode", "验证码不能为空"));;
                }
                else if (verifyCode.ToLower() != Sessions.GetValueString(WorkContext.Sid, "verifyCode"))
                {
                    return(AjaxResult("wrongverifycode", "验证码错误"));;
                }
            }

            int    pid            = WebHelper.GetFormInt("pid");
            int    consultTypeId  = WebHelper.GetFormInt("consultTypeId");
            string consultMessage = WebHelper.GetFormString("consultMessage");

            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            if (consultTypeId < 1 || ProductConsults.GetProductConsultTypeById(consultTypeId) == null)
            {
                return(AjaxResult("noproductconsulttype", "请选择咨询类型"));
            }
            ;

            if (string.IsNullOrWhiteSpace(consultMessage))
            {
                return(AjaxResult("noconsultmessage", "请填写咨询内容"));
            }
            ;
            if (consultMessage.Length > 100)
            {
                return(AjaxResult("muchconsultmessage", "咨询内容内容太长"));
            }
            ;
            if (!SecureHelper.IsSafeSqlString(consultMessage))
            {
                return(AjaxResult("dangerconsultmessage", "咨询内中包含非法字符"));
            }
            ;

            ProductConsults.ConsultProduct(pid, consultTypeId, WorkContext.Uid, DateTime.Now, WebHelper.HtmlEncode(consultMessage), WorkContext.NickName, partProductInfo.Name, partProductInfo.ShowImg, WorkContext.IP);
            return(AjaxResult("success", Url.Action("product", new RouteValueDictionary {
                { "pid", pid }
            })));;
        }
Пример #16
0
        /// <summary>
        /// 购买商品
        /// </summary>
        /// <returns></returns>
        public ActionResult BuyProduct()
        {
            int    pid      = WebHelper.GetQueryInt("pid");      //商品id
            string note     = WebHelper.GetQueryString("note");  //备注
            int    buyCount = WebHelper.GetQueryInt("buyCount"); //购买数量

            //当商城不允许游客使用购物车时
            if (WorkContext.ShopConfig.IsGuestSC == 0 && WorkContext.Uid < 1)
            {
                return(AjaxResult("nologin", "请先登录"));
            }

            //判断商品是否存在
            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            //购买数量不能小于1
            if (buyCount < 1)
            {
                return(AjaxResult("buycountmin", "请填写购买数量"));
            }

            //商品库存
            int stockNumber = Products.GetProductStockNumberByPid(pid);

            if (stockNumber < buyCount)
            {
                return(AjaxResult("stockout", "商品库存不足"));
            }

            //购物车中已经存在的商品列表
            List <OrderProductInfo> orderProductList = Carts.GetCartProductList(WorkContext.Uid, WorkContext.Sid);
            OrderProductInfo        orderProductInfo = Carts.GetCommonOrderProductByPid(pid, orderProductList);

            if (orderProductInfo == null)
            {
                if ((WorkContext.Uid > 0 && orderProductList.Count >= WorkContext.ShopConfig.MemberSCCount) || (WorkContext.Uid < 1 && orderProductList.Count >= WorkContext.ShopConfig.GuestSCCount))
                {
                    return(AjaxResult("full", "购物车已满"));
                }
            }

            buyCount = orderProductInfo == null ? buyCount : orderProductInfo.BuyCount + buyCount;
            //将商品添加到购物车
            Carts.AddProductToCart(ref orderProductList, buyCount, partProductInfo, WorkContext.Sid, WorkContext.Uid, DateTime.Now, WorkContext.IsMember, note);
            //将购物车中商品数量写入cookie
            Carts.SetCartProductCountCookie(Carts.SumOrderProductCount(orderProductList));

            return(AjaxResult("success", Url.Action("confirmorder", "order", new RouteValueDictionary {
                { "selectedCartItemKeyList", "0_" + pid }
            })));
        }
Пример #17
0
        /// <summary>
        /// 更新商品属性
        /// </summary>
        /// <param name="pid">商品id</param>
        /// <param name="attrId">属性id</param>
        /// <param name="attrValueId">属性值id</param>
        /// <param name="inputValue">输入值</param>
        /// <param name="type">更新类型</param>
        /// <returns></returns>
        public ActionResult UpdateProductAttribute(int pid = -1, int attrId = -1, int attrValueId = -1, string inputValue = "", int type = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null || partProductInfo.StoreId != WorkContext.StoreId)
            {
                return(Content("0"));
            }

            bool result = false;
            ProductAttributeInfo productAttributeInfo = AdminProducts.GetProductAttributeByPidAndAttrId(pid, attrId);

            if (productAttributeInfo == null)
            {
                productAttributeInfo = new ProductAttributeInfo();

                productAttributeInfo.Pid         = pid;
                productAttributeInfo.AttrId      = attrId;
                productAttributeInfo.AttrValueId = attrValueId;
                if (AdminCategories.GetAttributeValueById(attrValueId).IsInput == 0 || string.IsNullOrWhiteSpace(inputValue))
                {
                    productAttributeInfo.InputValue = "";
                }
                else
                {
                    productAttributeInfo.InputValue = inputValue;
                }

                result = AdminProducts.CreateProductAttribute(productAttributeInfo);
            }
            else
            {
                if (type == 1)
                {
                    productAttributeInfo.AttrValueId = attrValueId;
                    productAttributeInfo.InputValue  = inputValue;
                    result = AdminProducts.UpdateProductAttribute(productAttributeInfo);
                }
                else if (type == 0)
                {
                    productAttributeInfo.AttrValueId = attrValueId;
                    productAttributeInfo.InputValue  = "";
                    result = AdminProducts.UpdateProductAttribute(productAttributeInfo);
                }
            }
            if (result)
            {
                AddStoreAdminLog("修改商品属性", "修改商品属性,商品属性ID:" + pid + "_" + attrId);
                return(Content("1"));
            }
            else
            {
                return(Content("0"));
            }
        }
Пример #18
0
        /// <summary>
        /// 添加商品到购物车
        /// </summary>
        public ActionResult AddProduct()
        {
            int pid          = WebHelper.GetQueryInt("pid");        //商品id
            int buyCount     = WebHelper.GetQueryInt("buyCount");   //购买数量
            int scSubmitType = WorkContext.ShopConfig.SCSubmitType; //购物车的提交方式

            //当商城不允许游客使用购物车时
            if (WorkContext.ShopConfig.IsGuestSC == 0 && WorkContext.Uid < 1)
            {
                return(AjaxResult("nologin", "请先登录"));
            }

            //判断商品是否存在
            PartProductInfo partProductInfo = Products.GetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(AjaxResult("noproduct", "请选择商品"));
            }

            //购买数量不能小于1
            if (buyCount < 1)
            {
                return(AjaxResult("buycountmin", "请填写购买数量"));
            }

            //商品库存
            int stockNumber = Products.GetProductStockNumberByPid(pid);

            if (stockNumber < buyCount)
            {
                return(AjaxResult("stockout", "商品库存不足"));
            }

            //购物车中已经存在的商品列表
            List <OrderProductInfo> orderProductList = Carts.GetCartProductList(WorkContext.Uid, WorkContext.Sid);
            OrderProductInfo        orderProductInfo = Carts.GetCommonOrderProductByPid(pid, orderProductList);

            if (orderProductInfo == null)
            {
                if ((WorkContext.Uid > 0 && orderProductList.Count >= WorkContext.ShopConfig.MemberSCCount) || (WorkContext.Uid < 1 && orderProductList.Count >= WorkContext.ShopConfig.GuestSCCount))
                {
                    return(AjaxResult("full", "购物车已满"));
                }
            }

            buyCount = orderProductInfo == null ? buyCount : orderProductInfo.BuyCount + buyCount;
            //将商品添加到购物车
            Carts.AddProductToCart(ref orderProductList, buyCount, partProductInfo, WorkContext.Sid, WorkContext.Uid, DateTime.Now);
            //将购物车中商品数量写入cookie
            Carts.SetCartProductCountCookie(Carts.SumOrderProductCount(orderProductList));

            return(AjaxResult("success", "添加成功"));
        }
Пример #19
0
        /// <summary>
        /// 后台获得部分商品
        /// </summary>
        /// <param name="pid">商品id</param>
        /// <returns></returns>
        public static PartProductInfo AdminGetPartProductById(int pid)
        {
            PartProductInfo partProductInfo = null;
            IDataReader     reader          = BrnShop.Core.BSPData.RDBS.AdminGetPartProductById(pid);

            if (reader.Read())
            {
                partProductInfo = BuildPartProductFromReader(reader);
            }

            reader.Close();
            return(partProductInfo);
        }
Пример #20
0
        /// <summary>
        /// 获得用户浏览商品列表
        /// </summary>
        /// <param name="pageSize">每页数</param>
        /// <param name="pageNumber">当前页数</param>
        /// <param name="uid">用户id</param>
        /// <returns></returns>
        public static List <PartProductInfo> GetUserBrowseProductList(int pageSize, int pageNumber, int uid)
        {
            List <PartProductInfo> partProductList = new List <PartProductInfo>();
            IDataReader            reader          = BrnShop.Core.BSPData.RDBS.GetUserBrowseProductList(pageSize, pageNumber, uid);

            while (reader.Read())
            {
                PartProductInfo partProductInfo = Products.BuildPartProductFromReader(reader);
                partProductList.Add(partProductInfo);
            }

            reader.Close();
            return(partProductList);
        }
Пример #21
0
        /// <summary>
        /// 获得签名商品列表
        /// </summary>
        /// <param name="sign">签名</param>
        /// <returns></returns>
        public static List <PartProductInfo> GetSignProductList(string sign)
        {
            List <PartProductInfo> partProductList = new List <PartProductInfo>();
            IDataReader            reader          = BrnShop.Core.BSPData.RDBS.GetSignProductList(sign);

            while (reader.Read())
            {
                PartProductInfo partProductInfo = BuildPartProductFromReader(reader);
                partProductList.Add(partProductInfo);
            }
            reader.Close();

            return(partProductList);
        }
Пример #22
0
        /// <summary>
        /// 获得分类商品列表
        /// </summary>
        /// <param name="pageSize">每页数</param>
        /// <param name="pageNumber">当前页数</param>
        /// <param name="cateId">分类id</param>
        /// <param name="brandId">品牌id</param>
        /// <param name="filterPrice">筛选价格</param>
        /// <param name="catePriceRangeList">分类价格范围列表</param>
        /// <param name="attrValueIdList">属性值id列表</param>
        /// <param name="onlyStock">是否只显示有货</param>
        /// <param name="sortColumn">排序列</param>
        /// <param name="sortDirection">排序方向</param>
        /// <returns></returns>
        public static List <PartProductInfo> GetCategoryProductList(int pageSize, int pageNumber, int cateId, int brandId, int filterPrice, string[] catePriceRangeList, List <int> attrValueIdList, int onlyStock, int sortColumn, int sortDirection)
        {
            List <PartProductInfo> partProductList = new List <PartProductInfo>();
            IDataReader            reader          = BrnShop.Core.BSPData.RDBS.GetCategoryProductList(pageSize, pageNumber, cateId, brandId, filterPrice, catePriceRangeList, attrValueIdList, onlyStock, sortColumn, sortDirection);

            while (reader.Read())
            {
                PartProductInfo partProductInfo = BuildPartProductFromReader(reader);
                partProductList.Add(partProductInfo);
            }

            reader.Close();
            return(partProductList);
        }
Пример #23
0
        /// <summary>
        /// 商品咨询列表
        /// </summary>
        public ActionResult ProductConsultList()
        {
            int    pid            = WebHelper.GetQueryInt("pid");
            int    consultTypeId  = WebHelper.GetQueryInt("consultTypeId");
            string consultMessage = WebHelper.GetQueryString("consultMessage");
            int    page           = WebHelper.GetQueryInt("page");

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView("/", "你访问的商品不存在"));
            }

            if (!SecureHelper.IsSafeSqlString(consultMessage))
            {
                return(PromptView(WorkContext.UrlReferrer, "您搜索的内容不存在"));
            }

            //店铺信息
            StoreInfo storeInfo = Stores.GetStoreById(productInfo.StoreId);

            if (storeInfo.State != (int)StoreState.Open)
            {
                return(PromptView("/", "你访问的商品不存在"));
            }

            PageModel pageModel           = new PageModel(10, page, ProductConsults.GetProductConsultCount(pid, consultTypeId, consultMessage));
            ProductConsultListModel model = new ProductConsultListModel()
            {
                ProductInfo            = productInfo,
                CategoryInfo           = Categories.GetCategoryById(productInfo.CateId),
                BrandInfo              = Brands.GetBrandById(productInfo.BrandId),
                StoreInfo              = storeInfo,
                StoreKeeperInfo        = Stores.GetStoreKeeperById(storeInfo.StoreId),
                StoreRegion            = Regions.GetRegionById(storeInfo.RegionId),
                StoreRankInfo          = StoreRanks.GetStoreRankById(storeInfo.StoreRid),
                ConsultTypeId          = consultTypeId,
                ConsultMessage         = consultMessage,
                PageModel              = pageModel,
                ProductConsultList     = ProductConsults.GetProductConsultList(pageModel.PageSize, pageModel.PageNumber, pid, consultTypeId, consultMessage),
                ProductConsultTypeList = ProductConsults.GetProductConsultTypeList(),
                IsVerifyCode           = CommonHelper.IsInArray(WorkContext.PageKey, WorkContext.MallConfig.VerifyPages)
            };

            return(View(model));
        }
Пример #24
0
        /// <summary>
        /// 商品套装列表
        /// </summary>
        /// <returns></returns>
        public ActionResult ProductSuitList()
        {
            //商品id
            int pid = GetRouteInt("pid");

            if (pid == 0)
            {
                pid = WebHelper.GetQueryInt("pid");
            }

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView(Url.Action("index", "home"), "你访问的商品不存在"));
            }

            //店铺信息
            StoreInfo storeInfo = Stores.GetStoreById(productInfo.StoreId);

            if (storeInfo.State != (int)StoreState.Open)
            {
                return(PromptView(Url.Action("index", "home"), "你访问的商品不存在"));
            }


            List <KeyValuePair <SuitPromotionInfo, List <ExtSuitProductInfo> > > suitProductList = Promotions.GetProductAllSuitPromotion(pid, DateTime.Now);

            if (suitProductList.Count == 0)
            {
                return(PromptView(Url.Action("product", new RouteValueDictionary {
                    { "pid", pid }
                }), "此商品没有套装"));
            }

            ProductSuitListModel model = new ProductSuitListModel();

            //商品id
            model.Pid = pid;
            //商品信息
            model.ProductInfo = productInfo;
            //套装商品列表
            model.SuitProductList = suitProductList;

            return(View(model));
        }
Пример #25
0
        /// <summary>
        /// 商品关键词列表
        /// </summary>
        public ActionResult ProductKeywordList(int pid = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView("商品不存在"));
            }

            ProductKeywordListModel model = new ProductKeywordListModel()
            {
                ProductKeywordList = AdminProducts.GetProductKeywordList(pid),
                Pid = pid
            };

            ViewData["referer"] = MallUtils.GetMallAdminRefererCookie();
            return(View(model));
        }
Пример #26
0
        /// <summary>
        /// 关联商品列表
        /// </summary>
        /// <param name="pid">主商品id</param>
        /// <returns></returns>
        public ActionResult RelateProductList(int pid = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView("商品不存在"));
            }

            RelateProductListModel model = new RelateProductListModel()
            {
                RelateProductList = AdminProducts.AdminGetRelateProductList(pid),
                Pid = pid
            };

            ViewData["referer"] = ShopUtils.GetAdminRefererCookie();
            return(View(model));
        }
Пример #27
0
        /// <summary>
        /// 商品图片列表
        /// </summary>
        public ActionResult ProductImageList(int pid = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null)
            {
                return(PromptView("商品不存在"));
            }

            ProductImageListModel model = new ProductImageListModel()
            {
                ProductImageList = AdminProducts.GetProductImageList(pid),
                Pid = pid
            };

            Load();
            return(View(model));
        }
Пример #28
0
        /// <summary>
        /// 商品评价列表
        /// </summary>
        public ActionResult ProductReviewList()
        {
            int pid        = WebHelper.GetQueryInt("pid");
            int reviewType = WebHelper.GetQueryInt("reviewType");
            int page       = WebHelper.GetQueryInt("page");

            //判断商品是否存在
            PartProductInfo productInfo = Products.GetPartProductById(pid);

            if (productInfo == null)
            {
                return(PromptView("/", "你访问的商品不存在"));
            }

            //店铺信息
            StoreInfo storeInfo = Stores.GetStoreById(productInfo.StoreId);

            if (storeInfo.State != (int)StoreState.Open)
            {
                return(PromptView("/", "你访问的商品不存在"));
            }

            if (reviewType < 0 || reviewType > 3)
            {
                reviewType = 0;
            }

            PageModel pageModel          = new PageModel(10, page, ProductReviews.GetProductReviewCount(pid, reviewType));
            ProductReviewListModel model = new ProductReviewListModel()
            {
                ProductInfo       = productInfo,
                CategoryInfo      = Categories.GetCategoryById(productInfo.CateId),
                BrandInfo         = Brands.GetBrandById(productInfo.BrandId),
                StoreInfo         = storeInfo,
                StoreKeeperInfo   = Stores.GetStoreKeeperById(storeInfo.StoreId),
                StoreRegion       = Regions.GetRegionById(storeInfo.RegionId),
                StoreRankInfo     = StoreRanks.GetStoreRankById(storeInfo.StoreRid),
                ReviewType        = reviewType,
                PageModel         = pageModel,
                ProductReviewList = ProductReviews.GetProductReviewList(pid, reviewType, pageModel.PageSize, pageModel.PageNumber)
            };

            return(View(model));
        }
Пример #29
0
        /// <summary>
        /// 获得部分商品
        /// </summary>
        /// <param name="pid">商品id</param>
        /// <returns></returns>
        public static PartProductInfo GetPartProductById(int pid)
        {
            PartProductInfo partProductInfo = null;

            if (_productnosql != null)
            {
                partProductInfo = _productnosql.GetPartProductById(pid);
            }
            else
            {
                IDataReader reader = BrnShop.Core.BSPData.RDBS.GetPartProductById(pid);
                if (reader.Read())
                {
                    partProductInfo = BuildPartProductFromReader(reader);
                }
                reader.Close();
            }

            return(partProductInfo);
        }
Пример #30
0
        /// <summary>
        /// 删除商品属性
        /// </summary>
        /// <param name="pid">商品id</param>
        /// <param name="attrId">属性id</param>
        /// <returns></returns>
        public ActionResult DelProductAttribute(int pid = -1, int attrId = -1)
        {
            PartProductInfo partProductInfo = AdminProducts.AdminGetPartProductById(pid);

            if (partProductInfo == null || partProductInfo.StoreId != WorkContext.StoreId)
            {
                return(Content("0"));
            }

            bool result = AdminProducts.DeleteProductAttributeByPidAndAttrId(pid, attrId);

            if (result)
            {
                AddStoreAdminLog("删除商品属性", "删除商品属性,商品属性ID:" + pid + "_" + attrId);
                return(Content("1"));
            }
            else
            {
                return(Content("0"));
            }
        }