淘宝买手拍单 订单补发包裹。

This commit is contained in:
wule committed 2026-10-05 18:23:15 +08:00
1 parent d18460c83f
commit c11dda0341
13 files changed
+753 -188

No files matched your search

@@ -95,7 +95,8 @@
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtShopGoodsNameVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="店铺规格:"
@@ -106,7 +107,8 @@
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtShopSpecNameVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="店铺商品ID:"
@@ -117,7 +119,8 @@
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtShopGoodsIdVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="店铺SKUID:"
@@ -128,7 +131,8 @@
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtShopSkuIdVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="平台商品编码:"
@@ -139,7 +143,8 @@
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtSpuCodeVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="平台SKU编码:"
@@ -150,7 +155,8 @@
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtSkuCodeVal}" />
</wpf:TitleContent>
<Grid>
<Grid.ColumnDefinitions>
@@ -170,7 +176,8 @@
FontSize="15"
FontWeight="bold"
Foreground="Red"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtShopOrderItemCntVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="  总价:"
@@ -185,138 +192,171 @@
FontSize="15"
FontWeight="bold"
Foreground="Red"
Style="{StaticResource BaseRoundCornerTextBoxStyle}" />
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtShopOrderItemPriceVal}" />
</wpf:TitleContent>
</Grid>
<TextBlock
Margin="0,4,0,0"
FontSize="14"
FontWeight="Bold">
买手拍单信息:
</TextBlock>
<wpf:TitleContent
Title="商品标题:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyGoodsName"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyGoodsNameVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="规格名称:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuySkuName"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuySkuNameVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单商品ID:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyGoodsId"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyGoodsIdVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单SKUID:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuySkuId"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuySkuIdVal}" />
</wpf:TitleContent>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.04*" />
<ColumnDefinition Width="0.96*" />
</Grid.ColumnDefinitions>
<wpf:SpacingStackPanel
Grid.Row="0"
Margin="0"
Orientation="Vertical"
VerticalSpacing="4"
Visibility="{Binding BuyInfoVisivility}">
<TextBlock
Margin="0,4,0,0"
FontSize="14"
FontWeight="Bold">
买手拍单信息:
</TextBlock>
<wpf:TitleContent
Title="拍单数量:"
Grid.Column="0"
Title="商品标题:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyCnt"
Height="22"
x:Name="txtBuyGoodsName"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
FontSize="15"
FontWeight="bold"
Foreground="Red"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyCntVal}" />
Text="{Binding txtBuyGoodsNameVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单总价:"
Grid.Column="1"
Margin="10,0,0,0"
TitleHorizontalAlignment="Right">
Title="规格名称:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyPrice"
Height="22"
x:Name="txtBuySkuName"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
FontSize="15"
FontWeight="bold"
Foreground="Red"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyPriceVal}" />
Text="{Binding txtBuySkuNameVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单商品ID:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyGoodsId"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyGoodsIdVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单SKUID:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuySkuId"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuySkuIdVal}" />
</wpf:TitleContent>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.04*" />
<ColumnDefinition Width="0.96*" />
</Grid.ColumnDefinitions>
<wpf:TitleContent
Title="拍单数量:"
Grid.Column="0"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyCnt"
Height="22"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
FontSize="15"
FontWeight="bold"
Foreground="Red"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyCntVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单总价:"
Grid.Column="1"
Margin="10,0,0,0"
TitleHorizontalAlignment="Right">
<TextBox
x:Name="txtBuyPrice"
Height="22"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
FontSize="15"
FontWeight="bold"
Foreground="Red"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyPriceVal}" />
</wpf:TitleContent>
</Grid>
<wpf:TitleContent
Title="拍单订单号:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyOrderId"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyOrderIdVal}" />
</wpf:TitleContent>
</Grid>
<wpf:TitleContent
Title="拍单订单号:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyOrderId"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyOrderIdVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="溯源码:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtSourceCode"
Height="20"
Background="#DDDDDD"
BorderBrush="#999999"
IsEnabled="False"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtSourceCodeVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="溯源码:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtSourceCode"
Height="20"
Background="#DDDDDD"
BorderBrush="#999999"
IsEnabled="False"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtSourceCodeVal}" />
</wpf:TitleContent>
<wpf:TitleContent
Title="拍单订单号:"
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<TextBox
x:Name="txtBuyTransitWarehouse"
Height="20"
BorderBrush="{StaticResource pageColorBrush}"
BorderThickness="1"
Style="{StaticResource BaseRoundCornerTextBoxStyle}"
Text="{Binding txtBuyTransitWarehouseVal}" />
</wpf:TitleContent>
<Grid>
<Button
x:Name="btnReMap"
Grid.Column="1"
Height="20"
MinWidth="48"
Margin="0"
Padding="4,0"
HorizontalAlignment="Left"
Command="{Binding ReMapCommand}"
Content="重新关联商品"
FontSize="12"
Style="{StaticResource BaseButtonLightStyle}" />
</Grid>
</wpf:SpacingStackPanel>
</wpf:SpacingStackPanel>
<wpf:SpacingStackPanel
Grid.Row="2"
Margin="4"
Orientation="Vertical"
VerticalSpacing="4">
VerticalSpacing="4"
Visibility="{Binding MapInfoVisivility}">
<TextBlock
Margin="0,4,0,0"
FontSize="14"
@@ -407,11 +447,31 @@
x:Name="cmbTransitWarehouse"
Height="22"
SelectedIndex="0"
SelectedValue="{Binding cmbTransitWarehouseVal}"
SelectionChanged="cmbTransitWarehouse_SelectionChanged"
Style="{StaticResource RoundedComboBox}">
<ComboBoxItem Content="仓库地址" />
<!--<ComboBoxItem Content="仓库地址" />-->
</ComboBox>
</wpf:TitleContent>
<wpf:TitleContent
Title=""
TitleHorizontalAlignment="Right"
TitleWidth="{Binding ElementName=tcShopGoodsName, Path=TitleWidth}">
<Button
x:Name="btnManualUpdateTransitWarehouse"
Grid.Column="1"
Height="20"
MinWidth="48"
Margin="0"
Padding="4,0"
HorizontalAlignment="Right"
Command="{Binding UpdateTransitWarehouseCommand}"
Content="确认商品关联"
FontSize="12"
Style="{StaticResource BasePageButtonStyle}" />
</wpf:TitleContent>
</wpf:SpacingStackPanel>
</Grid>
</Grid>
@@ -31,6 +31,11 @@ public partial class TaobaoBuyOrderCtrl : UserControl
{
InitializeComponent();
foreach (var warehouse in TransitWarehouseData.TransitWarehouseList)
{
this.cmbTransitWarehouse.Items.Add(warehouse.TransName + " " + warehouse.TransDetailAddress);
}
ViewModel = new TaobaoBuyOrderViewModel(buyerInfo, orderItemInfo);
ViewModel.BrowserCreated += ViewModel_BrowserCreated;
ViewModel.RequestClose += ViewModel_RequestClose;
@@ -1,3 +1,4 @@
using _29WxOrderWpf.BaseWindows;
using _29WxOrderWpf.CefHelper;
using _29WxOrderWpf.Commands;
using _29WxOrderWpf.ViewModels;
@@ -14,6 +15,7 @@ using Newtonsoft.Json.Linq;
using Org.BouncyCastle.Asn1.Ocsp;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Security.Policy;
using System.Text;
@@ -25,6 +27,7 @@ using TemuKJD.ToolForms;
using Work;
using Work._29Tools.BLL;
using Work._29Tools.CefTools;
using Work.BaseForms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using static WPFCommon.Interop.InteropValues;
@@ -56,11 +59,38 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
private oms_wei_order_item_info orderItem = null;
WXBuyMapSkusInfo buymapSkuInfo = null;
WXBuyMapInfo buyMapInfo = null;
pddFrontGoods3Lite pddFrontGoodsLite = null;
/// <summary>
/// 直发direct 中转transit
/// </summary>
public string BuyType { get; set; } = "transit";
public TransitWarehouseParam transitWarehouse { get; set; }
/// <summary>
/// 异常重拍的原中转仓订单信息
/// </summary>
public oms_wei_external_procurement_log_info AbnormalTransitWarehouseOrderInfo { get; set; } = null;
private string currentUrl = "";
private volatile bool _isWindowLoaded = false;
#region 界面绑定属性
public bool Enabled
{
get { return this.GetValue(x => x.Enabled); }
set { this.SetValue(x => x.Enabled, value); }
}
public Visibility BuyInfoVisivility
{
get { return this.GetValue(x => x.BuyInfoVisivility); }
set { this.SetValue(x => x.BuyInfoVisivility, value); }
}
public Visibility MapInfoVisivility
{
get { return this.GetValue(x => x.MapInfoVisivility); }
set { this.SetValue(x => x.MapInfoVisivility, value); }
}
/// <summary>用户名</summary>
public string UserName
{
@@ -82,6 +112,48 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
set { this.SetValue(x => x.Address, value); }
}
public string txtShopGoodsNameVal
{
get { return this.GetValue(x => x.txtShopGoodsNameVal); }
set { this.SetValue(x => x.txtShopGoodsNameVal, value); }
}
public string txtShopSpecNameVal
{
get { return this.GetValue(x => x.txtShopSpecNameVal); }
set { this.SetValue(x => x.txtShopSpecNameVal, value); }
}
public string txtShopGoodsIdVal
{
get { return this.GetValue(x => x.txtShopGoodsIdVal); }
set { this.SetValue(x => x.txtShopGoodsIdVal, value); }
}
public string txtShopSkuIdVal
{
get { return this.GetValue(x => x.txtShopSkuIdVal); }
set { this.SetValue(x => x.txtShopSkuIdVal, value); }
}
public string txtSpuCodeVal
{
get { return this.GetValue(x => x.txtSpuCodeVal); }
set { this.SetValue(x => x.txtSpuCodeVal, value); }
}
public string txtSkuCodeVal
{
get { return this.GetValue(x => x.txtSkuCodeVal); }
set { this.SetValue(x => x.txtSkuCodeVal, value); }
}
public string txtShopOrderItemCntVal
{
get { return this.GetValue(x => x.txtShopOrderItemCntVal); }
set { this.SetValue(x => x.txtShopOrderItemCntVal, value); }
}
public string txtShopOrderItemPriceVal
{
get { return this.GetValue(x => x.txtShopOrderItemPriceVal); }
set { this.SetValue(x => x.txtShopOrderItemPriceVal, value); }
}
/// <summary>拍单商品Id</summary>
public string txtBuyGoodsIdVal
{
@@ -118,6 +190,24 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
get { return this.GetValue(x => x.txtBuyPriceVal); }
set { this.SetValue(x => x.txtBuyPriceVal, value); }
}
public string txtBuyOrderIdVal
{
get { return this.GetValue(x => x.txtBuyOrderIdVal); }
set { this.SetValue(x => x.txtBuyOrderIdVal, value); }
}
public string txtSourceCodeVal
{
get { return this.GetValue(x => x.txtSourceCodeVal); }
set { this.SetValue(x => x.txtSourceCodeVal, value); }
}
/// <summary>
/// 中专仓地址
/// </summary>
public string txtBuyTransitWarehouseVal
{
get { return this.GetValue(x => x.txtBuyTransitWarehouseVal); }
set { this.SetValue(x => x.txtBuyTransitWarehouseVal, value); }
}
/// <summary>关联商品名称</summary>
public string txtMapGoodsNameVal
@@ -164,6 +254,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
public ICommand CopyUserNameCommand { get; }
public ICommand CopyPasswordCommand { get; }
public ICommand UpdateTransitWarehouseCommand { get; }
#endregion
public TaobaoBuyOrderViewModel(BuyerLoginInfo buyerInfo, oms_wei_order_item_info orderItemInfo)
@@ -180,6 +272,28 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
StopCommand = new DelegateCommand(StopButton);
CopyUserNameCommand = new DelegateCommand(CopyUserName);
CopyPasswordCommand = new DelegateCommand(CopyPassword);
UpdateTransitWarehouseCommand = new DelegateCommand(UpdateTransitWarehouse);
this.txtShopSkuIdVal = orderItem.sku_id;
this.txtShopGoodsIdVal = orderItem.product_id;
this.txtSpuCodeVal = orderItem.out_product_id.IsNullOrEmpty() ? orderItem.product_id : orderItem.out_product_id;
this.txtSkuCodeVal = orderItem.out_sku_id.IsNullOrEmpty() ? orderItem.sku_attr_str : orderItem.out_sku_id;
this.txtShopGoodsNameVal = orderItem.title;
this.txtShopSpecNameVal = orderItem.sku_attr_str;
this.txtShopOrderItemCntVal = orderItem.sku_cnt.ParseToString();
this.txtShopOrderItemPriceVal = (orderItem.real_price * 0.01m + orderItem.ItemOrder?.postage_price * 0.01m / orderItem.ItemOrder?.orderItems?.Count).ParseToString();
this.buyMapInfo = orderItem.TbBuyMap;
if (buyMapInfo != null)
{
BuyInfoVisivility = Visibility.Visible;
MapInfoVisivility = Visibility.Collapsed;
}
else
{
BuyInfoVisivility = Visibility.Collapsed;
MapInfoVisivility = Visibility.Visible;
}
}
/// <summary>
@@ -191,7 +305,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (CloseAfterSecond > 0)
{
Task.Run(() =>
_ = Task.Run(() =>
{
Thread.Sleep(1000 * CloseAfterSecond);
if (_isWindowLoaded)
@@ -204,7 +318,50 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
});
}
await AutoLogin();
if (buyMapInfo != null)
{
this.txtMapGoodsNameVal = buyMapInfo.map_goods_name;
this.txtMapSkuNameVal = buyMapInfo.map_spec_name;
this.txtMapGoodsIdVal = buyMapInfo.map_goods_id;
this.txtMapSkuIdVal = buyMapInfo.map_sku_id;
this.txtSendProvinceVal = buyMapInfo.map_send_address;
this.transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == buyMapInfo.transit_warehouse_id);
// 异常单重新拍单
if (AbnormalTransitWarehouseOrderInfo != null)
{
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == AbnormalTransitWarehouseOrderInfo.platform);
}
if (transitWarehouse != null && this.BuyType == "transit")
{
cmbTransitWarehouseVal = transitWarehouse?.TransName + " " + transitWarehouse?.TransDetailAddress;
txtBuyTransitWarehouseVal = transitWarehouse?.TransDetailAddress;
}
else
{
txtBuyTransitWarehouseVal = orderItem.ItemOrder.AddressStr;
}
}
var transit = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransDetailAddress == txtBuyTransitWarehouseVal);
if (AbnormalTransitWarehouseOrderInfo != null)
{
txtSourceCodeVal = AbnormalTransitWarehouseOrderInfo.random_code;
}
else if (buyMapInfo != null && transit != null)
{
var sourceCodeRst = GetSourceCode(transit);
if (sourceCodeRst.Contains("失败"))
{
CefWebBrowser.Visibility = Visibility.Collapsed;
BaseMsgWindow.ShowError(sourceCodeRst);
return;
}
}
await AutoSearchGoods();
}
/// <summary>
@@ -218,7 +375,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
/// <summary>
/// 自动登录店铺后台
/// </summary>
private async Task AutoLogin()
private async Task AutoSearchGoods()
{
if (buyer == null)
return;
@@ -490,7 +647,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
this.buymapSkuInfo = new WXBuyMapSkusInfo()
{
source_platform = "tb",
platform = "tb",
map_goods_id = BaseRegex.GetStringJson(ref loaderData, "itemId"),
map_goods_name = BaseRegex.GetStringJson(ref goodsItemStr, "title"),
map_url = "929536442189",
@@ -534,8 +691,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
var oneGoodsPrice = sku.oldGroupPrice.ParseToInt();
var buyCnt = orderItem.sku_cnt;
var buyPrice = oneGoodsPrice * buyCnt;
var orderSn = "";
// 自动填写关联信息界面
this.txtMapGoodsIdVal = goodsId.ParseToString();
@@ -586,6 +741,214 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (this.currentUrl != buyerLoginUrl)
this.CefWebBrowser?.Load(buyerLoginUrl);
}
private string GetSourceCode(TransitWarehouseParam transit)
{
JObject body = new JObject();
body["province"] = transit.province_name;
body["city"] = transit.city_name;
body["warehouseCode"] = transit.TransId;
body["matchType"] = 1;
var url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/getRandomTraceCode";
var dataStr = JsonHelper.SerializeObject(body);
var sourceCodeRst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
var randomCode = BaseRegex.GetStringXml(ref sourceCodeRst, "randomCode");
if (!string.IsNullOrEmpty(randomCode))
{
txtSourceCodeVal = randomCode;
return randomCode;
}
else
{
return "获取失败,请关闭拍单窗口重试 " + BaseRegex.GetStringXml(ref sourceCodeRst, "msg", sourceCodeRst);
}
}
private async void UpdateTransitWarehouse()
{
var sendProvince = txtSendProvinceVal;
if (transitWarehouse == null && !cmbTransitWarehouseVal.IsNullOrEmpty())
{
transitWarehouse = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransName + " " + t.TransDetailAddress == cmbTransitWarehouseVal.ParseToString());
}
if (transitWarehouse == null)
{
BaseMsgWindow.ShowError("仓库不能为空");
return;
}
this.pddFrontGoodsLite = JsonHelper.DeserializeJsonToObject<pddFrontGoods3Lite>(buymapSkuInfo?.map_skus);
// 通过map反查商品,淘宝暂时不需要
//if ((this.pddFrontGoodsLite?.goodsId).IsNullOrZero() || (this.pddFrontGoodsLite?.mallId).IsNullOrZero())
//{
// await Task.Run(() =>
// {
// var jsStr = "document.getElementById('orderGoodsBlock').getElementsByTagName('div')[0].click();";
// var host = CefWebBrowser.GetBrowser().GetHost();
// var client = CefWebBrowser.GetDevToolsClient();
// var ts1 = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
// ts1.Wait(500);
// for (int i = 0; i < 80; i++)
// {
// if (!(this.pddFrontGoodsLite?.mallId).IsNullOrZero())
// break;
// Thread.Sleep(100);
// }
// });
//}
this.Enabled = false;
if (!this.CefWebBrowser.Address.StartsWith("https://mobile.yangkeduo.com/order.html?order_sn=") && (this.pddFrontGoodsLite?.goodsId).ParseToString() == txtMapGoodsIdVal.Trim())
{
}
string url;
string upSpuCode = txtSpuCodeVal.Trim();
string upSkuCode = txtSkuCodeVal.Trim();
// 保存sku及商品关联信息
var data = UserLogin.GetSignaturex()
+ "&spu_code=" + GetHtml.UrlEncodeUtf8(upSpuCode)
+ "&sku_code=" + GetHtml.UrlEncodeUtf8(upSkuCode)
+ "&main_user_name=" + BaseClass.MainUserName
+ "&map_goods_name=" + txtMapGoodsNameVal.Trim()
+ "&map_spec_name=" + txtMapSkuNameVal.Trim()
+ "&map_goods_id=" + txtMapGoodsIdVal.Trim()
+ "&map_sku_id=" + txtMapSkuIdVal.Trim()
+ "&map_send_address=" + sendProvince
+ "&transit_warehouse_id=" + transitWarehouse?.TransId;
// 关联平台为淘宝
data += "&platform=tb";
if (!(this.pddFrontGoodsLite?.mallId).IsNullOrZero() && this.pddFrontGoodsLite.goodsId.ParseToString() == txtMapGoodsIdVal.Trim())
{
// 保存商品关联信息
data += "&map_skus=" + GetHtml.UrlEncodeUtf8(JsonHelper.SerializeObject(pddFrontGoodsLite));
url = BaseClass.Build29WxObjString("order/wx_add_mdy_buy_prod_map_skus");
var skusRst = await GetHtml.PostUtf8Async(url, data);
if (!skusRst.Contains("\"code\":200"))
skusRst = await GetHtml.PostUtf8Async(url, data);
// 存完立即读取
//wx_get_buy_pord_map_skus
var dataTest = UserLogin.GetSignaturex() + "&spu_codes=" + GetHtml.UrlEncodeUtf8(upSpuCode);
dataTest += "&main_user_name=" + BaseClass.MainUserName;
url = BaseClass.Build29WxObjString("order/wx_get_buy_pord_map_skus");
var resultSkusMap = await GetHtml.PostUtf8Async(url, dataTest);
if (string.IsNullOrEmpty(resultSkusMap) || !resultSkusMap.Contains("\"code\":200"))
{
resultSkusMap = await GetHtml.PostUtf8Async(url, dataTest);
}
if (string.IsNullOrEmpty(resultSkusMap) || !resultSkusMap.Contains("\"code\":200"))
{
}
else
{
List<WXBuyMapSkusInfo> buyMapSkuList = new List<WXBuyMapSkusInfo>();
try
{
buyMapSkuList = JsonHelper.DeserializeJsonToList<WXBuyMapSkusInfo>(JObject.Parse(resultSkusMap)["data"].ParseToString());
GlobalConfig.BuyMapSkusList.RemoveAll(b => buyMapSkuList.Any(map => b.spu_code == map.spu_code));
GlobalConfig.BuyMapSkusList.AddRange(buyMapSkuList);
foreach (var order in GlobalConfig.lstOrder)
{
if (order.IsWaitBuy)
{
foreach (var item in order.orderItems)
{
if (item.out_product_id == upSpuCode || item.product_id == upSpuCode)
{
item.PddBuyMapSkus = buyMapSkuList.Where(s => s.platform == "pdd").ToList();
item.TbBuyMapSkus = buyMapSkuList.Where(s => s.platform == "tb").ToList();
//if (filterOrderAction != null)
//{
// item.SetOrderItemTextProperty();
// filterOrderAction(order, false);
//}
}
}
}
}
}
catch
{
}
}
}
url = BaseClass.Build29WxObjString("order/wx_add_mdy_buy_prod_map");
var result = await GetHtml.PostUtf8Async(url, data);
if (!result.Contains("\"code\":200"))
result = await GetHtml.PostUtf8Async(url, data);
if (!result.Contains("\"code\":200"))
{
this.Enabled = true;
BaseMsgWindow.ShowError("保存失败" + BaseRegex.GetStringJson(ref result, "msg") + ",请稍后重试");
}
else
{
var urlMap = BaseClass.Build29WxObjString("order/wx_get_buy_prod_map");
var dataMap = UserLogin.GetSignaturex()
+ "&spu_codes=" + upSpuCode;
//dataMap += "&sku_codes=" + upSkuCode;
dataMap += "&main_user_name=" + BaseClass.MainUserName;
var resultMap = await GetHtml.PostUtf8Async(urlMap, dataMap);
if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
resultMap = await GetHtml.PostUtf8Async(urlMap, dataMap);
if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
{
}
else
{
List<WXBuyMapInfo> buyMapList = new List<WXBuyMapInfo>();
try
{
buyMapList = JsonHelper.DeserializeJsonToList<WXBuyMapInfo>(JObject.Parse(resultMap)["data"].ParseToString());
GlobalConfig.BuyMapList.RemoveAll(b => buyMapList.Any(map => b.spu_code == map.spu_code && b.sku_code == map.sku_code));
GlobalConfig.BuyMapList.AddRange(buyMapList);
}
catch
{
}
var tbBuyMap = buyMapList.FirstOrDefault(b => b.spu_code == upSpuCode && b.sku_code == upSkuCode && b.platform == "tb");
if (tbBuyMap != null)
{
foreach (var order in GlobalConfig.lstOrder)
{
if (order.IsWaitBuy)
{
foreach (var item in order.orderItems)
{
if ((item.out_product_id == tbBuyMap.spu_code && item.out_sku_id == tbBuyMap.sku_code) ||
(item.out_product_id == tbBuyMap.spu_code && item.sku_attr_str == tbBuyMap.sku_code) ||
(item.product_id == tbBuyMap.spu_code && item.out_sku_id == tbBuyMap.sku_code) ||
(item.product_id == tbBuyMap.spu_code && item.sku_attr_str == tbBuyMap.sku_code))
{
item.TbBuyMap = tbBuyMap;
item.SetOrderItemTextProperty();
MainWindow.Instance.orderListCtrl.FilterOneOrder(order, false);
}
}
}
}
}
}
BaseMsgWindow.ShowInfo("保存成功!");
if (_isWindowLoaded)
{
Application.Current?.Dispatcher.Invoke(new Action(() =>
{
if (_isWindowLoaded)
RequestClose?.Invoke();
}));
}
}
}
}
public class TaoBaoSku2Info
@@ -349,15 +349,32 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
// 关联拍单关系 // 危险物品禁止拍单,仅关联安全商品
//if (!GlobalConfig.lstDangerItemWord.Any(d => (item.title).ParseToString().Contains(d)))
{
item.PddBuyMap = buyMapList.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.out_product_id);
var pddBuyMapLst = buyMapList.Where(m => m.platform == "pdd").ToList();
item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.out_product_id);
if (item.PddBuyMap == null)
item.PddBuyMap = buyMapList.FirstOrDefault(b => b.sku_code == item.sku_attr_str && b.spu_code == item.out_product_id);
item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.sku_attr_str && b.spu_code == item.out_product_id);
if (item.PddBuyMap == null)
item.PddBuyMap = buyMapList.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.product_id);
item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.product_id);
if (item.PddBuyMap == null)
item.PddBuyMap = buyMapList.FirstOrDefault(b => b.sku_code == item.sku_attr_str && b.spu_code == item.product_id);
item.PddBuyMap = pddBuyMapLst.FirstOrDefault(b => b.sku_code == item.sku_attr_str && b.spu_code == item.product_id);
}
item.PddBuyMapSkus = buyMapSkusList.Where(s => s.spu_code == item.out_product_id || s.spu_code == item.product_id).OrderByDescending(s => s.mdy_time).ToList();
item.PddBuyMapSkus = buyMapSkusList.Where(s => s.spu_code == item.out_product_id || s.spu_code == item.product_id).OrderByDescending(s => s.mdy_time)
.Where(s => s.platform == "pdd").ToList();
{
var tbBuyMapLst = buyMapList.Where(m => m.platform == "tb").ToList();
item.TbBuyMap = tbBuyMapLst.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.out_product_id);
if (item.TbBuyMap == null)
item.TbBuyMap = tbBuyMapLst.FirstOrDefault(b => b.sku_code == item.sku_attr_str && b.spu_code == item.out_product_id);
if (item.TbBuyMap == null)
item.TbBuyMap = tbBuyMapLst.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.product_id);
if (item.TbBuyMap == null)
item.TbBuyMap = tbBuyMapLst.FirstOrDefault(b => b.sku_code == item.sku_attr_str && b.spu_code == item.product_id);
}
item.TbBuyMapSkus = buyMapSkusList.Where(s => s.spu_code == item.out_product_id || s.spu_code == item.product_id).OrderByDescending(s => s.mdy_time)
.Where(s => s.platform == "tb").ToList();
// 中转仓订单
if (item.ItemOrder.orderItems.Count > 1)
@@ -846,6 +863,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
var buyMapList = JsonHelper.DeserializeJsonToList<WXBuyMapInfo>(JObject.Parse(resultMap)["data"].ParseToString());
buyMapList = buyMapList.Where(b => !GlobalConfig.BuyMapList.Any(m => m.sku_code == b.sku_code && m.spu_code == b.spu_code)).ToList();
GlobalConfig.BuyMapList.AddRange(buyMapList);
if (buyMapList.Count > 0)
{
}
}
catch
{
@@ -1484,7 +1484,8 @@
HorizontalAlignment="Center"
d:Visibility="Visible"
Click="btnChangeWaybill_Click"
Content="修改物流"
Content="补发/修改物流"
FontSize="11"
Style="{StaticResource BasePageButtonLightStyle}"
Visibility="{Binding ItemOrder.IsShowChangeWaybillBtn, Converter={StaticResource VisibleToVisibilityConverter}}" />
<Button
@@ -524,7 +524,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
public static void TbBuyOrder(oms_wei_order_item_info orderItem, bool isAbnormalOrder, bool isAutoBuy)
{
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
taobaoBuyView.ViewModel.InitUrl = "https://s.taobao.com/search?";
//https://item.taobao.com/item.htm?id=756295486950&skuId=5216824841295
if (orderItem.TbBuyMap != null)
taobaoBuyView.ViewModel.InitUrl = "https://item.taobao.com/item.htm?id=" + orderItem.TbBuyMap.map_goods_id + "&skuId=" + orderItem.TbBuyMap.map_sku_id;
else
taobaoBuyView.ViewModel.InitUrl = "https://s.taobao.com/search?";
new DialogWindow()
{
Title = "淘宝买手登录",
@@ -1781,7 +1785,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (DataContext is oms_wei_order_item_info orderItem && orderItem.ItemOrder != null)
{
ChangeWaybillView changeWaybillView = new ChangeWaybillView(orderItem.ItemOrder);
ChangeWaybillView changeWaybillView = new ChangeWaybillView(orderItem);
new DialogWindow()
{
Title = "修改订单物流",
@@ -8,6 +8,7 @@ using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -26,16 +27,22 @@ namespace _29WxOrderWpf.ViewModels
/// </summary>
public class ChangeWaybillViewModel : PropertyNotifyObject
{
public oms_wei_order_info Order
public oms_wei_order_item_info OrderItem
{
get { return this.GetValue(x => x.Order); }
set { this.SetValue(x => x.Order, value); }
get { return this.GetValue(x => x.OrderItem); }
set { this.SetValue(x => x.OrderItem, value); }
}
public string WaybillId
{
get { return this.GetValue(x => x.WaybillId); }
set { this.SetValue(x => x.WaybillId, value); }
}
public string CompensationWaybillId
{
get { return this.GetValue(x => x.CompensationWaybillId); }
set { this.SetValue(x => x.CompensationWaybillId, value); }
}
public bool IsChangeingWaybill
{
get { return this.GetValue(x => x.IsChangeingWaybill); }
@@ -55,16 +62,18 @@ namespace _29WxOrderWpf.ViewModels
#region 命令
public ICommand ChangeWaybillCommand { get; }
public ICommand SendCompensationDeliveryCommand { get; }
#endregion
private volatile bool _isWindowLoaded = false;
public ChangeWaybillViewModel(oms_wei_order_info _order)
public ChangeWaybillViewModel(oms_wei_order_item_info _orderItem)
{
Order = _order;
OrderItem = _orderItem;
//IsChangeingWaybill = true;
ChangeWaybillCommand = new DelegateCommand(ChangeWaybill);
SendCompensationDeliveryCommand = new DelegateCommand(SendCompensationDelivery);
}
/// <summary>
@@ -85,8 +94,8 @@ namespace _29WxOrderWpf.ViewModels
public void ChangeWaybill()
{
ChangeWaybillSuccess = false;
string orderId = Order.order_id;
ShopLoginInfo shop = Order.Shop;
string orderId = OrderItem.order_id;
ShopLoginInfo shop = OrderItem?.ItemOrder?.Shop;
Task.Run(async () =>
{
// 查询订单是否在代发货中,如果代发需要取消代发
@@ -99,7 +108,7 @@ namespace _29WxOrderWpf.ViewModels
if (apiSearchDropship.Contains("ds_order_id_list") && !apiSearchDropship.Contains("\"ds_order_id_list\":[]"))
{
var dsOrderId = JsonHelper.JObjectParse(apiSearchDropship)["ds_order_id_list"].FirstOrDefault().ParseToString();
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(shop, Order, dsOrderId);
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(shop, OrderItem?.ItemOrder, dsOrderId);
if (!apiCancelDropship.Contains("\"errcode\":0"))
{
@@ -125,6 +134,7 @@ namespace _29WxOrderWpf.ViewModels
// 待发货暂不处理
//{"orderId":"3736580679658008320","deliveryProduct":{"deliveryId":"YUNDA","waybillId":"313023381086999","isAllProduct":true,"deliverType":1}}
//{"code":0,"errcode":0,"errmsg":"ok"}
rst = WxSimOrderSendBLL.orderSendOut(shop, orderId, WaybillId);
if (!rst.Contains("\"code\":0"))
{
@@ -136,10 +146,10 @@ namespace _29WxOrderWpf.ViewModels
var url = BaseClass.Build29WxObjString("order/wx_update_erp_soft_remark");
var data = UserLogin.GetSignaturex();
if (!Order.soft_remark.ParseToString().Contains("已修改物流"))
Order.soft_remark = ("已修改物流 " + Order.soft_remark).Trim();
data += "&order_id=" + Order.order_id;
data += "&soft_remark=" + Order.soft_remark;
if (OrderItem?.ItemOrder != null && !(OrderItem?.ItemOrder?.soft_remark).ParseToString().Contains("已修改物流"))
OrderItem.ItemOrder.soft_remark = ("已修改物流 " + OrderItem.ItemOrder.soft_remark).Trim();
data += "&order_id=" + OrderItem?.ItemOrder?.order_id;
data += "&soft_remark=" + OrderItem?.ItemOrder?.soft_remark;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
@@ -154,6 +164,7 @@ namespace _29WxOrderWpf.ViewModels
}
else
{
//{"orderId":"3736580679658008320","changeInfo":[{"old":{"deliveryId":"YUNDA","waybillId":"313023381086999","productInfos":[{"productId":"10000875072190","skuId":"15516018429","productCnt":1}]},"new":{"deliveryId":"OTHER","waybillId":"772064082455686","productInfos":[{"productId":"10000875072190","skuId":"15516018429","productCnt":1}]}}]}
//{"code":0,"errcode":0,"errmsg":""}
var orderExpressInfoObj = JsonHelper.JObjectParse(rst)["orderDetail"]["expressInfo"];
@@ -196,10 +207,10 @@ namespace _29WxOrderWpf.ViewModels
var url = BaseClass.Build29WxObjString("order/wx_update_erp_soft_remark");
var data = UserLogin.GetSignaturex();
if (!Order.soft_remark.ParseToString().Contains("已修改物流"))
Order.soft_remark = ("已修改物流 " + Order.soft_remark).Trim();
data += "&order_id=" + Order.order_id;
data += "&soft_remark=" + Order.soft_remark;
if (OrderItem?.ItemOrder != null && !OrderItem.ItemOrder.soft_remark.ParseToString().Contains("已修改物流"))
OrderItem.ItemOrder.soft_remark = ("已修改物流 " + OrderItem.ItemOrder.soft_remark).Trim();
data += "&order_id=" + OrderItem?.ItemOrder?.order_id;
data += "&soft_remark=" + OrderItem?.ItemOrder?.soft_remark;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
@@ -214,5 +225,41 @@ namespace _29WxOrderWpf.ViewModels
}
});
}
public void SendCompensationDelivery()
{
var orderId = OrderItem.order_id;
var shop = OrderItem?.ItemOrder?.Shop;
// 模拟接口补发
//rst = WxSimOrderSendBLL.orderCompensationDelivery(shop, orderId, "ZTO", WaybillId, OrderItem.product_id, OrderItem.sku_id, OrderItem.sku_cnt.ParseToInt());
var rst = WxSimOrderSendBLL.orderCompensationDelivery(shop, orderId, "OTHER", CompensationWaybillId, OrderItem.product_id, OrderItem.sku_id, OrderItem.sku_cnt.ParseToInt());
var url = BaseClass.Build29WxObjString("order/wx_update_erp_soft_remark");
var data = UserLogin.GetSignaturex();
if (OrderItem?.ItemOrder != null && !OrderItem.ItemOrder.soft_remark.ParseToString().Contains("已补发包裹"))
OrderItem.ItemOrder.soft_remark = ("已补发包裹 " + OrderItem.ItemOrder.soft_remark).Trim();
data += "&order_id=" + OrderItem?.ItemOrder?.order_id;
data += "&soft_remark=" + OrderItem?.ItemOrder?.soft_remark;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
IsChangeingWaybill = false;
BaseMsgWindow.ShowError("订单补发失败 " + error);
return;
}
Application.Current?.Dispatcher.Invoke(new Action(() =>
{
ChangeWaybillSuccess = true;
IsChangeingWaybill = false;
BaseMsgWindow.ShowInfo("订单补发成功");
RequestClose?.Invoke();
}));
}
}
}
+79 -30
View File
@@ -7,19 +7,55 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Name="ChangeWaybillCtrl"
Width="450"
Height="300"
d:DesignHeight="300"
Height="350"
d:DesignHeight="350"
d:DesignWidth="450"
Loaded="ChangeWaybillView_Loaded"
mc:Ignorable="d">
<Grid Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Image
x:Name="imgLoading"
Width="20"
Height="20"
Margin="0,30,30,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
IsEnabled="False"
Source="{StaticResource imgLoadingPic}"
Visibility="{Binding IsChangeingWaybill, Converter={StaticResource visibleToVisibilityConverter}}">
<Image.RenderTransform>
<RotateTransform Angle="45" CenterX="10" CenterY="10" />
</Image.RenderTransform>
<Image.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
RepeatBehavior="Forever"
Storyboard.TargetName="imgLoading"
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"
From="360"
To="0"
Duration="0:0:3" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
<StackPanel Margin="24,24,24,0">
<TextBlock
Margin="0,0,0,20"
Margin="0,0,0,10"
HorizontalAlignment="Center"
FontSize="15"
Foreground="#333333"
Text="更改订单运单号" />
Text="更改运单号" />
<StackPanel>
<TextBlock
@@ -45,39 +81,52 @@
Command="{Binding ChangeWaybillCommand}"
Content="确定更改"
Style="{StaticResource BasePageButtonStyle}" />
<Image
x:Name="imgLoading"
Width="20"
Height="20"
IsEnabled="False"
Source="{StaticResource imgLoadingPic}"
Visibility="{Binding IsChangeingWaybill, Converter={StaticResource visibleToVisibilityConverter}}">
<Image.RenderTransform>
<RotateTransform Angle="45" CenterX="10" CenterY="10" />
</Image.RenderTransform>
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
RepeatBehavior="Forever"
Storyboard.TargetName="imgLoading"
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"
From="360"
To="0"
Duration="0:0:3" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
</WrapPanel>
</StackPanel>
</StackPanel>
<StackPanel Grid.Row="1" Margin="24,24,24,0">
<TextBlock
Margin="0,0,0,10"
HorizontalAlignment="Center"
FontSize="15"
Foreground="#333333"
Text="订单补寄" />
<StackPanel>
<TextBlock
Margin="0,0,0,8"
Foreground="#555555"
Text="填写补寄运单号:" />
<TextBox
x:Name="txtCompensationWaybillId"
Height="38"
VerticalContentAlignment="Center"
d:Text="1111"
BorderBrush="#D0D0D0"
BorderThickness="1"
FontSize="18"
Text="{Binding CompensationWaybillId, UpdateSourceTrigger=PropertyChanged}"
VerticalScrollBarVisibility="Auto" />
<WrapPanel Margin="0,10,0,0" FlowDirection="RightToLeft">
<Button
Width="64"
Height="26"
Margin="0,0,10,0"
HorizontalAlignment="Right"
Command="{Binding SendCompensationDeliveryCommand}"
Content="确定补寄"
Style="{StaticResource BasePageButtonStyle}" />
</WrapPanel>
<TextBlock
d:Text="textBlock"
Foreground="Red"
Text=""
TextWrapping="Wrap" />
</StackPanel>
</StackPanel>
</Grid>
</UserControl>
+3 -3
View File
@@ -28,11 +28,11 @@ public partial class ChangeWaybillView : UserControl
/// </summary>
public ChangeWaybillViewModel ViewModel { get; }
public ChangeWaybillView(oms_wei_order_info _order)
public ChangeWaybillView(oms_wei_order_item_info _orderItem)
{
InitializeComponent();
ViewModel = new ChangeWaybillViewModel(_order);
ViewModel = new ChangeWaybillViewModel(_orderItem);
ViewModel.RequestClose += ViewModel_RequestClose;
DataContext = ViewModel;
}
@@ -53,7 +53,7 @@ public partial class ChangeWaybillView : UserControl
if (this.IsLoaded && parentWindow != null)
parentWindow.Close();
MainWindow.Instance.orderListCtrl.FilterOneOrder(ViewModel.Order);
MainWindow.Instance.orderListCtrl.FilterOneOrder(ViewModel.OrderItem?.ItemOrder);
}
private void Button_Click(object sender, RoutedEventArgs e)
+2 -2
View File
@@ -32,7 +32,7 @@ namespace AllBase.Model.DBModel
public string transit_warehouse_id { get; set; }
public DateTime add_time { get; set; }
public DateTime mdy_time { get; set; }
public string source_platform { get; set; } = "pdd";
public string platform { get; set; } = "pdd";
}
public class WXBuyMapSkusInfo : PropertyNotifyObject
{
@@ -87,6 +87,6 @@ namespace AllBase.Model.DBModel
public string transit_warehouse_id { get; set; }
public DateTime add_time { get; set; }
public DateTime mdy_time { get; set; }
public string source_platform { get; set; } = "pdd";
public string platform { get; set; } = "pdd";
}
}
@@ -63,10 +63,7 @@ namespace AllBase.Model.DBModel
public List<WXBuyMapSkusInfo> TbBuyMapSkus
{
get { return this.GetValue(x => x.TbBuyMapSkus); }
set
{
this.SetValue(x => x.TbBuyMapSkus, value);
}
set { this.SetValue(x => x.TbBuyMapSkus, value); }
}
/// <summary>
+18
View File
@@ -40,5 +40,23 @@ namespace Work._29Tools.BLL
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
/// <summary>
/// 补发货接口
/// </summary>
/// <param name="shop"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public static string orderCompensationDelivery(ShopLoginInfo shop, string orderId, string deliveryId, string waybillId, string productId, string skuId, int productCnt)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/ship/cgi/compensationDelivery?token=&lang=zh_CN";
string referer = "https://store.weixin.qq.com/shop/order/list";
//string body = @"{""orderId"":""3736582240830642176"",""reason"":1,""deliveryProductInfo"":[{""deliveryId"":""EMS"",""waybillId"":""9822445565261"",""productInfos"":[{""productId"":""10000697373414"",""skuId"":""11709320615"",""productCnt"":1}]}]}";
string body = @"{""orderId"":""" + orderId + @""",""reason"":1,""deliveryProductInfo"":[{""deliveryId"":""" + deliveryId +
@""",""waybillId"":""" + waybillId + @""",""productInfos"":[{""productId"":""" + productId + @""",""skuId"":""" + skuId +
@""",""productCnt"":" + productCnt + @"}]}]}";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, referer);
return result;
}
}
}
+3 -3
View File
@@ -1118,8 +1118,8 @@ namespace TemuKJD.ToolForms
{
if (item.out_product_id == upSpuCode || item.product_id == upSpuCode)
{
item.PddBuyMapSkus = buyMapSkuList.Where(s => s.source_platform == "pdd").ToList();
item.PddBuyMapSkus = buyMapSkuList.Where(s => s.source_platform == "pdd").ToList();
item.PddBuyMapSkus = buyMapSkuList.Where(s => s.platform == "pdd").ToList();
item.TbBuyMapSkus = buyMapSkuList.Where(s => s.platform == "tb").ToList();
//if (filterOrderAction != null)
//{
@@ -1171,7 +1171,7 @@ namespace TemuKJD.ToolForms
catch
{
}
var pddBuyMap = buyMapList.FirstOrDefault(b => b.spu_code == upSpuCode && b.sku_code == upSkuCode && b.source_platform == "pdd");
var pddBuyMap = buyMapList.FirstOrDefault(b => b.spu_code == upSpuCode && b.sku_code == upSkuCode && b.platform == "pdd");
if (pddBuyMap != null)
{
foreach (var order in GlobalConfig.lstOrder)