Exemple #1
0
        /// <summary>
        /// 转换sku属性字符串成对象
        /// </summary>
        /// <param name="skuPropStr">示例 1:2:尺码:M;2:6:颜色:马其色 </param>
        /// <returns></returns>
        private List <SkuProperties> GetSkuProperties(string skuPropStr)
        {
            List <SkuProperties> list = new List <SkuProperties>();

            try
            {
                foreach (var item in skuPropStr.Split(';'))
                {
                    SkuProperties model    = new SkuProperties();
                    string[]      propArry = item.Split(':');
                    BLLJIMP.Model.ProductProperty      property  = bllMall.GetProductProperty(int.Parse(propArry[0]));
                    BLLJIMP.Model.ProductPropertyValue propValue = bllMall.GetProductPropertyValue(int.Parse(propArry[1]));
                    model.property_id         = property.PropID;
                    model.property_name       = property.PropName.Trim();
                    model.property_value_id   = propValue.PropValueId;
                    model.property_value_name = propValue.PropValue.Trim();
                    list.Add(model);
                }
                return(list);
            }
            catch (Exception ex)
            {
                return(list);
            }
        }
Exemple #2
0
        /// <summary>
        /// 获取商品规格
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Property(HttpContext context)
        {
            string productId = context.Request["product_id"];
            //1:1:尺码:XS;2:2:颜色:红色
            var                      skuList      = bllMall.GetProductSkuList(int.Parse(productId));
            List <string>            propIdList   = new List <string>();//获取商品拥有的所有属性ID集合
            Dictionary <int, string> propKeyValue = new Dictionary <int, string>();

            foreach (var sku in skuList)
            {
                if (!string.IsNullOrEmpty(sku.PropValueIdEx1) && !string.IsNullOrEmpty(sku.PropValueIdEx2))
                {
                    sku.Props = bllMall.GetProductProperties(sku.SkuId);//兼容efast同步
                }
                if (string.IsNullOrEmpty(sku.Props))
                {
                    return("");
                }
                foreach (var item in sku.Props.Split(';'))
                {
                    string propId = item.Split(':')[0];
                    if (!propIdList.Contains(propId))
                    {
                        propIdList.Add(propId);
                        string propName = item.Split(':')[2];
                        var    prop     = bllMall.Get <ProductProperty>(string.Format("PropId={0}", propId));
                        if (prop != null)
                        {
                            propName = prop.PropName;
                        }
                        propKeyValue.Add(int.Parse(propId), propName);
                    }
                }
            }

            List <PropModel> data = new List <PropModel>();

            foreach (var propId in propIdList)
            {
                PropModel model = new PropModel();
                model.name   = propKeyValue[int.Parse(propId)];
                model.values = new List <Values>();
                foreach (var sku in skuList)
                {
                    foreach (var item in sku.Props.Split(';'))
                    {
                        string propIdNew     = item.Split(':')[0];
                        string propValue     = item.Split(':')[1];
                        string propValueName = item.Split(':')[3];
                        if (propId == propIdNew)
                        {
                            Values valueModel = new Values();
                            valueModel.p_id = int.Parse(propId);
                            valueModel.v_id = int.Parse(propValue);

                            BLLJIMP.Model.ProductPropertyValue propValueInfo = bllMall.GetProductPropertyValue(valueModel.v_id);
                            //valueModel.value = propValueName;
                            valueModel.value   = propValueInfo.PropValue;
                            valueModel.sku_img = sku.SkuImg;
                            if (model.values.Where(p => p.v_id == valueModel.v_id).Count() == 0)
                            {
                                model.values.Add(valueModel);
                            }
                        }
                    }
                }

                data.Add(model);
            }

            return(ZentCloud.Common.JSONHelper.ObjectToJson(new
            {
                totalcount = data.Count,
                list = data
            }));
        }
Exemple #3
0
        /// <summary>
        /// 获取商品拥有的属性集合 如颜色 有几种颜色,尺寸有几种尺寸
        /// </summary>
        /// <param name="productId"></param>
        /// <returns></returns>
        private List <PropertyModel> GetHaveProperty(int productId)
        {
            try
            {
                var                      skuList      = bllMall.GetProductSkuList(productId);
                List <string>            propIdList   = new List <string>();//获取商品拥有的所有属性ID集合
                Dictionary <int, string> propKeyValue = new Dictionary <int, string>();
                foreach (var sku in skuList)
                {
                    if (!string.IsNullOrEmpty(sku.PropValueIdEx1) && !string.IsNullOrEmpty(sku.PropValueIdEx2))
                    {
                        sku.Props = bllMall.GetProductProperties(sku.SkuId);//兼容efast同步 无用
                    }

                    foreach (var item in sku.Props.Split(';'))
                    {
                        string propId = item.Split(':')[0];
                        if (!propIdList.Contains(propId))
                        {
                            propIdList.Add(propId);
                            string propName = item.Split(':')[2];
                            propKeyValue.Add(int.Parse(propId), propName);
                        }
                    }
                }


                List <PropertyModel> data = new List <PropertyModel>();
                foreach (var propId in propIdList)
                {
                    PropertyModel model = new PropertyModel();
                    Property      prop  = new Property();
                    prop.property_id          = int.Parse(propId);
                    prop.property_name        = propKeyValue[int.Parse(propId)].Trim();
                    model.property            = prop;
                    model.property_value_list = new List <PropertyValueModel>();
                    foreach (var sku in skuList)
                    {
                        foreach (var item in sku.Props.Split(';'))
                        {
                            string propIdNew     = item.Split(':')[0];
                            string propValue     = item.Split(':')[1];
                            string propValueName = item.Split(':')[3];


                            if (propId == propIdNew)
                            {
                                PropertyValueModel valueModel = new PropertyValueModel();
                                valueModel.property_value_id = int.Parse(propValue);

                                BLLJIMP.Model.ProductPropertyValue propValueInfo = bllMall.GetProductPropertyValue(int.Parse(propValue));
                                //valueModel.property_value_name = propValueName.Trim();
                                valueModel.property_value_name = propValueInfo.PropValue.Trim();
                                if (model.property_value_list.Where(p => p.property_value_id == valueModel.property_value_id).Count() == 0)
                                {
                                    model.property_value_list.Add(valueModel);
                                }
                            }
                        }
                    }

                    data.Add(model);
                }


                return(data);
            }
            catch (Exception)
            {
                return(new List <PropertyModel>());
            }
        }