private void ReSetPriority(int PageType, int RefSysNo) { //所有置顶的商品 List <TopItemInfo> all = ObjectFactory <ITopItemDA> .Instance.QueryTopItem(PageType, RefSysNo); //已经下架商品列表 List <ProductInfo> products = ExternalDomainBroker.GetProductInfoListByProductSysNoList(all.Select(p => p.ProductSysNo.Value).ToList <int>()).Where(p => p.ProductStatus == ProductStatus.InActive_Show).ToList();//原代码写的status=0 List <TopItemInfo> removedList = new List <TopItemInfo>(); products.ForEach(item => { removedList.Add(new TopItemInfo() { ProductSysNo = item.SysNo, CategorySysNo = RefSysNo, CategoryType = PageType }); }); CancleTopItem(removedList); all = ObjectFactory <ITopItemDA> .Instance.QueryTopItem(PageType, RefSysNo); for (int i = 0; i < all.Count; i++) { TopItemInfo entity = all[i]; entity.Priority = i + 1; ObjectFactory <ITopItemDA> .Instance.UpdateTopItemPriority(entity); } }
//加载 public ComputerConfigMaster LoadComputerConfig(int sysNo) { var configItems = _configDA.GetComputerConfigItems(sysNo); var categories = _configDA.GetAllComputerPartsCategory(); //调用IM接口取得商品详细 var productSysNoList = configItems.Where(item => item.ProductSysNo.HasValue).Select(item => item.ProductSysNo.Value).ToList(); var productInfoList = ExternalDomainBroker.GetProductInfoListByProductSysNoList(productSysNoList); //调用Inventory接口取得库存信息 var inventoryInfoList = ExternalDomainBroker.GetProductInventoryInfoByProductSysNoList(productSysNoList); foreach (var item in configItems) { //填充商品详细 var foundProduct = productInfoList.FirstOrDefault(product => product.SysNo == item.ProductSysNo); if (foundProduct != null) { item.ProductID = foundProduct.ProductID; item.ProductName = foundProduct.ProductName; item.UnitCost = foundProduct.ProductPriceInfo.UnitCost; item.CurrentPrice = foundProduct.ProductPriceInfo.CurrentPrice; } //填充库存信息 var foundInventory = inventoryInfoList.FirstOrDefault(inventory => inventory.ProductSysNo.Value == item.ProductSysNo); if (foundInventory != null) { item.OnlineQty = foundInventory.OnlineQty; } item.PartsCategories = categories.FindAll(c => c.ComputerPartSysNo == item.ComputerPartSysNo); } //按优先级升序 configItems.OrderBy(item => item.Priority); var master = _configDA.LoadMaster(sysNo); master.ConfigItemList = configItems; return(master); }
/// <summary> /// 从IMDomain获取商品及赠品的商品信息,主要是状态信息。 /// </summary> private void InitProductInfosFromIM(SaleGiftBatchInfo saleGiftBatchInfo) { List <int> productSysNos = new List <int>(); if (saleGiftBatchInfo.ProductItems1 != null) { foreach (ProductItemInfo item in saleGiftBatchInfo.ProductItems1) { productSysNos.Add(item.ProductSysNo.Value); } } if (saleGiftBatchInfo.ProductItems2 != null) { foreach (ProductItemInfo item in saleGiftBatchInfo.ProductItems2) { productSysNos.Add(item.ProductSysNo.Value); } } if (saleGiftBatchInfo.Gifts != null) { foreach (ProductItemInfo item in saleGiftBatchInfo.Gifts) { productSysNos.Add(item.ProductSysNo.Value); } } List <ProductInfo> products = ExternalDomainBroker.GetProductInfoListByProductSysNoList(productSysNos); //将商品的相关信息,状态、价格信息等赋值给Item. RetryFunc <ProductItemInfo, int> copyItemInfo = (ProductItemInfo item) => { ProductInfo swapItem = products.Find(p => p.SysNo == item.ProductSysNo); if (swapItem != null) { item.ProductStatus = swapItem.ProductStatus; item.ProductID = swapItem.ProductID; item.ProductName = swapItem.ProductName; item.CurrentPrice = swapItem.ProductPriceInfo.CurrentPrice.Value; item.C3SysNo = swapItem.ProductBasicInfo.ProductCategoryInfo.SysNo; item.BrandSysNo = swapItem.ProductBasicInfo.ProductBrandInfo.SysNo; } return(0); }; if (saleGiftBatchInfo.ProductItems1 != null) { foreach (ProductItemInfo item in saleGiftBatchInfo.ProductItems1) { copyItemInfo(item); } } if (saleGiftBatchInfo.ProductItems2 != null) { foreach (ProductItemInfo item in saleGiftBatchInfo.ProductItems2) { copyItemInfo(item); } } if (saleGiftBatchInfo.Gifts != null) { foreach (ProductItemInfo item in saleGiftBatchInfo.Gifts) { copyItemInfo(item); } } }