예제 #1
0
 /// <summary>
 /// 商品下架
 /// </summary>
 /// <param name="skuIds"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static int OffSalesCommodity(List <string> skuIds, ThirdECommerceTypeEnum type)
 {
     try
     {
         ContextSession   contextSession = ContextFactory.CurrentThreadContext;
         List <Commodity> commoditys     = new List <Commodity>();
         if (type == ThirdECommerceTypeEnum.SuNingYiGou)
         {
             commoditys = Commodity.ObjectSet().Where(p => skuIds.Contains(p.JDCode) && p.State == 0 && CustomConfig.SnAppIdList.Contains(p.AppId)).ToList();
         }
         if (type == ThirdECommerceTypeEnum.JingDongDaKeHu)
         {
             commoditys = Commodity.ObjectSet().Where(p => skuIds.Contains(p.JDCode) && p.State == 0 && CustomConfig.JdAppIdList.Contains(p.AppId)).ToList();
         }
         commoditys.ForEach(p =>
         {
             LogHelper.Info("商品下架:CommodityId=" + p.Id);
             p.State      = 1;
             p.ModifiedOn = DateTime.Now;
         });
         var count = contextSession.SaveChanges();
         if (count > 0)
         {
             LogHelper.Info("商品下架:count=" + count);
         }
         return(count);
     }
     catch (Exception ex)
     {
         LogHelper.Error(ex.ToString());
     }
     return(0);
 }
예제 #2
0
 /// <summary>
 /// 店铺(商家)是否属于第三方电商(暂时京东除外)
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public static bool IsThirdECommerce(ThirdECommerceTypeEnum type)
 {
     return(type != ThirdECommerceTypeEnum.NotThirdECommerce &&
            type != ThirdECommerceTypeEnum.JingDongDaKeHu &&
            type != ThirdECommerceTypeEnum.SuNingYiGou &&
            type != ThirdECommerceTypeEnum.FangZheng);
 }
예제 #3
0
 /// <summary>
 /// 同步库存
 /// </summary>
 /// <param name="skuStockDir"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static int UpdateCommodityStock(Dictionary <string, int> skuStockDir, ThirdECommerceTypeEnum type)
 {
     try
     {
         ContextSession        contextSession  = ContextFactory.CurrentThreadContext;
         var                   skuIds          = skuStockDir.Select(p => p.Key).ToList();
         List <Commodity>      commoditys      = new List <Commodity>();
         List <CommodityStock> commodityStocks = new List <CommodityStock>();
         if (type == ThirdECommerceTypeEnum.JingDongDaKeHu)
         {
             commoditys = Commodity.ObjectSet().Where(p => skuIds.Contains(p.JDCode) && p.State == 0 && CustomConfig.JdAppIdList.Contains(p.AppId)).ToList();
         }
         List <Guid> commodityIds = new List <Guid>();
         if (commoditys != null && commoditys.Count > 0)
         {
             commodityIds = commoditys.Select(p => p.Id).ToList();
         }
         commodityStocks = CommodityStock.ObjectSet().Where(p => skuIds.Contains(p.JDCode) && p.State == 0 && commodityIds.Contains(p.CommodityId)).ToList();
         commoditys.ForEach(p =>
         {
             LogHelper.Info(string.Format("商品(Commodity)调整库存:CommodityId={0},Stock={1}", p.Id, skuStockDir[p.JDCode]));
             p.Stock            = skuStockDir[p.JDCode];
             p.ModifiedOn       = DateTime.Now;
             var commodityStock = commodityStocks.FirstOrDefault(x => x.CommodityId == p.Id);
             if (commodityStock != null)
             {
                 LogHelper.Info(string.Format("商品(CommodityStock)调整库存:CommodityId={0},Stock={1}", p.Id, skuStockDir[p.JDCode]));
                 commodityStock.Stock      = skuStockDir[p.JDCode];
                 commodityStock.ModifiedOn = DateTime.Now;
             }
         });
         var count = contextSession.SaveChanges();
         if (count > 0)
         {
             LogHelper.Info("商品(Commodity)调整库存:count=" + count);
         }
         return(count);
     }
     catch (Exception ex)
     {
         LogHelper.Error(ex.ToString());
     }
     return(0);
 }
