淘宝中转仓拍单完成

This commit is contained in:
wule committed 2026-10-09 13:58:21 +08:00
1 parent 9d0646805d
commit 890c0a6a11
11 files changed
+682 -171

No files matched your search

@@ -62,7 +62,18 @@
x:Name="BrowserHost"
Grid.Column="0"
Background="White"
ClipToBounds="True" />
ClipToBounds="True">
<TextBlock
Padding="30,20"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Panel.ZIndex="99"
d:Text="TextBlock"
Foreground="Red"
Text="{Binding ErrorMsg}"
TextWrapping="Wrap"
Visibility="{Binding ErrorMsg, Converter={StaticResource HasTextVisibility}}" />
</Grid>
<GridSplitter
Grid.Column="1"
Width="5"
@@ -33,7 +33,7 @@ public partial class TaobaoBuyOrderCtrl : UserControl
foreach (var warehouse in TransitWarehouseData.TransitWarehouseList)
{
this.cmbTransitWarehouse.Items.Add(warehouse.TransName + " " + warehouse.TransDetailAddress);
this.cmbTransitWarehouse.Items.Add(warehouse.TransName + " " + warehouse.TransFullAddress);
}
ViewModel = new TaobaoBuyOrderViewModel(buyerInfo, orderItemInfo);
@@ -4,6 +4,7 @@ using _29WxOrderWpf.Commands;
using _29WxOrderWpf.ViewModels;
using AllBase;
using AllBase.Helper;
using AllBase.Model.Config;
using AllBase.Model.DBModel;
using AllBase.Model.MvvmBaseClasses;
using AllBase.Model.Result;
@@ -70,6 +71,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
/// 直发direct 中转transit
/// </summary>
public string BuyType { get; set; } = "transit";
/// <summary>
/// 是否自动拍单
/// </summary>
public bool IsAutoBuy { get; set; } = false;
public bool IsBuySuccess { get; set; } = false;
public TransitWarehouseParam transitWarehouse { get; set; }
/// <summary>
/// 是否是关联拍单商品
@@ -89,6 +95,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
get { return this.GetValue(x => x.Enabled); }
set { this.SetValue(x => x.Enabled, value); }
}
public string ErrorMsg
{
get { return this.GetValue(x => x.ErrorMsg); }
set { this.SetValue(x => x.ErrorMsg, value); }
}
public Visibility BuyInfoVisivility
{
get { return this.GetValue(x => x.BuyInfoVisivility); }
@@ -352,8 +363,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
if (transitWarehouse != null && this.BuyType == "transit")
{
cmbTransitWarehouseVal = transitWarehouse?.TransName + " " + transitWarehouse?.TransDetailAddress;
txtBuyTransitWarehouseVal = transitWarehouse?.TransDetailAddress;
cmbTransitWarehouseVal = transitWarehouse?.TransName + " " + transitWarehouse?.TransFullAddress;
txtBuyTransitWarehouseVal = transitWarehouse?.TransFullAddress;
}
else
{
@@ -361,7 +372,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransDetailAddress == txtBuyTransitWarehouseVal);
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransFullAddress == txtBuyTransitWarehouseVal);
if (AbnormalTransitWarehouseOrderInfo != null)
{
txtSourceCodeVal = AbnormalTransitWarehouseOrderInfo.random_code;
@@ -581,12 +592,33 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
");
sb.Append("(function() {\r\n");
sb.Append(@"
function clickAndWait(element) {
return new Promise((resolve) => {
// 1. 添加一次性监听器
const handler = () => {
element.removeEventListener('click', handler);
resolve();
};
// 2. 绑定监听 (确保在触发前已绑定)
element.addEventListener('click', handler, { once: true });
// 3. 触发点击
element.click();
});
}
");
sb.Append(@"function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}");
sb.Append("(async function() {\r\n");
//sb.Append(" var searchBtns = document.getElementsByTagName('button');\r\n");
sb.Append(" var searchBtns = document.getElementsByTagName('span');\r\n");
sb.Append(" for (i = 0; i < searchBtns.length; i++) {\r\n");
sb.Append(" var searchBtn = searchBtns[i];\r\n");
sb.Append(" if (searchBtn.innerHTML.indexOf('立即购买') >= 0) {\r\n");
sb.Append(" await sleep(500);\r\n");
sb.Append(" searchBtn.parentElement.click();\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
@@ -595,31 +627,30 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
sb.Append(" for (i = 0; i < searchBtns.length; i++) {\r\n");
sb.Append(" var searchBtn = searchBtns[i];\r\n");
sb.Append(" if (searchBtn.innerHTML.indexOf('领券购买') >= 0) {\r\n");
sb.Append(" await sleep(500);\r\n");
sb.Append(" searchBtn.parentElement.click();\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
//sb.Append(" const buyBtn = findElement('//*[contains(text(), \"立即购买\")]').parentElement || findElement('//*[contains(text(), \"领券购买\")]');\r\n");
//sb.Append(" if (buyBtn) {\r\n");
//sb.Append(" await sleep(500);\r\n");
//sb.Append(" buyBtn.click();\r\n");
////sb.Append(" clickAndWait(btn).then(() => { });\r\n");
//sb.Append(" return 'success';\r\n");
//sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
var jsStr = sb.ToString();
for (int i = 0; i < 20 && jsRst != "success"; i++)
for (int i = 0; i < 20 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"); i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("立即购买按钮不存在!");
for (int i = 0; i < 10 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"); i++)
{
Thread.Sleep(500);
}
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"))
throw new Exception("购买按钮不存在或点击失败!");
//滑块完成验证
bool isNeedSlider = false;
@@ -773,14 +804,18 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}";
await client.Runtime.EvaluateAsync(changeReactInputValueStr, null, true, null, null, true, null, true);
string name = null, mobile = null, address = null;
string name = null, mobile = null, detail = null, address = null;
if (BuyType == "transit")
{
if (transitWarehouse == null)
throw new Exception("中转仓不存在!");
if (txtSourceCodeVal.IsNullOrEmpty())
throw new Exception("溯源码不存在!");
name = TransitWaybillHelper.LastName[Randomx.GetId(TransitWaybillHelper.LastName.Count)] + (Randomx.GetId(2) == 1 ? "先生" : "女士");
mobile = TransitWaybillHelper.MobileHead[Randomx.GetId(TransitWaybillHelper.MobileHead.Count)] + Randomx.GetNumber(8);
address = name + mobile + transitWarehouse.TransDetailAddress + Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + "室" + txtSourceCodeVal;
var addressSubValue = Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + "室" + txtSourceCodeVal;
detail = transitWarehouse.TransDetail + addressSubValue;
address = name + mobile + transitWarehouse.TransFullAddress + addressSubValue;
}
else // todo 直发
{
@@ -806,7 +841,31 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("填写地址信息失败!");
throw new Exception("填写识别地址信息失败!");
// 2.5 记录下旧地址后面使用
jsRst = "failed";
sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var txts = document.getElementsByTagName('textarea');\r\n");
sb.Append(" for (i = 0; i < txts.length; i++) {\r\n");
sb.Append(" var txt = txts[i];\r\n");
sb.Append(" if (txt.outerHTML.indexOf('请输入详细地址信息') > 0) {\r\n");
sb.Append(" return txt.innerHTML;\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
jsStr = sb.ToString();
for (int i = 0; i < 20 && (jsRst == "failed" || string.IsNullOrEmpty(jsRst)); i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst == "failed" || string.IsNullOrEmpty(jsRst))
throw new Exception("获取旧地址信息失败!");
var oldDetailAddressTxt = jsRst;
// 3.点击识别按钮
jsRst = "failed";
@@ -833,6 +892,30 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (jsRst != "success")
throw new Exception("识别地址按钮不存在!");
//Thread.Sleep(5000);
// 3.5 比较旧详细地址,详细地址文字有变化才继续操作
jsRst = "failed";
sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var txts = document.getElementsByTagName('textarea');\r\n");
sb.Append(" for (i = 0; i < txts.length; i++) {\r\n");
sb.Append(" var txt = txts[i];\r\n");
sb.Append(" if (txt.outerHTML.indexOf('请输入详细地址信息') > 0) {\r\n");
sb.Append(" return txt.innerHTML;\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
jsStr = sb.ToString();
for (int i = 0; i < 20 && (jsRst == "failed" || string.IsNullOrEmpty(jsRst) || jsRst == oldDetailAddressTxt); i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst == "failed" || string.IsNullOrEmpty(jsRst) || jsRst == oldDetailAddressTxt)
throw new Exception("比较旧地址信息失败!");
// 4.核对详细地址
jsRst = "failed";
sb = new StringBuilder();
@@ -841,14 +924,38 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
sb.Append(" for (i = 0; i < txts.length; i++) {\r\n");
sb.Append(" var txt = txts[i];\r\n");
sb.Append(" if (txt.outerHTML.indexOf('请输入详细地址信息') > 0) {\r\n");
sb.Append(" if ('" + address + "'.indexOf(txt.innerHTML) >= 0) {\r\n");
if (BuyType == "transit")
{
// 中转仓订单判断溯源码
sb.Append(" if (txt.innerHTML.indexOf('" + txtSourceCodeVal + "') < 0) {\r\n");
sb.Append(" changeReactInputValue(txt, txt.innerHTML + '" + txtSourceCodeVal + "'); \r\n");
sb.Append(" }\r\n");
sb.Append(" if (txt.innerHTML.indexOf('" + detail + "') < 0) {\r\n");
sb.Append(" changeReactInputValue(txt, '" + detail + "'); \r\n");
sb.Append(" }\r\n");
}
sb.Append(" if (txt.innerHTML.indexOf('" + detail + "') >= 0) {\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
jsStr = sb.ToString();
for (int i = 0; i < 20 && jsRst != "success"; i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("第一次检查详细地址信息有误!");
jsRst = "failed";
sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var txts = document.getElementsByTagName('textarea');\r\n");
sb.Append(" for (i = 0; i < txts.length; i++) {\r\n");
sb.Append(" var txt = txts[i];\r\n");
sb.Append(" if (txt.outerHTML.indexOf('请输入详细地址信息') > 0) {\r\n");
sb.Append(" if ('" + address + "'.indexOf(txt.innerHTML) >= 0) {\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
@@ -863,9 +970,89 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("详细地址信息有误!");
throw new Exception("第二次检查详细地址信息有误!");
// 5.点击取订按钮保存地址
jsRst = "failed";
sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var searchBtns = document.getElementsByTagName('button');\r\n");
sb.Append(" for (i = 0; i < searchBtns.length; i++) {\r\n");
sb.Append(" var searchBtn = searchBtns[i];\r\n");
sb.Append(" if (searchBtn.innerHTML.indexOf('确定') >= 0) {\r\n");
sb.Append(" searchBtn.click();\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
jsStr = sb.ToString();
for (int i = 0; i < 20 && jsRst != "success"; i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("确定按钮不存在!");
// 6.确定详细地址更改成功
jsRst = "failed";
sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var searchBtns = document.getElementsByTagName('span');\r\n");
sb.Append(" for (i = 0; i < searchBtns.length; i++) {\r\n");
sb.Append(" var searchBtn = searchBtns[i];\r\n");
sb.Append(" if (searchBtn.innerHTML.indexOf('确定') >= 0) {\r\n");
sb.Append(" searchBtn.click();\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
jsStr = sb.ToString();
for (int i = 0; i < 20 && jsRst != "success"; i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("确定按钮不存在!");
// 7.确定已回到结算页面
await client.Runtime.EvaluateAsync("history.go(-1);", null, true, null, null, true, null, true);
for (int i = 0; i < 10 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"); i++)
{
Thread.Sleep(500);
}
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"))
throw new Exception("当前不在结算界面!");
// 8.确定结算页面地址是最新中转仓地址
jsRst = "failed";
sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var uiElements = document.getElementsByTagName('div');\r\n");
sb.Append(" for (i = 0; i < uiElements.length; i++) {\r\n");
sb.Append(" var uiElement = uiElements[i];\r\n");
sb.Append(" if (uiElement.innerHTML.indexOf('" + detail + "') >= 0) {\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
jsStr = sb.ToString();
for (int i = 0; i < 20 && jsRst != "success"; i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = r.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst != "success")
throw new Exception("中转仓地址错误,请重试后再拍单付款!");
//textarea
}
@@ -949,6 +1136,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
return;
}
// 1.关联或者购买商品
//https://detail.tmall.com/item.htm?id=655638393036&sku_properties=1627207%3A42499150508
//{"appData":null,"loaderData":{"home":{"data":{"res":{"seller":{"sellerNick":"匹克世冠专卖店","shopName":"匹克世冠专卖店","evaluates":[{"score":"4.8 ","level":"1","levelText":"高","title":"宝贝描述","type":"desc"},{"score":"4.8 ","level":"1","levelText":"高","title":"卖家服务","type":"serv"},{"score":"4.8 ","level":"1","levelText":"高","title":"物流服务","type":"post"}],"startsIcon":"https://img.alicdn.com/imgextra/i4/O1CN018GrFIW1Zx7vwjt3Jg_!!6000000003260-2-tps-91-14.png","pcShopUrl":"//shop67269976.taobao.com","creditLevelIcon":"//gw.alicdn.com/imgextra/i1/O1CN01VD9Iap25oweneR31D_!!6000000007574-2-tps-120-60.png","sellerType":"B","encryptUid":"RAzN8HWKpmWFSf9AkzVpz3nhAYRZrPS63pSiDPMWyvui5ixfJBs"},"item":{"images":["https://img.alicdn.com/imgextra/i4/717513321/O1CN01cvzkE61aP4Tjeupfh_!!4611686018427380329-0-item_pic.jpg","https://img.alicdn.com/imgextra/i3/717513321/O1CN01W9mF4N1aP4OAc3Mtt_!!4611686018427380329-0-item_pic.jpg","https://img.alicdn.com/imgextra/i1/717513321/O1CN01a72PTr1aP4S55SiRs_!!4611686018427380329-0-item_pic.jpg"],"title":"匹克态极拖鞋男情侣款夏季外穿潮鞋篮球运动防滑太极沙滩凉拖鞋女","itemId":"655638393036","useWirelessDesc":"true","qrCode":"https://h5.m.taobao.com/awp/core/detail.htm?id=655638393036","spuId":"2122802472","titleIcon":"//img.alicdn.com/tfs/TB1SMG7nnvI8KJjSspjXXcgjXXa-78-36.png?getAvatar=avatar"},"feature":{"pcResistDetail":"true","tmwOverseasScene":"false","pcIdentityRisk":"true"},"plusViewVO":{"askAnswerVO":{"ext":{"skeletonImg":"https://img.alicdn.com/imgextra/i2/O1CN01MLPxBr1flZy969k5W_!!6000000004047-2-tps-1376-1216.png"},"hit":"true"},"addCartActionVO":{"ext":{"type":"dialogWithRecommond_2","frequency":"day:1;repeat:1"},"hit":"true"},"guessLikeVO":{"hit":"true"},"wangwangFlowSplitVO":{"hit":"true"},"rankVO":{"hit":"true"},"tabPlaceholderVO":{"hit":"true"},"imageSearchVO":{"ext":{"textList":["商品已经下架啦~要不要瞧瞧别的~","该区域暂不支持购买","此商品不支持在当前地区销售","商品已经卖光啦~","当前商品仅限店铺会员购买","商品已经卖光啦,非常抱歉","店铺正在打烊中,当前商品不可下单","商品已经卖光啦~","当前库存已售完","该商品有卖家设置的购买门槛,须达门槛才可购买噢~","此商品暂时不能购买"]},"spm":"aliabtest1115297_1138353","hit":"true"},"reportEntranceVO":{"spm":"aliabtest1097211_1051854","hit":"true"},"headAtmosphereBeltVO":{"valid":"false","hit":"true"},"commentListVO":{"ext":{"countShow":"\"false\""},"hit":"true"},"pcFrontSkuQuantityLimitVO":{"hit":"true"},"buyParamVO":{"ext":{"autoApplCoupSource":"pcDetailOrder","needAutoApplCoup":"true"},"hit":"true"}},"skuCore":{"skuItem":{"renderSku":"true","itemStatus":0,"unitBuy":1},"sku2info":{"0":{"moreQuantity":"true","quantity":200,"logisticsTime":"平均9小时发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceDesc":"起","priceMoney":"15700"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5359436967823":{"moreQuantity":"false","quantity":12,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5769423993152":{"moreQuantity":"false","quantity":19,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5359436967808":{"moreQuantity":"false","quantity":46,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5359436967810":{"moreQuantity":"false","quantity":95,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5132110197053":{"moreQuantity":"false","quantity":18,"logisticsTime":"平均9小时发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"169","priceMoney":"16900"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmLine truncated
if (url.Contains("https://detail.tmall.com/item.htm?id=") || (responseData.Contains("loaderData") && responseData.Contains("sku2info")))
@@ -1068,6 +1256,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
// 2.获取采购总价
if (responseData.Contains("alipayFrontRenderTotalFeeCENT") /*|| responseData.Contains(":1250,")*/)
{
var dataTmp = responseData.Replace("\\\"", "\"");
@@ -1076,18 +1265,29 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
var quantity = BaseRegex.GetStringJson(ref dataTmp, "quantity");
this.txtBuyCntVal = quantity;
}
if (url.StartsWith("https://h5api.m.taobao.com/h5/mtop.trade.order.adjust/6.0"))
// 3.获取订单Id
if (url.StartsWith("https://h5api.m.taobao.com/h5/mtop.trade.order.create"))
{
var orderLineId = BaseRegex.GetStringJson(ref responseData, "orderLineId");
//txtBuyCntVal =
//{"api":"mtop.trade.order.create","data":{"alipayOrderId":"2026100823001114311406600349","alipayWapCashierUrl":"https://tbapi.alipay.com/trade/trade_payment.htm?sign_account_no=20884520920143130156&sign_date=1791446919&sign_signature=hme_x_lhum6j77_y_b8m4ge%2F7_q_cbu8_rw_a_r_uru_zz_du0%2F_c_l_u_rkc7sodv_zfh_q%3D%3D&sign_from=3000&trade_no=2026100823001114311406600349&already_check=0","backUrl":"https://web.m.taobao.com/app/tbpc-trade/tbpc-pay-success/home?biz_order_ids=5127312711003132114","bizOrderId":"5127312711003132114","buyerNumId":2210214614749,"cashierParam":{"sdkExtParams":{}},"clientPayScenario":0,"feature":{"pcRedirectLocation":"orderSuccess.vm","targetURL":"https://tbapi.alipay.com/trade/trade_payment.htm?sign_account_no=20884520920143130156&sign_date=1791446919&sign_signature=hme_x_lhum6j77_y_b8m4ge%2F7_q_cbu8_rw_a_r_uru_zz_du0%2F_c_l_u_rkc7sodv_zfh_q%3D%3D&sign_from=3000&trade_no=2026100823001114311406600349&already_check=0"},"nextUrl":"https://tbapi.alipay.com/trade/trade_payment.htm?sign_account_no=20884520920143130156&sign_date=1791446919&sign_signature=hme_x_lhum6j77_y_b8m4ge%2F7_q_cbu8_rw_a_r_uru_zz_du0%2F_c_l_u_rkc7sodv_zfh_q%3D%3D&sign_from=3000&trade_no=2026100823001114311406600349&already_check=0","partSuccess":false,"resultType":0,"secrityPay":true,"signStr":"service=\"mobile.securitypay.pay\"&_input_charset=\"utf-8\"&app_name=\"tb\"&appenv=\"appid=taobao^system=tbwang^version=1.0.0#pc\"&partner=\"PARTNER_TAOBAO_ORDER\"&biz_type=\"trade\"&trade_no=\"2026100823001114311406600349\"&sign_date=\"2026-10-08 16:08:39\"&extern_token=\"1e48bb37ed4474e59b7d10b39491a123\"&monitorType=\"0-buy2.create-doCreatingOrderBiz-0000\"&sign=\"_ov_g_x_y1i_p_q_x6_mgtxgr_h_f_l5_lq_gyr_s_q_g2_sz_k_t1_i%2F2_d3wo_v%2B_t52_n_h_dr_p_e_a%3D%3D\"&sign_type=\"DSA\"","simplePay":true,"useSimplePayForH5":false,"withholdingParams":"{}"},"ret":["SUCCESS::调用成功"],"traceId":"2147844817914469194905047e0ea8","v":"6.0"}
txtBuyOrderIdVal = BaseRegex.GetStringJson(ref responseData, "bizOrderId");
}
//if (url.StartsWith("https://h5api.m.taobao.com/h5/mtop.trade.order.adjust/6.0"))
//{ //"https://h5api.m.taobao.com/h5/mtop.trade.order.create"
// var orderLineId = BaseRegex.GetStringJson(ref responseData, "orderLineId");
// //txtBuyCntVal =
//}
//if (responseData.Contains("karl_malone_32") || responseData.Contains("jtt_fan"))
//{
// //https://h5api.m.taobao.com/h5/mtop.user.getusersimple/1.0/?jsv=2.7.2&appKey=12574478&t=1789984970076&sign=6bb7d3b5cd8bd3ab32bd97c1a0df1c0f&jsonpIncPrefix=tbnavnew&api=mtop.user.getUserSimple&v=1.0&dataType=json&type=originaljson&data=%7B%7D
// //{"api":"mtop.user.getUserSimple","v":"1.0","ret":["SUCCESS::调用成功"],"data":{"nick":"jtt_fan","userNumId":440631048,"displayNick":"jtt_fan"}}
//}
if (url.StartsWith("https://web.m.taobao.com/app/tbpc-trade/tbpc-pay-success/home") && url.Contains("?biz_order_id=" + this.txtBuyOrderIdVal))
{
this.ManualUpdateBuyOrder();
}
}
private void SetBuyMapValues()
@@ -1212,7 +1412,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
var sendProvince = txtSendProvinceVal;
if (transitWarehouse == null && !cmbTransitWarehouseVal.IsNullOrEmpty())
{
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransDetailAddress == cmbTransitWarehouseVal.ParseToString());
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransFullAddress == cmbTransitWarehouseVal.ParseToString());
}
if (transitWarehouse == null)
@@ -1393,9 +1593,212 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
/// <summary>
/// 更新拍单成功信息
/// </summary>
public void ManualUpdateBuyOrder()
{
if (BuyType == "transit" && txtSourceCodeVal.Trim().Length != 6)
{
ErrorMsg = "溯源码长度错误!";
return;
}
var client = CefWebBrowser.GetDevToolsClient();
if (client == null)
{
ErrorMsg = "页面未加载!";
return;
}
if (BuyType == "transit" && string.IsNullOrEmpty(txtBuyTransitWarehouseVal))
{
ErrorMsg = "缺少中转地址,请重新绑定商品并选择仓库地址";
return;
}
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransFullAddress == txtBuyTransitWarehouseVal);
if (BuyType == "transit" && transit == null)
{
ErrorMsg = "中转地址对应的中转仓不存在,请核对";
return;
}
if (string.IsNullOrEmpty(txtBuyOrderIdVal.Trim()))
{
ErrorMsg = "缺少拍单订单号,请拍单后再提交";
return;
}
if ((txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt().IsNullOrZero())
{
ErrorMsg = "缺少拍单金额,请拍单后再提交";
return;
}
Enabled = false;
if (BuyType == "transit")
{
#region 正常中转拍单
if (AbnormalTransitWarehouseOrderInfo == null)
{
var addMdyUrl = BaseClass.Build29WxObjString("order/wx_add_mdy_tb_buyer_order");
var addMdyData = UserLogin.GetSignaturex();
//data3 += "&after_sales_status=" + "";
addMdyData += "&buyerId=" + buyer.buyer_id;
addMdyData += "&buyerName=" + buyer.buyer_name;
addMdyData += "&order_amount=" + (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt();
addMdyData += "&pdd_order_sn=" + "tb_" + txtBuyOrderIdVal.Trim();
addMdyData += "&order_status_prompt=" + "支付成功";
//data3 += "&outExpressCompanyCode=" + "";
addMdyData += "&order_time=" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now); // 先设置当前时间,后面能取到下单时间再修改
//data3 += "&pre_allocated_order_no=" + 1;
//data3 += "&tracking_number=" + "";
addMdyData += "&TransitCreateTime=" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // 先设置当前时间,后面有了仓库建仓时间再修改时间
addMdyData += "&wx_order_id=" + orderItem.order_id;
addMdyData += "&wx_sku_id=" + orderItem.sku_id;
addMdyData += "&wx_send_type=" + 0;
var html3 = GetHtml.PostUtf8(addMdyUrl, addMdyData);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(addMdyUrl, addMdyData);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
{
ErrorMsg = "拍单信息保存失败,请取消当前拍下的买手订单,再重新尝试拍单!";
return;
}
JObject body = new JObject();
body["orderNo"] = orderItem.order_id; // 微信订单号
body["orderSkuId"] = orderItem.sku_id; // 微信商品skuId
body["outOrderNo"] = "tb_" + txtBuyOrderIdVal.Trim(); // 拍单订单号
body["outAmount"] = (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt() + ""; // 外采金额
body["buyerAccount"] = buyer.buyer_id; // 买手ID
body["purchaserNote"] = BaseClass.NickName; // 购买软件账户备注
body["express1Company"] = ""; // 物流公司编号
body["express1Waybill"] = ""; // 物流编号
body["platform"] = transit.TransId; // 中转仓ID
body["orderPlatformCode"] = "WEISHOP";
body["randomCode"] = txtSourceCodeVal.Trim();
if (GlobalConfig.BuyConfig.IsUseAppBalance)
{
body["userName"] = BaseClass.UserName; // 软件端用户名
body["purchaserNote"] = BaseClass.UserName + "-" + BaseClass.NickName; // 购买软件账户备注
string basePostageKey = WarehousePostageInfo.DicWarehousePostage.Keys.FirstOrDefault(pk => (orderItem.ItemOrder?.province_name).ParseToString().Contains(pk));
decimal basePostage = basePostageKey.IsNullOrEmpty() ? WarehousePostageInfo.DicWarehousePostage.Values.Min() : WarehousePostageInfo.DicWarehousePostage[basePostageKey];
body["oemAmount"] = (BaseClass.PostagePerOrderDiff * 100).ParseToInt().ParseToString();
body["postage"] = ((basePostage + BaseClass.PostagePerOrderDiff) * 100).ParseToInt().ParseToString();
}
var url = "https://po.e57.cn/prod-api/api/oms-api/externalProcurement/saveOrUpdate";
var dataStr = JsonHelper.SerializeObject(body);
//dataStr = "{\"orderNo\":\"3737339733954942720\",\"outOrderNo\":\"2606846854564\",\"buyerAccount\":\"测试\",\"outAmount\":\"2000\",\"purchaserNote\":\"测试\",\"express1Company\":\"\"" +
// ",\"express1Waybill\":\"\",\"platform\":\"XDYSHC\",\"orderPlatformCode\":\"WEISHOP\"}";
var exportRst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
//<AjaxResult><msg>保存成功</msg><code>200</code></AjaxResult>
//<AjaxResult><msg>订单不存在:373733973395494272</msg><code>500</code></AjaxResult>
if (!exportRst.ParseToString().Contains("<code>200</code>"))
{
string msg = "";
string code = "";
try
{
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(exportRst);
code = xmlDoc["AjaxResult"]["code"].InnerText;
msg = xmlDoc["AjaxResult"]["msg"].InnerText;
}
catch
{
msg = exportRst.ParseToString();
}
this.ErrorMsg = "拍单保存失败,服务端返回 " + msg;
Enabled = true;
return;
}
StartUp.UpdateBalance();
orderItem.ItemTransitOrders.Insert(0, new oms_wei_external_procurement_log_info()
{
buyer_account = buyer.buyer_nick,
id = 0,
order_no = orderItem.order_id,
order_sku_id = orderItem.sku_id,
out_amount = (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt(),
out_order_no = "tb_" + txtBuyOrderIdVal.Trim(),
purchaser_note = body["purchaserNote"].ParseToString(),
created_time = DateTime.Now,
});
orderItem.SetOrderItemTextProperty();
// 利润计算重置为最小值,控件Resource更新时将计算利润
orderItem.ProfitCount = decimal.MinValue;
var order = orderItem?.ItemOrder;
orderItem.SetOrderItemTextProperty();
order.SetOrderTextProperty();
MainWindow.Instance.orderListCtrl.FilterOneOrder(order, true);
}
#endregion
#region 秒退异常单中转重拍
if (AbnormalTransitWarehouseOrderInfo != null)
{
var url = BaseClass.Build29WxObjString("order/wx_update_abnormal_transit_order");
var data = UserLogin.GetSignaturex();
data += "&out_order_no=" + "tb_" + txtBuyOrderIdVal.Trim();
data += "&order_no=" + orderItem.order_id;
data += "&order_sku_id=" + orderItem.sku_id;
data += "&buyer_account=" + buyer.buyer_nick;
data += "&out_amount=" + (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt() + "";
data += "&purchaser_note=" + BaseClass.UserName + "-" + BaseClass.NickName; // 购买软件账户备注
data += "&refund_status=" + "";
data += "&old_out_order_no=" + AbnormalTransitWarehouseOrderInfo.out_order_no;
data += "&old_order_no=" + AbnormalTransitWarehouseOrderInfo.order_no;
data += "&old_order_sku_id=" + AbnormalTransitWarehouseOrderInfo.order_sku_id;
data += "&old_buyer_account=" + AbnormalTransitWarehouseOrderInfo.buyer_account;
data += "&old_out_amount=" + AbnormalTransitWarehouseOrderInfo.out_amount;
data += "&old_purchaser_note=" + AbnormalTransitWarehouseOrderInfo.purchaser_note;
data += "&old_refund_status=" + AbnormalTransitWarehouseOrderInfo.refund_status;
data += "&order_code=" + AbnormalTransitWarehouseOrderInfo.order_code;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
var msg = BaseRegex.GetStringJsonByRegs(ref html, html, "msg");
BaseMsgForm.ShowError("异常单重拍保存失败");
Enabled = true;
return;
}
if (orderItem.ItemTransitOrder != null)
{
orderItem.ItemTransitOrder.buyer_account = buyer.buyer_nick;
orderItem.ItemTransitOrder.id = 0;
orderItem.ItemTransitOrder.order_no = orderItem.order_id;
orderItem.ItemTransitOrder.order_sku_id = orderItem.sku_id;
orderItem.ItemTransitOrder.out_amount = (txtBuyPriceVal.ParseToDecimal() * 100).ParseToInt();
orderItem.ItemTransitOrder.out_order_no = "tb_" + txtBuyOrderIdVal.Trim();
orderItem.ItemTransitOrder.purchaser_note = BaseClass.UserName + "-" + BaseClass.NickName;
orderItem.ItemTransitOrder.refund_status = "";
}
orderItem.SetOrderItemTextProperty();
// 利润计算重置为最小值,控件Resource更新时将计算利润
orderItem.ProfitCount = decimal.MinValue;
var order = orderItem?.ItemOrder;
MainWindow.Instance.orderListCtrl.FilterOneOrder(order, true);
}
#endregion
if (!IsAutoBuy)
BaseMsgWindow.ShowInfo("拍单信息保存成功");
}
this.IsBuySuccess = true;
if (_isWindowLoaded)
{
Application.Current?.Dispatcher.Invoke(new Action(() =>
{
if (_isWindowLoaded)
RequestClose?.Invoke();
}));
}
}
public void ReMap()
@@ -1465,6 +1465,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
public void FilterOneOrder(oms_wei_order_info order, bool updateTabCount = false)
{
if (order == null)
return;
var orderExist = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.order_id == order.order_id);
while (orderExist != null)
{
@@ -681,11 +681,13 @@
Margin="-2,2,4,2"
Padding="0"
VerticalAlignment="Top"
d:Text="AAA采购王者"
Background="Transparent"
BorderThickness="0"
Cursor="Hand"
Foreground="#0099ff"
IsReadOnly="True"
Tag="{Binding ItemTransitOrderWithVoid.buyer_account}"
Text="{Binding ItemTransitOrderWithVoid.OutOrderBuyerStr}"
TextWrapping="Wrap"
WaterMark="采购账户:" />
@@ -727,6 +729,7 @@
Margin="-2,0"
Padding="0"
VerticalAlignment="Top"
d:Text="261009-123456…"
Background="Transparent"
BorderThickness="0"
Cursor="Hand"
@@ -544,9 +544,30 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
Content = taobaoBuyView,
//Height = System.Windows.Forms.SystemInformation.WorkingArea.Height - 80,
//Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 80,
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
WindowStartupLocation = WindowStartupLocation.CenterScreen,
}.ShowDialog();
// 记录窗口内传出的是否继续自动拍单属性
OrderListCtrl.IsAutoBuy = taobaoBuyView.ViewModel.IsAutoBuy;
// 如果购买成功,修改供应商信息
if (taobaoBuyView.ViewModel.IsBuySuccess)
{
Task.Run(async () =>
{
if (orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder) // 异常拍单不改变订单供应商
{
try
{
await SetSendOrderSupplier(orderItem, "wxfc630d60a1af6c6f", "29供货商");
}
catch (Exception ex)
{
BaseMsgWindow.ShowError(ex.Message);
}
}
});
}
}
public static void PddBuyOrder(oms_wei_order_item_info orderItem, bool isAbnormalOrder, bool isAutoBuy)
@@ -772,62 +793,88 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
private void TransitOrderBuy_Click(object sender, MouseButtonEventArgs e)
{
var buyerName = txtTransitOrderBuyerStr.Text;
var outOrderId = txtTransitOrderNumStr.Text;
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
{
return;
}
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_name == buyerName);
if (buyer == null)
{
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
return;
}
//GlobalConfig.CurrentPddBuyer = buyer;
var url = "";
if (buyer != null)
{
if (sender == txtTransitOrderBuyerStr)
url = "https://mobile.yangkeduo.com/index.html";
else
url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" +
"&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032";
}
var orderItem = this.DataContext as oms_wei_order_item_info;
if (orderItem == null)
{
BaseMsgWindow.ShowError("订单信息为空");
return;
}
// 拍单的时候检测一下买手号
if (buyer.status == "在线")
var buyerName = txtTransitOrderBuyerStr.Text;
var buyerAccount = txtTransitOrderBuyerStr.Tag.ParseToString();
var outOrderId = txtTransitOrderNumStr.Text;
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
{
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
}
if (buyer.status != "在线")
{
BaseMsgWindow.ShowError("买手号掉线");
return;
}
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
orderItem, buyer, orderItem.PddBuyMap);
buyOrderForm.TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick;
//所有订单页面
buyOrderForm.InitUrl = url;
buyOrderForm.pnlBuy.Visible = false;
//已有拍单关联的控制界面显示隐藏
if (orderItem.PddBuyMap != null)
if (outOrderId.StartsWith("tb_")) // 淘宝买手及订单
{
buyOrderForm.pnlBuy.Visible = true;
buyOrderForm.pnlMap.Visible = false;
var buyer = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName);
if (buyer == null)
{
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
return;
}
var url = "";
if (sender == txtTransitOrderBuyerStr)
url = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm?";
else
url = "https://trade.tmall.com/detail/orderDetail.htm?bizOrderId=" + outOrderId.Replace("tb_", "");
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
taobaoBuyView.ViewModel.InitUrl = url;
new DialogWindow()
{
Title = "订单查看 - 当前买手 " + buyer.buyer_nick,
Content = taobaoBuyView,
Width = SystemParameters.PrimaryScreenWidth < 1920 ? SystemParameters.PrimaryScreenWidth : SystemParameters.PrimaryScreenWidth * 90 / 100,
Height = SystemParameters.PrimaryScreenHeight * 90 / 100,
WindowStartupLocation = WindowStartupLocation.CenterScreen,
}.ShowDialog();
}
else // 拼多多买手及订单
{
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_id == buyerAccount || p.buyer_name == buyerName);
if (buyer == null)
{
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
return;
}
var url = "";
if (sender == txtTransitOrderBuyerStr)
url = "https://mobile.yangkeduo.com/index.html";
else
url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" +
"&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032";
// 拍单的时候检测一下买手号
if (buyer.status == "在线")
{
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
}
if (buyer.status != "在线")
{
BaseMsgWindow.ShowError("买手号掉线");
return;
}
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
orderItem, buyer, orderItem.PddBuyMap);
buyOrderForm.TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick;
//所有订单页面
buyOrderForm.InitUrl = url;
buyOrderForm.pnlBuy.Visible = false;
//已有拍单关联的控制界面显示隐藏
if (orderItem.PddBuyMap != null)
{
buyOrderForm.pnlBuy.Visible = true;
buyOrderForm.pnlMap.Visible = false;
}
buyOrderForm.ShowDialog();
}
buyOrderForm.ShowDialog();
}
private void txtDirectOrderNumStr_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
@@ -985,71 +1032,81 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
return;
}
bool noBuyer = false;
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_name == orderItem?.ItemTransitOrder?.buyer_account);
if (buyer == null)
if (orderItem.ItemTransitOrder.out_order_no.ParseToString().StartsWith("tb_")) // 淘宝买手售后
{
if (!isSilent)
if (BaseMsgWindow.ShowConfirm("拍单买手不存在,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
return;
noBuyer = true;
BaseMsgWindow.ShowError("淘宝买手暂不支持自动售后,请手动申请售后");
else
orderItem.ItemTransitOrder.refund_status = "淘宝买手暂不支持自动售后,需手动申请售后";
}
// 检测一下买手号
if (GlobalConfig.CurrentPddBuyer.status == "在线")
else // 拼多多买手售后
{
await Task.Run(() =>
bool noBuyer = false;
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == orderItem?.ItemTransitOrder?.buyer_account || b.buyer_name == orderItem?.ItemTransitOrder?.buyer_account);
if (buyer == null)
{
PddMobileLoginViewModel.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
});
}
if (GlobalConfig.CurrentPddBuyer.status != "在线")
{
if (!isSilent)
if (BaseMsgWindow.ShowConfirm("买手号掉线,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
return;
noBuyer = true;
}
if (!isSilent)
if (BaseMsgWindow.ShowConfirm("拍单买手不存在,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
return;
noBuyer = true;
}
if (!noBuyer)
{
PddBuyerOrderLiteInfo order = null;
MainWindow.Instance.Dispatcher.Invoke(new Action(() => { }));
order = PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == orderItem.ItemTransitOrder.out_order_no);
if (order == null)
order = new PddBuyerOrderLiteInfo()
{
order_status_prompt = "待发货",
order_amount = orderItem.ItemTransitOrder.out_amount,
order_sn = orderItem.ItemTransitOrder.out_order_no
};
PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.Add(order);
var pddAfterRst = PDDBuyerOrderReadCtrl.SimPddAfterSale(buyer, order);
if (pddAfterRst.Contains("\"after_sales_status\":1") || pddAfterRst.Contains("该订单已全额退款") || pddAfterRst.Contains("订单未付款"))
// 检测一下买手号
if (GlobalConfig.CurrentPddBuyer.status == "在线")
{
// 保存退款成功状态
order.order_status_prompt = pddAfterRst.Contains("订单未付款") ? "订单未付款" : "退款成功";
// 中转仓订单买手号售后信息 存到服务端
var refundRst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(order);
if (refundRst.Contains("<code>0</code>") || refundRst.Contains("<code>200</code>"))
await Task.Run(() =>
{
order.sendStatus = "退款成功 买手退款信息更新成功";
PddMobileLoginViewModel.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
});
}
if (GlobalConfig.CurrentPddBuyer.status != "在线")
{
if (!isSilent)
if (BaseMsgWindow.ShowConfirm("买手号掉线,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
return;
noBuyer = true;
}
if (!noBuyer)
{
PddBuyerOrderLiteInfo order = null;
MainWindow.Instance.Dispatcher.Invoke(new Action(() => { }));
order = PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == orderItem.ItemTransitOrder.out_order_no);
if (order == null)
order = new PddBuyerOrderLiteInfo()
{
order_status_prompt = "待发货",
order_amount = orderItem.ItemTransitOrder.out_amount,
order_sn = orderItem.ItemTransitOrder.out_order_no
};
PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.Add(order);
var pddAfterRst = PDDBuyerOrderReadCtrl.SimPddAfterSale(buyer, order);
if (pddAfterRst.Contains("\"after_sales_status\":1") || pddAfterRst.Contains("该订单已全额退款") || pddAfterRst.Contains("订单未付款"))
{
// 保存退款成功状态
order.order_status_prompt = pddAfterRst.Contains("订单未付款") ? "订单未付款" : "退款成功";
// 中转仓订单买手号售后信息 存到服务端
var refundRst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(order);
if (refundRst.Contains("<code>0</code>") || refundRst.Contains("<code>200</code>"))
{
order.sendStatus = "退款成功 买手退款信息更新成功";
}
else
{
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
order.sendStatus = "退款成功 买手退款信息更新失败,服务端返回 " + msg;
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite);
}
else
{
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
order.sendStatus = "退款成功 买手退款信息更新失败,服务端返回 " + msg;
if (!isSilent)
if (BaseMsgWindow.ShowConfirm("买手退款失败,点击确定直接作废中转单并手动取消买手单,点击取消稍候重试").DialogResult != true)
return;
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite);
}
else
{
if (!isSilent)
if (BaseMsgWindow.ShowConfirm("买手退款失败,点击确定直接作废中转单并手动取消买手单,点击取消稍候重试").DialogResult != true)
return;
}
}
//订单作废接口(作废重拍)
//postman request POST 'http://localhost:8088/oms-api/external_procurement/discardOrder' \
// --header 'Content-Type: application/json' \
+26 -8
View File
@@ -8,6 +8,7 @@ using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using NPOI.HSSF.Record;
using Org.BouncyCastle.Crypto.Paddings;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -76,10 +77,21 @@ public class BuyMapSkuViewModel : PropertyNotifyObject
this.ShopSkuName = orderItem.sku_attr_str;
this.ShopSkuPrice = (orderItem.real_price * 0.01m).ParseToString();
}
if (orderItem?.PddBuyMapSkus != null && orderItem?.PddBuyMapSkus.Count > 0)
if (GlobalConfig.CurrentBuyPlatform == "pdd")
{
BuyMapSkus = new ObservableCollection<WXBuyMapSkusInfo>(orderItem.PddBuyMapSkus);
SetCurrentFrontSkuInfo3(BuyMapSkus?.FirstOrDefault());
if (orderItem?.PddBuyMapSkus != null && orderItem?.PddBuyMapSkus.Count > 0)
{
BuyMapSkus = new ObservableCollection<WXBuyMapSkusInfo>(orderItem.PddBuyMapSkus);
SetCurrentFrontSkuInfo3(BuyMapSkus?.FirstOrDefault());
}
}
else if (GlobalConfig.CurrentBuyPlatform == "tb")
{
if (orderItem?.TbBuyMapSkus != null && orderItem?.TbBuyMapSkus.Count > 0)
{
BuyMapSkus = new ObservableCollection<WXBuyMapSkusInfo>(orderItem.TbBuyMapSkus);
SetCurrentFrontSkuInfo3(BuyMapSkus?.FirstOrDefault());
}
}
}
@@ -122,7 +134,11 @@ public class BuyMapSkuViewModel : PropertyNotifyObject
public async Task SetOrderMapSku(frontSkuInfo3 upSku)
{
var mapSkuProd = OrderItem.PddBuyMapSkus.FirstOrDefault(s => s.map_goods_id == upSku.goodsId.ParseToString());
WXBuyMapSkusInfo mapSkuProd = null;
if (GlobalConfig.CurrentBuyPlatform == "pdd")
mapSkuProd = OrderItem.PddBuyMapSkus.FirstOrDefault(s => s.map_goods_id == upSku.goodsId.ParseToString());
if (GlobalConfig.CurrentBuyPlatform == "tb")
mapSkuProd = OrderItem.TbBuyMapSkus.FirstOrDefault(s => s.map_goods_id == upSku.goodsId.ParseToString());
if (mapSkuProd == null)
return;
@@ -135,26 +151,27 @@ public class BuyMapSkuViewModel : PropertyNotifyObject
var mapGoodsId = mapSkuProd.map_goods_id;
var mapSkuId = mapSku.skuId.ParseToString();
var sendProvince = mapSkuProd.map_send_address;
var platform = mapSkuProd.platform;
string cmbTransitWarehouse = "";
string txtBuyTransitWarehouse = "";
var transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == mapSkuProd.transit_warehouse_id);
if (transitWarehouse != null)
{
cmbTransitWarehouse = transitWarehouse?.TransName + " " + transitWarehouse?.TransDetailAddress;
txtBuyTransitWarehouse = transitWarehouse?.TransDetailAddress;
cmbTransitWarehouse = transitWarehouse?.TransName + " " + transitWarehouse?.TransFullAddress;
txtBuyTransitWarehouse = transitWarehouse?.TransFullAddress;
}
var spuCode = OrderItem.out_product_id.IsNullOrEmpty() ? OrderItem.product_id : OrderItem.out_product_id;
var skuCode = OrderItem.out_sku_id.IsNullOrEmpty() ? OrderItem.sku_attr_str : OrderItem.out_sku_id;
if (spuCode.IsNullOrEmpty())
spuCode = OrderItem.product_id;
if (await SaveSkuMap(spuCode, skuCode, mapGoodsName, mapSkuName, mapGoodsId, mapSkuId, transitWarehouse, sendProvince))
if (await SaveSkuMap(spuCode, skuCode, mapGoodsName, mapSkuName, mapGoodsId, mapSkuId, transitWarehouse, sendProvince, platform))
RequestClose?.Invoke();
}
public async Task<bool> SaveSkuMap(string spuCode, string skuCode, string mapGoodsName,
string mapSkuName, string mapGoodsId, string mapSkuId, TransitWarehouseParam transitWarehouse, string sendProvince)
string mapSkuName, string mapGoodsId, string mapSkuId, TransitWarehouseParam transitWarehouse, string sendProvince, string platform)
{
if (transitWarehouse == null)
{
@@ -175,6 +192,7 @@ public class BuyMapSkuViewModel : PropertyNotifyObject
+ "&map_sku_id=" + mapSkuId
+ "&map_send_address=" + sendProvince
+ "&transit_warehouse_id=" + transitWarehouse?.TransId;
data += "&platform=" + platform;
url = BaseClass.Build29WxObjString("order/wx_add_mdy_buy_prod_map");
var result = await GetHtml.PostUtf8Async(url, data);
+19 -14
View File
@@ -25,12 +25,16 @@ namespace AllBase.Model.DBModel
/// 电话
/// </summary>
public string TransMobile { get; set; }
/// <summary>
/// 详细地址
/// </summary>
public string TransDetailAddress { get; set; }
/// <summary>
/// 详细地址
/// </summary>
public string TransDetail { get; set; }
/// <summary>
/// 完整地址
/// </summary>
public string TransFullAddress { get; set; }
public int province_id { get; set; }
public int province_id { get; set; }
public int city_id { get; set; }
public int district_id { get; set; }
public string province_name { get;set; }
@@ -40,13 +44,13 @@ namespace AllBase.Model.DBModel
public class TransitWarehouseData
{
public static string TransitWarehouseDataStr = @"
XDYBJC ;北京仓 ;胡萍 ;18565773752 ;北京市顺义区光明街道滨河小区七区1号楼 ;2 ;52 ;511 ;北京市 ;北京市
XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市增城区朱村街道育山一路68号国际物流园 ;6 ;76 ;702 ;广东省 ;广州市
XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市江汉区民族街道沿江大道轮渡龙王庙码头 ;13 ;180 ;1546 ;湖北省 ;武汉市
XDYSHANDC ;山东2仓 ;鸿鹄小申 ;13044121239 ;山东省临沂市费县南外环东转盘往东200米顺通快递有限公司(仓库二楼) ;22 ;292 ;2415 ;山东省 ;临沂市
XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市普陀区真如镇街道真北路2653弄T区 ;25 ;321 ;2709 ;上海市 ;上海市
XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市凤岗镇浸校塘东良巷逸乐轩E栋5号楼 ;6 ;79 ;732 ;广东省 ;东莞市
XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北苑街道西站大道妈妈商贸18号库39号楼誉达 ;31 ;386 ;3409 ;浙江省 ;金华市";
XDYBJC ;北京仓 ;胡萍 ;18565773752 ;北京市顺义区光明街道滨河小区七区1号楼 ;2 ;52 ;511 ;北京市 ;北京市 ;顺义区 ;光明街道 ;滨河小区七区1号楼108室
XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市增城区朱村街道育山一路68号国际物流园 ;6 ;76 ;702 ;广东省 ;广州市 ;增城区 ;朱村街道 ;育山一路68号国际物流园
XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市江汉区民族街道沿江大道轮渡龙王庙码头 ;13 ;180 ;1546 ;湖北省 ;武汉市 ;江汉区 ;民族街道 ;沿江大道轮渡龙王庙码头
XDYSHANDC ;山东2仓 ;鸿鹄小申 ;13044121239 ;山东省临沂市费县南外环东转盘往东200米顺通快递有限公司(仓库二楼) ;22 ;292 ;2415 ;山东省 ;临沂市 ;费县 ;费城街道 ;南外环东转盘往东200米顺通快递有限公司(仓库二楼)
XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市普陀区真如镇街道真北路2653弄T区 ;25 ;321 ;2709 ;上海市 ;上海市 ;普陀区 ;真如镇街道 ;真北路2653弄T区
XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市凤岗镇浸校塘东良巷逸乐轩E栋5号楼 ;6 ;79 ;732 ;广东省 ;东莞市 ;凤岗镇 ;凤岗街道 ;浸校塘东良巷逸乐轩E栋5号楼
XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北苑街道西站大道妈妈商贸18号库39号楼誉达 ;31 ;386 ;3409 ;浙江省 ;金华市 ;义乌市 ;北苑街道 ;西站大道妈妈商贸18号库39号楼誉达";
//XDYJJC ;晋江仓 ;安群 ;19905951984 ;福建省泉州市南安市霞美镇温山村431号鸿鹄大厦 ;4 ;58 ;569 ;福建省 ;泉州市
//XDYCDC ;成都仓 ;谢春虹 ;15828201479 ;四川省资阳市乐至县仙鹤大道桑都街15-19号仓库(不要放驿站,送到仓库) ;26 ;340 ;2898 ;四川省 ;资阳市
//XDYCHONGQC ;重庆2仓 ;翁桂柱 ;18923911055 ;重庆市九龙坡区中梁山街道云飞九龙香山(二纵线东50米)重庆九龙坡区渝州公司 ;32 ;394 ;3339
@@ -88,13 +92,14 @@ XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北
TransName = arr[1].Trim(),
TransUserName = arr[2].Trim(),
TransMobile = arr[3].Trim(),
TransDetailAddress = arr[4].Trim(),
TransDetail = arr[12].Trim(),
TransFullAddress = arr[4].Trim(),
province_id = arr[5].Trim().ParseToInt(),
city_id = arr[6].Trim().ParseToInt(),
district_id = arr[7].Trim().ParseToInt(),
province_name = arr[8].Trim(),
city_name = arr[9].Trim(),
};
};
transitWarehouseList.Add(tw);
}
}
@@ -1,4 +1,5 @@
using AllBase.Model.MvvmBaseClasses;
using AllBase.Helper;
using AllBase.Model.MvvmBaseClasses;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -14,9 +15,13 @@ namespace AllBase.Model.DBModel
get { return out_order_no; }
set { }
}
public string OutOrderBuyerStr
public string OutOrderBuyerStr
{
get { return buyer_account; }
get
{
return GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == buyer_account)?.buyer_name ??
GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(b => b.buyer_id == buyer_account)?.buyer_name ?? buyer_account;
}
set { }
}
@@ -1287,14 +1287,20 @@ namespace AllBase.Model.DBModel
// 直拍按钮
BtnDirectBuyOrderVisibility = Visibility.Collapsed;
if (this.ItemOrder?.GetIsWaitBuy() == true && this.BuyGoodsBtnTxt != "关联拍单")
BtnDirectBuyOrderVisibility = Visibility.Visible;
if (this.ItemOrder?.GetIsAbnormal() == true && this.refund_status <= 1)
{
//if (BtnAbnormalBtnVisibility == Visibility.Collapsed && (this.ItemOrder.out_order_no.IsNullOrEmpty() || this.ItemOrder.out_after_sale_status == "退款成功"))
if (this.ItemOrder.out_order_no.IsNullOrEmpty() || this.ItemOrder.out_after_sale_status == "退款成功")
BtnDirectBuyOrderVisibility = Visibility.Visible;
}
if (GlobalConfig.CurrentBuyPlatform == "pdd")
{
if (this.ItemOrder?.GetIsWaitBuy() == true && this.BuyGoodsBtnTxt != "关联拍单")
BtnDirectBuyOrderVisibility = Visibility.Visible;
if (this.ItemOrder?.GetIsAbnormal() == true && this.refund_status <= 1)
{
//if (BtnAbnormalBtnVisibility == Visibility.Collapsed && (this.ItemOrder.out_order_no.IsNullOrEmpty() || this.ItemOrder.out_after_sale_status == "退款成功"))
if (this.ItemOrder.out_order_no.IsNullOrEmpty() || this.ItemOrder.out_after_sale_status == "退款成功")
BtnDirectBuyOrderVisibility = Visibility.Visible;
}
}
else if (GlobalConfig.CurrentBuyPlatform == "tb")
{
}
}
public string RefundStatusStr
+13 -13
View File
@@ -194,8 +194,8 @@ namespace TemuKJD.ToolForms
}
if (transitWarehouse != null && this.BuyType == "transit")
{
cmbTransitWarehouse.Text = transitWarehouse?.TransName + " " + transitWarehouse?.TransDetailAddress;
txtBuyTransitWarehouse.Text = transitWarehouse?.TransDetailAddress;
cmbTransitWarehouse.Text = transitWarehouse?.TransName + " " + transitWarehouse?.TransFullAddress;
txtBuyTransitWarehouse.Text = transitWarehouse?.TransFullAddress;
}
else
{
@@ -229,7 +229,7 @@ namespace TemuKJD.ToolForms
foreach (var warehouse in TransitWarehouseData.TransitWarehouseList)
{
this.cmbTransitWarehouse.Items.Add(warehouse.TransName + " " + warehouse.TransDetailAddress);
this.cmbTransitWarehouse.Items.Add(warehouse.TransName + " " + warehouse.TransFullAddress);
}
Task.Run(() =>
@@ -372,7 +372,7 @@ namespace TemuKJD.ToolForms
jObj["province_id"] = transitWarehouse.province_id;
jObj["city_id"] = transitWarehouse.city_id;
jObj["district_id"] = transitWarehouse.district_id;
jObj["address"] = transitWarehouse.TransDetailAddress + Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + "室" + txtSourceCode.Text;
jObj["address"] = transitWarehouse.TransFullAddress + Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + "室" + txtSourceCode.Text;
jObj["mobile"] = TransitWaybillHelper.MobileHead[Randomx.GetId(TransitWaybillHelper.MobileHead.Count)] + Randomx.GetNumber(8);
jObj["name"] = TransitWaybillHelper.LastName[Randomx.GetId(TransitWaybillHelper.LastName.Count)] + (Randomx.GetId(2) == 1 ? "先生" : "女士");
postData = JsonHelper.SerializeObject(jObj);
@@ -572,7 +572,7 @@ namespace TemuKJD.ToolForms
}
// 自动修改收货地址为中转仓(或直发)
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransDetailAddress == txtBuyTransitWarehouseStr);
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransFullAddress == txtBuyTransitWarehouseStr);
if (transit == null && BuyType == "transit")
{
throw new Exception("仓库已发生改变,请点击重新关联商品,选择仓库后重新拍单!");
@@ -964,16 +964,16 @@ namespace TemuKJD.ToolForms
bool isAutoGetWarehouse = false;
foreach (var item in this.cmbTransitWarehouse.Items)
{
TransitWarehouseParam warehouseParam = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransDetailAddress == item.ParseToString());
TransitWarehouseParam warehouseParam = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransFullAddress == item.ParseToString());
if (warehouseParam == null)
{
continue;
}
if (warehouseParam.TransDetailAddress.Contains(sendProvince))
if (warehouseParam.TransFullAddress.Contains(sendProvince))
{
Invoke(new Action(() =>
{
cmbTransitWarehouse.Text = warehouseParam.TransName + " " + warehouseParam.TransDetailAddress;
cmbTransitWarehouse.Text = warehouseParam.TransName + " " + warehouseParam.TransFullAddress;
}));
transitWarehouse = warehouseParam;
isAutoGetWarehouse = true;
@@ -1031,7 +1031,7 @@ namespace TemuKJD.ToolForms
var sendProvince = txtSendProvince.Text.Trim();
if (transitWarehouse == null && !cmbTransitWarehouse.Text.Trim().IsNullOrEmpty())
{
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransDetailAddress == cmbTransitWarehouse.Text.Trim().ParseToString());
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransFullAddress == cmbTransitWarehouse.Text.Trim().ParseToString());
}
if (transitWarehouse == null)
@@ -1253,7 +1253,7 @@ namespace TemuKJD.ToolForms
Invoke(() => { lblErrMsg.Text = "缺少中转地址,请重新绑定商品并选择仓库地址"; });
return;
}
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransDetailAddress == txtBuyTransitWarehouseStr);
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransFullAddress == txtBuyTransitWarehouseStr);
if (BuyType == "transit" && transit == null)
{
if (!IsAutoBuy)
@@ -1606,7 +1606,7 @@ namespace TemuKJD.ToolForms
private void cmbTransitWarehouse_SelectedIndexChanged(object sender, EventArgs e)
{
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransDetailAddress == cmbTransitWarehouse.Text);
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransFullAddress == cmbTransitWarehouse.Text);
}
private void chkAutoChangeWarehouseAddress_CheckedChanged(object sender, EventArgs e)
@@ -1775,8 +1775,8 @@ namespace TemuKJD.ToolForms
this.transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == mapSkuProd.transit_warehouse_id);
if (transitWarehouse != null)
{
cmbTransitWarehouse.Text = transitWarehouse?.TransName + " " + transitWarehouse?.TransDetailAddress;
txtBuyTransitWarehouse.Text = transitWarehouse?.TransDetailAddress;
cmbTransitWarehouse.Text = transitWarehouse?.TransName + " " + transitWarehouse?.TransFullAddress;
txtBuyTransitWarehouse.Text = transitWarehouse?.TransFullAddress;
}
}
}