public static Mall_BusinessDiscountRequest_ProductDetail[] GetMall_BusinessDiscountRequest_ProductDetailListByBusinessDiscountRequestID(int BusinessDiscountRequestID, string GUID = "")
        {
            List <SqlParameter> parameters = new List <SqlParameter>();
            List <string>       conditions = new List <string>();

            if (BusinessDiscountRequestID == 0 && string.IsNullOrEmpty(GUID))
            {
                return(new Mall_BusinessDiscountRequest_ProductDetail[] { });
            }
            if (BusinessDiscountRequestID > 0)
            {
                conditions.Add("[BusinessDiscountRequestID]=@BusinessDiscountRequestID");
                parameters.Add(new SqlParameter("@BusinessDiscountRequestID", BusinessDiscountRequestID));
            }
            if (!string.IsNullOrEmpty(GUID))
            {
                conditions.Add("[Guid]=@Guid");
                parameters.Add(new SqlParameter("@Guid", GUID));
            }
            string cmdtext = "select * from [Mall_BusinessDiscountRequest_Product] where  " + string.Join(" or ", conditions.ToArray()) + " order by [ID] asc";
            var    list    = GetList <Mall_BusinessDiscountRequest_ProductDetail>(cmdtext, parameters).ToArray();

            if (list.Length == 0)
            {
                return(list);
            }
            var ProductIDList = list.Select(p => p.ProductID).ToList();
            var product_list  = Mall_ProductDetail.GetMall_ProductDetailListByIDList(ProductIDList);

            foreach (var item in list)
            {
                var my_product = product_list.FirstOrDefault(p => p.ID == item.ProductID);
                if (my_product != null)
                {
                    item.ProductName    = my_product.ProductName;
                    item.FinalPrice     = my_product.FinalSalePrice;
                    item.FinalInventory = my_product.Inventory;
                }
            }
            return(list);
        }
示例#2
0
        public static Mall_ProductDetail GetMall_ProductDetailPrice(Mall_ProductDetail data)
        {
            if (data == null)
            {
                return(null);
            }
            var my_discount_product = Mall_BusinessDiscountRequest_Product.GetMall_BusinessDiscountRequest_ProductListByBusinessID(data.BusinessID, data.ID);

            if (my_discount_product != null)
            {
                data.DiscountPrice    = my_discount_product.Price;
                data.DiscountQuantity = my_discount_product.Quantity;
            }
            data.VariantPrice      = (data.SalePrice > 0 ? data.SalePrice : 0);
            data.VariantPoint      = 0;
            data.VariantPointPrice = 0;
            data.VariantVIPPoint   = 0;
            data.VariantVIPPrice   = 0;
            data.VariantStaffPrice = 0;
            data.VariantStaffPoint = 0;
            data.VariantInventory  = (data.TotalCount > 0 ? data.TotalCount : 0);
            data.VariantID         = 0;
            data.VariantName       = string.Empty;
            var my_variant_list = Mall_Product_VariantDetail.GetMall_Product_VariantDetailListByProductID(data.ID).OrderBy(q => q.FinalVariantPrice).ToArray();

            if (my_variant_list.Length > 0)
            {
                data.VariantPrice      = (my_variant_list[0].FinalVariantPrice > 0 ? my_variant_list[0].FinalVariantPrice : data.VariantPrice);
                data.VariantPoint      = (my_variant_list[0].VariantPoint > 0 ? my_variant_list[0].VariantPoint : data.VariantPoint);
                data.VariantPointPrice = (my_variant_list[0].VariantPointPrice > 0 ? my_variant_list[0].VariantPointPrice : data.VariantPointPrice);
                data.VariantVIPPoint   = (my_variant_list[0].VariantVIPPoint > 0 ? my_variant_list[0].VariantVIPPoint : data.VariantVIPPoint);
                data.VariantVIPPrice   = (my_variant_list[0].VariantVIPPrice > 0 ? my_variant_list[0].VariantVIPPrice : data.VariantVIPPrice);
                data.VariantStaffPrice = (my_variant_list[0].VariantStaffPrice > 0 ? my_variant_list[0].VariantStaffPrice : data.VariantStaffPrice);
                data.VariantStaffPoint = (my_variant_list[0].VariantStaffPoint > 0 ? my_variant_list[0].VariantStaffPoint : data.VariantStaffPoint);
                data.VariantInventory  = (my_variant_list[0].Inventory > 0 ? my_variant_list[0].Inventory : data.VariantInventory);
                data.VariantID         = my_variant_list[0].ID;
                data.VariantName       = my_variant_list[0].VariantName;
            }
            return(data);
        }
