1 修复淘宝拍单窗口可能崩溃问题
2 拼多多中转仓拍单随机地址支持随机繁体字
This commit is contained in:
1 parent
5b9ed01fa1
commit
ac93305d5f
8 files changed
+155
-21
No files matched your search
@@ -1738,7 +1738,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
|
||||
/// </summary>
|
||||
public void ManualUpdateBuyOrder()
|
||||
{
|
||||
if (BuyType == "transit" && txtSourceCodeVal.Trim().Length != 6)
|
||||
if (BuyType == "transit" && txtSourceCodeVal.ParseToString().Trim().Length != 6)
|
||||
{
|
||||
ErrorMsg = "溯源码长度错误!";
|
||||
return;
|
||||
|
||||
@@ -24,6 +24,24 @@
|
||||
|
||||
<TabItem Header="拍单">
|
||||
<StackPanel>
|
||||
<Border Style="{StaticResource SettingRow}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Style="{StaticResource SettingTitle}" Text="云仓拍单" />
|
||||
<TextBlock Style="{StaticResource SettingDesc}" Text="多多云仓拍单随机繁体详细地址" />
|
||||
</StackPanel>
|
||||
<CheckBox
|
||||
Grid.Column="1"
|
||||
VerticalAlignment="Center"
|
||||
d:Visibility="Visible"
|
||||
IsChecked="{Binding SwitchEnablePddTransitTraditionalAddress}"
|
||||
Style="{StaticResource ToggleSwitch}" />
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Style="{StaticResource SettingRow}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
|
||||
@@ -31,10 +31,16 @@ public class SettingViewModel : BindableBaseEx
|
||||
get => GetValue<bool>();
|
||||
set => SetValue(value);
|
||||
}
|
||||
public bool SwitchEnablePddTransitTraditionalAddress
|
||||
{
|
||||
get => GetValue<bool>();
|
||||
set => SetValue(value);
|
||||
}
|
||||
public void Assign(SettingConfig config)
|
||||
{
|
||||
AutoSwitchGiftType = config.AutoSwitchGiftType;
|
||||
SwitchEnableDirectBuy = config.SwitchEnableDirectBuy;
|
||||
SwitchEnablePddTransitTraditionalAddress = config.SwitchEnablePddTransitTraditionalAddress;
|
||||
}
|
||||
public SettingConfig ToConfig()
|
||||
{
|
||||
@@ -42,6 +48,7 @@ public class SettingViewModel : BindableBaseEx
|
||||
{
|
||||
AutoSwitchGiftType = AutoSwitchGiftType,
|
||||
SwitchEnableDirectBuy = SwitchEnableDirectBuy,
|
||||
SwitchEnablePddTransitTraditionalAddress = SwitchEnablePddTransitTraditionalAddress,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -345,18 +345,20 @@ namespace _29WxOrderWpf.ViewModels
|
||||
|
||||
// cef138必须init后方可设置或删除cookie
|
||||
|
||||
while (!CefWebBrowser.IsBrowserInitialized || !CefWebBrowser.GetBrowser().MainFrame.IsValid)
|
||||
while (_isWindowLoaded && (!CefWebBrowser.IsBrowserInitialized || !CefWebBrowser.GetBrowser().MainFrame.IsValid))
|
||||
await Task.Delay(20);
|
||||
//await WPFCEFBrowser.DeleteCookieAsync(CefWebBrowser.GetCookieManager(null));
|
||||
|
||||
//cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager
|
||||
//await WPFCEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), CefWebBrowser.GetCookieManager(null));
|
||||
if (OpenType != EnumOpenType.login)
|
||||
{
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
await WPFCEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null));
|
||||
//t.Wait(5000);
|
||||
if (_isWindowLoaded)
|
||||
await WPFCEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null));
|
||||
}
|
||||
}
|
||||
|
||||
//根据登录的具体店铺设置local storage
|
||||
if (!string.IsNullOrEmpty(buyer?.buyer_id))
|
||||
@@ -369,9 +371,9 @@ namespace _29WxOrderWpf.ViewModels
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(InitUrl))
|
||||
CefWebBrowser.Load(InitUrl);
|
||||
CefWebBrowser?.Load(InitUrl);
|
||||
else
|
||||
CefWebBrowser.Load(buyerMainUrl);
|
||||
CefWebBrowser?.Load(buyerMainUrl);
|
||||
|
||||
//不是登录的话就此返回
|
||||
if (OpenType != EnumOpenType.login)
|
||||
@@ -381,14 +383,14 @@ namespace _29WxOrderWpf.ViewModels
|
||||
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
if (CefWebBrowser.IsLoading)
|
||||
if (CefWebBrowser?.IsLoading == true)
|
||||
await Task.Delay(100);
|
||||
}
|
||||
await Task.Delay(Randomx.GetId(1500, 2000));
|
||||
if (!_isWindowLoaded)
|
||||
return;
|
||||
|
||||
while (!CefWebBrowser.Address?.StartsWith(buyerLoginUrl) ?? false)
|
||||
while (!CefWebBrowser?.Address?.StartsWith(buyerLoginUrl) ?? false)
|
||||
{
|
||||
await Task.Delay(1000);
|
||||
if (!_isWindowLoaded)
|
||||
@@ -396,8 +398,7 @@ namespace _29WxOrderWpf.ViewModels
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -426,7 +427,7 @@ namespace _29WxOrderWpf.ViewModels
|
||||
sb.Append("(function(){");
|
||||
sb.Append("CefSharp.BindObjectAsync('shopObj');");
|
||||
sb.Append("})();");
|
||||
CefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
|
||||
CefWebBrowser?.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
|
||||
}
|
||||
|
||||
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
|
||||
@@ -489,6 +490,8 @@ namespace _29WxOrderWpf.ViewModels
|
||||
{
|
||||
Thread.Sleep(2000);
|
||||
|
||||
if (!_isWindowLoaded)
|
||||
return;
|
||||
//List<Cookie> cookieList = WPFCEFBrowser.GetCookieList(shopCookieHead, CefWebBrowser.GetCookieManager(null));
|
||||
List<Cookie> cookieList = WPFCEFBrowser.GetCookieList("", CefWebBrowser.GetCookieManager(null));
|
||||
|
||||
@@ -555,9 +558,9 @@ namespace _29WxOrderWpf.ViewModels
|
||||
if (CefWebBrowser != null)
|
||||
{
|
||||
if (Address != "about:blank")
|
||||
CefWebBrowser.Load(Address);
|
||||
CefWebBrowser?.Load(Address);
|
||||
else
|
||||
CefWebBrowser.Load(buyerMainUrl);
|
||||
CefWebBrowser?.Load(buyerMainUrl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,5 +21,9 @@ public class SettingConfig
|
||||
/// 允许直发拍单
|
||||
/// </summary>
|
||||
public bool SwitchEnableDirectBuy { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 拼多多仓库订单使用随机繁体字
|
||||
/// </summary>
|
||||
public bool SwitchEnablePddTransitTraditionalAddress { get; set; } = false;
|
||||
#endregion
|
||||
}
|
||||
@@ -39,7 +39,9 @@ namespace AllBase.Model.DBModel
|
||||
public int district_id { get; set; }
|
||||
public string province_name { get;set; }
|
||||
public string city_name { get; set; }
|
||||
}
|
||||
public string district_name { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class TransitWarehouseData
|
||||
{
|
||||
@@ -64,16 +66,52 @@ namespace AllBase.Model.DBModel
|
||||
{ "XDYFJSSC", "福建仓" },
|
||||
};
|
||||
|
||||
public static string TransitWarehouseDataStr = @"
|
||||
|
||||
public static string TransitWarehouseDataStr = @"
|
||||
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 ;上海市上海市徐汇区徐家汇街道虹桥路616号A座 ;25 ;321 ;2706 ;上海市 ;上海市 ;徐汇区 ;徐家汇街道 ;虹桥路616号A座
|
||||
XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市徐汇区徐家汇街道虹桥路616号A座 ;25 ;321 ;2706 ;上海市 ;上海市 ;徐汇区 ;徐家汇街道 ;虹桥路616号A座
|
||||
XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市凤岗镇浸校塘东良巷逸乐轩E栋5号楼 ;6 ;79 ;732 ;广东省 ;东莞市 ;凤岗镇 ;凤岗街道 ;浸校塘东良巷逸乐轩E栋5号楼
|
||||
XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市后宅街道金城高尔夫二期别墅区401栋 ;31 ;386 ;3409 ;浙江省 ;金华市 ;义乌市 ;后宅街道 ;金城高尔夫二期别墅区401栋
|
||||
XDYFJSSC ;福建仓 ;小张 ;13799125513 ;福建省泉州市晋江市青阳街道中堡电商园一栋 ;4 ;58 ;568 ;福建省 ;泉州市 ;晋江市 ;青阳街道 ;中堡电商园一栋";
|
||||
|
||||
public static Dictionary<char, List<char>> dicChineseNumberChar = new Dictionary<char, List<char>>()
|
||||
{
|
||||
{ '1', new List<char> { '一', '壹' } },
|
||||
{ '2', new List<char> { '二', '贰' } },
|
||||
{ '3', new List<char> { '三', '叁' } },
|
||||
{ '4', new List<char> { '四', '肆' } },
|
||||
{ '5', new List<char> { '五', '伍' } },
|
||||
{ '6', new List<char> { '六', '陆' } },
|
||||
{ '7', new List<char> { '七', '柒' } },
|
||||
{ '8', new List<char> { '八', '捌' } },
|
||||
{ '9', new List<char> { '九', '玖' } },
|
||||
{ '0', new List<char> { '零', '〇' } },
|
||||
{ '一', new List<char> { '壹' } },
|
||||
{ '二', new List<char> { '贰' } },
|
||||
{ '三', new List<char> { '叁' } },
|
||||
{ '四', new List<char> { '肆' } },
|
||||
{ '五', new List<char> { '伍' } },
|
||||
{ '六', new List<char> { '陆' } },
|
||||
{ '七', new List<char> { '柒' } },
|
||||
{ '八', new List<char> { '捌' } },
|
||||
{ '九', new List<char> { '玖' } },
|
||||
{ '零', new List<char> { '〇' } },
|
||||
};
|
||||
|
||||
// public static string TransitWarehouseDataStrTraditional = @"
|
||||
//XDYBJC ;北京仓 ;胡萍 ;18565773752 ;北京市順義區光明街道濱河小區七區一號樓 ;2 ;52 ;511 ;北京市 ;北京市 ;顺义区 ;光明街道 ;濱河小區七區一號樓一零八室
|
||||
//XDYGZC ;广州仓 ;何外华 ;13826339849 ;廣州市增城區朱村街道育山一路六八號國際物流園 ;6 ;76 ;702 ;广东省 ;广州市 ;增城区 ;朱村街道 ;育山一路六八號國際物流園
|
||||
//XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武漢市江漢區民族街道沿江大道輪渡龍王廟碼頭 ;13 ;180 ;1546 ;湖北省 ;武汉市 ;江汉区 ;民族街道 ;沿江大道輪渡龍王廟碼頭
|
||||
//XDYSHANDC ;山东2仓 ;鸿鹄小申 ;13044121239 ;山東省臨沂市費縣南外環東轉盤往東二零零米順通快遞有限公司(倉庫二樓) ;22 ;292 ;2415 ;山东省 ;临沂市 ;费县 ;費城街道 ;南外環東轉盤往東二零零米順通快遞有限公司(倉庫二樓)
|
||||
//XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市徐匯區徐家匯街道虹橋路六一六號A座 ;25 ;321 ;2706 ;上海市 ;上海市 ;徐汇区 ;徐家匯街道 ;虹橋路六一六號A座
|
||||
//XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;廣東省東莞市鳳崗鎮浸校塘東良巷逸樂軒E棟五號樓 ;6 ;79 ;732 ;广东省 ;东莞市 ;凤岗镇 ;鳳崗街道 ;浸校塘東良巷逸樂軒E棟五號樓
|
||||
//XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市後宅街道金城高爾夫二期別墅區四零一棟 ;31 ;386 ;3409 ;浙江省 ;金华市 ;义乌市 ;後宅街道 ;金城高爾夫二期別墅區四零一棟
|
||||
//XDYFJSSC ;福建仓 ;小张 ;13799125513 ;福建省泉州市晋江市青陽街道中堡電商園一棟 ;4 ;58 ;568 ;福建省 ;泉州市 ;晋江市 ;青陽街道 ;中堡電商園一棟";
|
||||
|
||||
//XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市徐汇区徐家汇街道虹桥路616号A座 ;25 ;321 ;2706 ;上海市 ;上海市 ;徐汇区 ;徐家汇街道 ;虹桥路616号A座
|
||||
//XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市普陀区真如镇街道真北路2653弄T区 ;25 ;321 ;2709 ;上海市 ;上海市 ;普陀区 ;真如镇街道 ;真北路2653弄T区
|
||||
//XDYFJSSC 石狮仓 福建省/泉州市/晋江市青阳街道中堡电商园一栋
|
||||
//XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北苑街道西站大道妈妈商贸18号库39号楼誉达 ;31 ;386 ;3409 ;浙江省 ;金华市 ;义乌市 ;北苑街道 ;西站大道妈妈商贸18号库39号楼誉达
|
||||
@@ -99,7 +137,7 @@ XDYFJSSC ;福建仓 ;小张 ;13799125513 ;福建省泉州市晋江市青
|
||||
|
||||
static List<TransitWarehouseParam> transitWarehouseList = null;
|
||||
|
||||
public static List<TransitWarehouseParam> TransitWarehouseList
|
||||
public static List<TransitWarehouseParam> TransitWarehouseList
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -125,6 +163,7 @@ XDYFJSSC ;福建仓 ;小张 ;13799125513 ;福建省泉州市晋江市青
|
||||
district_id = arr[7].Trim().ParseToInt(),
|
||||
province_name = arr[8].Trim(),
|
||||
city_name = arr[9].Trim(),
|
||||
district_name = arr[10].Trim(),
|
||||
};
|
||||
transitWarehouseList.Add(tw);
|
||||
}
|
||||
@@ -136,5 +175,7 @@ XDYFJSSC ;福建仓 ;小张 ;13799125513 ;福建省泉州市晋江市青
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static List<TransitWarehouseParam> transitWarehouseTList = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AllBase.Util;
|
||||
|
||||
public class ChineseStringConverter
|
||||
{
|
||||
private const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;
|
||||
private const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;
|
||||
|
||||
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest);
|
||||
|
||||
public static string ToSimplified(string source)
|
||||
{
|
||||
string target = new string(' ', source.Length);
|
||||
LCMapString(0x0800, LCMAP_SIMPLIFIED_CHINESE, source, source.Length, target, source.Length);
|
||||
return target;
|
||||
}
|
||||
|
||||
public static string ToTraditional(string source)
|
||||
{
|
||||
string target = new string(' ', source.Length);
|
||||
LCMapString(0x0800, LCMAP_TRADITIONAL_CHINESE, source, source.Length, target, source.Length);
|
||||
return target;
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ using AllBase.Model;
|
||||
using AllBase.Model.Config;
|
||||
using AllBase.Model.DBModel;
|
||||
using AllBase.Model.Result;
|
||||
using AllBase.Util;
|
||||
using CefSharp;
|
||||
using CefSharp.DevTools;
|
||||
using CefSharp.DevTools.IO;
|
||||
@@ -94,10 +95,38 @@ namespace TemuKJD.ToolForms
|
||||
// (拍单后)回调函数,更新拍单余额
|
||||
private Action updateBalanceAction = null;
|
||||
|
||||
string _txtBuyTransitWarehouseStr = "";
|
||||
/// <summary>
|
||||
/// 拍单中转地址
|
||||
/// </summary>
|
||||
string txtBuyTransitWarehouseStr = "";
|
||||
string txtBuyTransitWarehouseStr
|
||||
{
|
||||
get { return _txtBuyTransitWarehouseStr; }
|
||||
set
|
||||
{
|
||||
if (!string.IsNullOrEmpty(value) && BuyType == "transit")
|
||||
{
|
||||
//txtBuyTransitWarehouseRandomStr = value;
|
||||
var numberDic = TransitWarehouseData.dicChineseNumberChar;
|
||||
var txtBuyTransitWarehouseRandomStrTmp = txtBuyTransitWarehouseRandomStr = transitWarehouse.TransFullAddress + Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + "室";
|
||||
if (BaseClass.Setting.SwitchEnablePddTransitTraditionalAddress == true)
|
||||
{
|
||||
for (int i = 0; i < 10 && txtBuyTransitWarehouseRandomStrTmp == txtBuyTransitWarehouseRandomStr; i++)
|
||||
{
|
||||
txtBuyTransitWarehouseRandomStrTmp = string.Join("", txtBuyTransitWarehouseRandomStrTmp.Select(c => Randomx.GetId(2) == 0 ? c.ToString() : ChineseStringConverter.ToTraditional(c.ToString())));
|
||||
txtBuyTransitWarehouseRandomStrTmp = string.Join("", txtBuyTransitWarehouseRandomStrTmp.Select(c => (Randomx.GetId(2) == 0 || !numberDic.Keys.Contains(c)) ? c : numberDic[c][Randomx.GetId(numberDic[c].Count)]));
|
||||
}
|
||||
txtBuyTransitWarehouseRandomStr = txtBuyTransitWarehouseRandomStrTmp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
txtBuyTransitWarehouseRandomStr = value;
|
||||
}
|
||||
_txtBuyTransitWarehouseStr = value;
|
||||
}
|
||||
}
|
||||
string txtBuyTransitWarehouseRandomStr = "";
|
||||
bool IsChangeAddress = false;
|
||||
bool HasChangeAddress = false;
|
||||
|
||||
@@ -377,7 +406,8 @@ namespace TemuKJD.ToolForms
|
||||
jObj["province_id"] = transitWarehouse.province_id;
|
||||
jObj["city_id"] = transitWarehouse.city_id;
|
||||
jObj["district_id"] = transitWarehouse.district_id;
|
||||
jObj["address"] = transitWarehouse.TransFullAddress + 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["address"] = txtBuyTransitWarehouseRandomStr + 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);
|
||||
@@ -1029,7 +1059,7 @@ namespace TemuKJD.ToolForms
|
||||
jsStr1 = @"(function() { var elements = document.getElementsByTagName('div');
|
||||
for (i = elements.length - 1; i >= 0; i--){
|
||||
var element = elements[i];
|
||||
if (element.innerHTML.indexOf('" + txtBuyTransitWarehouseStr + @"') >= 0 && element.innerHTML.indexOf('" + txtSourceCode.Text.Trim() + @"') >= 0) {
|
||||
if (element.innerHTML.indexOf('" + txtBuyTransitWarehouseRandomStr + @"') >= 0 && element.innerHTML.indexOf('" + txtSourceCode.Text.Trim() + @"') >= 0) {
|
||||
element.click();
|
||||
return 'success';
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user