From e4e8f7166c27599a4de9d63bfdaa8ca7a3088d51 Mon Sep 17 00:00:00 2001 From: wule Date: Tue, 18 Aug 2026 21:14:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E8=BD=AC=E4=BB=93=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E7=8A=B6=E6=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ctrls/OrderCtrls/OrderListCtrl.xaml | 4 +- .../Ctrls/OrderCtrls/OrderListCtrl.xaml.cs | 484 ++++++++++++------ .../OrderCtrls/OrderListRowItemCtrl.xaml | 83 ++- .../OrderCtrls/OrderListRowItemCtrl.xaml.cs | 28 +- .../TransitAfterSaleWindow.xaml.cs | 32 +- .../TransitReturnOrderWindow.xaml.cs | 3 +- AllBase/BaseClass.cs | 2 +- AllBase/Model/DBModel/oms_wei_order_info.cs | 9 +- .../Model/DBModel/oms_wei_order_item_info.cs | 69 ++- 9 files changed, 489 insertions(+), 225 deletions(-) diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml index f6c080a..be40f7e 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml @@ -48,11 +48,11 @@ + WaterMark="店铺单号" TextChanged="txtOrderId_TextChanged" /> lstFilterText { get; set; } + public string strSearchAll { get; set; } = ""; + public ConcurrentList lstFilterOrderIds { get; set; } = new ConcurrentList(); + public ConcurrentList lstFilterRemarkText { get; set; } = new ConcurrentList(); public ShipGiftService _shipGiftService { get; } public OrderListCtrl() { @@ -131,9 +133,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls public bool hasReadOrder = false; /// - /// + /// 批量拉取订单 /// - /// 按过滤条件读取读取服务端订单 + /// 按过滤条件读取读取服务端订单,已废弃 public void GetOrder(string orderIds = "", bool filterGetCondition = false) { while (!MainWindow.Instance.hasReadShop) @@ -178,21 +180,25 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls data += "&erp_shop_id_in=" + shop_id; Dispatcher.Invoke(new Action(() => { - // 按过滤条件读取 - if (filterGetCondition) - { - if (!string.IsNullOrEmpty(txtShopName.Text.Trim())) - { - var shopNames = txtShopName.Text.Trim().Split(';').Where(s => !s.IsNullOrEmpty()).ToList(); - shop_id = string.Join(",", GlobalConfig.ShopLoginList.Where(s => shopNames.Contains(s.ShopAccount)).Select(s => s.ErpShopId).Where(s => !s.IsNullOrEmpty())); - } - } + // 按过滤条件读取 已废弃 + //if (filterGetCondition) + //{ + // if (!string.IsNullOrEmpty(txtShopName.Text.Trim())) + // { + // var shopNames = txtShopName.Text.Trim().Split(';').Where(s => !s.IsNullOrEmpty()).ToList(); + // shop_id = string.Join(",", GlobalConfig.ShopLoginList.Where(s => shopNames.Contains(s.ShopAccount)).Select(s => s.ErpShopId).Where(s => !s.IsNullOrEmpty())); + // } + //} var startTime = BaseClass.DateTimeToTimestampSeconds(dateStart.SelectedDate.Value); var endTime = BaseClass.DateTimeToTimestampSeconds(dateEnd.SelectedDate.Value.AddDays(1)); if (!chkEndDate.IsChecked.ParseToBool()) endTime = BaseClass.DateTimeToTimestampSeconds(DateTime.Now.Date.AddDays(1)); - data += "&start_time=" + startTime; - data += "&end_time=" + endTime; + // 查询单一订单号订单,不按时间范围搜索 + if (string.IsNullOrEmpty(orderIds) || orderIds.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList().Count != 1) + { + data += "&start_time=" + startTime; + data += "&end_time=" + endTime; + } })); Thread.Sleep(200); var html = GetHtml.PostUtf8(url, data); @@ -230,7 +236,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls foreach (var oie in orderItemExts) { // 移除订单物流异常信息,每次批量读单最后要去微信获取 - oie.abnormal_text = ""; + // 改为后台模拟读取不存在则设置为 "" + //oie.abnormal_text = ""; } } @@ -370,6 +377,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls if (string.IsNullOrEmpty(orderIds)) AutoUpdateTransitPackageToPddShop(); + if (string.IsNullOrEmpty(orderIds)) + Task.Run(DoReturnOrderBuyerRefendSlient); + if (string.IsNullOrEmpty(orderIds)) hasReadOrder = true; @@ -988,15 +998,15 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls if (order == null) return true; - if (order.order_id == "3738456804637165312") + if (order.order_id == "3735242250991331072") { } // 过滤id - if (!string.IsNullOrEmpty(txtOrderId.Text.Trim())) + if (lstFilterOrderIds.Count > 0) { - if (!(";" + txtOrderId.Text.Trim().Replace(' ', ';').Replace(',', ';') + ";").Contains(";" + order.order_id + ";")) + if (!lstFilterOrderIds.Contains(order.order_id)) return true; } // 其他一级过滤选项 @@ -1064,13 +1074,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { if (comboBoxItem.Content is TextBlock tb) { - if (tb.Text == "店铺备注包含" && !lstFilterText.Contains(order.shop_remark)) + if (tb.Text == "店铺备注包含" && !lstFilterRemarkText.Contains(order.shop_remark)) return true; - else if (tb.Text == "软件备注包含" && !lstFilterText.Contains(order.soft_remark)) + else if (tb.Text == "软件备注包含" && !lstFilterRemarkText.Contains(order.soft_remark)) return true; - else if (tb.Text == "店铺备注不含" && lstFilterText.Contains(order.shop_remark)) + else if (tb.Text == "店铺备注不含" && lstFilterRemarkText.Contains(order.shop_remark)) return true; - else if (tb.Text == "软件备注不含" && lstFilterText.Contains(order.soft_remark)) + else if (tb.Text == "软件备注不含" && lstFilterRemarkText.Contains(order.soft_remark)) return true; } } @@ -1254,8 +1264,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls }); } - private void btnFilter_Click(object sender, RoutedEventArgs e) + private async void btnFilter_Click(object sender, RoutedEventArgs e) { + if (lstFilterOrderIds.Count == 1 && !GlobalConfig.lstOrder.Any(o => o.order_id == lstFilterOrderIds.FirstOrDefault())) + { + await Task.Run(() => { this.GetOrder(lstFilterOrderIds.FirstOrDefault()); }); + } FilterOrders(); } @@ -1493,21 +1507,32 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls private async void btnBatchRefund_Click(object sender, RoutedEventArgs e) { - var orders = GlobalConfig.lstFilterOrder.Where(o => o.IsSelect == true); + var orders = GlobalConfig.lstFilterOrder.Where(o => o.IsSelect == true && o.IsEmergency); List tmpOrderItems = new List(); foreach (var order in orders) { foreach (var orderItem in order.orderItems) { - if (orderItem.ItemOrder?.OrderBuyType == "云仓") - if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + if (orderItem?.ItemOrder?.OrderBuyType == "云仓") + { + if (!string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && (orderItem.TransitRefundStatusStr.Contains("需手动申请售后") || orderItem.TransitRefundStatusStr.Contains("待用户发货"))) tmpOrderItems.Add(orderItem); + } - if (orderItem.ItemOrder?.OrderBuyType == "直发" || orderItem.ItemOrder?.OrderBuyType == "云改直") - if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemOrder?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + if (orderItem?.ItemOrder?.OrderBuyType == "直发") + { + if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemOrder?.out_order_no) && orderItem.DirectPddBuyerAfterSaleAddressStr.IsNullOrEmpty() && ((orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("需手动申请售后") || (orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("待用户发货"))) tmpOrderItems.Add(orderItem); + } + // 云改直有两个买手单,暂时只处理直发的,云仓默认已退款 + if (orderItem?.ItemOrder?.OrderBuyType == "云改直") + { + if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemOrder?.out_order_no) && orderItem.DirectPddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + ((orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("需手动申请售后") || (orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); + } } } if (tmpOrderItems.Count == 0) @@ -1516,185 +1541,313 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls return; } - await Task.Run(() => + await DoBuyerRefend(tmpOrderItems); + } + + /// + /// 自动拒收 小兰做,维护数据库,软件负责展示 + /// + /// + public async Task DoRejectSlient() + { + + } + + /// + /// 中转仓拦截退货包裹 + /// + /// + public async Task DoReturnPackageBuyerRefendSlient() + { + List emergencyRefundOrders = new List(); + Dispatcher.Invoke(new Action(() => { - int index = 0; - foreach (var tmpOrderItem in tmpOrderItems) + emergencyRefundOrders = GlobalConfig.lstOrder.Where(o => o.IsEmergency).ToList(); + })); + List tmpOrderItems = new List(); + foreach (var order in emergencyRefundOrders) + { + foreach (var orderItem in order.orderItems) { - Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index++; })); - - 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; - 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); - } - - // 检测一下买手号 - if (buyer.status == "在线") - { - PddMobileLoginForm.CheckBuyerLogin(buyer); - } - if (buyer.status != "在线") - { - BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 3); + // 用户仅退款的,拦截并退回总店,已到仓后自动去拼多多申请退货退款 + if (orderItem.ItemRefund?.type != "REFUND") continue; - } - - MainWindow.Instance.orderListCtrl.GetOrder(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; - 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) + if (orderItem.ItemTransitOrder?.warehouse_status != 3) continue; - string refundStatusStr = ""; - string outOrderNo = ""; - if (order.OrderBuyType == "云仓") + if (orderItem?.ItemOrder?.OrderBuyType == "云仓") { - outOrderNo = (orderItem.ItemTransitOrderWithVoid?.out_order_no).ParseToString(); - refundStatusStr = (orderItem?.TransitRefundStatusStr).ParseToString(); + if (!string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + (orderItem.TransitRefundStatusStr.Contains("需手动申请售后") || orderItem.TransitRefundStatusStr.Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); } - 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("待用户发货"))) + } + } + if (tmpOrderItems.Count > 0) + await DoBuyerRefend(tmpOrderItems); + } + + /// + /// 退货仓退货 + /// + /// + public async Task DoReturnOrderBuyerRefendSlient() + { + List emergencyRefundOrders = new List(); + Dispatcher.Invoke(new Action(() => + { + emergencyRefundOrders = GlobalConfig.lstOrder.Where(o => o.IsEmergency).ToList(); + })); + List tmpOrderItems = new List(); + foreach (var order in emergencyRefundOrders) + { + foreach (var orderItem in order.orderItems) + { + // 退货地址是退货仓的,直接申请退货退款,取到地址后直接去填写退货仓退货信息 + if (orderItem.ItemRefund?.return_detail != GlobalConfig.TransitReturnOrderReturnAddress) continue; - PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo(); - pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id; - pddBuyerOrderLiteInfo.order_sn = pddOrderSn; - - 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() + if (orderItem?.ItemOrder?.OrderBuyType == "云仓") { - wx_order_id = orderItem.order_id, - wx_sku_id = orderItem.sku_id, - 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, - orderAmount = pddBuyerOrderLiteInfo.order_amount, - refundAmount = pddBuyerOrderLiteInfo.order_amount, - orderDate = pddOrderSn.ParseToString().Split('-').FirstOrDefault().ParseToInt(), - }; - if (orderItem.PddBuyerAfterSale != null) - pddBuyerAfterSale = orderItem.PddBuyerAfterSale; + if (!string.IsNullOrEmpty(orderItem.ItemTransitOrderWithVoid?.out_order_no) && orderItem.PddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + (orderItem.TransitRefundStatusStr.Contains("需手动申请售后") || orderItem.TransitRefundStatusStr.Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); + } - bool isSimPddAfterSaleSuccess = true; - if (refundStatusStr.Contains("需手动申请售后")) + if (orderItem?.ItemOrder?.OrderBuyType == "直发") { - isSimPddAfterSaleSuccess = false; - // pddBuyerAfterSale作为参数传入,获取退货退款金额 - var rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithReturnGoods(buyer, pddBuyerOrderLiteInfo, pddBuyerAfterSale); + if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemOrder?.out_order_no) && orderItem.DirectPddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + ((orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("需手动申请售后") || (orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); + } + // 云改直有两个买手单,暂时只处理直发的,云仓默认已退款 + if (orderItem?.ItemOrder?.OrderBuyType == "云改直") + { + if (orderItem != null && !string.IsNullOrEmpty(orderItem.ItemOrder?.out_order_no) && orderItem.DirectPddBuyerAfterSaleAddressStr.IsNullOrEmpty() && + ((orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("需手动申请售后") || (orderItem.ItemOrder?.out_after_sale_status).ParseToString().Contains("待用户发货"))) + tmpOrderItems.Add(orderItem); + } + } + } + if (tmpOrderItems.Count > 0) + await DoBuyerRefend(tmpOrderItems); + } - var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status"); - var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id"); - pddBuyerAfterSale.afterSalesId = afterSalesId.ToString(); - pddBuyerAfterSale.statusText = "待用户发货"; + public async Task DoBuyerRefend(List tmpOrderItems) + { + if (tmpOrderItems == null) + return; - if (afterSalesStatus == 0) - { - var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg"); - BaseMsgWindow.ShowAnimateMessage(msg, "Error", 3); - Thread.Sleep(5000); - } - else + int index = 0; + foreach (var tmpOrderItem in tmpOrderItems) + { + Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index++; })); + + 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; + 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); + } + + // 检测一下买手号 + if (buyer.status == "在线") + { + PddMobileLoginForm.CheckBuyerLogin(buyer); + } + if (buyer.status != "在线") + { + BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 3); + continue; + } + + MainWindow.Instance.orderListCtrl.GetOrder(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; + 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; + + string refundStatusStr = ""; + string outOrderNo = ""; + string AfterSaleAddressStr = ""; + if (order.OrderBuyType == "云仓") + { + outOrderNo = (orderItem.ItemTransitOrderWithVoid?.out_order_no).ParseToString(); + refundStatusStr = (orderItem?.TransitRefundStatusStr).ParseToString(); + AfterSaleAddressStr = orderItem.PddBuyerAfterSaleAddressStr; + } + else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") + { + outOrderNo = (order.out_order_no).ParseToString(); + refundStatusStr = (order.out_after_sale_status).ParseToString(); + AfterSaleAddressStr = orderItem.DirectPddBuyerAfterSaleAddressStr; + } + if (string.IsNullOrEmpty(outOrderNo) || !AfterSaleAddressStr.IsNullOrEmpty() || + (!refundStatusStr.Contains("需手动申请售后") && !refundStatusStr.Contains("待用户发货"))) + continue; + + PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo(); + pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id; + pddBuyerOrderLiteInfo.order_sn = pddOrderSn; + + 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 == 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, + orderAmount = pddBuyerOrderLiteInfo.order_amount, + refundAmount = pddBuyerOrderLiteInfo.order_amount, + orderDate = pddOrderSn.ParseToString().Split('-').FirstOrDefault().ParseToInt(), + }; + if (orderItem.PddBuyerAfterSale != null) + pddBuyerAfterSale = orderItem.PddBuyerAfterSale; + + bool isSimPddAfterSaleSuccess = true; + if (refundStatusStr.Contains("需手动申请售后")) + { + isSimPddAfterSaleSuccess = false; + // 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) + { + var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg"); + BaseMsgWindow.ShowAnimateMessage(msg, "Error", 5); + Thread.Sleep(5000); + if (msg == "已超过可申请售后的时间") { if (order.OrderBuyType == "云仓") { - var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货"); + 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"); + msg = BaseRegex.GetStringXml(ref e57Rst, "msg"); BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3); } } else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") { - var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, "待用户发货"); + 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"); + msg = BaseRegex.GetStringXml(ref e57Rst, "msg"); BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3); } } } } - if (isSimPddAfterSaleSuccess) + else { - var addressRst = YkdBuyerOrder.GetAfterSaleAddress(buyer, pddOrderSn, pddBuyerAfterSale.afterSalesId.ParseToString()); - var merchantReceiverInfo = BaseRegex.GetOneJsonObjStrJson(ref addressRst, "merchantReceiverInfo"); - string address = ""; - if (merchantReceiverInfo != null) + if (order.OrderBuyType == "云仓") { - address = BaseRegex.GetStringJson(ref merchantReceiverInfo, "copyValue"); + var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货"); + if (e57Rst.Contains("0") || e57Rst.Contains("200")) + { + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功" + orderItem.order_id, "Msg", 3); + isSimPddAfterSaleSuccess = true; + Thread.Sleep(Randomx.GetId(10000, 12001)); + } + else + { + var msg = BaseRegex.GetStringXml(ref e57Rst, "msg"); + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3); + } + } + else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") + { + 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); + } } - - var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale"); - var data3 = UserLogin.GetSignaturex(); - data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id; - data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id; - 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; - data3 += "&orderAmount=" + pddBuyerAfterSale.orderAmount; - data3 += "&orderSn=" + pddBuyerAfterSale.orderSn; - data3 += "&afterSalesId=" + pddBuyerAfterSale.afterSalesId; - data3 += "&orderDate=" + pddBuyerAfterSale.orderDate; - //data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss"); - data3 += "&refundAmount=" + pddBuyerAfterSale.refundAmount; - 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")) - html3 = GetHtml.PostUtf8(url3, data3); } - MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); - Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index; })); } + if (isSimPddAfterSaleSuccess) + { + var addressRst = YkdBuyerOrder.GetAfterSaleAddress(buyer, pddOrderSn, pddBuyerAfterSale.afterSalesId.ParseToString()); + var merchantReceiverInfo = BaseRegex.GetOneJsonObjStrJson(ref addressRst, "merchantReceiverInfo"); + string address = ""; + if (merchantReceiverInfo != null) + { + address = BaseRegex.GetStringJson(ref merchantReceiverInfo, "copyValue"); + } - Dispatcher.Invoke(new Action(() => { BottomMsg = "买手退货处理完成,总计:" + tmpOrderItems.Count + ",已处理:" + index; })); - }); + var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale"); + var data3 = UserLogin.GetSignaturex(); + data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id; + data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id; + 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; + data3 += "&orderAmount=" + pddBuyerAfterSale.orderAmount; + data3 += "&orderSn=" + pddBuyerAfterSale.orderSn; + data3 += "&afterSalesId=" + pddBuyerAfterSale.afterSalesId; + data3 += "&orderDate=" + pddBuyerAfterSale.orderDate; + //data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss"); + data3 += "&refundAmount=" + pddBuyerAfterSale.refundAmount; + 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 = await GetHtml.PostUtf8Async(url3, data3); + if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) + html3 = await GetHtml.PostUtf8Async(url3, data3); + } + MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); + Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index; })); + } + + Dispatcher.Invoke(new Action(() => { BottomMsg = "买手退货处理完成,总计:" + tmpOrderItems.Count + ",已处理:" + index; })); } @@ -1774,7 +1927,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls private void txtFilterRemark_TextChanged(object sender, TextChangedEventArgs e) { - lstFilterText = txtFilterRemark.Text.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList(); + lstFilterRemarkText = [.. txtFilterRemark.Text.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList(),]; + } + + private void txtOrderId_TextChanged(object arg1, TextChangedEventArgs arg2) + { + lstFilterOrderIds = [.. txtFilterOrderId.Text.Trim().Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList(),]; } private void chkEmergencyReturnOrRefund_Click(object sender, RoutedEventArgs e) diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml index 73e2a37..8e56b2f 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml @@ -1568,6 +1568,48 @@ Grid.Column="1" Width="auto" Orientation="Horizontal" + Visibility="{Binding AddEditTransitWarehouseReturnOrderStr, Converter={StaticResource HasTextVisibility}}"> + + +