Merge branch 'main' of http://git.ts.e57.cn/chfei/29WxOrder
This commit is contained in:
commit
102af9a15c
9 files changed
+259
-140
No files matched your search
@@ -829,7 +829,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
}
|
||||
else
|
||||
{
|
||||
return "获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
|
||||
return "溯源码获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<TabItem> tabItems = this.tabOrderType.Items.Cast<TabItem>().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<string> lstFilterGoodsName { get; set; } = new List<string>();
|
||||
/// <summary>
|
||||
/// 隐藏标记
|
||||
/// </summary>
|
||||
public bool chkHideGreenFlagIsChecked
|
||||
{
|
||||
public string FilterGoodsNameType { get; set; } = "标题包含";
|
||||
public string FilterRemarkType { get; set; } = "店铺备注包含";
|
||||
public List<string> lstFilterGoodsName { get; set; } = new List<string>();
|
||||
/// <summary>
|
||||
/// 隐藏标记
|
||||
/// </summary>
|
||||
public bool chkHideGreenFlagIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkHideGreenFlagIsChecked); }
|
||||
set { this.SetValue(x => x.chkHideGreenFlagIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 过滤非本系统订单
|
||||
/// </summary>
|
||||
public bool chkOnlyWarehouseOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkOnlyWarehouseOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkOnlyWarehouseOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 过滤多子单订单
|
||||
/// </summary>
|
||||
public bool chkNoMultiOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkNoMultiOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkNoMultiOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 云仓
|
||||
/// </summary>
|
||||
public bool chkTransitOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkTransitOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkTransitOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 直发
|
||||
/// </summary>
|
||||
public bool chkDirectOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkDirectOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkDirectOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 云改直
|
||||
/// </summary>
|
||||
public bool chkTransitChangeDirectOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkTransitChangeDirectOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkTransitChangeDirectOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 过滤备注
|
||||
/// </summary>
|
||||
public bool chkFilterRemarkIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkFilterRemarkIsChecked); }
|
||||
set { this.SetValue(x => x.chkFilterRemarkIsChecked, value); }
|
||||
}
|
||||
public ConcurrentList<string> lstFilterOrderIds
|
||||
{
|
||||
get { return this.GetValue(x => x.lstFilterOrderIds); }
|
||||
set { this.SetValue(x => x.lstFilterOrderIds, value); }
|
||||
}
|
||||
public ConcurrentList<string> 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); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 过滤非本系统订单
|
||||
/// </summary>
|
||||
public bool chkOnlyWarehouseOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkOnlyWarehouseOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkOnlyWarehouseOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 过滤多子单订单
|
||||
/// </summary>
|
||||
public bool chkNoMultiOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkNoMultiOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkNoMultiOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 云仓
|
||||
/// </summary>
|
||||
public bool chkTransitOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkTransitOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkTransitOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 直发
|
||||
/// </summary>
|
||||
public bool chkDirectOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkDirectOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkDirectOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 云改直
|
||||
/// </summary>
|
||||
public bool chkTransitChangeDirectOrderIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkTransitChangeDirectOrderIsChecked); }
|
||||
set { this.SetValue(x => x.chkTransitChangeDirectOrderIsChecked, value); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 过滤备注
|
||||
/// </summary>
|
||||
public bool chkFilterRemarkIsChecked
|
||||
{
|
||||
get { return this.GetValue(x => x.chkFilterRemarkIsChecked); }
|
||||
set { this.SetValue(x => x.chkFilterRemarkIsChecked, value); }
|
||||
}
|
||||
public ConcurrentList<string> lstFilterOrderIds
|
||||
{
|
||||
get { return this.GetValue(x => x.lstFilterOrderIds); }
|
||||
set { this.SetValue(x => x.lstFilterOrderIds, value); }
|
||||
}
|
||||
public ConcurrentList<string> 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); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -142,7 +142,7 @@ namespace _29WxOrderWpf.ViewModels
|
||||
// <AjaxResult><msg>创建额外包裹异常: 用户账户余额不足,需至少 2.20 元用于中转仓取号, userId:17333276316, balance:0.85</msg><code>2</code></AjaxResult>
|
||||
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
|
||||
// <AjaxResult><msg>额外信息已保存</msg><code>200</code></AjaxResult>
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
+12
-2
@@ -37,9 +37,19 @@ namespace AllBase
|
||||
/// 版本ID
|
||||
/// </summary>
|
||||
|
||||
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";
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
/// </summary>
|
||||
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); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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<EvaluateResponse> EvaluateJsBuyTagNameAndInnerHtml(string tagName, string innerHTML, bool isClick = false)
|
||||
public async Task<EvaluateResponse> 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<string> 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 "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动填写地址
|
||||
/// </summary>
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
+18
-17
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user