Merge branch 'main' of github.com:jtt-fan/29WxOrder

This commit is contained in:
chfei committed 2026-09-20 18:49:43 +08:00
commit 32976d41cd
8 files changed
+112 -20

No files matched your search

+5 -3
View File
@@ -28,9 +28,11 @@ namespace _29WxOrderWpf
GlobalConfig.lstWXShopTokenInfo = new ConcurrentList<WXShopTokenInfo>();
// 自动拍单支付宝密码
GlobalConfig.AlipayPassword = ConfigHelper.LoadConfig<List<string>>("ali_pay_password")?.FirstOrDefault();
if (GlobalConfig.AlipayPassword == null)
GlobalConfig.AlipayPassword = "";
var alipayPassword = ConfigHelper.LoadConfig<List<string>>("ali_pay_password")?.FirstOrDefault() ?? "";
GlobalConfig.AutoBuyConfig = ConfigHelper.LoadConfig<AutoBuyConfig>("auto_buy_config");
if (GlobalConfig.AutoBuyConfig == null)
GlobalConfig.AutoBuyConfig = new AutoBuyConfig() { AlipayPassword = alipayPassword, IsLimitMinProfit = false, MinProfit = 0 };
new WxOrder.Framework.Startup();
}
@@ -92,10 +92,45 @@
FontSize="12"
Style="{StaticResource BasePageButtonLightStyle}"
Visibility="Visible" />
<TextBlock
Margin="70,128,70,128"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
TextWrapping="Wrap"><Run Text="说明:"/><Run Text="自动拍单支持已创建sku关联的商品"/><Run Language="zh-cn" Text="。"/><LineBreak/><Run Text=" "/><Run Text="请保存支付宝支付密码(仅记录在本地)供自动拍单支付,首次自动拍单前请手动拍单一次以缓存支付宝Cookie。"/></TextBlock>
<WrapPanel Margin="70,120,70,70" VerticalAlignment="Top">
<CheckBox
x:Name="chkMinProfitAutoBuy"
Margin="2,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
BorderBrush="{StaticResource mainColorBrush}"
Click="chkMinProfitAutoBuy_Click"
Content="当利润低于如下金额时跳过自动拍单:"
FontSize="12" />
<TextBox
x:Name="txtMinProfitAutoBuy"
Width="54"
Height="22"
HorizontalAlignment="Left"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
d:Text="0.0"
d:Visibility="Visible"
TextChanged="txtMinProfitAutoBuy_TextChanged" />
<TextBlock Margin="3,0,0,0" VerticalAlignment="Center">
元
</TextBlock>
<Button
x:Name="btnSaveMinProfitAutoBuy"
Width="Auto"
Height="22"
MinWidth="48"
Margin="5,0"
Padding="4,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Click="btnSaveMinProfitAutoBuy_Click"
Content="确定修改"
FontSize="12"
Style="{StaticResource BasePageButtonStyle}"
Visibility="Visible" />
</WrapPanel>
<TextBlock Margin="70,160,70,70" TextWrapping="Wrap"><Run Text="说明:" /><Run Text="自动拍单支持已创建sku关联的商品" /><Run Language="zh-cn" Text="。" /><LineBreak /><Run Text=" " /><Run Text="请保存支付宝支付密码(仅记录在本地)供自动拍单支付,首次自动拍单前请手动拍单一次以缓存支付宝Cookie。" /></TextBlock>
</Grid>
</UserControl>
@@ -2,6 +2,7 @@
using AllBase.Helper;
using AllBase.Model.DBModel;
using NaiBa.Util;
using NaiBa.Util.Extension;
using NaiBa.Util.Helper;
using System;
using System.Collections.Generic;
@@ -33,21 +34,23 @@ namespace _29WxOrderWpf.Views
private void AutoBuyInstructionView_Loaded(object sender, RoutedEventArgs e)
{
this.pbxPassWord.Password = DataOpenSSL.DecryptString(GlobalConfig.AlipayPassword);
this.pbxPassWord.Password = DataOpenSSL.DecryptString(GlobalConfig.AutoBuyConfig.AlipayPassword);
this.chkMinProfitAutoBuy.IsChecked = GlobalConfig.AutoBuyConfig.IsLimitMinProfit;
this.txtMinProfitAutoBuy.Text = "" + GlobalConfig.AutoBuyConfig.MinProfit * 0.01m;
}
private void btnSaveAliPass_Click(object sender, RoutedEventArgs e)
{
GlobalConfig.AlipayPassword = DataOpenSSL.EncryptString(this.pbxPassWord.Password);
ConfigHelper.SaveConfig("ali_pay_password", new List<string>() { GlobalConfig.AlipayPassword });
GlobalConfig.AutoBuyConfig.AlipayPassword = DataOpenSSL.EncryptString(this.pbxPassWord.Password);
ConfigHelper.SaveConfig("auto_buy_config", GlobalConfig.AutoBuyConfig);
BaseMsgWindow.ShowInfo("密码保存成功!");
}
private void btnClear_Click(object sender, RoutedEventArgs e)
{
this.pbxPassWord.Password = "";
GlobalConfig.AlipayPassword = "";
ConfigHelper.SaveConfig("ali_pay_password", new List<string>() { GlobalConfig.AlipayPassword });
GlobalConfig.AutoBuyConfig.AlipayPassword = "";
ConfigHelper.SaveConfig("auto_buy_config", GlobalConfig.AutoBuyConfig);
BaseMsgWindow.ShowInfo("密码已清除!");
}
@@ -70,5 +73,23 @@ namespace _29WxOrderWpf.Views
if (txtPassWord.Text != pbxPassWord.Password)
pbxPassWord.Password = txtPassWord.Text;
}
private void txtMinProfitAutoBuy_TextChanged(object sender, TextChangedEventArgs e)
{
}
private void chkMinProfitAutoBuy_Click(object sender, RoutedEventArgs e)
{
}
private void btnSaveMinProfitAutoBuy_Click(object sender, RoutedEventArgs e)
{
GlobalConfig.AutoBuyConfig.IsLimitMinProfit = chkMinProfitAutoBuy.IsChecked ?? false;
GlobalConfig.AutoBuyConfig.MinProfit = (txtMinProfitAutoBuy.Text.ParseToDecimal() * 100).ParseToInt();
ConfigHelper.SaveConfig("auto_buy_config", GlobalConfig.AutoBuyConfig);
BaseMsgWindow.ShowInfo("自动拍单最低利润配置成功!");
}
}
}
+1 -1
View File
@@ -36,7 +36,7 @@ namespace AllBase
/// 版本ID
/// </summary>
public static int VersionCount = 287;
public static int VersionCount = 288;
public static string ServerUrl { get; set; } = "http://1.13.195.131:9000";
public static string DebugUrl { get; set; } = "http://localhost:9000";
+2 -1
View File
@@ -40,7 +40,8 @@ namespace AllBase.Helper
/// <summary>
/// 支付宝密码
/// </summary>
public static string AlipayPassword { get; set; }
//public static string AlipayPassword { get; set; }
public static AutoBuyConfig AutoBuyConfig { get; set; }
/// <summary>
/// 默认退货详细地址
/// </summary>
+20
View File
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Config
{
public class AutoBuyConfig
{
public string AlipayPassword { get; set; } = "";
/// <summary>
/// 是否限制自动拍单最小利润
/// </summary>
public bool IsLimitMinProfit { get; set; }
public int MinProfit { get; set; }
}
}
@@ -41,8 +41,8 @@ namespace AllBase.Model.DBModel
{
public static string TransitWarehouseDataStr = @"
XDYBJC ;北京仓 ;胡萍 ;18565773752 ;北京市顺义区光明街道滨河小区七区1号楼 ;2 ;52 ;511 ;北京市 ;北京市
XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市从化区太平镇高埔细埔街99号东门4栋3楼 ;6 ;76 ;692 ;广东省 ;广州市
XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市汉阳区洲头街道汉新大道2号3栋17楼 ;13 ;180 ;1548 ;湖北省 ;武汉市
XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市增城区朱村街道育山一路68号国际物流园 ;6 ;76 ;692 ;广东省 ;广州市
XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市江汉区沿江大道轮渡龙王庙码头 ;13 ;180 ;1548 ;湖北省 ;武汉市
XDYSHANDC ;山东2仓 ;鸿鹄小申 ;13044121239 ;山东省临沂市费县南外环东转盘往东200米顺通快递有限公司(仓库二楼) ;22 ;292 ;2415 ;山东省 ;临沂市
XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市普陀区真如镇街道真北路2653弄T区 ;25 ;321 ;2709 ;上海市 ;上海市
XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市凤岗镇浸校塘东良巷逸乐轩E栋5号楼 ;6 ;79 ;732 ;广东省 ;东莞市
@@ -57,6 +57,8 @@ XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北
//XDYSSC ;河北仓 ;田女士 ;13382898026 ;河北省衡水市安平县兴安大道灿达创业基地韵达库房A-1 ;10 ;143 ;1180
//XDYZZC ;郑州仓 ;朱红艳 ;13044121247 ;河南省郑州市经济开发区祥云办公处润之新物流园韵达速递 ;11 ;149 ;1259
//XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市汉阳区洲头街道汉新大道2号3栋17楼 ;13 ;180 ;1548 ;湖北省 ;武汉市
//XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市从化区太平镇高埔细埔街99号东门4栋3楼 ;6 ;76 ;692 ;广东省 ;广州市
// 广州仓 广州市从化区太平镇高埔细埔街99号东门***栋***楼
// 深圳仓 广东省东莞市凤岗镇浸校塘东良巷逸乐轩E栋***楼
// 武汉2仓 湖北省武汉市汉阳区洲头街道汉新大道2号***栋 * **楼
+14 -3
View File
@@ -217,7 +217,7 @@ namespace TemuKJD.ToolForms
this.txtShopGoodsName.Text = orderItem.title;
this.txtShopSpecName.Text = orderItem.sku_attr_str;
this.txtShopOrderItemCnt.Text = orderItem.sku_cnt.ParseToString();
this.txtShopOrderItemPrice.Text = (orderItem.real_price * 0.01m).ParseToString();
this.txtShopOrderItemPrice.Text = (orderItem.real_price * 0.01m + orderItem.ItemOrder?.postage_price * 0.01m / orderItem.ItemOrder?.orderItems?.Count).ParseToString();
this.txtOrderId.Text = orderItem.order_id;
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
@@ -420,7 +420,7 @@ namespace TemuKJD.ToolForms
{
await (Task.Run(() =>
{
Thread.Sleep(10000);
Thread.Sleep(6000);
if (!this.IsClose && this.Created)
{
Invoke(new Action(() =>
@@ -535,6 +535,17 @@ namespace TemuKJD.ToolForms
var buyCnt = BaseRegex.GetIntJson(ref data, "goods_number");
var buyPrice = BaseRegex.GetIntJson(ref data, "pay_price");
if (IsAutoBuy && GlobalConfig.AutoBuyConfig.IsLimitMinProfit)
{
var salePrice = orderItem.real_price * 0.01m + orderItem.ItemOrder?.postage_price * 0.01m / orderItem.ItemOrder?.orderItems?.Count;
var profit = salePrice - buyPrice * 0.01m;
var limitProfit = GlobalConfig.AutoBuyConfig.MinProfit * 0.01m;
if (profit < limitProfit)
{
throw new Exception("拍单利润" + profit + "小于设定的数值 " + limitProfit + ",跳过当前订单");
}
}
if (!this.Created)
return;
Invoke(new Action(() =>
@@ -709,7 +720,7 @@ namespace TemuKJD.ToolForms
ts2 = await EvaluateJsBuyTagNameAndInnerHtml("div", "输入支付密码");
}
Thread.Sleep(Randomx.GetId(500, 1000));
foreach (var c in DataOpenSSL.DecryptString(GlobalConfig.AlipayPassword))
foreach (var c in DataOpenSSL.DecryptString(GlobalConfig.AutoBuyConfig.AlipayPassword))
{
CEFBrowser.SimulateInputChar(host, c);
}