public decimal GetCanBuyNumber(HolidayProductAttributeViewModel attrModel, ProductDto proModel) { decimal price = 0M; //根据价格判断(虽然一般月饼 客单价不会超过这个数(800元)还是加个判断比较靠谱) if (proModel.Promotion != null) { price = proModel.PromotionDiscountPrice; } else { price = proModel.MinPrice; } return(holidayBll.GetCanBuyNumber(attrModel.Weight, price)); }
public ActionResult Item(string productCode, string selectedSku = "") { try { IList <ProductImage> images = null; //获取单品页商品 int userId = 0; if (base.LoginUser != null) { userId = base.LoginUser.UserID; } var itemskus = productBll.GetItemByProductCode(productCode, base.language, ref images, userId); if (itemskus.Count() > 0) { var item = itemskus.FirstOrDefault(); string spu = item.Spu; //获取收藏表的信息 bool isflag = false; if (base.LoginUser != null) { isflag = productBll.getFivoriteDetail(spu, base.LoginUser.UserID); } //获取促销信息 var promotions = itemBll.GetPromotionEntities(itemskus.Select(n => n.Sku).ToArray()); //判断这个spu是不是在做拼生活活动(用于前端是否显示拼生活图标链接) var flag = false; if (promotions.Where(d => d.PromotionType == 2).Count() > 0) { flag = true; } //促销商品,过滤掉拼团(PromotionType=2)商品,留下打折商品PromotionType=1 promotions = promotions.Where(d => d.PromotionType != 2).ToList(); //组装DTO--pageload var product = itemskus.ToArray().AsDto(base.ExchangeRate, promotions, isflag); // 查询 拼生活里面 是否有这个spu if (flag) { product.isTrue = 1; } product.Images = images.ToArray(); //组装skuAttributeViewModel-- for js skuSelected var skuAttributeViewModel = itemskus.AsSkuAttributeViewModel(base.ExchangeRate, promotions, selectedSku, dto: product); bool skuFlag = itemskus.GroupBy(d => d.Sku).Count() > 1; //当SKU只有1条时候,默认要被选中,要把所有的FLAG重置1 if (!skuFlag) { foreach (var skuAttribute in skuAttributeViewModel.MainAttributes) { skuAttribute.Flag = 1; foreach (var subSkuAttribute in skuAttribute.SubAttributes) { subSkuAttribute.Flag = 1; } } foreach (var subSkuAttribute in skuAttributeViewModel.SubAttributes) { subSkuAttribute.Flag = 1; } } //装配节日时令产品的:展示属性(净重、规格、口味)以及(毛重Weight用于判断能卖几件商品)=>e.g月饼清关规定:不能超过3Kg,不能超过两件,不能超过800元 HolidayProductAttributeViewModel holidayProductAttrVM = new HolidayProductAttributeViewModel(); var productExpand = productBll.GetProductExpandEntity(spu, base.language); if (productExpand != null) { holidayProductAttrVM.Weight = productExpand.Weight; holidayProductAttrVM.Flavor = productExpand.Flavor; holidayProductAttrVM.Specifications = item.Specifications; holidayProductAttrVM.NetWeight = item.NetWeight; } //装配ViewBag ViewBag.HolidayAttributeViewModel = holidayProductAttrVM; ViewBag.SkuMetaViewModel = skuAttributeViewModel; ViewBag.CanBuyNum = holidayBll.GetCanBuyNumberByWeight(holidayProductAttrVM.Weight); return(PartialView("_Item", product)); } else { return(PartialView("_Item", new ProductDto())); } } catch (Exception ex) { return(HandleError(ex)); } }