master
wufan 2 months ago
parent d920942220
commit e7c785cc64

@ -29004,6 +29004,7 @@ namespace TradeManageNew
[WebMethod(EnableSession = true)]
public APIReturnModel PlaceShopifyUsedSaleOrderCallback(string originJson)
{
PagesNew.SaveLog(0, "Shopify二手商品下单", $"原始Json{originJson}", 0);
if (string.IsNullOrWhiteSpace(originJson))
{
return new APIReturnModel
@ -29013,11 +29014,14 @@ namespace TradeManageNew
Datas = null
};
}
var originJsonData = JsonConvert.DeserializeObject<ShopifyUsedSaleOrderDto>(originJson);
using (var db = new TradeUsedSale.Repositories.ErpDbContext())
{
var includeUsedSale = false;
var errorMessage = string.Empty;
//Shopify二手订单
var newDtShopifyUsedSaleOrder = new TradeUsedSale.Repositories.Models.DT_ShopifyUsedSaleOrder
{
OrderId = originJsonData.Order.OrderId,
@ -29050,46 +29054,36 @@ namespace TradeManageNew
IsPlaceOrderSuccess = false
};
var dtShopifyUsedSaleOrderId = db.InsertWithInt32Identity(newDtShopifyUsedSaleOrder);
db.BeginTransaction();
//Shopify二手订单明细
var newDtShopifyUsedSaleOrderItems =
new List<TradeUsedSale.Repositories.Models.DT_ShopifyUsedSaleOrderItem>();
try
{
foreach (var item in originJsonData.Items)
{
//ERP二手商品信息
var orderUsedSalePlatform = db.DT_OrderUsedSalePlatform.FirstOrDefault(x => x.BarCode == item.ProductCode);
var orderUsedSalePlatform =
db.DT_OrderUsedSalePlatform.FirstOrDefault(x => x.BarCode == item.ProductCode);
if (orderUsedSalePlatform is null)
{
throw new Exception($"未获取到编码[{item.ProductCode}]的二手商品信息");
PagesNew.SaveLog(0, "Shopify二手商品下单", $"未获取到编码[{item.ProductCode}]的二手商品信息", 0);
continue;
}
includeUsedSale = true;
//Shopify商品映射
var shopifyProductGoodsMap = db.DT_ShopifyProductGoodsMap.FirstOrDefault(x => x.SkuId == orderUsedSalePlatform.SkuId);
var shopifyProductGoodsMap =
db.DT_ShopifyProductGoodsMap.FirstOrDefault(x =>
x.SkuId == orderUsedSalePlatform.SkuId);
if (shopifyProductGoodsMap is null)
{
throw new Exception($"未获取到SKU[{orderUsedSalePlatform.SkuCode}]对应的Shopify产品信息");
}
//下单后修改二手商品信息
var statement = db.DT_OrderUsedSalePlatform.Where(x => x.BarCode == item.ProductCode)
.Set(x => x.Status, TradeUsedSale.Enums.UsedSalePlatformStatus.PendingPickup);
if (item.ShippingMethod == "SP")
{
statement = statement.Set(x => x.ShippingMethod,
TradeUsedSale.Enums.ShippingMethod.SelfPickup);
}
if (item.ShippingMethod == "DL")
{
statement = statement.Set(x => x.ShippingMethod,
TradeUsedSale.Enums.ShippingMethod.ExpressDelivery);
}
statement.Update();
// Shopify客户端
// 删除产品变体
// Shopify客户端 删除产品变体
var shopifyApiClient = new ShopifyAPIClient();
var productVariantRes = shopifyApiClient.DeleteProductVariantAsync(new Body3
{
@ -29101,19 +29095,14 @@ namespace TradeManageNew
if (productVariantRes.Success != true)
{
throw new Exception(productVariantRes.Message);
throw new Exception($"删除Shopify条码[{item.ProductCode}]变体失败,{productVariantRes.Message}");
}
db.DT_ShopifyUsedSaleOrder.Where(x => x.Id == dtShopifyUsedSaleOrderId)
.Set(x => x.IsPlaceOrderSuccess, true)
.Set(x => x.PlaceOrderMessage, "更新二手订单信息成功")
.Update();
//添加Shopify订单明细
var newDtShopifyUsedSaleOrderItem =
new TradeUsedSale.Repositories.Models.DT_ShopifyUsedSaleOrderItem
{
DtShopifyUsedSaleOrderId = dtShopifyUsedSaleOrderId,
DtShopifyUsedSaleOrderId = 0,
OriginSku = item.OriginSku,
Sku = item.Sku,
ProductCode = item.ProductCode,
@ -29127,9 +29116,61 @@ namespace TradeManageNew
ShippingMethod = item.ShippingMethod
};
newDtShopifyUsedSaleOrderItems.Add(newDtShopifyUsedSaleOrderItem);
}
}
catch (Exception ex)
{
errorMessage = ex.Message;
}
if (includeUsedSale)
{
if (!string.IsNullOrEmpty(errorMessage))
{
newDtShopifyUsedSaleOrder.IsPlaceOrderSuccess = false;
newDtShopifyUsedSaleOrder.PlaceOrderMessage = $"更新二手订单信息失败,原因:{errorMessage}";
db.InsertWithInt32Identity(newDtShopifyUsedSaleOrder);
PagesNew.SaveLog(0, "Shopify二手商品下单", "部分执行成功", 0);
}
else
{
newDtShopifyUsedSaleOrder.IsPlaceOrderSuccess = true;
newDtShopifyUsedSaleOrder.PlaceOrderMessage = "更新二手订单信息成功";
var dtShopifyUsedSaleOrderId = db.InsertWithInt32Identity(newDtShopifyUsedSaleOrder);
try
{
db.BeginTransaction();
foreach (var newDtShopifyUsedSaleOrderItem in newDtShopifyUsedSaleOrderItems)
{
newDtShopifyUsedSaleOrderItem.DtShopifyUsedSaleOrderId = dtShopifyUsedSaleOrderId;
db.InsertWithInt32Identity(newDtShopifyUsedSaleOrderItem);
//下单后修改二手商品信息
var statement = db.DT_OrderUsedSalePlatform.Where(x =>
x.BarCode == newDtShopifyUsedSaleOrderItem.ProductCode)
.Set(x => x.Status, TradeUsedSale.Enums.UsedSalePlatformStatus.PendingPickup);
if (newDtShopifyUsedSaleOrderItem.ShippingMethod == "SP")
{
statement = statement.Set(x => x.ShippingMethod,
TradeUsedSale.Enums.ShippingMethod.SelfPickup);
}
if (newDtShopifyUsedSaleOrderItem.ShippingMethod == "DL")
{
statement = statement.Set(x => x.ShippingMethod,
TradeUsedSale.Enums.ShippingMethod.ExpressDelivery);
}
statement.Update();
}
PagesNew.SaveLog(0, "Shopify二手商品下单", "执行成功", 0);
db.CommitTransaction();
}
catch (Exception ex)
@ -29139,6 +29180,14 @@ namespace TradeManageNew
db.DT_ShopifyUsedSaleOrder.Where(x => x.Id == dtShopifyUsedSaleOrderId)
.Set(x => x.PlaceOrderMessage, $"更新二手订单信息失败,原因:{ex.Message}")
.Update();
PagesNew.SaveLog(0, "Shopify二手商品下单", "部分执行成功", 0);
}
}
}
else
{
PagesNew.SaveLog(0, "Shopify二手商品下单", "该订单未包含任何上传的二手商品", 0);
}
}
@ -29153,6 +29202,7 @@ namespace TradeManageNew
[WebMethod(EnableSession = true)]
public APIReturnModel CancelShopifyUsedSaleOrderCallback(string originJson)
{
PagesNew.SaveLog(0, "Shopify二手商品取消", $"原始Json{originJson}", 0);
if (string.IsNullOrWhiteSpace(originJson))
{
return new APIReturnModel
@ -29167,12 +29217,14 @@ namespace TradeManageNew
using (var db = new TradeUsedSale.Repositories.ErpDbContext())
{
var shopifyUsedSaleOrder = db.DT_ShopifyUsedSaleOrder.FirstOrDefault(x => x.OrderId == originJsonData.OrderId);
var shopifyUsedSaleOrder =
db.DT_ShopifyUsedSaleOrder.FirstOrDefault(x => x.OrderId == originJsonData.OrderId);
if (shopifyUsedSaleOrder is null)
{
PagesNew.SaveLog(0, "Shopify二手商品取消", $"未找到ShopifyOrderId为{originJsonData.OrderId}Shopify二手订单原始Json为:{originJson}", 0);
PagesNew.SaveLog(0, "Shopify二手商品取消", $"跳过执行,未找到ShopifyOrderId为{originJsonData.OrderId}Shopify二手订单", 0);
}
else
{
try
{
db.BeginTransaction();
@ -29190,7 +29242,8 @@ namespace TradeManageNew
foreach (var saleOrderItem in shopifyUsedSaleOrderItems)
{
//ERP二手商品
var orderUsedSalePlatform = db.DT_OrderUsedSalePlatform.FirstOrDefault(x => x.BarCode == saleOrderItem.ProductCode);
var orderUsedSalePlatform =
db.DT_OrderUsedSalePlatform.FirstOrDefault(x => x.BarCode == saleOrderItem.ProductCode);
if (orderUsedSalePlatform is null)
{
throw new Exception($"不存在打印条码为[{saleOrderItem.ProductCode}]的二手商品");
@ -29199,7 +29252,8 @@ namespace TradeManageNew
#region 重新上传Shopify变体
//系统产品信息
var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == orderUsedSalePlatform.ProductId);
var product =
db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == orderUsedSalePlatform.ProductId);
if (product is null)
{
var message = $"系统中不存在编码为[{orderUsedSalePlatform.ProductCode}]的产品信息无法推送至Shopify";
@ -29221,11 +29275,13 @@ namespace TradeManageNew
}
//预估运费
var postFee = db.HW_PostFee.FirstOrDefault(x => x.GoodsId == orderUsedSalePlatform.ProductId);
var postFee =
db.HW_PostFee.FirstOrDefault(x => x.GoodsId == orderUsedSalePlatform.ProductId);
if (postFee is null)
{
throw new Exception( $"产品[{product.GoodsCode}]无预估运费无法推送至Shopify");
throw new Exception($"产品[{product.GoodsCode}]无预估运费无法推送至Shopify");
}
var fees = new List<decimal?>()
{
postFee.Fee1,
@ -29241,11 +29297,13 @@ namespace TradeManageNew
if (feeCost <= 0)
{
throw new Exception( $"产品[{product.GoodsCode}]预估运费小于0无法推送至Shopify");
throw new Exception($"产品[{product.GoodsCode}]预估运费小于0无法推送至Shopify");
}
//Shopify商品映射
var shopifyProductGoodsMap = db.DT_ShopifyProductGoodsMap.FirstOrDefault(x => x.SkuId == orderUsedSalePlatform.SkuId);
var shopifyProductGoodsMap =
db.DT_ShopifyProductGoodsMap.FirstOrDefault(x =>
x.SkuId == orderUsedSalePlatform.SkuId);
if (shopifyProductGoodsMap is null)
{
throw new Exception($"未获取到SKU[{orderUsedSalePlatform.SkuCode}]对应的Shopify产品信息");
@ -29253,12 +29311,14 @@ namespace TradeManageNew
//获取SKU的资料信息
var shopifyProductProfile =
db.DT_ShopifyUsedSaleProduct.FirstOrDefault(x => x.Sku == orderUsedSalePlatform.SkuCode);
db.DT_ShopifyUsedSaleProduct.FirstOrDefault(x =>
x.Sku == orderUsedSalePlatform.SkuCode);
//Shopify客户端
var shopifyApiClient = new ShopifyAPIClient();
var imageUrls = JsonConvert.DeserializeObject<List<string>>(orderUsedSalePlatform.ImageUrls);
var imageUrls =
JsonConvert.DeserializeObject<List<string>>(orderUsedSalePlatform.ImageUrls);
//在Shopify创建产品变体信息
var createShopifyVariantParameter = new AddVariantRequest
{
@ -29290,7 +29350,8 @@ namespace TradeManageNew
},
};
var productVariantRes = shopifyApiClient.AddProductVariantAsync(createShopifyVariantParameter).ConfigureAwait(false)
var productVariantRes = shopifyApiClient
.AddProductVariantAsync(createShopifyVariantParameter).ConfigureAwait(false)
.GetAwaiter()
.GetResult();
@ -29308,13 +29369,16 @@ namespace TradeManageNew
#endregion
}
PagesNew.SaveLog(0, "Shopify二手商品取消", "执行成功", 0);
db.CommitTransaction();
}
catch (Exception ex)
{
db.RollbackTransaction();
PagesNew.SaveLog(0, "Shopify二手商品取消", $"执行失败原始Json为:{originJson},原因:{ex.Message}", 0);
PagesNew.SaveLog(0, "Shopify二手商品取消", $"执行失败,{ex.Message}", 0);
}
}
}

Loading…
Cancel
Save