From 85259d8335f6e75d5e682b7d536db4a24fcbf17e Mon Sep 17 00:00:00 2001 From: wule Date: Tue, 3 Nov 2026 13:38:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B9=B0=E6=89=8B=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderCtrls/OrderBuyerOrdersHelper.cs | 91 +++++++++++++++++++ .../OrderCtrls/OrderListRowItemCtrl.xaml.cs | 83 ++--------------- .../OrderTransitListDetailCtrl.xaml | 61 +++++++++++-- .../OrderTransitListDetailCtrl.xaml.cs | 22 +++++ .../oms_wei_external_procurement_log_info.cs | 21 ++++- .../Model/DBModel/oms_wei_order_item_info.cs | 24 +---- .../oms_wei_order_item_transit_info.cs | 56 ++++++++++++ 7 files changed, 248 insertions(+), 110 deletions(-) create mode 100644 29WxOrderWpf/Ctrls/OrderCtrls/OrderBuyerOrdersHelper.cs diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderBuyerOrdersHelper.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderBuyerOrdersHelper.cs new file mode 100644 index 0000000..9781c4a --- /dev/null +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderBuyerOrdersHelper.cs @@ -0,0 +1,91 @@ +using _29WxOrderWpf.BaseWindows; +using _29WxOrderWpf.Ctrls.BuyerCtrls; +using _29WxOrderWpf.ViewModels; +using AllBase; +using AllBase.Helper; +using AllBase.Model.DBModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using TemuKJD.ToolForms; +using WxOrder.Framework.Commons; + +namespace _29WxOrderWpf.Ctrls.OrderCtrls; + +internal class OrderBuyerOrdersHelper +{ + public static void ShowBuyerOrder(oms_wei_order_item_info orderItem, string buyerAccount, string buyerName, string outOrderId, bool isShowOrderList = false) + { + if (outOrderId.StartsWith("tb_")) // 淘宝买手及订单 + { + var buyer = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName); + if (buyer == null) + { + BaseMsgWindow.ShowError("该订单买手号未在当前账户登录"); + return; + } + + var url = ""; + if (isShowOrderList) + url = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm?"; + else + url = "https://trade.tmall.com/detail/orderDetail.htm?bizOrderId=" + outOrderId.Replace("tb_", ""); + + TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem); + taobaoBuyView.ViewModel.InitUrl = url; + new DialogWindow() + { + Title = "订单查看 - 当前买手 " + buyer.buyer_nick, + Content = taobaoBuyView, + Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100, + Height = SystemParameters.PrimaryScreenHeight * 90 / 100, + WindowStartupLocation = WindowStartupLocation.CenterScreen, + }.ShowDialog(); + } + else // 拼多多买手及订单 + { + var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName); + if (buyer == null) + { + BaseMsgWindow.ShowError("该订单买手号未在当前账户登录"); + return; + } + + var url = ""; + if (isShowOrderList) + url = "https://mobile.yangkeduo.com/index.html"; /* 订单列表 */ + else + url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" + + "&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032"; + + // 拍单的时候检测一下买手号 + if (buyer.status == "在线") + { + PddMobileLoginViewModel.CheckBuyerLogin(buyer); + } + if (buyer.status != "在线") + { + BaseMsgWindow.ShowError("买手号掉线"); + return; + } + + PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance, orderItem, buyer, orderItem.PddBuyMap) + { + TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick, + InitUrl = url /* 订单页面 */ + }; + buyOrderForm.pnlBuy.Visible = false; + + //已有拍单关联的控制界面显示隐藏 + if (orderItem.PddBuyMap != null) + { + buyOrderForm.pnlBuy.Visible = true; + buyOrderForm.pnlMap.Visible = false; + } + buyOrderForm.ShowDialog(); + } + } +} diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs index d8f5ccb..2f51ec9 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs @@ -852,90 +852,23 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls private void TransitOrderBuy_Click(object sender, MouseButtonEventArgs e) { - var orderItem = this.DataContext as oms_wei_order_item_info; - if (orderItem == null) + if (this.DataContext is oms_wei_order_item_info orderItem) { - BaseMsgWindow.ShowError("订单信息为空"); - return; - } - var buyerName = txtTransitOrderBuyerStr.Text; - var buyerAccount = txtTransitOrderBuyerStr.Tag.ParseToString(); - var outOrderId = txtTransitOrderNumStr.Text; - if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId)) - { - return; - } - if (outOrderId.StartsWith("tb_")) // 淘宝买手及订单 - { - var buyer = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName); - if (buyer == null) + var buyerName = txtTransitOrderBuyerStr.Text; + var buyerAccount = txtTransitOrderBuyerStr.Tag.ParseToString(); + var outOrderId = txtTransitOrderNumStr.Text; + if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId)) { - BaseMsgWindow.ShowError("该订单买手号未在当前账户登录"); return; } - var url = ""; - if (sender == txtTransitOrderBuyerStr) - url = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm?"; - else - url = "https://trade.tmall.com/detail/orderDetail.htm?bizOrderId=" + outOrderId.Replace("tb_", ""); + bool isShowOrderList = sender == txtTransitOrderBuyerStr; - TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem); - taobaoBuyView.ViewModel.InitUrl = url; - new DialogWindow() - { - Title = "订单查看 - 当前买手 " + buyer.buyer_nick, - Content = taobaoBuyView, - Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100, - Height = SystemParameters.PrimaryScreenHeight * 90 / 100, - WindowStartupLocation = WindowStartupLocation.CenterScreen, - }.ShowDialog(); - } - else // 拼多多买手及订单 - { - var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName); - if (buyer == null) - { - BaseMsgWindow.ShowError("该订单买手号未在当前账户登录"); - return; - } - - var url = ""; - if (sender == txtTransitOrderBuyerStr) - url = "https://mobile.yangkeduo.com/index.html"; - else - url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" + - "&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032"; - - // 拍单的时候检测一下买手号 - if (buyer.status == "在线") - { - PddMobileLoginViewModel.CheckBuyerLogin(buyer); - } - if (buyer.status != "在线") - { - BaseMsgWindow.ShowError("买手号掉线"); - return; - } - - PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance, - orderItem, buyer, orderItem.PddBuyMap); - buyOrderForm.TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick; - - //所有订单页面 - buyOrderForm.InitUrl = url; - buyOrderForm.pnlBuy.Visible = false; - - //已有拍单关联的控制界面显示隐藏 - if (orderItem.PddBuyMap != null) - { - buyOrderForm.pnlBuy.Visible = true; - buyOrderForm.pnlMap.Visible = false; - } - buyOrderForm.ShowDialog(); + OrderBuyerOrdersHelper.ShowBuyerOrder(orderItem, buyerAccount, buyerName, outOrderId, isShowOrderList); } } + private void txtDirectOrderNumStr_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { var orderItem = this.DataContext as oms_wei_order_item_info; diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml index 4cead3c..3f582b6 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml @@ -7,7 +7,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wpf="WPFCommon" d:DesignHeight="280" - d:DesignWidth="1000" + d:DesignWidth="1200" Background="White" mc:Ignorable="d"> @@ -75,55 +75,100 @@ + BorderThickness="0,0,1,0"> - + - + + + + + + + + + + - + - + - + diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs index 5f6a39e..3f2090f 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs @@ -2,6 +2,7 @@ using AllBase; using AllBase.Helper; using AllBase.Model.DBModel; +using NaiBa.Util.Extension; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -30,6 +31,9 @@ public partial class OrderTransitListDetailCtrl : UserControl public OrderTransitListDetailCtrl() { InitializeComponent(); + + this.txtOutOrderId.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtOutOrderId_MouseLeftButtonUp), true); + this.txtOutOrderBuyer.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtOutOrderId_MouseLeftButtonUp), true); } /// 作废包裹 @@ -230,4 +234,22 @@ public partial class OrderTransitListDetailCtrl : UserControl return FindParent(parentObject); } } + + private void txtOutOrderId_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) + { + if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo && transitDetailInfo.oms_wei_order_item_info is oms_wei_order_item_info orderItem) + { + var buyerId = txtOutOrderBuyer.Tag as string; + var buyerName = txtOutOrderBuyer.Text; + var outOrderId = txtOutOrderId.Text; + if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId)) + { + return; + } + + bool isShowOrderList = sender == txtOutOrderBuyer; + + OrderBuyerOrdersHelper.ShowBuyerOrder(orderItem, buyerId, buyerName, outOrderId, isShowOrderList); + } + } } diff --git a/AllBase/Model/DBModel/oms_wei_external_procurement_log_info.cs b/AllBase/Model/DBModel/oms_wei_external_procurement_log_info.cs index 0acbbf1..a34ed9f 100644 --- a/AllBase/Model/DBModel/oms_wei_external_procurement_log_info.cs +++ b/AllBase/Model/DBModel/oms_wei_external_procurement_log_info.cs @@ -21,18 +21,31 @@ namespace AllBase.Model.DBModel return this.GetValue(x => x.OutOrderNumStr); } set { this.SetValue(x => x.OutOrderNumStr, value); } - } + } public string OutOrderBuyerStr { get { return this.GetValue(x => x.OutOrderBuyerStr); } set { this.SetValue(x => x.OutOrderBuyerStr, value); } - } + } + public string OutOrderBuyerIdStr + { + get { return this.GetValue(x => x.OutOrderBuyerIdStr); } + set { this.SetValue(x => x.OutOrderBuyerIdStr, value); } + } public void SetOutOrderBuyerStr() { if (!out_order_no.ParseToString().StartsWith("tb_")) - OutOrderBuyerStr = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == buyer_account)?.buyer_name ?? buyer_account; + { + var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == buyer_account); + OutOrderBuyerStr = buyer?.buyer_name ?? buyer_account; + OutOrderBuyerIdStr = buyer?.buyer_id ?? buyer_account; + } else - OutOrderBuyerStr = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(b => b.buyer_id == buyer_account)?.buyer_name ?? buyer_account; + { + var buyer = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(b => b.buyer_id == buyer_account); + OutOrderBuyerStr = buyer?.buyer_name ?? buyer_account; + OutOrderBuyerIdStr = buyer?.buyer_id ?? buyer_account; + } } diff --git a/AllBase/Model/DBModel/oms_wei_order_item_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_info.cs index 65b4a70..4b4083c 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_info.cs @@ -887,29 +887,7 @@ namespace AllBase.Model.DBModel } public void SetTransitRefundStatusStr() { - if (!string.IsNullOrEmpty(ItemTransitOrderWithVoid?.refund_status)) - { - // 店铺售后又取消的,如果是买手还没申请售后,不显示需手动申请售后文字 - if (ItemTransitOrderWithVoid.refund_status.Contains("需手动申请售后") && this.refund_status <= 1) - TransitRefundStatusStr = ""; - - // 显示售后金额(如果有) - else if (ItemTransitOrderWithVoid.refund_status.EndsWith("买手退款成功")) - { - if (PddBuyerAfterSale?.refundAmount != null) - TransitRefundStatusStr = ItemTransitOrderWithVoid.refund_status + "(¥" + PddBuyerAfterSale.refundAmount * 0.01m + ")"; - else - TransitRefundStatusStr = ItemTransitOrderWithVoid.refund_status + "(退款金额待获取)"; - } - - else if (!ItemTransitOrderWithVoid.refund_status.Contains("需手动申请售后") && !ItemTransitOrderWithVoid.refund_status.Contains("已超过可申请售后的时间")) - TransitRefundStatusStr = "已申请售后 " + ItemTransitOrderWithVoid.refund_status.Replace("申请收到,", ""); - else - TransitRefundStatusStr = ItemTransitOrderWithVoid.refund_status; - } - else - TransitRefundStatusStr = ""; - + TransitRefundStatusStr = oms_wei_order_item_transit_info.GetTransitBuyerRefundStatusStr(this, ItemTransitOrder ?? ItemTransitOrderWithVoid); if (TransitRefundStatusStr.Contains("退款成功")) TransitRefundStatusBackColor = GlobalConfig.GreenBrush; diff --git a/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs index d04dd4d..88d849c 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs @@ -153,6 +153,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject else if (transitOrder.intercept_return_status == 2) transitDetail.TransitReturnStatus = "拦截失败"; + transitDetail.TransitDetailRefundStatusStr = GetTransitBuyerRefundStatusStr(OrderItem, transitOrder); + detailList.Add(transitDetail); } catch (Exception ex) @@ -384,6 +386,31 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject } return detailList; } + + public static string GetTransitBuyerRefundStatusStr(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info itemTransitOrder) + { + if (!string.IsNullOrEmpty(itemTransitOrder?.refund_status)) + { + var pddBuyerAfterSale = orderItem.PddBuyerAfterSales.FirstOrDefault(af => af.orderSn == itemTransitOrder.out_order_no); + + // 店铺售后又取消的,如果是买手还没申请售后,不显示需手动申请售后文字 + if (itemTransitOrder.refund_status.Contains("需手动申请售后") && orderItem.refund_status <= 1) + return ""; + // 显示售后金额(如果有) + else if (itemTransitOrder.refund_status.EndsWith("买手退款成功")) + { + if (pddBuyerAfterSale?.refundAmount != null) + return itemTransitOrder.refund_status + "(¥" + pddBuyerAfterSale.refundAmount * 0.01m + ")"; + else + return itemTransitOrder.refund_status + "(退款金额待获取)"; + } + else if (!itemTransitOrder.refund_status.Contains("需手动申请售后") && !itemTransitOrder.refund_status.Contains("已超过可申请售后的时间")) + return "已申请售后 " + itemTransitOrder.refund_status.Replace("申请收到,", ""); + else + return itemTransitOrder.refund_status; + } + return ""; + } } public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject @@ -630,4 +657,33 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject get { return this.GetValue(x => x.ExtraPackagesBtnVisibility); } set { this.SetValue(x => x.ExtraPackagesBtnVisibility, value); } } + + public string TransitDetailRefundStatusStr + { + get { return this.GetValue(x => x.TransitDetailRefundStatusStr); } + set + { + this.SetValue(x => x.TransitDetailRefundStatusStr, value); + + TransitDetailRefundStatusStrVisibility = string.IsNullOrWhiteSpace(value) ? Visibility.Collapsed : Visibility.Visible; + + if (value.Contains("退款成功")) + TransitDetailRefundStatusBackColor = GlobalConfig.GreenBrush; + else if (value.Contains("需手动申请售后") || value.Contains("已超过可申请售后的时间") || value.Contains("退款失败")) + TransitDetailRefundStatusBackColor = GlobalConfig.RedBrush; + else + TransitDetailRefundStatusBackColor = GlobalConfig.LightOrangeBrush; + } + } + public Visibility TransitDetailRefundStatusStrVisibility + { + get { return this.GetValue(x => x.TransitDetailRefundStatusStrVisibility); } + set { this.SetValue(x => x.TransitDetailRefundStatusStrVisibility, value); } + } + /// 中转仓买手售后字段文字显示背景颜色 + public SolidColorBrush TransitDetailRefundStatusBackColor + { + get { return this.GetValue(x => x.TransitDetailRefundStatusBackColor); } + set { this.SetValue(x => x.TransitDetailRefundStatusBackColor, value); } + } }