From b5b2693990f0d93cc9e9152b19dfcdd28ef624f9 Mon Sep 17 00:00:00 2001 From: wule Date: Mon, 28 Sep 2026 18:34:37 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=B7=98=E5=AE=9D=E6=8B=8D=E5=8D=95=E5=87=86?= =?UTF-8?q?=E5=A4=87=EF=BC=8C=202=E5=BC=82=E5=B8=B8=E9=87=8D=E6=8B=8D?= =?UTF-8?q?=E7=9A=84=E8=AE=A2=E5=8D=95=E5=88=9B=E5=BB=BA=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E9=80=80=E8=B4=A7=E5=90=8E=E6=97=A0=E6=B3=95=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs | 13 +- .../Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml | 55 ++++ .../BuyerCtrls/TaobaoBuyOrderCtrl.xaml.cs | 38 +++ .../BuyerCtrls/TaobaoBuyOrderViewModel.cs | 303 ++++++++++++++++++ .../Ctrls/OrderCtrls/OrderListCtrl.xaml.cs | 8 +- .../ViewModels/TaobaoLoginViewModel.cs | 5 +- 29WxOrderWpf/Views/TaobaoLoginView.xaml | 16 +- AllBase/Model/DBModel/WXBuyMapInfo.cs | 1 + .../Model/DBModel/oms_wei_order_item_info.cs | 6 +- Work/_29Tools/Forms/PddMobileBuyOrderForm.cs | 14 +- 10 files changed, 437 insertions(+), 22 deletions(-) create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml.cs create mode 100644 29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderViewModel.cs diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs index 2566724..9958f8d 100644 --- a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs @@ -1,5 +1,6 @@ using _29WxOrderWpf.BaseWindows; using _29WxOrderWpf.Common; +using _29WxOrderWpf.Ctrls.OrderCtrls; using _29WxOrderWpf.ViewModels; using _29WxOrderWpf.Views; using AllBase; @@ -32,6 +33,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls /// public partial class PDDBuyerSelectCtrl : UserControl { + public static string buyPlatform { get; set; } = "pdd"; + public PDDBuyerSelectCtrl() { InitializeComponent(); @@ -172,11 +175,19 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls { wpPddBuyer.Visibility = Visibility.Collapsed; wpTaobaoBuyer.Visibility = Visibility.Visible; + buyPlatform = "tb"; + foreach (var order in GlobalConfig.lstFilterOrder) + OrderListCtrl.InitOrderObservableProp(order); + + MainWindow.Instance.orderListCtrl.FilterOrders(); } else { wpPddBuyer.Visibility = Visibility.Visible; wpTaobaoBuyer.Visibility = Visibility.Collapsed; + buyPlatform = "pdd"; + foreach (var order in GlobalConfig.lstFilterOrder) + OrderListCtrl.InitOrderObservableProp(order); } } @@ -225,7 +236,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls return; bool islogin = false; - TaobaoLoginViewModel.CheckBuyerLogin(new List { buyer }, false); + //TaobaoBuyOrderViewModel.CheckBuyerLogin(new List { buyer }, false); TaobaoLoginView buyerLoginForm = new TaobaoLoginView(buyer); if (buyer.status == "在线") { diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml b/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml new file mode 100644 index 0000000..744972f --- /dev/null +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml.cs new file mode 100644 index 0000000..10bcbe9 --- /dev/null +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderCtrl.xaml.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace _29WxOrderWpf.Ctrls.BuyerCtrls; + +/// +/// TaobaoBuyOrderCtrl.xaml 的交互逻辑 +/// +public partial class TaobaoBuyOrderCtrl : UserControl +{ + + public TaobaoBuyOrderCtrl() + { + InitializeComponent(); + } + + private void taobaoBuyOrderCtrl_Loaded(object sender, RoutedEventArgs e) + { + + } + + private void txtAddress_KeyDown(object sender, KeyEventArgs e) + { + + } +} diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderViewModel.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderViewModel.cs new file mode 100644 index 0000000..ee091d0 --- /dev/null +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/TaobaoBuyOrderViewModel.cs @@ -0,0 +1,303 @@ +using _29WxOrderWpf.CefHelper; +using _29WxOrderWpf.Commands; +using _29WxOrderWpf.ViewModels; +using AllBase; +using AllBase.Helper; +using AllBase.Model.DBModel; +using AllBase.Model.MvvmBaseClasses; +using CefSharp; +using CefSharp.Handler; +using CefSharp.Wpf; +using NaiBa.Util.Extension; +using Org.BouncyCastle.Asn1.Ocsp; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using TemuKJD.ToolForms; +using Work; +using Work._29Tools.BLL; +using Work._29Tools.CefTools; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; + +namespace _29WxOrderWpf.Ctrls.BuyerCtrls +{ + + + /// + /// 淘宝买手购买商品页面 视图模型 + /// + public class TaobaoBuyOrderViewModel : PropertyNotifyObject + { + public static TaobaoBuyOrderViewModel TaobaoBuyOrderInstance { get; set; } = null; + + /// 浏览器创建完成后触发(视图在此把浏览器加入可视树) + public event Action BrowserCreated; + + /// 请求关闭窗口 + public event Action RequestClose; + public int CloseAfterSecond { get; set; } + public string InitUrl { get; set; } = ""; + + private string shopCookieHead = "taobao.com"; + private string buyerLoginUrl = "https://login.taobao.com/havanaone/login/login.htm"; + private string MainUrl = "https://i.taobao.com/my_itaobao"; //"https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm?"; + + public ChromiumWebBrowser CefWebBrowser { get; private set; } + private BuyerLoginInfo buyer = null; + private string currentUrl = ""; + private volatile bool _isWindowLoaded = false; + + #region 界面绑定属性 + + /// 用户名 + public string UserName + { + get { return this.GetValue(x => x.UserName); } + set { this.SetValue(x => x.UserName, value); } + } + + /// 密码 + public string PassWord + { + get { return this.GetValue(x => x.PassWord); } + set { this.SetValue(x => x.PassWord, value); } + } + + /// 地址栏 + public string Address + { + get { return this.GetValue(x => x.Address); } + set { this.SetValue(x => x.Address, value); } + } + + #endregion + + #region 命令 + + public ICommand ReloadCommand { get; } + public ICommand LoginAgainCommand { get; } + public ICommand StopCommand { get; } + public ICommand CopyUserNameCommand { get; } + public ICommand CopyPasswordCommand { get; } + + #endregion + + public TaobaoBuyOrderViewModel(BuyerLoginInfo buyerInfo) + { + TaobaoBuyOrderInstance = this; + + buyer = buyerInfo; + UserName = buyerInfo?.buyer_name; + PassWord = ""; //DataOpenSSL.DecryptString(buyerInfo.Password); + + ReloadCommand = new DelegateCommand(Reload); + LoginAgainCommand = new DelegateCommand(LoginAgain); + StopCommand = new DelegateCommand(StopButton); + CopyUserNameCommand = new DelegateCommand(CopyUserName); + CopyPasswordCommand = new DelegateCommand(CopyPassword); + } + + /// + /// 窗口加载完成时调用 + /// + public void Start() + { + _isWindowLoaded = true; + + if (CloseAfterSecond > 0) + { + Task.Run(() => + { + Thread.Sleep(1000 * CloseAfterSecond); + if (_isWindowLoaded) + { + Application.Current?.Dispatcher.Invoke(new Action(() => + { + if (_isWindowLoaded) + RequestClose?.Invoke(); + })); + } + }); + } + Task.Run(() => + { + AutoLogin(); + }); + } + + /// + /// 窗口关闭时调用,停止后台任务 + /// + public void Stop() + { + _isWindowLoaded = false; + } + + /// + /// 自动登录店铺后台 + /// + private async void AutoLogin() + { + if (buyer == null) + return; + _ = Application.Current.Dispatcher.InvokeAsync(async () => + { + if (CefWebBrowser == null) + { + if (!string.IsNullOrEmpty(InitUrl)) + CefWebBrowser = WPFCEFBrowser.CreateChromiumWebBrowser(InitUrl, false); + else + CefWebBrowser = WPFCEFBrowser.CreateChromiumWebBrowser(MainUrl, false); + + LocalResourceRequestHandler resourceRequestHandler = new LocalResourceRequestHandler(); + resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete; + resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad; + CefWebBrowser.RequestHandler = new LocalRequestHandler(resourceRequestHandler); + var lifeSapnHandler = new LocalLifeSpanHandler(PopWindowType.SelfWindow); + CefWebBrowser.LifeSpanHandler = lifeSapnHandler; + //CefWebBrowser.KeyboardHandler = new KeyboardHandler(); + CefWebBrowser.KeyboardHandler = new CefKeyboardHandler(); + CefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd; + CefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged; + CefWebBrowser.LoadError += CefWebBrowser_LoadError; + + // 通知视图把浏览器加入可视树(必须在等待浏览器初始化之前完成) + BrowserCreated?.Invoke(CefWebBrowser); + + List cookieLst = new List(); + try + { + if (buyer != null) + { + cookieLst = JsonHelper.DeserializeJsonToList(buyer?.cookie); + if (cookieLst == null) + cookieLst = new List(); + } + } + catch + { + } + + + // cef138必须init后方可设置或删除cookie + + while (!CefWebBrowser.IsBrowserInitialized || !CefWebBrowser.GetBrowser().MainFrame.IsValid) + await Task.Delay(20); + WPFCEFBrowser.DeleteCookie(CefWebBrowser.GetCookieManager(null)); + + //cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager + //await WPFCEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), CefWebBrowser.GetCookieManager(null)); + foreach (var cook in cookieLst) + { + await WPFCEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null)); + //t.Wait(5000); + } + + //根据登录的具体店铺设置local storage + if (!string.IsNullOrEmpty(buyer?.buyer_id)) + { + //var storageJsCode = "window.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');\r\n"; + //storageJsCode += "window.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');\r\n"; + //while (!CefWebBrowser.IsBrowserInitialized || !CefWebBrowser.GetBrowser().MainFrame.IsValid) + // Thread.Sleep(20); + //CefWebBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync(storageJsCode); + } + + if (!string.IsNullOrEmpty(InitUrl)) + CefWebBrowser.Load(InitUrl); + else + CefWebBrowser.Load(MainUrl); + } + }); + } + + + + + private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e) + { + } + + private void CefWebBrowser_AddressChanged(object sender, DependencyPropertyChangedEventArgs e) + { + if (Application.Current?.Dispatcher != null) + { + Application.Current.Dispatcher.Invoke(new Action(() => + { + currentUrl = e.NewValue.ParseToString(); + Address = e.NewValue.ParseToString(); + })); + } + } + + private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) + { + //js绑定C#对象 html页面内声明绑定的C#对象 + StringBuilder sb = new StringBuilder(); + sb.Append("(function(){"); + sb.Append("CefSharp.BindObjectAsync('shopObj');"); + sb.Append("})();"); + CefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString()); + } + + private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request) + { + return false; + } + + private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request) + { + var _url = url; + var _responseData = responseData; + Task.Run(async() => {await DoResourceLoadComplete(url, responseData); }); + } + + private async Task DoResourceLoadComplete(string url, string responseData) + { + //if (responseData.Contains("karl_malone_32") || responseData.Contains("jtt_fan")) + //{ + // //https://h5api.m.taobao.com/h5/mtop.user.getusersimple/1.0/?jsv=2.7.2&appKey=12574478&t=1789984970076&sign=6bb7d3b5cd8bd3ab32bd97c1a0df1c0f&jsonpIncPrefix=tbnavnew&api=mtop.user.getUserSimple&v=1.0&dataType=json&type=originaljson&data=%7B%7D + // //{"api":"mtop.user.getUserSimple","v":"1.0","ret":["SUCCESS::调用成功"],"data":{"nick":"jtt_fan","userNumId":440631048,"displayNick":"jtt_fan"}} + //} + } + + private void StopButton() + { + } + + private void CopyUserName() + { + if (!string.IsNullOrEmpty(UserName)) + Clipboard.SetDataObject(UserName); + } + + private void CopyPassword() + { + if (!string.IsNullOrEmpty(PassWord)) + Clipboard.SetDataObject(PassWord); + } + + private void Reload() + { + if (CefWebBrowser != null) + { + if (Address != "about:blank") + CefWebBrowser.Load(Address); + else + CefWebBrowser.Load(MainUrl); + } + } + + private void LoginAgain() + { + if (this.currentUrl != buyerLoginUrl) + this.CefWebBrowser?.Load(buyerLoginUrl); + } + } +} \ No newline at end of file diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs index 18cc28e..c8873a1 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs @@ -104,7 +104,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls orderFilterConfig.lstFilterRemarkText = new ConcurrentList(); orderFilterConfig.txtFilterShopNameText = ""; - chkSyncDirectOrderWaybill.IsChecked = GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill; + chkSyncDirectOrderWaybill.IsChecked = GlobalConfig.BuyConfig?.IsSyncDirectBuyOrderWaybill; dateStart.SelectedDate = DateTime.Now.Date.AddDays(-7); dateEnd.SelectedDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1); @@ -364,7 +364,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls else item.ItemTransitOrders.AddRange(transitOrderList.Where(t => t.order_no == item.order_id)); // 中转仓退货包裹订单 - item.ItemTransitOrderAfterSales = transitAfterSaleList.Where(a => item.ItemTransitOrders.Any(t => t.out_order_no == a.order_code)).ToList(); + if (item.order_id == "3739241588056569856") + { + + } + item.ItemTransitOrderAfterSales = transitAfterSaleList.Where(a => item.ItemTransitOrders.Any(t => t.out_order_no == a.order_code || t.order_code == a.order_code)).ToList(); item.DistribReturnOrderInfos = transitReturnOrderList.Where(tr => tr.order_code_source == item.order_id).ToList(); item.ItemTransitExtraOrders = transitExtraPackageList.Where(p => item.ItemTransitOrders.Any(t => t.order_code == p.order_code)).ToList(); diff --git a/29WxOrderWpf/ViewModels/TaobaoLoginViewModel.cs b/29WxOrderWpf/ViewModels/TaobaoLoginViewModel.cs index 5705ba6..d0b01c2 100644 --- a/29WxOrderWpf/ViewModels/TaobaoLoginViewModel.cs +++ b/29WxOrderWpf/ViewModels/TaobaoLoginViewModel.cs @@ -22,7 +22,6 @@ using TemuKJD.ToolForms; using Work; using Work._29Tools.BLL; using Work._29Tools.CefTools; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; namespace _29WxOrderWpf.ViewModels { @@ -227,10 +226,10 @@ namespace _29WxOrderWpf.ViewModels WPFCEFBrowser.DeleteCookie(CefWebBrowser.GetCookieManager(null)); //cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager - var t = WPFCEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), CefWebBrowser.GetCookieManager(null)); + //await WPFCEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), CefWebBrowser.GetCookieManager(null)); foreach (var cook in cookieLst) { - //var t = CEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null)); + await WPFCEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null)); //t.Wait(5000); } diff --git a/29WxOrderWpf/Views/TaobaoLoginView.xaml b/29WxOrderWpf/Views/TaobaoLoginView.xaml index a53cceb..29ffd6d 100644 --- a/29WxOrderWpf/Views/TaobaoLoginView.xaml +++ b/29WxOrderWpf/Views/TaobaoLoginView.xaml @@ -8,8 +8,8 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wpf="WPFCommon" x:Name="taobaoLoginView" - Width="1280" - Height="800" + Width="1300" + Height="768" MinWidth="800" MinHeight="600" comn:DialogWindowProperty.ResizeMode="CanResizeWithGrip" @@ -42,26 +42,26 @@ Text="{Binding Address, UpdateSourceTrigger=PropertyChanged}" /> - + - + - - - + + + + \ No newline at end of file diff --git a/AllBase/Model/DBModel/WXBuyMapInfo.cs b/AllBase/Model/DBModel/WXBuyMapInfo.cs index 813d892..d249e3c 100644 --- a/AllBase/Model/DBModel/WXBuyMapInfo.cs +++ b/AllBase/Model/DBModel/WXBuyMapInfo.cs @@ -32,6 +32,7 @@ namespace AllBase.Model.DBModel public string transit_warehouse_id { get; set; } public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } + public string source_platform { get; set; } = "pdd"; } public class WXBuyMapSkusInfo : PropertyNotifyObject { diff --git a/AllBase/Model/DBModel/oms_wei_order_item_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_info.cs index 04c5465..edd5c76 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_info.cs @@ -288,7 +288,7 @@ namespace AllBase.Model.DBModel public void SetTransitOrder() { - if (order_id == "3738552208766960384") + if (order_id == "3739241588056569856") { } @@ -368,6 +368,10 @@ namespace AllBase.Model.DBModel // 仓库物流售后拦截包裹按钮上的文字,仓库作废单不存在仓库物流,所以此处必须是有效的仓库单(含作废失败) AddEditTransitWarehouseAfterSaleStr = "添加"; + if (order_id == "3739241588056569856") + { + + } if (this.ItemTransitOrderAfterSale != null) AddEditTransitWarehouseAfterSaleStr = "已添加"; if (this.ItemTransitOrderAfterSale != null && (ItemTransitOrderWithVoid.intercept_return_status == 1 || !string.IsNullOrEmpty(ItemTransitOrderAfterSale.downstream_waybill))) diff --git a/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs b/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs index e555986..966689f 100644 --- a/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs +++ b/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs @@ -1165,8 +1165,8 @@ namespace TemuKJD.ToolForms catch { } - var map = buyMapList.FirstOrDefault(b => b.spu_code == upSpuCode && b.sku_code == upSkuCode); - if (map != null) + var pddBuyMap = buyMapList.FirstOrDefault(b => b.spu_code == upSpuCode && b.sku_code == upSkuCode && b.source_platform == "pdd"); + if (pddBuyMap != null) { foreach (var order in GlobalConfig.lstOrder) { @@ -1174,12 +1174,12 @@ namespace TemuKJD.ToolForms { foreach (var item in order.orderItems) { - if ((item.out_product_id == map.spu_code && item.out_sku_id == map.sku_code) || - (item.out_product_id == map.spu_code && item.sku_attr_str == map.sku_code) || - (item.product_id == map.spu_code && item.out_sku_id == map.sku_code) || - (item.product_id == map.spu_code && item.sku_attr_str == map.sku_code)) + if ((item.out_product_id == pddBuyMap.spu_code && item.out_sku_id == pddBuyMap.sku_code) || + (item.out_product_id == pddBuyMap.spu_code && item.sku_attr_str == pddBuyMap.sku_code) || + (item.product_id == pddBuyMap.spu_code && item.out_sku_id == pddBuyMap.sku_code) || + (item.product_id == pddBuyMap.spu_code && item.sku_attr_str == pddBuyMap.sku_code)) { - item.BuyMap = map; + item.BuyMap = pddBuyMap; if (filterOrderAction != null) {