/// <summary> /// 查询商家所有下架商品按照销售量排序 - 新增 /// </summary> /// <param name="id">商家ID</param> /// <returns></returns> public System.Collections.Generic.List <Jinher.AMP.BTP.Deploy.CommodityDTO> GetAllNoOnSaleCommodityBySellerIDBySalesvolume(System.Guid id, int pageSize, int pageIndex, string commodityName, string commodityCategory, string sSalesvolume, string eSalesvolume, string sPrice, string ePrice, out int rowCount) { var query = Commodity.ObjectSet().Where(n => n.IsDel.Equals(false) && n.AppId.Equals(id) && (n.State == 1 || n.State == 2) && n.CommodityType == 0); #region 条件查询 if (!string.IsNullOrEmpty(commodityName)) { query = query.Where(n => n.Name.Contains(commodityName)); } if (!string.IsNullOrEmpty(sSalesvolume)) { int s = int.Parse(sSalesvolume); query = query.Where(n => n.Salesvolume >= s); } if (!string.IsNullOrEmpty(eSalesvolume)) { int e = int.Parse(eSalesvolume); query = query.Where(n => n.Salesvolume <= e); } if (!string.IsNullOrEmpty(sPrice)) { decimal s = 0; if (!decimal.TryParse(sPrice, out s))//长度越界 { rowCount = 0; return(new Commodity().ToEntityDataList(new List <Commodity>())); } query = query.Where(n => n.Price >= s); } if (!string.IsNullOrEmpty(ePrice)) { decimal e = 0; if (!decimal.TryParse(ePrice, out e))//长度越界 { rowCount = 0; return(new Commodity().ToEntityDataList(new List <Commodity>())); } query = query.Where(n => n.Price <= e); } if (!string.IsNullOrEmpty(commodityCategory)) { string[] commodityCategoryID = commodityCategory.Split(','); List <Guid> idlist = new List <Guid>(); foreach (string commodityCategoryid in commodityCategoryID) { if (!string.IsNullOrEmpty(commodityCategoryid)) { idlist.Add(new Guid(commodityCategoryid)); } } query = from n in query join m in CommodityCategory.ObjectSet() on n.Id equals m.CommodityId where idlist.Contains(m.CategoryId) select n; } #endregion rowCount = query.Count(); var list = query.OrderByDescending(n => n.SubTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); return(new Commodity().ToEntityDataList(list)); }
/// <summary> /// 创建商品默认分类 /// </summary> /// <param name="appId"></param> /// <returns></returns> public static CommodityCategory CreateDefaultCategory(Guid commodityId, Guid appId, Guid subId) { CommodityCategory result = CommodityCategory.CreateCommodityCategory(); result.CategoryId = Guid.Empty; result.CommodityId = commodityId; result.SubId = subId; result.SubTime = DateTime.Now; result.Name = "商品分类"; result.AppId = appId; result.CrcAppId = Jinher.JAP.Common.Crc64.ComputeAsAsciiGuid(appId); return(result); }
/// <summary> /// 根据促销ID查询促销商品 /// </summary> /// <param name="promotionID">促销ID</param> /// <param name="pageSize">每页显示数量</param> /// <param name="pageIndex">当前页</param> /// <returns></returns> public System.Collections.Generic.IEnumerable <Jinher.AMP.BTP.Deploy.CustomDTO.PromotionItemsVM> GetPromotionItemsByPromotionID(System.Guid promotionID, int pageSize, int pageIndex) { var quary = from n in PromotionItems.ObjectSet() join m in Promotion.ObjectSet() on n.PromotionId equals m.Id join b in Commodity.ObjectSet() on n.CommodityId equals b.Id where (n.PromotionId == promotionID && b.CommodityType == 0) select new PromotionItemsVM { AppId = n.AppId, PromotionId = m.Id, CommodityId = b.Id, CommodityName = b.Name, Price = b.Price, Stock = b.Stock, PicturesPath = b.PicturesPath, TotalCollection = b.TotalCollection, TotalReview = b.TotalReview, Salesvolume = b.Salesvolume, State = b.State, Intensity = m.Intensity, No_Codes = b.No_Code, PromotionSubTime = b.SubTime }; var query1 = quary.OrderByDescending(n => n.PromotionSubTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); foreach (var c in query1) { c.CommodityCategorys = from cc in CommodityCategory.ObjectSet() join cate in Category.ObjectSet() on cc.CategoryId equals cate.Id where cc.CommodityId == c.CommodityId && cc.AppId == c.AppId select cate.Name; } return(query1); }
/// <summary> /// 查询订单下商品 /// </summary> /// <param name="commodityOrderId"></param> /// <returns></returns> public List <OrderItemsVM> SelectOrderItemsByOrderId(Guid commodityOrderId, Guid appId) { CommodityCategory cc = new CommodityCategory(); IEnumerable <OrderItemsVM> query = from data in OrderItem.ObjectSet() join data1 in Commodity.ObjectSet() on data.CommodityId equals data1.Id where (data.CommodityOrderId == commodityOrderId && data1.CommodityType == 0) select new OrderItemsVM { CommodityOrderId = data.CommodityOrderId, CommodityId = data.CommodityId, CommodityIdName = data1.Name, PicturesPath = data1.PicturesPath, Price = data.CurrentPrice, //取订单商品列表中的价格 Number = data.Number, SizeAndColorId = data.ComAttributeIds, //CommodityCategorys = cc.GetCommodityCategory(data1.Id).Select(n => n.Name).ToList(), }; query = query.ToList(); //遍历查询商品的类别信息 ps:真的要这么做么? foreach (var item in query) { var category = (from data in CommodityCategory.ObjectSet() join data1 in Category.ObjectSet() on data.CategoryId equals data1.Id where data.CommodityId == item.CommodityId && data.AppId == appId select data1.Name).ToList(); item.CommodityCategorys = category; } //获取订单商品的一些信息 List <OrderItemsVM> orderItemsVMList = query.ToList <OrderItemsVM>(); SecondAttribute secondAttribute = new SecondAttribute(); Jinher.AMP.BTP.BE.Attribute attribute = new Jinher.AMP.BTP.BE.Attribute(); //获取app的所有次级属性 List <SecondAttributeDTO> secondAttributeDTOList = secondAttribute.GetSecondAttributeBySellerID(appId); //获取app的所有属性(目前只有颜色和尺寸两种) List <Attribute> attributeDTOList = Attribute.ObjectSet().ToList(); List <OrderItemsVM> orderItemslist = new List <OrderItemsVM>(); Collection collect = new Collection(); //遍历商品信息,获取每个商品对应的颜色、尺寸属性 foreach (OrderItemsVM model in orderItemsVMList) { List <ComAttibuteDTO> comAlist = new List <ComAttibuteDTO>(); string attributeString = model.SizeAndColorId; if (!string.IsNullOrWhiteSpace(attributeString)) { string[] attributeStringArray = attributeString.Split(','); for (int i = 0; i < attributeStringArray.Length; i++) { SecondAttributeDTO tempSecondDTO = secondAttributeDTOList.Where(p => p.Id == Guid.Parse(attributeStringArray[i])).FirstOrDefault(); if (tempSecondDTO != null) { Attribute tempDTO = attributeDTOList.Where(p => p.Id == tempSecondDTO.AttributeId).FirstOrDefault(); ComAttibuteDTO comA = new ComAttibuteDTO(); comA.AttributeId = tempDTO.Id; comA.Code = "1"; comA.SubTime = DateTime.Now; comA.AttributeName = tempDTO.Name; comA.CommodityId = model.CommodityId; comA.SecondAttributeName = tempSecondDTO.Name; comA.SecondAttributeId = tempSecondDTO.Id; comAlist.Add(comA); } } } model.SelectedComAttibutes = comAlist; orderItemslist.Add(model); } return(orderItemslist); }