diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PddBuyOrderViewModel.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PddBuyOrderViewModel.cs index 176a3d9..e373708 100644 --- a/29WxOrderWpf/Ctrls/BuyerCtrls/PddBuyOrderViewModel.cs +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PddBuyOrderViewModel.cs @@ -829,7 +829,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls } else { - return "获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst); + return "溯源码获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst); } } diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs index ecd8081..85dad8a 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs @@ -351,6 +351,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls imgLoading.Visibility = Visibility.Visible; btnSearch.IsEnabled = false; })); + bool hasGetPage = false; int page = 0; int totalPage = 1; int pageSize = 50; @@ -360,7 +361,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls while (true && (IsAutoReadOrder || !string.IsNullOrEmpty(orderIds))) { - BottomMsg = "当前正在读取订单...,第" + (page + 1) + "页"; + BottomMsg = "当前正在读取订单...,第" + (page + 1) + "页" + (hasGetPage ? "" : ("/共" + totalPage + "页")); if (page >= totalPage) { break; @@ -383,7 +384,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls //指定订单id的查询,不再查询店铺id if (string.IsNullOrEmpty(orderIds)) data += "&erp_shop_id_in=" + shop_id; - + // 按过滤条件读取 已废弃 //if (filterGetCondition) //{ @@ -416,13 +417,16 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var totalCount = BaseRegex.GetIntJson(ref html, "count"); if (totalCount > 0) + { + hasGetPage = true; totalPage = Math.Ceiling(1m * totalCount / pageSize).ParseToInt(); + } else { } if (html.Contains("3738686976228742912")) - { + { } var seconds = BaseRegex.GetDecimalJson(ref html, "seconds"); @@ -479,7 +483,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls pddBuyerAfterSales.AddRange(GetTbBuyerAfterSales(order_ids)); // 同步单 - var buyerIds = string.Join(",", pddBuyerOrders.Select(o => o.order_sn)); + var buyerIds = string.Join(",", pddBuyerOrders.Select(o => o.order_sn)); var syncLogistics = GetSyncLogistics(buyerIds); // 读取关联拍单商品 @@ -520,7 +524,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var pddBuyMapLst = buyMapList.Where(m => m.platform == "pdd").ToList(); item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.out_product_id); if (item.PddBuyMap == null) - item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.SkuAttrStr && b.spu_code == item.out_product_id); + item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.SkuAttrStr && b.spu_code == item.out_product_id); if (item.PddBuyMap == null) item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.product_id); if (item.PddBuyMap == null) @@ -1551,7 +1555,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } - public void disPlayOrderTabOrderCount() + public async Task disPlayOrderTabOrderCount() { //var orders = string.Join("','", GlobalConfig.lstFilterOrder.Select(o => o.order_id)); //var orders1 = string.Join(",", GlobalConfig.lstFilterOrder.Select(o => o.order_id)); @@ -1559,46 +1563,57 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls //TabItem tabItem = null; //List tabItems = this.tabOrderType.Items.Cast().ToList(); + var task1 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsWaitBuy).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "待采购")).Count(); WaitBuyTabTxt = "待采购(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + var task2 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsWaitSend).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "待发货")).Count(); WaitSendTabTxt = "待发货(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + var task3 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsWaitReceive).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "待收货")).Count(); WaitReceiveTabTxt = "待收货(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + var task4 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsRefund).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "售后完成单")).Count(); RefundTabTxt = "售后完成单(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + await Task.WhenAll(task1, task2, task3, task4); + + var task5 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsEmergencyManualReturnOrder).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "需处理售后单")).Count(); EmergencyManualReturnOrderTabTxt = "需处理售后单(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + var task6 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsEmergencyDistribReturnOrder).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "退货仓自动售后单")).Count(); EmergencyDistribReturnOrderTabTxt = "退货仓自动售后单(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + var task7 = Task.Run(() => { var lstCount = userOrderLst.Where(r => r.IsAbnormal).Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "异常需重拍")).Count(); AbnormalTabTxt = "异常需重拍(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + var task8 = Task.Run(() => { var lstCount = userOrderLst.Count(); var filteLstTmpCount = userOrderLst.Where(o => !GetOrderIsFilter(o, "全部订单")).Count(); AllOrderTabTxt = "全部订单(" + lstCount + "|" + filteLstTmpCount + ")"; - } + }); + await Task.WhenAll(task5, task6, task7, task8); } CancellationTokenSource TokenSource = null; @@ -1680,7 +1695,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls return; oms_wei_order_info orderExist = null; - + lock (MainWindow._orderLock) { orderExist = GlobalConfig.lstFilterOrder.ToList().FirstOrDefault(o => o.order_id == order.order_id); @@ -1925,8 +1940,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls (bOrder?.tracking_number).IsNullOrEmpty() && bOrder?.order_time <= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72)))) { } // 直发没有单号正常发货才判断中转仓总店是否超时发货 - else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && - oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && + else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && + oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && (bOrder?.tracking_number).IsNullOrEmpty() && bOrder?.order_time <= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72)))) { } else @@ -1939,8 +1954,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls bOrder.order_time >= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72))))) { } // 直发没有单号才判断中转仓总店是否超时发货 - else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && - oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && + else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && + oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && (bOrder?.tracking_number).IsNullOrEmpty() && (bOrder?.order_time < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-48)) && bOrder.order_time >= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72))))) { } @@ -1982,10 +1997,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls if (order.orderItems.Any(oi => oi.DirectPddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && (bOrder?.tracking_number).IsNullOrEmpty() && bOrder?.order_time <= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72)))) { } - else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && + else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && (bOrder?.tracking_number).IsNullOrEmpty() && bOrder?.order_time <= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72)))) - { } + { } else return true; } @@ -1996,8 +2011,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls (bOrder?.tracking_number).IsNullOrEmpty() && (bOrder?.order_time < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-48)) && bOrder.order_time >= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72))))) { } - else if (order.orderItems.Any(oi =>(oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && - oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && + else if (order.orderItems.Any(oi => (oi.DirectPddBuyerOrders?.Count).IsNullOrZero() && + oi.PddBuyerOrders.OrderByDescending(bo => bo.order_time).FirstOrDefault() is order_pdd_buyer_order bOrder && (bOrder?.tracking_number).IsNullOrEmpty() && (bOrder?.order_time < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-48)) && bOrder.order_time >= BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddHours(-72))))) { } @@ -2295,7 +2310,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls GlobalConfig.OrderTabHeaderStr = ((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString(); FilterOrders(); } - + private void chkMapProd_Click(object sender, RoutedEventArgs e) { if (sender is CheckBox chk) @@ -2361,10 +2376,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls chkEmergencyBuyerWaitAfterSale.IsChecked = chkEmergencyBuyerWaitSendBack.IsChecked = chkEmergencyBuyerWaitSupplierRefund.IsChecked = chkEmergencyBuyerRefundFail.IsChecked = false; chk.IsChecked = !isCheck; - chkEmergencyBuyerWaitAfterSaleIsChecked = chkEmergencyBuyerWaitAfterSale.IsChecked.ParseToBool(); - chkEmergencyBuyerWaitSendBackIsChecked = chkEmergencyBuyerWaitSendBack.IsChecked.ParseToBool(); - chkEmergencyBuyerWaitSupplierRefundIsChecked = chkEmergencyBuyerWaitSupplierRefund.IsChecked.ParseToBool(); - chkEmergencyBuyerRefundFailIsChecked = chkEmergencyBuyerRefundFail.IsChecked.ParseToBool(); + chkEmergencyBuyerWaitAfterSaleIsChecked = chkEmergencyBuyerWaitAfterSale.IsChecked.ParseToBool(); + chkEmergencyBuyerWaitSendBackIsChecked = chkEmergencyBuyerWaitSendBack.IsChecked.ParseToBool(); + chkEmergencyBuyerWaitSupplierRefundIsChecked = chkEmergencyBuyerWaitSupplierRefund.IsChecked.ParseToBool(); + chkEmergencyBuyerRefundFailIsChecked = chkEmergencyBuyerRefundFail.IsChecked.ParseToBool(); } FilterOrders(); } @@ -2397,10 +2412,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls chkEmergencyWaitSupplierReceive.IsChecked = chkEmergencyWaitSupplierAccept.IsChecked = chkEmergencyShopAfterSaleSuccess.IsChecked = chkEmergencyShopInAfterSale.IsChecked = false; chk.IsChecked = !isCheck; - chkEmergencyWaitSupplierReceiveIsChecked = chkEmergencyWaitSupplierReceive.IsChecked.ParseToBool(); - chkEmergencyWaitSupplierAcceptIsChecked = chkEmergencyWaitSupplierAccept.IsChecked.ParseToBool(); + chkEmergencyWaitSupplierReceiveIsChecked = chkEmergencyWaitSupplierReceive.IsChecked.ParseToBool(); + chkEmergencyWaitSupplierAcceptIsChecked = chkEmergencyWaitSupplierAccept.IsChecked.ParseToBool(); chkEmergencyShopAfterSaleSuccessIsChecked = chkEmergencyShopAfterSaleSuccess.IsChecked.ParseToBool(); - chkEmergencyShopInAfterSaleIsChecked = chkEmergencyShopInAfterSale.IsChecked.ParseToBool(); + chkEmergencyShopInAfterSaleIsChecked = chkEmergencyShopInAfterSale.IsChecked.ParseToBool(); } FilterOrders(); } @@ -2434,8 +2449,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls chk.IsChecked = !isCheck; chkWaitReceiveWarehouseIsNotPickupIsChecked = chkWaitReceiveWarehouseIsNotPickup.IsChecked.ParseToBool(); - chkWaitReceiveWarehouseIsPickupIsChecked = chkWaitReceiveWarehouseIsPickup.IsChecked.ParseToBool(); - chkWaitReceiveWarehouseIsSendOutIsChecked = chkWaitReceiveWarehouseIsSendOut.IsChecked.ParseToBool(); + chkWaitReceiveWarehouseIsPickupIsChecked = chkWaitReceiveWarehouseIsPickup.IsChecked.ParseToBool(); + chkWaitReceiveWarehouseIsSendOutIsChecked = chkWaitReceiveWarehouseIsSendOut.IsChecked.ParseToBool(); } FilterOrders(); } @@ -2699,7 +2714,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls outOrderSn = tmpOrderItem.ItemOrder?.out_order_no; if (outOrderSn.StartsWith("tb_")) - { + { // todo 淘宝退货暂时不处理 } else @@ -3194,7 +3209,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls e.Column.Header = ColumnHeaderTitle = "交易时间 ▲"; } } - + } private void cmbFilterRemark_SelectionChanged(object sender, SelectionChangedEventArgs e) @@ -3431,80 +3446,80 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } public class OrderFilterConfig : PropertyNotifyObject +{ + public string FilterGoodsNameType { get; set; } = "标题包含"; + public string FilterRemarkType { get; set; } = "店铺备注包含"; + public List lstFilterGoodsName { get; set; } = new List(); + /// + /// 隐藏标记 + /// + public bool chkHideGreenFlagIsChecked { - public string FilterGoodsNameType { get; set; } = "标题包含"; - public string FilterRemarkType { get; set; } = "店铺备注包含"; - public List lstFilterGoodsName { get; set; } = new List(); - /// - /// 隐藏标记 - /// - public bool chkHideGreenFlagIsChecked - { - get { return this.GetValue(x => x.chkHideGreenFlagIsChecked); } - set { this.SetValue(x => x.chkHideGreenFlagIsChecked, value); } - } - /// - /// 过滤非本系统订单 - /// - public bool chkOnlyWarehouseOrderIsChecked - { - get { return this.GetValue(x => x.chkOnlyWarehouseOrderIsChecked); } - set { this.SetValue(x => x.chkOnlyWarehouseOrderIsChecked, value); } - } - /// - /// 过滤多子单订单 - /// - public bool chkNoMultiOrderIsChecked - { - get { return this.GetValue(x => x.chkNoMultiOrderIsChecked); } - set { this.SetValue(x => x.chkNoMultiOrderIsChecked, value); } - } - /// - /// 云仓 - /// - public bool chkTransitOrderIsChecked - { - get { return this.GetValue(x => x.chkTransitOrderIsChecked); } - set { this.SetValue(x => x.chkTransitOrderIsChecked, value); } - } - /// - /// 直发 - /// - public bool chkDirectOrderIsChecked - { - get { return this.GetValue(x => x.chkDirectOrderIsChecked); } - set { this.SetValue(x => x.chkDirectOrderIsChecked, value); } - } - /// - /// 云改直 - /// - public bool chkTransitChangeDirectOrderIsChecked - { - get { return this.GetValue(x => x.chkTransitChangeDirectOrderIsChecked); } - set { this.SetValue(x => x.chkTransitChangeDirectOrderIsChecked, value); } - } - /// - /// 过滤备注 - /// - public bool chkFilterRemarkIsChecked - { - get { return this.GetValue(x => x.chkFilterRemarkIsChecked); } - set { this.SetValue(x => x.chkFilterRemarkIsChecked, value); } - } - public ConcurrentList lstFilterOrderIds - { - get { return this.GetValue(x => x.lstFilterOrderIds); } - set { this.SetValue(x => x.lstFilterOrderIds, value); } - } - public ConcurrentList lstFilterRemarkText - { - get { return this.GetValue(x => x.lstFilterRemarkText); } - set { this.SetValue(x => x.lstFilterRemarkText, value); } - } - public string txtFilterShopNameText - { - get { return this.GetValue(x => x.txtFilterShopNameText); } - set { this.SetValue(x => x.txtFilterShopNameText, value); } - } + get { return this.GetValue(x => x.chkHideGreenFlagIsChecked); } + set { this.SetValue(x => x.chkHideGreenFlagIsChecked, value); } + } + /// + /// 过滤非本系统订单 + /// + public bool chkOnlyWarehouseOrderIsChecked + { + get { return this.GetValue(x => x.chkOnlyWarehouseOrderIsChecked); } + set { this.SetValue(x => x.chkOnlyWarehouseOrderIsChecked, value); } + } + /// + /// 过滤多子单订单 + /// + public bool chkNoMultiOrderIsChecked + { + get { return this.GetValue(x => x.chkNoMultiOrderIsChecked); } + set { this.SetValue(x => x.chkNoMultiOrderIsChecked, value); } + } + /// + /// 云仓 + /// + public bool chkTransitOrderIsChecked + { + get { return this.GetValue(x => x.chkTransitOrderIsChecked); } + set { this.SetValue(x => x.chkTransitOrderIsChecked, value); } + } + /// + /// 直发 + /// + public bool chkDirectOrderIsChecked + { + get { return this.GetValue(x => x.chkDirectOrderIsChecked); } + set { this.SetValue(x => x.chkDirectOrderIsChecked, value); } + } + /// + /// 云改直 + /// + public bool chkTransitChangeDirectOrderIsChecked + { + get { return this.GetValue(x => x.chkTransitChangeDirectOrderIsChecked); } + set { this.SetValue(x => x.chkTransitChangeDirectOrderIsChecked, value); } + } + /// + /// 过滤备注 + /// + public bool chkFilterRemarkIsChecked + { + get { return this.GetValue(x => x.chkFilterRemarkIsChecked); } + set { this.SetValue(x => x.chkFilterRemarkIsChecked, value); } + } + public ConcurrentList lstFilterOrderIds + { + get { return this.GetValue(x => x.lstFilterOrderIds); } + set { this.SetValue(x => x.lstFilterOrderIds, value); } + } + public ConcurrentList lstFilterRemarkText + { + get { return this.GetValue(x => x.lstFilterRemarkText); } + set { this.SetValue(x => x.lstFilterRemarkText, value); } + } + public string txtFilterShopNameText + { + get { return this.GetValue(x => x.txtFilterShopNameText); } + set { this.SetValue(x => x.txtFilterShopNameText, value); } } } +} diff --git a/29WxOrderWpf/ViewModels/TransitExtraPackagesViewModel.cs b/29WxOrderWpf/ViewModels/TransitExtraPackagesViewModel.cs index 5ae4caa..65c30a7 100644 --- a/29WxOrderWpf/ViewModels/TransitExtraPackagesViewModel.cs +++ b/29WxOrderWpf/ViewModels/TransitExtraPackagesViewModel.cs @@ -142,7 +142,7 @@ namespace _29WxOrderWpf.ViewModels // 创建额外包裹异常: 用户账户余额不足,需至少 2.20 元用于中转仓取号, userId:17333276316, balance:0.852 if (BaseRegex.GetStringXml(ref rst, "code") != "0" && BaseRegex.GetStringXml(ref rst, "code") != "200") { - BaseMsgWindow.ShowError(BaseRegex.GetStringXml(ref rst, "msg")); + BaseMsgWindow.ShowError("服务端返回:" + BaseRegex.GetStringXml(ref rst, "msg")); return; } @@ -156,7 +156,7 @@ namespace _29WxOrderWpf.ViewModels // 额外信息已保存200 if (BaseRegex.GetStringXml(ref rst, "code") != "0" && BaseRegex.GetStringXml(ref rst, "code") != "200") { - BaseMsgWindow.ShowError(BaseRegex.GetStringXml(ref rst, "msg")); + BaseMsgWindow.ShowError("服务端返回:" + BaseRegex.GetStringXml(ref rst, "msg")); return; } diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 4248764..79bb0e1 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -37,9 +37,19 @@ namespace AllBase /// 版本ID /// - public static int VersionCount = 353; + public static int VersionCount = 357; - public static string ServerUrl { get; set; } = "http://1.13.195.131:9000"; + //public static string ServerUrl { get; set; } = "http://1.13.195.131:9000"; + public static string ServerUrl + { + get + { + var url = "http://1.13.195.131:9000"; + //if (Randomx.GetId(3) < 2) + // url = "http://119.45.29.75:9000"; + return url; + } + } public static string DebugUrl { get; set; } = "http://localhost:9000"; diff --git a/AllBase/Model/DBModel/oms_wei_order_info.cs b/AllBase/Model/DBModel/oms_wei_order_info.cs index 3385a18..0a56e98 100644 --- a/AllBase/Model/DBModel/oms_wei_order_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_info.cs @@ -28,7 +28,7 @@ namespace AllBase.Model.DBModel public ShopLoginInfo Shop { get { return this.GetValue(x => x.Shop); } - set { this.SetValue(x => x.Shop, value); if (!Shop.ShopAccount.IsNullOrEmpty()) shop_name = Shop.ShopAccount; } + set { this.SetValue(x => x.Shop, value); if (!(Shop?.ShopAccount).IsNullOrEmpty()) shop_name = Shop?.ShopAccount; } } public int Index { diff --git a/AllBase/Model/DBModel/oms_wei_order_item_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_info.cs index f7560f0..01f02e4 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_info.cs @@ -1241,6 +1241,10 @@ namespace AllBase.Model.DBModel //get { if (ItemOrder.out_amount > 0 || ItemTransitOrder?.out_amount > 0) return Visibility.Collapsed; return Visibility.Visible; } FreightVisibility = Visibility.Collapsed; + if (order_id == "3740014218899272960") + { + + } //get { return "¥" + (order_items.Sum(oi => oi.predict_commission_fee.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); } PredictCommissionFeeStr = "¥" + (predict_commission_fee * 0.01m).ParseToDecimal().ToString("0.00"); @@ -1346,8 +1350,8 @@ namespace AllBase.Model.DBModel /// public string CommissionAmountStr { - get { return this.GetValue(x => x.PredictCommissionFeeStr); } - set { this.SetValue(x => x.PredictCommissionFeeStr, value); } + get { return this.GetValue(x => x.CommissionAmountStr); } + set { this.SetValue(x => x.CommissionAmountStr, value); } } /// diff --git a/Work/UserLogin.cs b/Work/UserLogin.cs index a3f6c1e..3df5ee4 100644 --- a/Work/UserLogin.cs +++ b/Work/UserLogin.cs @@ -144,6 +144,17 @@ namespace Work BaseClass.OemId = BaseRegex.GetStringJson(ref html, "oem_id"); BaseClass.OemName = BaseRegex.GetStringJson(ref html, "oem_name"); BaseClass.IsOemOwner = BaseRegex.GetBoolJson(ref html, "is_oem_owner"); +#if DEBUG + if (!string.IsNullOrEmpty(BaseRegex.GetStringJson(ref html, "order_api_url")) && !BaseClass.LoginApiUrl.Contains("localhost") && !BaseClass.LoginApiUrl.Contains("127.0.0.1")) + { + BaseClass.LoginApiUrl = BaseRegex.GetStringJson(ref html, "order_api_url").Split(';').FirstOrDefault(); + } +#else + if (!string.IsNullOrEmpty(BaseRegex.GetStringJson(ref html, "order_api_url"))) + { + BaseClass.LoginApiUrl = BaseRegex.GetStringJson(ref html, "order_api_url").Split(';').FirstOrDefault(); + } +#endif if (BaseClass.GroupId != 3 && BaseClass.GroupId != 4 && BaseClass.GroupId != 9 && BaseClass.GroupId != 10 && BaseClass.GroupId != 11) { diff --git a/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs b/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs index 2a68dd2..b90c60e 100644 --- a/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs +++ b/Work/_29Tools/Forms/PddMobileBuyOrderForm.cs @@ -73,6 +73,7 @@ namespace TemuKJD.ToolForms private static readonly object lockObj = new(); private static readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); + private string sourceCode = string.Empty; private string shopCookieHead = "yangkeduo.com"; private string shopMainUrl = "https://mobile.yangkeduo.com/index.html"; private ChromiumWebBrowser cefWebBrowser = null; @@ -611,7 +612,13 @@ namespace TemuKJD.ToolForms } } } - var rst = await ChangeAddress(transit); + + // 填地址 + var rst = await ChangeAddress(transit); + + // 领优惠券 + await AutoGetCoupon(); + IsChangeAddress = false; } } @@ -654,7 +661,7 @@ namespace TemuKJD.ToolForms while (this.Created && IsAutoBuy) { Thread.Sleep(100); - if (HasChangeAddress && (this.cefWebBrowser?.GetMainFrame()?.Url).ParseToString().StartsWith("https://mobile.yangkeduo.com/order_checkout.html?sku_id=")) + if (!IsChangeAddress && HasChangeAddress && (this.cefWebBrowser?.GetMainFrame()?.Url).ParseToString().StartsWith("https://mobile.yangkeduo.com/order_checkout.html?sku_id=")) { try { @@ -761,7 +768,6 @@ namespace TemuKJD.ToolForms public async Task CheckSourceCode() { - var sourceCode = txtSourceCode.Text.Trim(); var ts1 = await EvaluateJsBuyTagNameAndInnerHtml("div", sourceCode); if (ts1.Result?.Value.ParseToString() != "success") { @@ -772,7 +778,7 @@ namespace TemuKJD.ToolForms IBrowserHost host = null; DevToolsClient client = null; - public async Task EvaluateJsBuyTagNameAndInnerHtml(string tagName, string innerHTML, bool isClick = false) + public async Task EvaluateJsBuyTagNameAndInnerHtml(string tagName, string innerHTML, bool isClick = false, bool isOuterHtml = false) { if (!this.Created) throw new Exception("窗口已关闭"); @@ -796,7 +802,7 @@ namespace TemuKJD.ToolForms var jsStr1 = @"(function() { var elements = document.getElementsByTagName('" + tagName + @"'); for (i = elements.length - 1; i >= 0; i--){ var element = elements[i]; - if (element.innerHTML.indexOf('" + innerHTML + @"') >= 0) {"; + if (element." + (isOuterHtml ? "outerHTML" : "innerHTML") + @".indexOf('" + innerHTML + @"') >= 0) {"; if (isClick) jsStr1 += @"element.click();"; jsStr1 += @" @@ -840,6 +846,74 @@ namespace TemuKJD.ToolForms } } + public async Task AutoGetCoupon() + { + for (int i = 0; i < 10; i++) + { + Thread.Sleep(100); + if (host == null || client == null) + { + host = cefWebBrowser?.GetBrowser().GetHost(); + client = cefWebBrowser?.GetDevToolsClient(); + } + else + break; + } + if (host == null || client == null) + { + throw new Exception("页面加载异常"); + } + + // 点击领取优惠券 + for (int i = 0; i < 20; i++) + { + Thread.Sleep(150); + if (!this.Created) return "窗口已关闭"; + + var ts1 = await EvaluateJsBuyTagNameAndInnerHtml("span", "领券可减", true); + if (ts1.Result.Value is string rstStr && rstStr == "success") + { + break; + } + var ts2 = await EvaluateJsBuyTagNameAndInnerHtml("div", "立即支付"); + if (ts2.Result.Value is string rstStr2 && rstStr2 == "success" && ts1.Result.Value is string rstStr1 && rstStr1 != "success") + { + return ""; + } + } + Thread.Sleep(Randomx.GetId(200, 400)); + + //点击领取优惠券 + for (int i = 0; i < 20; i++) + { + Thread.Sleep(150); + if (!this.Created) return "窗口已关闭"; + + var ts1 = await EvaluateJsBuyTagNameAndInnerHtml("div", "领取", true); + if (ts1.Result.Value is string rstStr && rstStr == "success") + { + break; + } + } + Thread.Sleep(Randomx.GetId(200, 400)); + + // 点击关闭 + for (int i = 0; i < 20; i++) + { + Thread.Sleep(150); + if (!this.Created) return "窗口已关闭"; + + var ts1 = await EvaluateJsBuyTagNameAndInnerHtml("div", "aria-label=\"关闭\"", true, true); + if (ts1.Result.Value is string rstStr && rstStr == "success") + { + break; + } + } + Thread.Sleep(Randomx.GetId(200, 400)); + + return ""; + } + /// /// 自动填写地址 /// @@ -1287,7 +1361,6 @@ namespace TemuKJD.ToolForms Invoke(() => { lblErrMsg.Text = "页面未加载!"; }); return; } - //var sourceCode = txtSourceCode.Text.Trim(); //var jsStr1 = @"(function() { var elements = document.getElementsByTagName('div'); // for (i = elements.length - 1; i >= 0; i--){ // var element = elements[i]; @@ -1942,5 +2015,10 @@ namespace TemuKJD.ToolForms { pnlMask.Visible = false; } + + private void txtSourceCode_TextChanged(object sender, EventArgs e) + { + + } } } diff --git a/Work/_29Tools/Forms/PddMobileBuyOrderForm.designer.cs b/Work/_29Tools/Forms/PddMobileBuyOrderForm.designer.cs index 9f3efbf..233f5cd 100644 --- a/Work/_29Tools/Forms/PddMobileBuyOrderForm.designer.cs +++ b/Work/_29Tools/Forms/PddMobileBuyOrderForm.designer.cs @@ -34,6 +34,7 @@ this.pictureBox4 = new System.Windows.Forms.PictureBox(); this.lblErrMsg = new System.Windows.Forms.Label(); this.pnlMask = new DevComponents.DotNetBar.PanelEx(); + this.pictureBox5 = new System.Windows.Forms.PictureBox(); this.btnJumpOrderList = new DevComponents.DotNetBar.PanelEx(); this.txtBuySkuName = new System.Windows.Forms.TextBox(); this.label21 = new System.Windows.Forms.Label(); @@ -113,7 +114,6 @@ this.chkAutoChangeWarehouseAddress = new Work.UserComponents.UcCheckBox(this.components); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pnlMap = new System.Windows.Forms.Panel(); - this.pictureBox5 = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pbCloseBase)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); @@ -122,6 +122,7 @@ this.pnlMsg.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); this.pnlMask.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); this.splitContainer2.Panel1.SuspendLayout(); this.splitContainer2.Panel2.SuspendLayout(); @@ -133,7 +134,6 @@ this.pnlBuy.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.pnlMap.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); this.SuspendLayout(); // // pbCloseBase @@ -174,7 +174,7 @@ this.pnlMsg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.pnlMsg.Controls.Add(this.pictureBox4); this.pnlMsg.Controls.Add(this.lblErrMsg); - this.pnlMsg.Location = new System.Drawing.Point(47, 538); + this.pnlMsg.Location = new System.Drawing.Point(47, 539); this.pnlMsg.Name = "pnlMsg"; this.pnlMsg.Size = new System.Drawing.Size(771, 100); this.pnlMsg.TabIndex = 898; @@ -234,6 +234,19 @@ this.pnlMask.Text = "自动拍单倒计时\r\n8"; this.pnlMask.Visible = false; // + // pictureBox5 + // + this.pictureBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(99)))), ((int)(((byte)(143))))); + this.pictureBox5.Image = global::Work.Properties.Resources.close; + this.pictureBox5.Location = new System.Drawing.Point(829, 3); + this.pictureBox5.Name = "pictureBox5"; + this.pictureBox5.Size = new System.Drawing.Size(32, 32); + this.pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox5.TabIndex = 898; + this.pictureBox5.TabStop = false; + this.pictureBox5.Click += new System.EventHandler(this.pictureBox5_Click); + // // btnJumpOrderList // this.btnJumpOrderList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1110,6 +1123,7 @@ this.txtSourceCode.ReadOnly = true; this.txtSourceCode.Size = new System.Drawing.Size(152, 23); this.txtSourceCode.TabIndex = 885; + this.txtSourceCode.TextChanged += new System.EventHandler(this.txtSourceCode_TextChanged); // // btnReMap // @@ -1214,19 +1228,6 @@ this.pnlMap.Size = new System.Drawing.Size(468, 203); this.pnlMap.TabIndex = 871; // - // pictureBox5 - // - this.pictureBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(99)))), ((int)(((byte)(143))))); - this.pictureBox5.Image = global::Work.Properties.Resources.close; - this.pictureBox5.Location = new System.Drawing.Point(829, 3); - this.pictureBox5.Name = "pictureBox5"; - this.pictureBox5.Size = new System.Drawing.Size(32, 32); - this.pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox5.TabIndex = 898; - this.pictureBox5.TabStop = false; - this.pictureBox5.Click += new System.EventHandler(this.pictureBox5_Click); - // // PddMobileBuyOrderForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1249,6 +1250,7 @@ this.pnlMsg.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); this.pnlMask.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); this.splitContainer2.Panel1.ResumeLayout(false); this.splitContainer2.Panel1.PerformLayout(); this.splitContainer2.Panel2.ResumeLayout(false); @@ -1266,7 +1268,6 @@ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.pnlMap.ResumeLayout(false); this.pnlMap.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); this.ResumeLayout(false); }