diff --git a/BBWYB.Client/Models/APIModel/Response/Order/OrderPurchaseInfoResponse.cs b/BBWYB.Client/Models/APIModel/Response/Order/OrderPurchaseInfoResponse.cs index 328dbf7..8465133 100644 --- a/BBWYB.Client/Models/APIModel/Response/Order/OrderPurchaseInfoResponse.cs +++ b/BBWYB.Client/Models/APIModel/Response/Order/OrderPurchaseInfoResponse.cs @@ -19,5 +19,17 @@ namespace BBWYB.Client.Models public string PurchaserName { get; set; } + public string WaybillNo { get; set; } + + public string SourceExpressName { get; set; } + + public string SourceExpressId { get; set; } + + public string TargetExpressName { get; set; } + + public string TargetExpressId { get; set; } + + public string BelongSkuIds { get; set; } + } } diff --git a/BBWYB.Client/Models/APIModel/Response/Order/OrderResponse.cs b/BBWYB.Client/Models/APIModel/Response/Order/OrderResponse.cs index fde50af..0547981 100644 --- a/BBWYB.Client/Models/APIModel/Response/Order/OrderResponse.cs +++ b/BBWYB.Client/Models/APIModel/Response/Order/OrderResponse.cs @@ -92,15 +92,15 @@ namespace BBWYB.Client.Models /// public string PurchaseRemark { get; set; } - /// - /// 运单号 - /// - public string WaybillNo { get; set; } - - /// - /// 快递公司名称 - /// - public string ExpressName { get; set; } + ///// + ///// 运单号 + ///// + //public string WaybillNo { get; set; } + + ///// + ///// 快递公司名称 + ///// + //public string ExpressName { get; set; } /// /// 来源Sku diff --git a/BBWYB.Client/Models/Order/Order.cs b/BBWYB.Client/Models/Order/Order.cs index c4b97ba..e73d727 100644 --- a/BBWYB.Client/Models/Order/Order.cs +++ b/BBWYB.Client/Models/Order/Order.cs @@ -13,7 +13,6 @@ namespace BBWYB.Client.Models } private OrderState orderState; - private string waybillNo; private string venderRemark; public string Id { get; set; } @@ -105,19 +104,12 @@ namespace BBWYB.Client.Models /// public OrderState OrderState { get => orderState; set { SetProperty(ref orderState, value); } } - public string WaybillNo { get => waybillNo; set { SetProperty(ref waybillNo, value); } } - /// /// 商家备注 /// public string VenderRemark { get => venderRemark; set { SetProperty(ref venderRemark, value); } } - /// - /// 快递公司名称 - /// - public string ExpressName { get; set; } - /// /// 来源Sku /// diff --git a/BBWYB.Client/Views/MainWindow.xaml b/BBWYB.Client/Views/MainWindow.xaml index bc462a4..4a42e33 100644 --- a/BBWYB.Client/Views/MainWindow.xaml +++ b/BBWYB.Client/Views/MainWindow.xaml @@ -24,7 +24,7 @@ - + diff --git a/BBWYB.Client/Views/Order/OrderList.xaml b/BBWYB.Client/Views/Order/OrderList.xaml index 098ef33..1f8075d 100644 --- a/BBWYB.Client/Views/Order/OrderList.xaml +++ b/BBWYB.Client/Views/Order/OrderList.xaml @@ -180,12 +180,12 @@ Foreground="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=已完成:White:#4A4A4A}" Command="{Binding SetOrderStateCommand}" CommandParameter="{x:Static cmodel:OrderState.已完成}"/> - + @@ -316,7 +316,7 @@ - + @@ -377,21 +377,13 @@ - - + @@ -510,30 +502,7 @@ - - + @@ -561,25 +530,6 @@ - - @@ -627,11 +577,11 @@ - - - + --> + + + + + + + + + + + + + + + + + + + @@ -671,8 +641,7 @@ - + - + + diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 024204a..5f379fd 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -5,6 +5,7 @@ using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Dto; using FreeSql; +using Newtonsoft.Json; using SDKAdapter; using SDKAdapter.OperationPlatform.Client; using SDKAdapter.OperationPlatform.Models; @@ -84,13 +85,13 @@ namespace BBWYB.Server.Business StartTime = o.StartTime, VenderRemark = o.VenderRemark, PurchaseRemark = o.PurchaseRemark, - WaybillNo = o.WaybillNo, + //WaybillNo = o.WaybillNo, SellerPreferentialAmount = o.SellerPreferentialAmount, PreferentialAmount = o.PreferentialAmount, ClientOrderId = o.ClientOrderId, SourceShopName = o.SourceShopName, SourceSku = o.SourceSku, - ExpressName = o.ExpressName, + //ExpressName = o.ExpressName, IsPurchased = o.IsPurchased, BuyerAccount = o.BuyerAccount, @@ -160,26 +161,51 @@ namespace BBWYB.Server.Business var dbOrder = fsql.Select(request.OrderId).ToOne(); if (dbOrder == null) throw new BusinessException($"订单{request.OrderId}不存在"); - if (dbOrder.OrderState != Enums.OrderState.待出库) - throw new BusinessException($"订单{request.OrderId} 只有在待出库时才允许出库"); - - opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform) - .OutStock(new OP_OutStockRequest() - { - AppKey = request.AppKey, - AppSecret = request.AppSecret, - AppToken = request.AppToken, - ExpressId = request.ExpressId, - ExpressName = request.ExpressName, - OrderId = request.OrderId, - Platform = (AdapterEnums.PlatformType)request.Platform, - WayBillNo = request.WayBillNo - }); - - fsql.Update(request.OrderId).Set(o => o.OrderState, Enums.OrderState.待收货) - .Set(o => o.WaybillNo, request.WayBillNo) - .Set(o => o.ExpressName, request.ExpressName) - .ExecuteAffrows(); + //if (dbOrder.OrderState != Enums.OrderState.待出库) + // throw new BusinessException($"订单{request.OrderId} 只有在待出库时才允许出库"); + + if (!string.IsNullOrEmpty(request.TargetExpressId)) + { + try + { + opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform) + .OutStock(new OP_OutStockRequest() + { + AppKey = request.AppKey, + AppSecret = request.AppSecret, + AppToken = request.AppToken, + ExpressId = request.TargetExpressId, + ExpressName = request.TargetExpressName, + OrderId = request.OrderId, + Platform = (AdapterEnums.PlatformType)request.Platform, + WayBillNo = request.WayBillNo + }); + } + catch (Exception ex) + { + nLogManager.Default().Error(ex, $"OutStock Request {JsonConvert.SerializeObject(request)}"); + } + } + + fsql.Transaction(() => + { + fsql.Update().Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId) + .Set(opi => opi.WaybillNo, request.WayBillNo) + .Set(opi => opi.SourceExpressId, request.SourceExpressId) + .Set(opi => opi.SourceExpressName, request.SourceExpressName) + .Set(opi => opi.TargetExpressId, request.TargetExpressId) + .Set(opi => opi.TargetExpressName, request.TargetExpressName) + .ExecuteAffrows(); + + if (dbOrder.OrderState == Enums.OrderState.待出库) + fsql.Update(request.OrderId).Set(o => o.OrderState, Enums.OrderState.待收货).ExecuteAffrows(); + }); + + + //fsql.Update(request.OrderId).Set(o => o.OrderState, Enums.OrderState.待收货) + // .Set(o => o.WaybillNo, request.WayBillNo) + // .Set(o => o.ExpressName, request.ExpressName) + // .ExecuteAffrows(); } } } diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index c5a37c3..deb9957 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -8,6 +8,7 @@ using FreeSql; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using SDKAdapter; +using SDKAdapter.OperationPlatform.Models; using SDKAdapter.PurchasePlatform.Client; using SDKAdapter.PurchasePlatform.Models; using System.Text; @@ -273,7 +274,8 @@ namespace BBWYB.Server.Business PurchaseOrderId = createOrderResponse.OrderId, PurchasePlatform = cargoParamGroup.PurchasePlatform, PurchaserName = cargoParamGroup.PurchaserName, - ShopId = request.ShopId + ShopId = request.ShopId, + BelongSkuIds = string.Join(",", belongSkuGroups.Select(bsg => bsg.Key)) }; insertOrderPurchaseInfos.Add(orderPurchaserInfo); #endregion @@ -313,6 +315,7 @@ namespace BBWYB.Server.Business updateOrderCost?.ExecuteAffrows(); insertOrderCost?.ExecuteAffrows(); fsql.Update(request.OrderId).SetIf(dbOrder.OrderState == Enums.OrderState.等待采购, o => o.OrderState, Model.Enums.OrderState.待出库) + .SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark) .Set(o => o.IsPurchased, true) .ExecuteAffrows(); }); @@ -431,39 +434,42 @@ namespace BBWYB.Server.Business #region 物流公司翻译 currentProgress = "物流公司翻译"; - //logisticsCompanyId = ConvertLogisticsCompanyId(wayBillNoResponse.LogisticsCompanyName, logisticsCompanyList, shop.Platform); - var convertExpressCompany = expressCompanyNameConverter.Converter(wayBillNoResponse.ExpressName, - (AdapterEnums.PlatformType)callbackPlatform, - (AdapterEnums.PlatformType)shop.PlatformId, - expressCompanyList); - expressCompanyInfo = JsonConvert.SerializeObject(convertExpressCompany); - #endregion - #region 店铺平台订单出库 - currentProgress = "店铺平台订单出库"; - //outStockRequest = new OutStockRequest() - //{ - // AppKey = shop.AppKey, - // AppSecret = shop.AppSecret, - // AppToken = shop.AppToken, - // OrderId = orderPurchaseInfo.OrderId, - // Platform = shop.PlatformId, - // WayBillNo = wayBillNoResponse.WayBillNo, - // LogisticsId = logisticsCompanyId, //物流公司Id - // SaveResponseLog = true - //}; - //orderBusiness.OutStock(outStockRequest); - orderBusiness.OutStock(new OutStockRequest() + OP_QueryExpressCompanyResponse convertExpressCompany = null; + + try { - AppKey = shop.AppKey, - AppSecret = shop.AppSecret, - AppToken = shop.AppToken, - OrderId = orderId, - ExpressId = convertExpressCompany.ExpressId, //物流公司Id - ExpressName = convertExpressCompany.ExpressName, //物流公司名称 - Platform = shop.PlatformId, - WayBillNo = wayBillNoResponse.WayBillNo - }); + convertExpressCompany = expressCompanyNameConverter.Converter(wayBillNoResponse.ExpressName, + (AdapterEnums.PlatformType)callbackPlatform, + (AdapterEnums.PlatformType)shop.PlatformId, + expressCompanyList); + if (convertExpressCompany != null) + expressCompanyInfo = JsonConvert.SerializeObject(convertExpressCompany); + } + catch + { + throw; + } + finally + { + #region 店铺平台订单出库 + currentProgress = "店铺平台订单出库"; + orderBusiness.OutStock(new OutStockRequest() + { + AppKey = shop.AppKey, + AppSecret = shop.AppSecret, + AppToken = shop.AppToken, + OrderId = orderId, + TargetExpressId = convertExpressCompany?.ExpressId ?? string.Empty, //物流公司Id + TargetExpressName = convertExpressCompany?.ExpressName ?? string.Empty, //物流公司名称 + SourceExpressId = wayBillNoResponse.ExpressId, + SourceExpressName = wayBillNoResponse.ExpressName, + PurchaseOrderId = purchaseOrderId, + Platform = shop.PlatformId, + WayBillNo = wayBillNoResponse.WayBillNo + }); + #endregion + } #endregion nLogManager.Default().Info($"DeliveryCallback 回调平台{callbackPlatform},订单号{orderId},采购单号{purchaseOrderId},执行进度[{currentProgress}],采购单物流信息:{wayBillNoResponseInfo},店铺平台物流公司列表:{expressCompanyListInfo},翻译后的物流公司:{expressCompanyInfo}"); diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index b34a584..ae75191 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -92,7 +92,7 @@ namespace BBWYB.Server.Business.Sync Id = qtOrder.OrderId, BuyerRemark = qtOrder.BuyerRemark, EndTime = qtOrder.EndTime, - ExpressName = qtOrder.DeliveryResponse.ExpressName, + //ExpressName = qtOrder.DeliveryResponse.ExpressName, FreightPrice = qtOrder.FreightAmount, ModifyTime = qtOrder.ModifyTime, IsPurchased = false, @@ -103,12 +103,12 @@ namespace BBWYB.Server.Business.Sync PayType = qtOrder.PayType, Platform = Enums.Platform.拳探, PreferentialAmount = qtOrder.PreferentialAmount, - PurchaseRemark = String.Empty, + //PurchaseRemark = String.Empty, ShopId = shopId, SellerPreferentialAmount = qtOrder.SellerPreferentialAmount, StartTime = qtOrder.StartTime, VenderRemark = qtOrder.VenderRemark, - WaybillNo = qtOrder.DeliveryResponse.WayBillNo, + //WaybillNo = qtOrder.DeliveryResponse.WayBillNo, OrderState = orderState, ClientOrderId = qtOrder.ClientOrderId, BuyerAccount = qtOrder.UserAccount @@ -166,8 +166,8 @@ namespace BBWYB.Server.Business.Sync else { var updateOrderState = false; - var updateWaybillNo = false; - var updateExpressName = false; + //var updateWaybillNo = false; + //var updateExpressName = false; var updateModifyTime = false; var updateBuyerRemark = false; var updateVenderRemark = false; @@ -175,10 +175,10 @@ namespace BBWYB.Server.Business.Sync if (dbOrder.OrderState != orderState) updateOrderState = true; - if (dbOrder.WaybillNo != qtOrder.DeliveryResponse.WayBillNo) - updateWaybillNo = true; - if (dbOrder.ExpressName != qtOrder.DeliveryResponse.ExpressName) - updateExpressName = true; + //if (dbOrder.WaybillNo != qtOrder.DeliveryResponse.WayBillNo) + // updateWaybillNo = true; + //if (dbOrder.ExpressName != qtOrder.DeliveryResponse.ExpressName) + // updateExpressName = true; if (dbOrder.ModifyTime != qtOrder.ModifyTime) updateModifyTime = true; if (dbOrder.BuyerRemark != qtOrder.BuyerRemark) @@ -188,11 +188,11 @@ namespace BBWYB.Server.Business.Sync if (dbOrder.BuyerAccount != qtOrder.UserAccount) updateBuyerAccount = true; - if (updateOrderState || updateWaybillNo || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount) + if (updateOrderState || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount) { var update = fsql.Update(dbOrder.Id).SetIf(updateOrderState, o => o.OrderState == orderState) - .SetIf(updateWaybillNo, o => o.WaybillNo, qtOrder.DeliveryResponse.WayBillNo) - .SetIf(updateExpressName, o => o.ExpressName, qtOrder.DeliveryResponse.ExpressName) + //.SetIf(updateWaybillNo, o => o.WaybillNo, qtOrder.DeliveryResponse.WayBillNo) + //.SetIf(updateExpressName, o => o.ExpressName, qtOrder.DeliveryResponse.ExpressName) .SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime) .SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark) .SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark) diff --git a/BBWYB.Server.Model/Db/Order/Order.cs b/BBWYB.Server.Model/Db/Order/Order.cs index 670cc35..c99fd79 100644 --- a/BBWYB.Server.Model/Db/Order/Order.cs +++ b/BBWYB.Server.Model/Db/Order/Order.cs @@ -123,17 +123,17 @@ namespace BBWYB.Server.Model.Db [Column(StringLength = 500)] public string VenderRemark { get; set; } - /// - /// 运单号 - /// - [Column(StringLength = 100)] - public string WaybillNo { get; set; } + ///// + ///// 运单号 + ///// + //[Column(StringLength = 100)] + //public string WaybillNo { get; set; } - /// - /// 快递公司名称 - /// - [Column(StringLength = 100)] - public string ExpressName { get; set; } + ///// + ///// 快递公司名称 + ///// + //[Column(StringLength = 100)] + //public string ExpressName { get; set; } /// /// 来源Sku @@ -223,26 +223,6 @@ namespace BBWYB.Server.Model.Db public string Town { get; set; } #endregion - #region 采购信息 - [Column(IsIgnore = true)] - public string PurchaseAccountId { get; set; } - - [Column(IsIgnore = true)] - public string PurchaseAccountName { get; set; } - - [Column(IsIgnore = true)] - public Enums.PurchaseMethod? PurchaseMethod { get; set; } - - [Column(IsIgnore = true)] - public string PurchaseOrderId { get; set; } - - [Column(IsIgnore = true)] - public Enums.Platform? PurchasePlatform { get; set; } - - [Column(IsIgnore = true)] - public string PurchaserName { get; set; } - #endregion - } } diff --git a/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs b/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs index adfce45..68fe6e6 100644 --- a/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs +++ b/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs @@ -34,6 +34,24 @@ namespace BBWYB.Server.Model.Db public string PurchaserName { get; set; } public long? ShopId { get; set; } + + [Column(StringLength = 100)] + public string WaybillNo { get; set; } + + [Column(StringLength = 100)] + public string SourceExpressName { get; set; } + + [Column(StringLength = 100)] + public string SourceExpressId { get; set; } + + [Column(StringLength = 100)] + public string TargetExpressName { get; set; } + + [Column(StringLength = 100)] + public string TargetExpressId { get; set; } + + [Column(StringLength = 500)] + public string BelongSkuIds { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Request/Order/OutStockRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/OutStockRequest.cs index 89e2c27..63653ae 100644 --- a/BBWYB.Server.Model/Dto/Request/Order/OutStockRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Order/OutStockRequest.cs @@ -4,10 +4,16 @@ { public string OrderId { get; set; } + public string PurchaseOrderId { get; set; } + public string WayBillNo { get; set; } - public string ExpressId { get; set; } + public string SourceExpressId { get; set; } + + public string SourceExpressName { get; set; } + + public string TargetExpressId { get; set; } - public string ExpressName { get; set; } + public string TargetExpressName { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs index 8e97f07..010eba0 100644 --- a/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs @@ -94,16 +94,6 @@ /// public string PurchaseRemark { get; set; } - /// - /// 运单号 - /// - public string WaybillNo { get; set; } - - /// - /// 快递公司名称 - /// - public string ExpressName { get; set; } - /// /// 来源Sku ///