예제 #4
0
 /// <summary>
 /// 同步价格
 /// </summary>
 /// <param name="skuIds"></param>
 /// <param name="priceDtos"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static int UpdateCommodityPrice(List <string> skuIds, List <SNPriceDto> priceDtos, ThirdECommerceTypeEnum type)
 {
     try
     {
         ContextSession   contextSession = ContextFactory.CurrentThreadContext;
         var              floatPrice     = GetFloatPrice();
         List <Commodity> commoditys     = new List <Commodity>();
         if (type == ThirdECommerceTypeEnum.SuNingYiGou)
         {
             commoditys = Commodity.ObjectSet().Where(p => skuIds.Contains(p.JDCode) && CustomConfig.SnAppIdList.Contains(p.AppId)).ToList();
         }
         if (type == ThirdECommerceTypeEnum.JingDongDaKeHu)
         {
             commoditys = Commodity.ObjectSet().Where(p => skuIds.Contains(p.JDCode) && CustomConfig.JdAppIdList.Contains(p.AppId)).ToList();
         }
         var commodityIds      = commoditys.Select(p => p.Id).ToList();
         var commodityStocks   = CommodityStock.ObjectSet().Where(p => commodityIds.Contains(p.CommodityId)).ToList();
         var commodityStockIds = commodityStocks.Select(p => p.Id).ToList();
         commoditys.ForEach(p =>
         {
             var priceDto = priceDtos.Where(x => x.skuId == p.JDCode).FirstOrDefault();
             var price    = Decimal.Zero;
             var snPrice  = Decimal.Zero;
             if (priceDto != null)
             {
                 if (!string.IsNullOrEmpty(priceDto.price))
                 {
                     price = Convert.ToDecimal(priceDto.price);
                 }
                 if (!string.IsNullOrEmpty(priceDto.snPrice))
                 {
                     snPrice = Convert.ToDecimal(priceDto.snPrice);
                 }
             }
             if (priceDto == null)
             {
                 if (p.State == 0)
                 {
                     LogHelper.Info("未获取到商品价格信息,商品下架:CommodityId=" + p.Id);
                     p.State      = 1;
                     p.ModifiedOn = DateTime.Now;
                 }
                 return;
             }
             if ((price <= 0 || snPrice <= 0))
             {
                 if (p.State == 0)
                 {
                     LogHelper.Info("进价或售价为0,商品下架:CommodityId=" + p.Id);
                     p.State      = 1;
                     p.ModifiedOn = DateTime.Now;
                 }
                 return;
             }
             var commodityStock = commodityStocks.FirstOrDefault(x => x.CommodityId == p.Id);
             if (p.CostPrice != price)
             {
                 if (price >= snPrice)
                 {
                     snPrice          = Convert.ToDecimal(priceDto.price) + floatPrice;
                     priceDto.snPrice = snPrice.ToString();
                 }
                 LogHelper.Info(string.Format("商品进价从{0}调整为{1}:CommodityId={2}", p.CostPrice, priceDto.price, p.Id));
                 LogHelper.Info(string.Format("商品售价从{0}调整为{1}", p.Price, priceDto.snPrice));
                 p.CostPrice  = price;
                 p.Price      = snPrice;
                 p.ModifiedOn = DateTime.Now;
                 if (commodityStock != null)
                 {
                     LogHelper.Info(string.Format("商品单品进价从{0}调整为{1}:CommodityStockId={2}", commodityStock.CostPrice, priceDto.price, commodityStock.Id));
                     LogHelper.Info(string.Format("商品单品售价从{0}调整为{1}", commodityStock.Price, priceDto.snPrice));
                     commodityStock.CostPrice  = price;
                     commodityStock.Price      = snPrice;
                     commodityStock.ModifiedOn = DateTime.Now;
                 }
             }
             else if (p.CostPrice >= p.Price || (commodityStock != null && commodityStock.CostPrice >= commodityStock.Price))
             {
                 if (price >= snPrice)
                 {
                     snPrice          = Convert.ToDecimal(priceDto.price) + floatPrice;
                     priceDto.snPrice = snPrice.ToString();
                 }
                 LogHelper.Info(string.Format("商品售价从{0}调整为{1}:CommodityId={2}", p.Price, priceDto.snPrice, p.Id));
                 p.Price      = snPrice;
                 p.ModifiedOn = DateTime.Now;
                 if (commodityStock != null)
                 {
                     LogHelper.Info(string.Format("商品单品售价从{0}调整为{1}:CommodityStockId={2}", commodityStock.Price, priceDto.snPrice, commodityStock.Id));
                     commodityStock.Price      = snPrice;
                     commodityStock.ModifiedOn = DateTime.Now;
                 }
             }
         });
         var count = contextSession.SaveChanges();
         if (count > 0)
         {
             LogHelper.Info("调整商品价格:count=" + count);
         }
         return(count);
     }
     catch (Exception ex)
     {
         LogHelper.Error(ex.ToString());
     }
     return(0);
 }