示例#3
0
        public static List <Dictionary <string, object> > getshoppingcartitems(Mall_ShoppingCart[] list, Mall_ProductDetail[] products, Mall_Product_VariantDetail[] product_variants, int BusinessID, string context_path, out decimal totalprice, out int totalsalepoint, out int TotalQuantity, out string totalpricedesc)
        {
            totalprice     = 0;
            TotalQuantity  = 0;
            totalpricedesc = string.Empty;
            totalsalepoint = 0;
            List <Dictionary <string, object> > productlist = new List <Dictionary <string, object> >();

            Mall_ProductDetail[] my_products = new Mall_ProductDetail[] { };
            if (BusinessID > 0)
            {
                my_products = products.Where(p => p.BusinessID == BusinessID).ToArray();
            }
            else
            {
                my_products = products.Where(p => p.IsZiYing).ToArray();
            }
            var my_cartlist = list.Where(p => my_products.Select(q => q.ID).ToList().Contains(p.ProductID)).ToArray();

            foreach (var item in my_cartlist)
            {
                var my_product = products.FirstOrDefault(p => p.ID == item.ProductID);
                if (my_product == null)
                {
                    continue;
                }
                var     my_variant         = product_variants.FirstOrDefault(p => p.ID == item.VariantID);
                decimal price              = 0;
                int     salepoint          = 0;
                bool    isallowproductsale = false;
                bool    isallowpointsale   = false;
                bool    isallowvipsale     = false;
                bool    isallowstaffsale   = false;
                int     type      = Mall_Product.GetFinalProductOrderType(item.ProductOrderType, my_product.ProductOrderType);
                string  pricedesc = Mall_Product.GetOrderItemPriceDesc(my_product, my_variant, item.Quantity, out price, out salepoint, out isallowproductsale, out isallowpointsale, out isallowvipsale, out isallowstaffsale, out totalpricedesc, ProductOrderType: type);
                string  desc      = string.Empty;

                if (!string.IsNullOrEmpty(item.VariantTitle) && !string.IsNullOrEmpty(item.VariantName))
                {
                    desc = item.VariantTitle + ": " + item.VariantName;
                }
                Dictionary <string, object> dic = new Dictionary <string, object>();
                dic["id"]               = item.ID;
                dic["productid"]        = item.ProductID;
                dic["variantid"]        = item.VariantID;
                dic["imageurl"]         = !string.IsNullOrEmpty(my_product.CoverImage) ? context_path + my_product.CoverImage : "../image/error-img.png";
                dic["title"]            = my_product.ProductName;
                dic["desc"]             = desc;
                dic["pricedesc"]        = pricedesc;
                dic["price"]            = price;
                dic["salepoint"]        = salepoint;
                dic["quantity"]         = item.Quantity;
                dic["checked"]          = false;
                dic["maxquantity"]      = my_product.MaxQuantity;
                dic["quantitylimit"]    = my_product.QuantityLimit > 0 ? my_product.QuantityLimit : 0;
                dic["producttypeid"]    = my_product.ProductTypeID;
                dic["ProductOrderType"] = item.ProductOrderType > 0 ? item.ProductOrderType : 16;
                totalprice             += price * item.Quantity;
                totalsalepoint         += salepoint * item.Quantity;
                TotalQuantity          += item.Quantity;
                productlist.Add(dic);
            }
            if (totalsalepoint > 0 && totalprice > 0)
            {
                totalpricedesc = "¥" + totalprice.ToString("0.00") + " + " + totalsalepoint.ToString() + "积分";
            }
            else if (totalprice > 0)
            {
                totalpricedesc = "¥" + totalprice.ToString("0.00");
            }
            else if (totalsalepoint > 0)
            {
                totalpricedesc = totalsalepoint.ToString() + "积分";
            }
            return(productlist);
        }
示例#4
0
        public static List <Dictionary <string, object> > GetMall_HotSaleList()
        {
            string context_path = Utility.Tools.GetContextPath();
            List <Dictionary <string, object> > results = new List <Dictionary <string, object> >();
            var list = Mall_HotSale.GetMall_HotSales().Where(p => p.Is_Valid).OrderBy(p => p.SortOrder).ToArray();

            if (list.Length == 0)
            {
                return(results);
            }
            var list_product_ids  = list.Where(p => p.Type == 1).Select(p => p.RelatedID).ToList();
            var list_business_ids = list.Where(p => p.Type == 2).Select(p => p.RelatedID).ToList();

            Mall_ProductDetail[] product_list  = new Mall_ProductDetail[] { };
            Mall_Business[]      business_list = new Mall_Business[] { };
            if (list_product_ids.Count > 0)
            {
                product_list = Mall_ProductDetail.GetMall_ProductDetailListByIDList(list_product_ids).Where(p => p.IsAllowProductBuy).ToArray();
            }
            if (list_business_ids.Count > 0)
            {
                business_list = Mall_Business.GetMall_BusinessListByIDList(list_business_ids);
            }
            foreach (var item in list)
            {
                Dictionary <string, object> dic = new Dictionary <string, object>();
                dic["id"]        = item.ID;
                dic["type"]      = item.Type;
                dic["RelatedID"] = item.RelatedID > 0 ? item.RelatedID : 0;
                if (item.Type == 1)
                {
                    var my_data = product_list.FirstOrDefault(p => p.ID == item.RelatedID);
                    if (my_data == null)
                    {
                        continue;
                    }
                    dic["imageurl"]   = !string.IsNullOrEmpty(my_data.CoverImage) ? context_path + my_data.CoverImage : "";
                    dic["title"]      = my_data.ProductName;
                    dic["pricevalue"] = my_data.FinalVariantPrice;
                    dic["price"]      = my_data.NormalPriceDesc.ToString();
                    dic["addtime"]    = my_data.AddTime.ToString("yyyy-MM-dd HH:mm:ss");
                    dic["salecount"]  = my_data.SaleCount;
                }
                else if (item.Type == 2)
                {
                    var my_data = business_list.FirstOrDefault(p => p.ID == item.RelatedID);
                    if (my_data == null)
                    {
                        continue;
                    }
                    dic["imageurl"]   = !string.IsNullOrEmpty(my_data.CoverImage) ? context_path + my_data.CoverImage : "";
                    dic["title"]      = my_data.BusinessName;
                    dic["pricevalue"] = 0;
                    dic["price"]      = "¥0.00";
                    dic["addtime"]    = my_data.AddTime.ToString("yyyy-MM-dd HH:mm:ss");
                    dic["salecount"]  = 0;
                }
                dic["SortOrder"] = item.SortOrder > int.MinValue ? item.SortOrder : int.MaxValue;
                results.Add(dic);
            }
            results = results.OrderBy(p => Convert.ToInt32(p["SortOrder"])).ToList();
            return(results);
        }