From fb4bafd4d8bd5b95c611e9601ef78c8082ea6b55 Mon Sep 17 00:00:00 2001 From: wule Date: Mon, 3 Aug 2026 21:21:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B9=B0=E6=89=8B=E9=80=80=E8=B4=A7=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=20=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs | 2 +- .../Ctrls/OrderCtrls/OrderListCtrl.xaml.cs | 131 ++++++++++++------ AllBase/BaseClass.cs | 2 +- 3 files changed, 92 insertions(+), 43 deletions(-) diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs index 146c150..3b4a8b6 100644 --- a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs @@ -1996,7 +1996,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls })); } - public string SendAfterSaleE57NeedManual(PddBuyerOrderLiteInfo order, string statusText) + public static string SendAfterSaleE57NeedManual(PddBuyerOrderLiteInfo order, string statusText) { Thread.Sleep(100); diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs index 7d06398..58654f3 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs @@ -959,11 +959,17 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls else if (chkEmergencyShopInAfterSale.IsChecked == true && (order.DeliveryDeadlineDtatusStr != "退款中")) return true; + //// 退货退款 + //if (chkEmergencyReturn.IsChecked == true && !(order.refundItems.OrderByDescending(or => or.create_time).FirstOrDefault()?.RefundStatusStr).ParseToString().Contains("退货")) + // return true; + //// 仅退款 + //else if (chkEmergencyRefund.IsChecked == true && (order.refundItems.OrderByDescending(or => or.create_time).FirstOrDefault()?.RefundStatusStr).ParseToString().Contains("退货")) + // return true; // 退货退款 - if (chkEmergencyReturn.IsChecked == true && !(order.refundItems.OrderByDescending(or => or.create_time).FirstOrDefault()?.RefundStatusStr).ParseToString().Contains("退货")) + if (chkEmergencyReturn.IsChecked == true && !(order.refundItems.OrderByDescending(or => or.create_time).FirstOrDefault()?.type).ParseToString().Contains("RETURN")) return true; // 仅退款 - else if (chkEmergencyRefund.IsChecked == true && (order.refundItems.OrderByDescending(or => or.create_time).FirstOrDefault()?.RefundStatusStr).ParseToString().Contains("退货")) + else if (chkEmergencyRefund.IsChecked == true && !(order.refundItems.OrderByDescending(or => or.create_time).FirstOrDefault()?.type).ParseToString().Contains("REFUND")) return true; } if (filterHeadStr.StartsWith("售后完成单")) @@ -1274,13 +1280,17 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls List tmpOrderItems = new List(); foreach (var order in orders) { - foreach(var orderItem in order.orderItems) + foreach (var orderItem in order.orderItems) { - if (orderItem == null || string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) || !orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() || - (!orderItem.TransitRefundStatusStr.Contains("需手动申请售后") && !orderItem.TransitRefundStatusStr.Contains("待用户发货"))) - continue; + if (orderItem.ItemOrder?.OrderBuyType == "云仓") + if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + (orderItem.TransitRefundStatusStr.Contains("需手动申请售后") || orderItem.TransitRefundStatusStr.Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); - tmpOrderItems.Add(orderItem); + if (orderItem.ItemOrder?.OrderBuyType == "直发" || orderItem.ItemOrder?.OrderBuyType == "云改直") + if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemOrder?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + ((orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("需手动申请售后") || (orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); } } if (tmpOrderItems.Count == 0) @@ -1296,9 +1306,17 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { Dispatcher.Invoke(new Action(() => { txtMsg.Text = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index++; })); - var pddOrderSn = tmpOrderItem.ItemTransitOrderWithVoid.out_order_no; + var pddOrderSn = ""; + if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓") + pddOrderSn = tmpOrderItem.ItemTransitOrderWithVoid?.out_order_no; + else if (tmpOrderItem.ItemOrder?.OrderBuyType == "直发" || tmpOrderItem.ItemOrder?.OrderBuyType == "云改直") + pddOrderSn = tmpOrderItem.ItemOrder?.out_order_no; + BuyerLoginInfo buyer = null; - Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemTransitOrderWithVoid.buyer_account); })); + if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓") + Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemTransitOrderWithVoid.buyer_account); })); + else if (tmpOrderItem.ItemOrder?.OrderBuyType == "直发" || tmpOrderItem.ItemOrder?.OrderBuyType == "云改直") + Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemOrder?.out_account); })); if (buyer == null) { BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手不在当前账户下,跳过", "Error", 3); @@ -1316,39 +1334,47 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); - var order = GlobalConfig.lstOrder.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id); + + oms_wei_order_info order = null; + Dispatcher.Invoke(new Action(() => { order = GlobalConfig.lstOrder.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id); })); if (order == null) continue; - var orderItem = order.orderItems.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id && oi.sku_id == tmpOrderItem.sku_id); - if (orderItem == null || string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) || !orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() || - (!orderItem.TransitRefundStatusStr.Contains("需手动申请售后") && !orderItem.TransitRefundStatusStr.Contains("待用户发货"))) + oms_wei_order_item_info orderItem = null; + Dispatcher.Invoke(new Action(() => { orderItem = order.orderItems.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id && oi.sku_id == tmpOrderItem.sku_id); })); + if (orderItem == null) continue; - //PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance, - // orderItem, buyer, orderItem.BuyMap); - - //buyOrderForm.TitleText = "买手退货退款 - 当前买手 " + buyer.buyer_nick; - - //buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + pddOrderSn + "&after_sales_reason=88&after_sales_type=2&after_sales_code=1002"; - //buyOrderForm.pnlBuy.Visible = false; - - //if (orderItem.BuyMap != null) - //{ - // buyOrderForm.pnlBuy.Visible = true; - // buyOrderForm.pnlMap.Visible = false; - //} - //buyOrderForm.ShowDialog(); + string refundStatusStr = ""; + string outOrderNo = ""; + if (order.OrderBuyType == "云仓") + { + outOrderNo = (orderItem.ItemTransitOrderWithVoid?.out_order_no).ParseToString(); + refundStatusStr = (orderItem?.TransitRefundStatusStr).ParseToString(); + } + else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") + { + outOrderNo = (order.out_order_no).ParseToString(); + refundStatusStr = (order.out_after_sale_status).ParseToString(); + } + if (orderItem == null || string.IsNullOrEmpty(outOrderNo) || !orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() || + (!refundStatusStr.Contains("需手动申请售后") && !refundStatusStr.Contains("待用户发货"))) + continue; PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo(); pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id; pddBuyerOrderLiteInfo.order_sn = pddOrderSn; - pddBuyerOrderLiteInfo.order_amount = orderItem.ItemTransitOrderWithVoid.out_amount; + + if (order.OrderBuyType == "云仓") + pddBuyerOrderLiteInfo.order_amount = orderItem.ItemTransitOrderWithVoid?.out_amount; + else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") + pddBuyerOrderLiteInfo.order_amount = order.out_amount; + order_pdd_buyer_after_sale pddBuyerAfterSale = new order_pdd_buyer_after_sale() { wx_order_id = orderItem.order_id, wx_sku_id = orderItem.sku_id, - TransitCreateTime = orderItem.ItemTransitOrderWithVoid.created_time, - pre_allocated_order_no = orderItem.ItemTransitOrderWithVoid.pre_allocated_order_no, + TransitCreateTime = orderItem.ItemTransitOrderWithVoid?.created_time == null ? DateTime.MinValue : orderItem.ItemTransitOrderWithVoid.created_time, + pre_allocated_order_no = orderItem.ItemTransitOrderWithVoid?.pre_allocated_order_no, buyerId = buyer.buyer_id, buyerName = buyer.buyer_name, orderSn = pddOrderSn, @@ -1360,14 +1386,16 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls pddBuyerAfterSale = orderItem.PddBuyerAfterSale; bool isSimPddAfterSaleSuccess = true; - if (orderItem.TransitRefundStatusStr.Contains("需手动申请售后")) + if (refundStatusStr.Contains("需手动申请售后")) { isSimPddAfterSaleSuccess = false; - var rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithReturnGoods(buyer, pddBuyerOrderLiteInfo); + // pddBuyerAfterSale作为参数传入,获取退货退款金额 + var rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithReturnGoods(buyer, pddBuyerOrderLiteInfo, pddBuyerAfterSale); var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status"); var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id"); pddBuyerAfterSale.afterSalesId = afterSalesId.ToString(); + pddBuyerAfterSale.statusText = "待用户发货"; if (afterSalesStatus == 0) { @@ -1377,17 +1405,35 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } else { - var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货"); - if (e57Rst.Contains("0") || e57Rst.Contains("200")) + if (order.OrderBuyType == "云仓") { - BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3); - isSimPddAfterSaleSuccess = true; - Thread.Sleep(Randomx.GetId(10000, 12001)); + var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货"); + if (e57Rst.Contains("0") || e57Rst.Contains("200")) + { + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3); + isSimPddAfterSaleSuccess = true; + Thread.Sleep(Randomx.GetId(10000, 12001)); + } + else + { + var msg = BaseRegex.GetStringXml(ref e57Rst, "msg"); + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3); + } } - else + else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") { - var msg = BaseRegex.GetStringXml(ref e57Rst, "msg"); - BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3); + var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, "待用户发货"); + if (e57Rst.Contains("0") || e57Rst.Contains("200")) + { + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3); + isSimPddAfterSaleSuccess = true; + Thread.Sleep(Randomx.GetId(10000, 12001)); + } + else + { + var msg = BaseRegex.GetStringXml(ref e57Rst, "msg"); + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3); + } } } } @@ -1405,7 +1451,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var data3 = UserLogin.GetSignaturex(); data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id; data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id; - data3 += "&TransitCreateTime=" + pddBuyerAfterSale.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss"); + if (pddBuyerAfterSale.TransitCreateTime != DateTime.MinValue) + data3 += "&TransitCreateTime=" + pddBuyerAfterSale.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss"); data3 += "&pre_allocated_order_no=" + pddBuyerAfterSale.pre_allocated_order_no; data3 += "&buyerId=" + pddBuyerAfterSale.buyerId; data3 += "&buyerName=" + pddBuyerAfterSale.buyerName; @@ -1418,6 +1465,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls data3 += "&statusText=" + pddBuyerAfterSale.statusText; if (!string.IsNullOrEmpty(address)) data3 += "&afterSaleAddress=" + address; + if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") // 云仓 0 直发 1 + data3 += "&wx_send_type=1"; //data3 += "&is_mdy=true"; var html3 = GetHtml.PostUtf8(url3, data3); if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index db45ab1..e99fb5f 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -32,7 +32,7 @@ namespace AllBase /// 版本ID /// - public static int VersionCount = 203; + public static int VersionCount = 205; public static string ServerUrl { get; set; } = "http://1.13.195.131:9000"; public static string DebugUrl { get; set; } = "http://localhost:9000";