示例#1
0
 public ActionResult Intro(int id)
 {
     try
     {
         if (id <= 0)
         {
             return(Redirect("/Home/NotFound"));
         }
         var brandInfo = brandBll.GetBrandInfo(id, base.language);
         int spuCount  = brandBll.GetBrandSaleSpuCount(id, base.language, base.DeliveryRegion);
         ViewBag.SpuCount  = spuCount;
         ViewBag.StoreList = brandBll.GetStoreListByBrandId(id, base.language);
         if (brandInfo == null)
         {
             return(Redirect("/Home/NotFound"));
         }
         return(View(brandInfo));
     }
     catch (Exception ex)
     {
         LogHelper.Error(ex);
         return(Redirect("/home/error"));
     }
 }
示例#2
0
        /// <summary>
        /// 创建专题模板视图对象
        /// </summary>
        /// <param name="model">专题活动实体Model</param>
        /// <param name="activityName">活动编号如:0701</param>
        /// <returns>ActivityViewModel</returns>
        public ActivityViewModel CreateActivityViewModel(ActivityModel model, string activityName)
        {
            ViewBag.ExchangeRate = base.ExchangeRate;
            //拆分页面模块,获取模块标题以及对应的spu集合
            ActivityViewModel viewmodel = new ActivityViewModel();

            //Key如:"0601"  可以用于找到模板对应的0601素材文件夹
            viewmodel.Key         = activityName;
            viewmodel.Title       = model.Title;
            viewmodel.HeadTitle   = model.HeadTitle;
            viewmodel.Discription = model.Discription;
            viewmodel.ImgPath     = model.ImgPath;
            viewmodel.TempType    = model.TempType;
            string[] sections = model.SPUs.Split('|');

            //为模板装配模块数据
            List <ActivityModule> modules = new List <ActivityModule>();

            //1品牌模板 和 2分类模板
            if (viewmodel.TempType != 3)
            {
                foreach (var section in sections)
                {
                    string[]       sectionSplit = section.Split(':');
                    ActivityModule module       = new ActivityModule();
                    if (viewmodel.TempType == 1)
                    {
                        module.ModuleName = sectionSplit[0];
                    }
                    else
                    {
                        var sectionHead = sectionSplit[0].Split(',');//示例:  保健品,product/index?level=0&c=1 以逗号隔开
                        module.ModuleName    = sectionHead[0];
                        module.ModuleLinkURL = sectionHead[1];
                    }
                    //module.ProductList = bll.GetProductListBySpus(sectionSplit[1]).ToList();
                    //换做从Redis缓存中各个模块数据
                    module.ProductList = bll.GetProductListBySpusFromCache(sectionSplit[1], activityName, module.ModuleName).ToList();
                    modules.Add(module);
                }
            }
            else//品牌模板
            {
                ActivityBrandViewModel brand = new ActivityBrandViewModel();
                var brandArr = sections[0].Split(',');
                brand.BrandId          = brandArr[0].As(0);
                brand.BrandName        = brandArr[1];
                brand.BrandDescription = brandBll.GetBrandInfo(brand.BrandId, base.language).IntroductionCN;
                viewmodel.BrandInfo    = brand;
                //将主推产品的介绍,加入字典,在后面装配给响应的spu商品
                Dictionary <string, string> mainProductDiscriptions = new Dictionary <string, string>();
                if (!string.IsNullOrEmpty(model.MainProductDescription))
                {
                    string[] mpd = model.MainProductDescription.Split('|');
                    foreach (var item in mpd)
                    {
                        string[] dic = item.Split(':');
                        mainProductDiscriptions.Add(dic[0], dic[1]);
                    }
                }
                //装配品牌模板的每个模块数据
                for (int i = 1; i < sections.Length; i++)
                {
                    string[]       sectionSplit = sections[i].Split(':');
                    ActivityModule module       = new ActivityModule();
                    module.ModuleName = sectionSplit[0];
                    //List<ProductInfoModel> plist = bll.GetProductListBySpus(sectionSplit[1]).ToList();
                    //换做从Redis缓存中各个模块数据
                    List <ProductInfoModel> plist = bll.GetProductListBySpusFromCache(sectionSplit[1], activityName, module.ModuleName).ToList();

                    //为主推产品添加专有描述
                    if (module.ModuleName.Trim() == "主推产品")
                    {
                        plist.ForEach(x => x.Description = mainProductDiscriptions[x.SPU]);
                    }
                    module.ProductList = plist;
                    modules.Add(module);
                }
            }
            viewmodel.Modules = modules;
            return(viewmodel);
        }