This commit is contained in:
wule committed 2026-10-28 13:21:38 +08:00
commit 1172670a7e
9 files changed
+451 -386

No files matched your search

@@ -64,6 +64,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
{
private static readonly object locker = new object();
private static ConcurrentList<Task> lstTask = new ConcurrentList<Task>();
string lblMsgStr = "当前没有任何操作";
public string LblMsgStr
{
@@ -99,6 +101,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
public static ConcurrentList<PddBuyerAfterSaleLiteInfo> lstPddBuyerAfterSaleInfoLite { get; set; } = new ConcurrentList<PddBuyerAfterSaleLiteInfo>();
public static ObservableCollectionThreadSafe<PddBuyerAfterSaleLiteInfo> lstFilterPddBuyerAfterSaleInfoLite { get; set; } = new ObservableCollectionThreadSafe<PddBuyerAfterSaleLiteInfo>();
public static ConcurrentList<string> lstPddBuyerOrderVoidAfterSaleOrderSn { get; set; } = new ConcurrentList<string>();
public static ConcurrentList<string> lstdisctinctOrderSn = new ConcurrentList<string>();
public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
public BuyerReadOrderConfig buyerReadOrderConfig = new BuyerReadOrderConfig();
public DateTime nextGetOrderTime = DateTime.MinValue;
@@ -421,7 +424,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (ordersStr != null && ordersStr.StartsWith("{\"3\":"))
{
ordersStr = "{\"orders\":" + ordersStr.Substring(5);
await CefReadBuyerOrder(buyerId, ordersStr);
await CefReadBuyerOrderQueue(buyerId, ordersStr);
}
}
}
@@ -443,7 +446,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (ordersStr != null && ordersStr.StartsWith("{\"2\":"))
{
ordersStr = "{\"orders\":" + ordersStr.Substring(5);
await CefReadBuyerOrder(buyerId, ordersStr);
await CefReadBuyerOrderQueue(buyerId, ordersStr);
}
}
}
@@ -452,7 +455,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// 读订单
if (/*(cefAddress.Contains("orders.html")) &&*/ url1.StartsWith("https://mobile.yangkeduo.com/proxy/api/api/aristotle/order_list_v")) //https://mobile.yangkeduo.com/proxy/api/api/aristotle/order_list_v4?pdduid=6766109923730
{
await CefReadBuyerOrder(url1, data1);
await CefReadBuyerOrderQueue(url1, data1);
}
// 售后 第一页
@@ -702,13 +705,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
pdd_afterSale.AfterSaleAddress = buyer_after_sale?.afterSaleAddress;
}
async Task CefReadBuyerOrder(string url, string data)
async Task CefReadBuyerOrderQueue(string url, string data)
{
if (data.Contains("轻奢壁挂式香皂盒置物架卫生间沥水家居可拆卸收纳盒翻盖肥皂盒"))
{
}
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => url.Contains(b.buyer_id));
if (buyer == null)
return;
@@ -718,11 +717,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
//{"server_time":1775789489,"orders":[],"extra_info":{}}
if (data.Contains("\"orders\":[]"))
{
Dispatcher.Invoke(new Action(() =>
{
lblMsg.Content = buyer.buyer_name + " 获取到空订单列表,退出自动滑动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
currentReadBuyer = "";
ShowBuyerOrderReadInfo(buyer, " 获取到空订单列表,退出自动滑动 ");
currentReadBuyer = "";
return;
}
if (data.Contains("\"error_code\":40001"))
@@ -732,15 +728,29 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
return;
}
Dispatcher.Invoke(new Action(() =>
{
lblMsg.Content = buyer.buyer_name + " 正在获取订单列表 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
var list = JsonHelper.DeserializeJsonToList<PddBuyerOrderLiteInfo>(JsonHelper.JObjectParse(data)["orders"].ParseToString());
var list = JsonHelper.DeserializeJsonToList<PddBuyerOrderLiteInfo>(JsonHelper.JObjectParse(data)["orders"].ParseToString());
var isBreak = false;
lock (locker)
{
if (list.All(l => lstdisctinctOrderSn.Contains(l.order_sn)))
isBreak = true;
lstdisctinctOrderSn.AddRange(list.Where(l => !lstdisctinctOrderSn.Contains(l.order_sn)).Select(l => l.order_sn).ToList());
}
if (isBreak)
{
ShowBuyerOrderReadInfo(buyer, " 获取到重复订单列表,退出自动滑动 ");
currentReadBuyer = "";
return;
}
if (list.Count > 0)
dicPddOrderOffset[buyer] = list.LastOrDefault().order_sn;
dicPddOrderOffset[buyer] = list.LastOrDefault()?.order_sn;
ShowBuyerOrderReadInfo(buyer, " 正在获取订单列表 " + list?.LastOrDefault()?.order_sn + " ");
if ((list?.LastOrDefault()?.order_sn).ParseToString().Contains("PO"))
{
//PO-261024-019168007731171
}
// 提取拼多多外采订单列表
var out_order_nos = string.Join(",", list.Select(bo => bo.order_sn));
@@ -789,77 +799,74 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// 获取订单售后,暂时关闭,使用订单详情售后状态字段
//var refunds = GetOrderRefundInfo(order_ids);
foreach (PddBuyerOrderLiteInfo o in list)
{
o.buyerId = buyer.buyer_id;
o.buyerName = buyer.buyer_name;
foreach (PddBuyerOrderLiteInfo o in list)
{
o.buyerId = buyer.buyer_id;
o.buyerName = buyer.buyer_name;
if (o.order_sn == "260923-573109716621688")
{
}
// 查找店铺订单并更新店铺订单状态
var orderItemExt = orderExtList.FirstOrDefault(oie => oie.out_order_id == o.order_sn && oie.buy_type == "直发");
if (orderItemExt != null)
{
o.WxSendTypeStr = "直发";
o.ShopOrderIdStr = orderItemExt.order_id;
o.ShopOrderSkuIdStr = orderItemExt.sku_id;
o.sendStatus = "";
var wxOrder = orders.FirstOrDefault(ord => ord.order_id == o.ShopOrderIdStr);
if (wxOrder != null)
{
o.ShopOrderRefundStr = ""; // "店铺售后" 或者 "";
var wxOrderItem = wxOrder.orderItems.FirstOrDefault(oi => oi.sku_id == o.ShopOrderSkuIdStr);
if (wxOrderItem != null)
{
o.ShopOrderSkuNameStr = wxOrderItem.SkuAttrStr;
if (wxOrderItem?.refund_status > 1)
{
o.ShopOrderRefundStr = "店铺售后";
}
}
// 查找店铺订单并更新店铺订单状态
var orderItemExt = orderExtList.FirstOrDefault(oie => oie.out_order_id == o.order_sn && oie.buy_type == "直发");
if (orderItemExt != null)
{
o.WxSendTypeStr = "直发";
o.ShopOrderIdStr = orderItemExt.order_id;
o.ShopOrderSkuIdStr = orderItemExt.sku_id;
o.sendStatus = "";
var wxOrder = orders.FirstOrDefault(ord => ord.order_id == o.ShopOrderIdStr);
if (wxOrder != null)
{
o.ShopOrderRefundStr = ""; // "店铺售后" 或者 "";
var wxOrderItem = wxOrder.orderItems.FirstOrDefault(oi => oi.sku_id == o.ShopOrderSkuIdStr);
if (wxOrderItem != null)
{
o.ShopOrderSkuNameStr = wxOrderItem.SkuAttrStr;
if (wxOrderItem?.refund_status > 1)
{
o.ShopOrderRefundStr = "店铺售后";
}
}
o.WxOrderStatus = wxOrder?.status;
o.OutAfterSaleStatusStr = wxOrder.out_after_sale_status;
}
}
else
{
var transit_item = transitOrderList.FirstOrDefault(t1 => t1.out_order_no == o.order_sn);
oms_wei_order_info shopOrder = null;
oms_wei_order_item_info orderItem = null;
if (transit_item != null)
{
shopOrder = orders.FirstOrDefault(o1 => o1.order_id == transit_item.order_no);
orderItem = shopOrder?.orderItems.FirstOrDefault(oi => oi.ItemTransitOrders.Any(t1 => t1.out_order_no == o.order_sn));
//var refund_item = refunds.FirstOrDefault(ri => ri.order_id == order_item?.order_id) ?? order_item?.ItemRefund;
UpdateOrderStatus(o, shopOrder, orderItem, transit_item);
}
}
}
}
else
{
var transit_item = transitOrderList.FirstOrDefault(t1 => t1.out_order_no == o.order_sn);
oms_wei_order_info shopOrder = null;
oms_wei_order_item_info orderItem = null;
if (transit_item != null)
{
shopOrder = orders.FirstOrDefault(o1 => o1.order_id == transit_item.order_no);
orderItem = shopOrder?.orderItems.FirstOrDefault(oi => oi.ItemTransitOrders.Any(t1 => t1.out_order_no == o.order_sn));
//var refund_item = refunds.FirstOrDefault(ri => ri.order_id == order_item?.order_id) ?? order_item?.ItemRefund;
UpdateOrderStatus(o, shopOrder, orderItem, transit_item);
}
}
bool isUpdate = false;
PddBuyerOrderLiteInfo order = null;
Dispatcher.Invoke(new Action(() =>
{
order = lstPddBuyerOrderInfoLite.FirstOrDefault(or => or.order_sn == o.order_sn);
}));
if (order == null)
{
order = o;
isUpdate = true;
Dispatcher.Invoke(new Action(() =>
{
lstPddBuyerOrderInfoLite.Add(order);
}));
}
else
{
bool isUpdate = false;
PddBuyerOrderLiteInfo order = null;
lock (locker)
{
order = lstPddBuyerOrderInfoLite.FirstOrDefault(or => or.order_sn == o.order_sn);
}
;
if (order == null)
{
order = o;
isUpdate = true;
lock (locker)
{
lstPddBuyerOrderInfoLite.Add(order);
}
;
}
else
{
string orderStr = JsonHelper.SerializeObject(order);
string oStr = JsonHelper.SerializeObject(o);
if (JsonHelper.SerializeObject(order) != JsonHelper.SerializeObject(o))
{
order.WxSendTypeStr = o.WxSendTypeStr;
string oStr = JsonHelper.SerializeObject(o);
if (JsonHelper.SerializeObject(order) != JsonHelper.SerializeObject(o))
{
order.WxSendTypeStr = o.WxSendTypeStr;
if (!o.tracking_number.IsNullOrEmpty() && o.tracking_number != order.tracking_number)
isUpdate = true;
if (!o.outExpressCompanyCode.IsNullOrEmpty() && o.outExpressCompanyCode != order.outExpressCompanyCode)
@@ -869,212 +876,214 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (order.WxSendTypeStr == "直发")
{
if (order.order_status_prompt.Contains("待发货") && !o.order_status_prompt.Contains("待发货"))
order.sendStatus = "";
if (order.sendStatus == "已发送待发货订单" && o.order_status_prompt.Contains("待收货"))
order.sendStatus = "";
}
else if (!o.sendStatus.IsNullOrEmpty())
{
order.sendStatus = o.sendStatus;
}
{
if (order.order_status_prompt.Contains("待发货") && !o.order_status_prompt.Contains("待发货"))
order.sendStatus = "";
if (order.sendStatus == "已发送待发货订单" && o.order_status_prompt.Contains("待收货"))
order.sendStatus = "";
}
else if (!o.sendStatus.IsNullOrEmpty())
{
order.sendStatus = o.sendStatus;
}
//order = JsonHelper.DeserializeJsonToObject<PddBuyerOrderInfoLite>(JsonHelper.SerializeObject(o));
order.activity_type = o.activity_type;
order.after_sales = o.after_sales;
order.discount_amount = o.discount_amount;
order.display_amount = o.display_amount;
order.extra_info = JsonHelper.DeserializeJsonToObject<extra_info>(JsonHelper.SerializeObject(o.extra_info));
order.order_amount = o.order_amount;
order.order_Goods = JsonHelper.DeserializeJsonToList<order_good>(JsonHelper.SerializeObject(o.order_Goods));
order.order_link_url = o.order_link_url;
order.order_prompt_color = o.order_prompt_color;
order.order_status_prompt = o.order_status_prompt;
order.parent_order_sn = o.parent_order_sn;
order.service_amount = o.service_amount;
order.shipping_amount = o.shipping_amount;
order.order_time = o.order_time;
order.tracking_number = o.tracking_number;
//order = JsonHelper.DeserializeJsonToObject<PddBuyerOrderInfoLite>(JsonHelper.SerializeObject(o));
order.activity_type = o.activity_type;
order.after_sales = o.after_sales;
order.discount_amount = o.discount_amount;
order.display_amount = o.display_amount;
order.extra_info = JsonHelper.DeserializeJsonToObject<extra_info>(JsonHelper.SerializeObject(o.extra_info));
order.order_amount = o.order_amount;
order.order_Goods = JsonHelper.DeserializeJsonToList<order_good>(JsonHelper.SerializeObject(o.order_Goods));
order.order_link_url = o.order_link_url;
order.order_prompt_color = o.order_prompt_color;
order.order_status_prompt = o.order_status_prompt;
order.parent_order_sn = o.parent_order_sn;
order.service_amount = o.service_amount;
order.shipping_amount = o.shipping_amount;
order.order_time = o.order_time;
order.tracking_number = o.tracking_number;
order.TransitCreateTime = o.TransitCreateTime;
order.TransitPickupTime = o.TransitPickupTime;
order.TransitCreateTime = o.TransitCreateTime;
order.TransitPickupTime = o.TransitPickupTime;
order.TransitWarehouseRawMessage = o.TransitWarehouseRawMessage;
order.WxOrderCreateTime = o.WxOrderCreateTime;
order.ShopIdStr = o.ShopIdStr;
order.ShopOrderIdStr = o.ShopOrderIdStr;
order.ShopOrderSkuIdStr = o.ShopOrderSkuIdStr;
order.ShopOrderSkuNameStr = o.ShopOrderSkuNameStr;
order.TransitBuyerOrderRefundStatus = o.TransitBuyerOrderRefundStatus;
order.TransitWarehouseIdStr = o.TransitWarehouseIdStr;
order.TransitWarehouseOrderCodeStr = o.TransitWarehouseOrderCodeStr;
order.Express1WaybillStr = o.Express1WaybillStr;
order.Express1CompanyStr = o.Express1CompanyStr;
order.Express2WaybillStr = o.Express2WaybillStr;
order.Express2CompanyStr = o.Express2CompanyStr;
order.TransferWareHouseStatus = o.TransferWareHouseStatus;
order.WxOrderVoidStatus = o.WxOrderVoidStatus;
order.PreAllocatedOrderNoStr = o.PreAllocatedOrderNoStr;
order.ShopOrderRefundStr = o.ShopOrderRefundStr; // "" 或者 "店铺售后"
order.OutAfterSaleStatusStr = o.OutAfterSaleStatusStr; // 店铺售后状态文本描述
order.wxRefundStatus = o.wxRefundStatus;
order.TransitWarehouseRawMessage = o.TransitWarehouseRawMessage;
order.WxOrderCreateTime = o.WxOrderCreateTime;
order.ShopIdStr = o.ShopIdStr;
order.ShopOrderIdStr = o.ShopOrderIdStr;
order.ShopOrderSkuIdStr = o.ShopOrderSkuIdStr;
order.ShopOrderSkuNameStr = o.ShopOrderSkuNameStr;
order.TransitBuyerOrderRefundStatus = o.TransitBuyerOrderRefundStatus;
order.TransitWarehouseIdStr = o.TransitWarehouseIdStr;
order.TransitWarehouseOrderCodeStr = o.TransitWarehouseOrderCodeStr;
order.Express1WaybillStr = o.Express1WaybillStr;
order.Express1CompanyStr = o.Express1CompanyStr;
order.Express2WaybillStr = o.Express2WaybillStr;
order.Express2CompanyStr = o.Express2CompanyStr;
order.TransferWareHouseStatus = o.TransferWareHouseStatus;
order.WxOrderVoidStatus = o.WxOrderVoidStatus;
order.PreAllocatedOrderNoStr = o.PreAllocatedOrderNoStr;
order.ShopOrderRefundStr = o.ShopOrderRefundStr; // "" 或者 "店铺售后"
order.OutAfterSaleStatusStr = o.OutAfterSaleStatusStr; // 店铺售后状态文本描述
order.wxRefundStatus = o.wxRefundStatus;
order.WxOrderStatus = o.WxOrderStatus;
var index = lstPddBuyerOrderInfoLite.IndexOf(order);
Dispatcher.Invoke(new Action(() =>
{
lstPddBuyerOrderInfoLite.Remove(order);
lstPddBuyerOrderInfoLite.Insert(index, order);
}));
}
}
if (filterOneBuyerOrder(order) == false)
{
Dispatcher.Invoke(new Action(() =>
{
var orderExist = lstFilterPddBuyerOrderInfoLite.FirstOrDefault(oe => oe.order_sn == order.order_sn);
if (orderExist == null)
{
lstFilterPddBuyerOrderInfoLite.Add(order);
}
else
{
var index = lstFilterPddBuyerOrderInfoLite.IndexOf(orderExist);
lstFilterPddBuyerOrderInfoLite.Remove(orderExist);
lstFilterPddBuyerOrderInfoLite.Insert(index, order);
}
}));
}
await Task.Run(() =>
{
// 根据订单状态 取号/修改取号
if (order.WxSendTypeStr == "直发")
{
// 微信售后,客户端取消直发买手订单
if (order.ShopOrderRefundStr.ParseToString().Contains("售后"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = PddDirectAutoAfterSale(order);
isUpdate = true;
}
}
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill != true)
SendOrderE57(order);
}
else
{
// 微信售后,服务端自动作废订单,客户端取消买手订单即可
if (order.ShopOrderRefundStr.ParseToString().Contains("售后"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = PddTransitAutoAfterSale(order);
isUpdate = true;
}
}
if (order.TransitWarehouseRawMessage.ParseToString().Contains("超出派送范围"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = PddTransitAutoAfterSale(order);
isUpdate = true;
}
}
SendTransitOrderE57(order);
}
if (order.order_sn == "260924-431226960203223")
{
}
if (order.ShopOrderIdStr == "3739392779260688128")
{
}
if (order.WxSendTypeStr == "直发")
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number) && order.WxOrderStatus < 30)
if (!lstSyncLogistics.Any(o => o.order_id == order.order_sn) || lstSyncLogistics.Any(o => o.order_id == order.order_sn && o.tracking_number.IsNullOrEmpty()))
isUpdate = true;
}
if (isUpdate && !string.IsNullOrEmpty(order.ShopOrderIdStr)/* && order.WxSendTypeStr != "直发"*/)
{
// 买手订单状态记录到数据库
order_pdd_buyer_order pddBuyerOrder = new order_pdd_buyer_order()
{
after_sales_status = (order.after_sales?.after_sales_status).ParseToInt(),
buyerId = order.buyerId,
buyerName = order.buyerName,
order_amount = order.order_amount.ParseToInt(),
order_sn = order.order_sn,
order_status_prompt = order.order_status_prompt,
outExpressCompanyCode = order.outExpressCompanyCode,
order_time = order.order_time,
pre_allocated_order_no = order.PreAllocatedOrderNoStr.ParseToInt(),
tracking_number = order.tracking_number,
TransitCreateTime = order.TransitCreateTime,
//TransitPickupTime = order.TransitPickupTime,
wx_order_id = order.ShopOrderIdStr,
wx_sku_id = order.ShopOrderSkuIdStr,
wx_send_type = order.WxSendTypeStr == "直发" ? 1 : 0,
};
var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_order");
var data3 = UserLogin.GetSignaturex();
data3 += "&after_sales_status=" + pddBuyerOrder.after_sales_status;
data3 += "&buyerId=" + pddBuyerOrder.buyerId;
data3 += "&buyerName=" + pddBuyerOrder.buyerName;
data3 += "&order_amount=" + pddBuyerOrder.order_amount;
data3 += "&pdd_order_sn=" + pddBuyerOrder.order_sn;
data3 += "&order_status_prompt=" + pddBuyerOrder.order_status_prompt;
data3 += "&outExpressCompanyCode=" + pddBuyerOrder.outExpressCompanyCode;
data3 += "&order_time=" + pddBuyerOrder.order_time;
data3 += "&pre_allocated_order_no=" + pddBuyerOrder.pre_allocated_order_no;
data3 += "&tracking_number=" + pddBuyerOrder.tracking_number;
data3 += "&TransitCreateTime=" + pddBuyerOrder.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
data3 += "&wx_order_id=" + pddBuyerOrder.wx_order_id;
data3 += "&wx_sku_id=" + pddBuyerOrder.wx_sku_id;
data3 += "&wx_send_type=" + pddBuyerOrder.wx_send_type;
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
//勾选了调用同步单接口,必须直发且库里已有物流单号
if (order.WxSendTypeStr == "直发")
lock (locker)
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number) && html3.Contains("\"code\":200"))
if (!lstSyncLogistics.Any(o => o.order_id == order.order_sn) || lstSyncLogistics.Any(o => o.order_id == order.order_sn && o.tracking_number.IsNullOrEmpty()))
SendAsyncWaybillOrder(order);
var index = Math.Max(0, lstPddBuyerOrderInfoLite.IndexOf(order));
lstPddBuyerOrderInfoLite.RemoveAll(o => o.order_sn == order.order_sn);
lstPddBuyerOrderInfoLite.Insert(index, order);
}
}
}
while (lstTask.Count >= 1)
{
Thread.Sleep(100);
lstTask.RemoveAll(t => t.IsFaulted || t.IsCanceled || t.IsCompleted);
}
var t = Task.Run(() => GetCefOrder(order, isUpdate));
lstTask.Add(t);
}
if (order.order_sn == "260924-431226960203223")
{
}
// 填写取件码
if (order.WxSendTypeStr == "直发")
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number))
{
if (lstSyncLogistics.Any(o => o.order_id == order.order_sn))
if (lstSyncLogistics.Any(o => o.order_id == order.order_sn && (o.upload_pickup_status == 0 || o.pickup_code.IsNullOrEmpty())))
SetPickUpNo(order);
}
}
});
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
lock (locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
}
async Task GetCefOrder(PddBuyerOrderLiteInfo order, bool isUpdate)
{
if (filterOneBuyerOrder(order) == false)
{
Dispatcher.Invoke(new Action(() =>
{
var orderExist = lstFilterPddBuyerOrderInfoLite.FirstOrDefault(oe => oe.order_sn == order.order_sn);
if (orderExist == null)
{
lstFilterPddBuyerOrderInfoLite.Add(order);
}
else
{
var index = lstFilterPddBuyerOrderInfoLite.IndexOf(orderExist);
lstFilterPddBuyerOrderInfoLite.Remove(orderExist);
lstFilterPddBuyerOrderInfoLite.Insert(index, order);
}
}));
}
await Task.Run(() =>
{
// 根据订单状态 取号/修改取号
if (order.WxSendTypeStr == "直发")
{
// 微信售后,客户端取消直发买手订单
if (order.ShopOrderRefundStr.ParseToString().Contains("售后"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = PddDirectAutoAfterSale(order);
isUpdate = true;
}
}
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill != true)
SendOrderE57(order);
}
else
{
// 微信售后,服务端自动作废订单,客户端取消买手订单即可
if (order.ShopOrderRefundStr.ParseToString().Contains("售后"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = PddTransitAutoAfterSale(order);
isUpdate = true;
}
}
if (order.TransitWarehouseRawMessage.ParseToString().Contains("超出派送范围"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = PddTransitAutoAfterSale(order);
isUpdate = true;
}
}
SendTransitOrderE57(order);
}
if (order.WxSendTypeStr == "直发")
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number) && order.WxOrderStatus < 30)
if (!lstSyncLogistics.Any(o => o.order_id == order.order_sn) || lstSyncLogistics.Any(o => o.order_id == order.order_sn && o.tracking_number.IsNullOrEmpty()))
isUpdate = true;
}
if (isUpdate && !string.IsNullOrEmpty(order.ShopOrderIdStr)/* && order.WxSendTypeStr != "直发"*/)
{
// 买手订单状态记录到数据库
order_pdd_buyer_order pddBuyerOrder = new order_pdd_buyer_order()
{
after_sales_status = (order.after_sales?.after_sales_status).ParseToInt(),
buyerId = order.buyerId,
buyerName = order.buyerName,
order_amount = order.order_amount.ParseToInt(),
order_sn = order.order_sn,
order_status_prompt = order.order_status_prompt,
outExpressCompanyCode = order.outExpressCompanyCode,
order_time = order.order_time,
pre_allocated_order_no = order.PreAllocatedOrderNoStr.ParseToInt(),
tracking_number = order.tracking_number,
TransitCreateTime = order.TransitCreateTime,
//TransitPickupTime = order.TransitPickupTime,
wx_order_id = order.ShopOrderIdStr,
wx_sku_id = order.ShopOrderSkuIdStr,
wx_send_type = order.WxSendTypeStr == "直发" ? 1 : 0,
};
var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_order");
var data3 = UserLogin.GetSignaturex();
data3 += "&after_sales_status=" + pddBuyerOrder.after_sales_status;
data3 += "&buyerId=" + pddBuyerOrder.buyerId;
data3 += "&buyerName=" + pddBuyerOrder.buyerName;
data3 += "&order_amount=" + pddBuyerOrder.order_amount;
data3 += "&pdd_order_sn=" + pddBuyerOrder.order_sn;
data3 += "&order_status_prompt=" + pddBuyerOrder.order_status_prompt;
data3 += "&outExpressCompanyCode=" + pddBuyerOrder.outExpressCompanyCode;
data3 += "&order_time=" + pddBuyerOrder.order_time;
data3 += "&pre_allocated_order_no=" + pddBuyerOrder.pre_allocated_order_no;
data3 += "&tracking_number=" + pddBuyerOrder.tracking_number;
data3 += "&TransitCreateTime=" + pddBuyerOrder.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
data3 += "&wx_order_id=" + pddBuyerOrder.wx_order_id;
data3 += "&wx_sku_id=" + pddBuyerOrder.wx_sku_id;
data3 += "&wx_send_type=" + pddBuyerOrder.wx_send_type;
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
//勾选了调用同步单接口,必须直发且库里已有物流单号
if (order.WxSendTypeStr == "直发")
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number) && html3.Contains("\"code\":200"))
if (!lstSyncLogistics.Any(o => o.order_id == order.order_sn) || lstSyncLogistics.Any(o => o.order_id == order.order_sn && o.tracking_number.IsNullOrEmpty()))
SendAsyncWaybillOrder(order);
}
}
//// 填写取件码
//if (order.WxSendTypeStr == "直发")
//{
// if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number))
// {
// if (lstSyncLogistics.Any(o => o.order_id == order.order_sn))
// if (lstSyncLogistics.Any(o => o.order_id == order.order_sn && (o.upload_pickup_status == 0 || o.pickup_code.IsNullOrEmpty())))
// SetPickUpNo(order);
// }
//}
});
}
async Task CefReadBuyerAfterSale(string url, string data)
{
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => url.Contains(b.buyer_id));
@@ -1089,12 +1098,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (data.Contains("\"listItemVOList\":[]") || data.Contains("\"hasNextQuery\":false"))
//if (!data.Contains("/complaints_new_detail.html?after_sales_id="))
{
Dispatcher.Invoke(new Action(() =>
{
lblMsg.Content = buyer.buyer_name + " 获取到空售后列表,退出自动滑动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
currentReadBuyer = "";
//return;
ShowBuyerOrderReadInfo(buyer, " 获取到空售后列表,退出自动滑动 ");
currentReadBuyer = "";
return;
}
//{\"error_code\":50000,\"error_msg\":\"http error:504\"}
//{"errorCode":72004,"errorMsg":"","error_code":72004,"error_msg":"","result":null}
@@ -1105,15 +1111,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
currentReadBuyer = "";
return;
}
Dispatcher.Invoke(new Action(() =>
{
lblMsg.Content = buyer.buyer_name + " 正在获取售后列表 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
var list = JsonHelper.DeserializeJsonToList<PddBuyerAfterSaleLiteInfo>(JsonHelper.JObjectParse(data)["result"]["listItemVOList"].ParseToString());
var out_order_nos = string.Join(",", list.Select(bo => bo.orderSn));
//ShowBuyerOrderReadInfo(buyer, " 正在获取售后列表 " + nextQueryCreatedAt + " ");
ShowBuyerOrderReadInfo(buyer, " 正在获取售后列表 " + list?.LastOrDefault()?.orderSn + " ");
var out_order_nos = string.Join(",", list.Select(bo => bo.orderSn));
var transitOrderList = GetOrderTransitWarehouseInfo(out_order_nos);
var orderExtList = GetOrderItemExtInfo(out_order_nos);
@@ -1301,10 +1304,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (afterSale.orderDate < DateTime.Now.AddMonths(-2).ToString("yyMMdd").ParseToInt())
{
Dispatcher.Invoke(new Action(() =>
{
lblMsg.Content = buyer.buyer_name + " 近2个月售后列表获取完成,退出自动滑动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
ShowBuyerOrderReadInfo(buyer, " 近2个月售后列表获取完成,退出自动滑动 ");
currentReadBuyer = "";
//return;
}
@@ -1507,6 +1507,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (isReadBuyerOrder)
return;
lock (locker)
{
lstdisctinctOrderSn.Clear();
}
isReadBuyerOrder = true;
lstPddBuyerOrderVoidAfterSaleOrderSn.Clear();
@@ -1719,6 +1723,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
string tempOffset = "";
while (currentReadBuyer == readBuyer)
{
if (currentReadBuyer != readBuyer)
{
}
if (isSkipNext)
{
ShowBuyerOrderReadInfo(buyer, "已跳过当前买手订单读取");
@@ -1756,6 +1764,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
tempOffset = dicPddOrderOffset[buyer];
string jsStr = $"PDDOrders.trigger({{offset:'MO-01-{dicPddOrderOffset[buyer]}',type:{type},size:10,mode:'store'}})";
if (dicPddOrderOffset[buyer].ParseToString().StartsWith("PO-"))
jsStr = $"PDDOrders.trigger({{offset:'MO-02-{dicPddOrderOffset[buyer].Replace("PO-", "")}',type:{type},size:10,mode:'store'}})";
await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
await Task.Delay(Randomx.GetId(2000, 4000));
}
@@ -1855,7 +1865,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
void ScrollGetPddOrder()
{
isReadBuyerOrder = true;
lock (locker)
{
lstdisctinctOrderSn.Clear();
}
isReadBuyerOrder = true;
lstPddBuyerOrderVoidAfterSaleOrderSn.Clear();
if (cancellationTokenSource != null)
@@ -2203,7 +2217,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
private void ShowBuyerOrderReadInfo(BuyerLoginInfo buyer, string msg = "", List<string> selectIds = null)
{
this.LblMsgStr = buyer?.buyer_name + " " + msg + " " + DateTime.Now.ToString("yyMMdd HH:mm:ss");
this.LblMsgStr = buyer?.buyer_name + " " + msg + " " + DateTime.Now.ToString("yy-MM-dd HH:mm:ss");
}
private void btnSendBuyerOrder_Click(object sender, RoutedEventArgs e)
@@ -2271,7 +2285,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
return;
//if (resetSendStatus)
// order.sendStatus = "";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
lock(locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
// 仓库处理中
if (order.sendStatus.ParseToString().Contains("仓库处理中"))
@@ -2506,7 +2523,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (exportRst.Contains("操作超时"))
{
order.sendStatus = "发送失败 操作超时";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
lock (locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
return;
}
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
@@ -2543,13 +2563,19 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
order.sendStatus = "已发送待发货订单";
if (order.after_sales != null)
order.sendStatus = "已发送售后订单 " + sendStatusTmp;
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
lock (locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
}
else
{
order.sendStatus = "发送失败 " + (string.IsNullOrEmpty(msg) ? data : msg);
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
lock (locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
}
}
public void SetPickUpNo(PddPickInfo pddPickInfo)
@@ -2882,12 +2908,15 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (outOrderNo.IsNullOrEmpty())
continue;
var afterSaleId = BaseRegex.GetStringJson(ref rstStrTmp, "afterSaleId");
var order = lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == outOrderNo);
if (order == null)
continue;
lock(locker)
{
var order = lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == outOrderNo);
if (order == null)
continue;
order.wxRefundStatus = order.order_status_prompt.Contains("待发货") ? "待退款" : "待退货";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
order.wxRefundStatus = order.order_status_prompt.Contains("待发货") ? "待退款" : "待退货";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
//Dispatcher.Invoke(new Action(() =>
//{
// ShowOrder(order);
@@ -2955,7 +2984,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
order.sendStatus = "退款成功 买手退款信息更新失败,服务端返回 " + msg;
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
lock(locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
return "{\"success\":true,\"msg\":\"操作成功\"}";
}
else
@@ -3000,9 +3032,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
{
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
order.sendStatus = "退款成功 买手退款信息更新失败,服务端返回 " + msg;
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
return "{\"success\":true,\"msg\":\"操作成功\"}";
}
lock (locker)
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
return "{\"success\":true,\"msg\":\"操作成功\"}";
}
else
{
@@ -337,7 +337,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
ManualUpdateBuyOrderCommand = new DelegateCommand(ManualUpdateBuyOrder);
UpdateTransitWarehouseCommand = new DelegateCommand(UpdateTransitWarehouse);
this.txtShopNameVal = orderItem.Shop.ShopAccount;
this.txtShopNameVal = orderItem?.ItemOrder?.Shop?.ShopAccount;
this.txtOrderIdVal = orderItem.order_id;
this.txtShopSkuIdVal = orderItem.sku_id;
this.txtShopGoodsIdVal = orderItem.product_id;
@@ -1222,6 +1222,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (BuyType == "direct")
{
#region 直发拍单
if (orderItem.ItemOrder?.Shop == null)
{
this.ErrorMsg = "缺少店铺信息!";
return;
}
var url = BaseClass.Build29WxObjString("order/wx_get_order_item_ext_info");
var data = UserLogin.GetSignaturex();
@@ -1241,8 +1246,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
order_id = orderItem.order_id,
sku_id = orderItem.sku_id,
out_order_id = "tb_" + txtBuyOrderIdVal.Trim(),
shop_app_id = orderItem.Shop.ShopId,
shop_name = orderItem.Shop.ShopAccount,
shop_app_id = orderItem.ItemOrder?.Shop?.ShopId,
shop_name = orderItem.ItemOrder?.Shop?.ShopAccount,
buy_type = "直发",
};
var url1 = BaseClass.Build29WxObjString("order/wx_add_order_item_ext_info");
@@ -337,7 +337,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
ManualUpdateBuyOrderCommand = new DelegateCommand(ManualUpdateBuyOrder);
UpdateTransitWarehouseCommand = new DelegateCommand(UpdateTransitWarehouse);
this.txtShopNameVal = orderItem.Shop.ShopAccount;
this.txtShopNameVal = orderItem.ItemOrder?.Shop?.ShopAccount;
this.txtOrderIdVal = orderItem.order_id;
this.txtShopSkuIdVal = orderItem.sku_id;
this.txtShopGoodsIdVal = orderItem.product_id;
@@ -1936,6 +1936,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (BuyType == "direct")
{
#region 直发拍单
if (orderItem.ItemOrder?.Shop == null)
{
this.ErrorMsg = "缺少店铺信息!";
return;
}
var url = BaseClass.Build29WxObjString("order/wx_get_order_item_ext_info");
var data = UserLogin.GetSignaturex();
@@ -1955,8 +1960,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
order_id = orderItem.order_id,
sku_id = orderItem.sku_id,
out_order_id = "tb_" + txtBuyOrderIdVal.Trim(),
shop_app_id = orderItem.Shop.ShopId,
shop_name = orderItem.Shop.ShopAccount,
shop_app_id = orderItem.ItemOrder?.Shop?.ShopId,
shop_name = orderItem.ItemOrder?.Shop?.ShopAccount,
buy_type = "直发",
};
var url1 = BaseClass.Build29WxObjString("order/wx_add_order_item_ext_info");
@@ -1270,7 +1270,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
BaseMsgWindow.ShowAnimateMessage("订单扩展信息查询失败 " + ex.Message, "Error", 5);
}
}
if (index % 5 == 0 || index >= GlobalConfig.ShopLoginList.Count - 1)
if (index % 10 == 0 || index >= GlobalConfig.ShopLoginList.Count - 1)
disPlayOrderTabOrderCount();
}
}
@@ -1628,7 +1628,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
TokenSource.Cancel();
TokenSource = new CancellationTokenSource();
Task.Run(() =>
Task.Run(async () =>
{
var token = TokenSource.Token;
try
@@ -1636,15 +1636,15 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (this.lbxOrder == null)
return;
if (token.IsCancellationRequested)
return;
Dispatcher.Invoke(new Action(() =>
{
GlobalConfig.lstFilterOrder.Clear();
//GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(orderLstTmp);
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>();
this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
}));
//if (token.IsCancellationRequested)
// return;
//Dispatcher.Invoke(new Action(() =>
//{
// GlobalConfig.lstFilterOrder.Clear();
// //GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(orderLstTmp);
// GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>();
// this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
//}));
if (token.IsCancellationRequested)
return;
@@ -1656,31 +1656,42 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
else
orderLstTmp = GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.create_time).ToList();
//if (token.IsCancellationRequested)
// return;
//disPlayOrderTabOrderCount();
////int n = 0;
//foreach (var order in orderLstTmp)
//{
// //if (n++ % 10 == 0)
// //Thread.Sleep(1);
// if (token.IsCancellationRequested)
// break;
// var orders = GlobalConfig.lstFilterOrder.ToList();
// if (!orders.Any(o => o.order_id == order.order_id))
// {
// Dispatcher.InvokeAsync(() =>
// {
// lock (MainWindow._orderLock)
// {
// GlobalConfig.lstFilterOrder.Add(order);
// }
// });
// }
//}
if (token.IsCancellationRequested)
return;
disPlayOrderTabOrderCount();
int n = 0;
foreach (var order in orderLstTmp)
await Dispatcher.InvokeAsync(new Action(() =>
{
//if (n++ % 10 == 0)
Thread.Sleep(1);
GlobalConfig.lstFilterOrder.Clear();
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>(orderLstTmp);
this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
}));
if (token.IsCancellationRequested)
break;
var orders = GlobalConfig.lstFilterOrder.ToList();
if (!orders.Any(o => o.order_id == order.order_id))
{
Dispatcher.InvokeAsync(() =>
{
lock (MainWindow._orderLock)
{
GlobalConfig.lstFilterOrder.Add(order);
}
});
}
}
await disPlayOrderTabOrderCount();
}
catch (Exception ex)
{
@@ -2306,9 +2317,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (this.IsLoaded)
{
GlobalConfig.lstFilterOrder.Clear();
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>();
this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
//GlobalConfig.lstFilterOrder.Clear();
//GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>();
//this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
dgHeaderTime.Header = ColumnHeaderTitle = "交易时间 ▼";
}
@@ -430,9 +430,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
var url = BaseClass.Build29WxObjString("shop/get_shop_erp_merchant");
var data = UserLogin.GetSignaturex();
data += "&corporate_account_user_id=" + orderItem.Shop.ErpCorporateAccountUserId;
data += "&manage_user_id=" + orderItem.Shop.ErpManageUserId;
data += "&shop_id=" + orderItem.Shop.ErpShopId;
data += "&corporate_account_user_id=" + orderItem.ItemOrder.Shop.ErpCorporateAccountUserId;
data += "&manage_user_id=" + orderItem.ItemOrder.Shop.ErpManageUserId;
data += "&shop_id=" + orderItem.ItemOrder.Shop.ErpShopId;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
@@ -477,9 +477,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (orderItem.BuyGoodsBtnTxt == "去店铺后台绑定代发")
{
if (orderItem.Shop != null)
if (orderItem.ItemOrder.Shop != null)
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(orderItem.Shop);
WXShopLoginForm shopLoginForm = new WXShopLoginForm(orderItem.ItemOrder.Shop);
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/supply/consignmentOrderList";
@@ -504,9 +504,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
//}
// 掉线提示重登
if (orderItem.Shop?.LoginStatus != "登录成功")
if (orderItem.ItemOrder?.Shop?.LoginStatus != "登录成功")
{
foreach (var ord in GlobalConfig.lstFilterOrder.Where(o => o.shop_id.ParseToString() == orderItem.Shop.ErpShopId).ToList())
foreach (var ord in GlobalConfig.lstFilterOrder.Where(o => o.shop_id.ParseToString() == orderItem.ItemOrder?.Shop?.ErpShopId).ToList())
{
// 更新代发管理情况
foreach (var oi in ord.orderItems)
@@ -707,7 +707,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
try
{
// 查询代发列表
var apiSearchDropship = new WxApiBLL().WxApiDropshipSearch(orderItem.Shop, orderItem.order_id, 100);
var apiSearchDropship = new WxApiBLL().WxApiDropshipSearch(orderItem.ItemOrder.Shop, orderItem.order_id, 100);
if (!apiSearchDropship.Contains("\"errcode\":0"))
throw new Exception("查询代发失败!" + BaseRegex.GetStringJsonByRegs(ref apiSearchDropship, apiSearchDropship, "msg", "errmsg"));
@@ -718,7 +718,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (!string.IsNullOrEmpty(dsOrderId))
{
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.Shop, orderItem.ItemOrder, dsOrderId);
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.ItemOrder.Shop, orderItem.ItemOrder, dsOrderId);
if (!apiCancelDropship.Contains("\"errcode\":0"))
{
var errMsg = BaseRegex.GetStringJsonByRegs(ref apiCancelDropship, apiCancelDropship, "msg", "errmsg");
@@ -732,7 +732,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (!string.IsNullOrEmpty(dsOrderId))
{
// 查询代发详情
var apiSearchDropshipDetail = new WxApiBLL().WxApiDropshipSearchDetail(orderItem.Shop, dsOrderId);
var apiSearchDropshipDetail = new WxApiBLL().WxApiDropshipSearchDetail(orderItem.ItemOrder.Shop, dsOrderId);
if (!apiSearchDropshipDetail.Contains("\"errcode\":0"))
throw new Exception("查询代发失详情失败!" + BaseRegex.GetStringJson(ref apiSearchDropshipDetail, "msg"));
@@ -741,7 +741,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (!string.IsNullOrEmpty(supplierId) && !supplierId.Contains(targetSupplierId) && !supplierName.Contains(targetSupplierName))
{
// 取消代发
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.Shop, orderItem.ItemOrder, dsOrderId);
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.ItemOrder.Shop, orderItem.ItemOrder, dsOrderId);
if (!apiCancelDropship.Contains("\"errcode\":0"))
{
var errMsg = BaseRegex.GetStringJsonByRegs(ref apiCancelDropship, apiCancelDropship, "msg", "errmsg");
@@ -757,7 +757,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (!supplierId.Contains(targetSupplierId) && !supplierName.Contains(targetSupplierName))
{
// 设置29供货商代发wxfc630d60a1af6c6f或其他代发
var apiAddDropship = new WxApiBLL().WxApiDropshipAssign(orderItem.Shop, orderItem.order_id, orderItem.product_id, orderItem.sku_id, orderItem.sku_cnt.ParseToInt(), targetSupplierId);
var apiAddDropship = new WxApiBLL().WxApiDropshipAssign(orderItem.ItemOrder.Shop, orderItem.order_id, orderItem.product_id, orderItem.sku_id, orderItem.sku_cnt.ParseToInt(), targetSupplierId);
if (!apiAddDropship.Contains("\"errcode\":0"))
{
throw new Exception("设置代发失败!请确认商品已加入" + targetSupplierName + "代发!" + BaseRegex.GetStringJson(ref apiAddDropship, "msg"));
@@ -1786,7 +1786,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
try
{
var rst = await WxApiBLL.WxSearchAndDropshipCancelAsync(orderItem.Shop, orderItem.ItemOrder);
var rst = await WxApiBLL.WxSearchAndDropshipCancelAsync(orderItem.ItemOrder.Shop, orderItem.ItemOrder);
if (rst == "success")
{
var ret = await MainWindow.Instance.orderListCtrl._shipGiftService.Send(orderItem.order_id, giftType);
@@ -1938,7 +1938,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (this.DataContext is oms_wei_order_item_info orderItem)
{
WXOrderListOptimizeForm form = new WXOrderListOptimizeForm(orderItem.Shop);
WXOrderListOptimizeForm form = new WXOrderListOptimizeForm(orderItem.ItemOrder.Shop);
form.lblOrderId.Text = orderItem.order_id;
form.lblSpuId.Text = orderItem.product_id;
form.lblSkuId.Text = orderItem.sku_id; // skuId
@@ -81,7 +81,7 @@ namespace _29WxOrderWpf.ViewModels
{
IsChangeingPickNo = false;
string orderId = OrderItem.order_id;
ShopLoginInfo shop = OrderItem.Shop;
ShopLoginInfo shop = OrderItem.ItemOrder.Shop;
if (string.IsNullOrEmpty(PickNo))
{
BaseMsgWindow.ShowInfo("取件码不能为空");
@@ -286,21 +286,21 @@ namespace _29WxOrderWpf.Windows.OrderWindows
string url = HttpResponseTransitWorkOrderBLL.WorkOrderUrl + "/api/open/v1/customer-work-orders/intercept-return-cloud-warehouse-after-outbound";
JObject obj = new JObject();
obj["appId"] = this.OrderItem.Shop?.ShopId;
obj["appId"] = this.OrderItem.ItemOrder?.Shop?.ShopId;
obj["wechatOrderNo"] = this.OrderItem.order_id;
//obj["purchaseOrderNo"] = this.OrderItem.PddBuyerAfterSale?.orderSn;
obj["purchaseOrderNo"] = TransitOrder?.order_code;
obj["creator"] = BaseClass.UserName;
obj["remark"] = "客户要求拦截并退回云仓";
var rst = HttpResponseTransitWorkOrderBLL.PostResponse(this.OrderItem.Shop, url, JsonHelper.SerializeObject(obj), "");
var rst = HttpResponseTransitWorkOrderBLL.PostResponse(this.OrderItem.ItemOrder?.Shop, url, JsonHelper.SerializeObject(obj), "");
return rst;
}
public async Task<string> GetWorkOrder()
{
string url = HttpResponseTransitWorkOrderBLL.WorkOrderUrl + "/api/open/v1/customer-work-orders?wechatOrderNo=" + this.OrderItem.order_id;
var rst = await HttpResponseTransitWorkOrderBLL.GetResponseAsync(this.OrderItem.Shop, url, "");
var rst = await HttpResponseTransitWorkOrderBLL.GetResponseAsync(this.OrderItem.ItemOrder?.Shop, url, "");
return rst;
}
}
@@ -20,14 +20,14 @@ namespace AllBase.Model.DBModel
{
public class oms_wei_order_item_info : PropertyNotifyObject
{
/// <summary>
/// 订单对应店铺
/// </summary>
public ShopLoginInfo Shop
{
get { return this.GetValue(x => x.Shop); }
set { this.SetValue(x => x.Shop, value); }
}
///// <summary>
///// 订单对应店铺
///// </summary>
//public ShopLoginInfo Shop
//{
// get { return this.GetValue(x => x.Shop); }
// set { this.SetValue(x => x.Shop, value); }
//}
/// <summary>
/// 订单扩展信息
@@ -1747,7 +1747,7 @@ namespace AllBase.Model.DBModel
public void UpdateOrderItemBuyButton()
{
var order_item = this;
order_item.Shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == order_item.shop_id.ParseToString());
var Shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == order_item.shop_id.ParseToString());
// 关联商品sku
if (GlobalConfig.CurrentBuyPlatform == "pdd")
+11 -2
View File
@@ -1599,6 +1599,15 @@ namespace TemuKJD.ToolForms
{
#region 直发拍单
if (orderItem.ItemOrder?.Shop == null)
{
if (!IsAutoBuy)
BaseMsgForm.ShowError("缺少店铺信息!");
else
Invoke(() => { lblErrMsg.Text = "缺少店铺信息!"; });
return;
}
var url = BaseClass.Build29WxObjString("order/wx_get_order_item_ext_info");
var data = UserLogin.GetSignaturex();
data += "&wx_order_id_in=" + orderItem.order_id;
@@ -1620,8 +1629,8 @@ namespace TemuKJD.ToolForms
order_id = orderItem.order_id,
sku_id = orderItem.sku_id,
out_order_id = txtBuyOrderId.Text.Trim(),
shop_app_id = orderItem.Shop.ShopId,
shop_name = orderItem.Shop.ShopAccount,
shop_app_id = orderItem.ItemOrder?.Shop?.ShopId,
shop_name = orderItem.ItemOrder?.Shop?.ShopAccount,
buy_type = "直发",
};
var url1 = BaseClass.Build29WxObjString("order/wx_add_order_item_ext_info");