商品优化功能,筛选功能优化

This commit is contained in:
wule committed 2026-08-28 19:05:00 +08:00
1 parent aeb30c1171
commit c70fa07d7d
15 files changed
+1600 -68

No files matched your search

@@ -622,7 +622,22 @@
<TabItem
MinWidth="60"
Header="待发货"
SizeChanged="TabItem_SizeChanged" />
SizeChanged="TabItem_SizeChanged">
<Border
Margin="4,0,4,4"
BorderBrush="#e0e0e0"
BorderThickness="0,0,0,1">
<CheckBox
x:Name="chkDirectSendFailed"
Margin="6,8"
HorizontalAlignment="Left"
VerticalAlignment="Center"
BorderBrush="{StaticResource mainColorBrush}"
Click="chkDirectSendFailed_Click"
Content="直拍发货失败"
FontSize="12" />
</Border>
</TabItem>
<TabItem
MinWidth="60"
Background="Transparent"
@@ -1014,17 +1029,37 @@
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
x:Name="btnBatchRefund2"
Grid.Column="1"
Height="20"
MinWidth="48"
Margin="6,6"
Padding="4,0"
Click="btnBatchRefund_Click"
Content="批量申请买手售后"
FontSize="12"
Style="{StaticResource BasePageButtonStyle}" />
<WrapPanel>
<Button
x:Name="btnBatchRefund2"
Grid.Column="1"
Height="20"
MinWidth="48"
Margin="6,6"
Padding="4,0"
Click="btnBatchRefund_Click"
Content="批量申请买手售后"
FontSize="12"
Style="{StaticResource BasePageButtonStyle}" />
<CheckBox
x:Name="chkShopIsRefund"
Grid.Column="0"
Margin="6,8"
VerticalAlignment="Center"
BorderBrush="{StaticResource mainColorBrush}"
Click="chkShopIsRefund_Click"
Content="店铺已退款"
FontSize="12" />
<CheckBox
x:Name="chkShopIsNotRefund"
Grid.Column="1"
Margin="6,8"
VerticalAlignment="Center"
BorderBrush="{StaticResource mainColorBrush}"
Click="chkShopIsRefund_Click"
Content="店铺未退款"
FontSize="12" />
</WrapPanel>
</Grid>
</Border>
</TabItem>
@@ -1450,15 +1450,25 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (chkNoMapProdOnly.IsChecked == true && order.orderItems.All(oi => oi.BuyMap != null))
return true;
}
if (filterHeadStr.StartsWith("待发货") && !order.IsWaitSend)
if (filterHeadStr.StartsWith("待发货"))
{
return true;
if (!order.IsWaitSend)
return true;
// 直拍发货失败
if (chkDirectSendFailed.IsChecked == true)
{
var rst2 = order.out_shipped == 2 && !string.IsNullOrEmpty(order.out_express_no);
if (!rst2)
return true;
}
}
if (filterHeadStr.StartsWith("待收货"))
{
if (!order.IsWaitReceive)
return true;
// 需核对物流
if (chkNeedCheckExpress.IsChecked == true)
{
var rst1 = order.orderItems.Any(oi => !oi.TransitRefundStatusStr.IsNullOrEmpty() && !oi.TransitRefundStatusStr.Contains("退款成功"));
@@ -1547,6 +1557,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (!order.IsEmergencyDistribReturnOrder)
return true;
// 退款完成(但买手没退)
if (chkShopIsRefund.IsChecked == true && order.DeliveryDeadlineStatusStr != "退款完成")
return true;
// 退款中
else if (chkShopIsNotRefund.IsChecked == true && (order.DeliveryDeadlineStatusStr != "退款中"))
return true;
}
if (filterHeadStr.StartsWith("售后完成单"))
{
@@ -2543,6 +2559,28 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
FilterOrders();
}
private void chkShopIsRefund_Click(object sender, RoutedEventArgs e)
{
if (sender is CheckBox chk)
{
var isCheck = !chk.IsChecked.ParseToBool();
chkShopIsRefund.IsChecked = chkShopIsNotRefund.IsChecked = false;
chk.IsChecked = !isCheck;
}
FilterOrders();
}
private void chkDirectSendFailed_Click(object sender, RoutedEventArgs e)
{
if (sender is CheckBox chk)
{
var isCheck = !chk.IsChecked.ParseToBool();
chkDirectSendFailed.IsChecked = false;
chk.IsChecked = !isCheck;
}
FilterOrders();
}
}
public class OrderFilterConfig : PropertyNotifyObject
@@ -66,9 +66,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
shop.Is29Supplier = false;
for (int i = 0; i < 100; i++)
{
var is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierListV2(shop);
var is29SupplierRst = WxSimOrderSupplierBLL.GetWxSupplierListV2(shop);
if (!is29SupplierRst.Contains("\"code\":0"))
is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierListV2(shop);
is29SupplierRst = WxSimOrderSupplierBLL.GetWxSupplierListV2(shop);
if (is29SupplierRst.Contains("\"code\":0") && is29SupplierRst.Contains("\"name\":\"29供货商\""))
{
shop.Is29Supplier = true;
@@ -159,47 +159,60 @@
TextWrapping="Wrap"
WaterMark="规格" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Margin="0,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="平台商品ID:" />
<uc:UcWaterMarkTextBox1
Grid.Row="4"
Grid.Column="1"
Margin="72,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="{Binding product_id}"
TextWrapping="Wrap"
WaterMark="平台商品ID" />
<WrapPanel Grid.Row="4">
<TextBox
Grid.Row="4"
Grid.Column="1"
Margin="0,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="平台商品ID:" />
<uc:UcWaterMarkTextBox1
Grid.Row="4"
Grid.Column="1"
Margin="-9,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="{Binding product_id}"
TextWrapping="Wrap"
WaterMark="平台商品ID" />
<Button
x:Name="btnOptimizeProduct"
MinWidth="48"
MinHeight="16"
Margin="2,0,0,0"
Padding="2,0"
Click="btnOptimizeProduct_Click"
Content="优化订单商品"
Style="{StaticResource BasePageButtonLightStyle}" />
</WrapPanel>
<WrapPanel Grid.Row="5">
<TextBox
Grid.Row="5"
Grid.Column="1"
Margin="0,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="系统商品ID:" />
<uc:UcWaterMarkTextBox1
Grid.Row="5"
Grid.Column="1"
Margin="-9,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="{Binding out_product_id}"
TextWrapping="Wrap"
WaterMark="系统商品ID" />
</WrapPanel>
<TextBox
Grid.Row="5"
Grid.Column="1"
Margin="0,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="系统商品ID:" />
<uc:UcWaterMarkTextBox1
Grid.Row="5"
Grid.Column="1"
Margin="72,2,4,2"
VerticalAlignment="Top"
Background="Transparent"
BorderThickness="0"
IsReadOnly="True"
Text="{Binding out_product_id}"
TextWrapping="Wrap"
WaterMark="系统商品ID" />
<TextBox
Grid.Row="6"
Grid.Column="1"
@@ -397,6 +397,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
// 拍单前查询账户余额
if (!isAbnormalOrder)
{
// 强制使用软件而非erp拍单
if (GlobalConfig.BuyConfig.IsUseAppBalance)
{
if (BaseClass.Balance < 10)
@@ -1564,6 +1565,25 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
});
}
}
private void btnOptimizeProduct_Click(object sender, RoutedEventArgs e)
{
if (this.DataContext is oms_wei_order_item_info orderItem)
{
WXOrderListOptimizeForm form = new WXOrderListOptimizeForm(orderItem.Shop);
form.lblOrderId.Text = orderItem.order_id;
form.lblSpuId.Text = orderItem.product_id;
form.lblSkuId.Text = orderItem.sku_id; // skuId
form.txtGoodsName.Text = orderItem.title; // 商品名称
form.txtSkuName.Text = orderItem.sku_attr_str; // sku规格名称
form.txtOrderPrice.Text = "" + (orderItem.real_price.ParseToInt() / 100m / orderItem.sku_cnt); // 订单价格
//form.txtCurrentPrice.Text = row.Cells["colCurrentPrice"].Value.ParseToString(); // 当前商品价格
//form.txtCurrentStock.Text = row.Cells["colCurrentStock"].Value.ParseToString(); // 当前库存;
form.numAddPrice.Value = 0;
form.ShowDialog();
}
}
}
}
+2 -2
View File
@@ -296,9 +296,9 @@ namespace _29WxOrderWpf
shop.Is29Supplier = false;
for (int i = 0; i < 100; i++)
{
var is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierListV2(shop);
var is29SupplierRst = WxSimOrderSupplierBLL.GetWxSupplierListV2(shop);
if (!is29SupplierRst.Contains("\"code\":0"))
is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierListV2(shop);
is29SupplierRst = WxSimOrderSupplierBLL.GetWxSupplierListV2(shop);
if (is29SupplierRst.Contains("\"code\":0") && is29SupplierRst.Contains("\"name\":\"29供货商\""))
{
shop.Is29Supplier = true;
+8 -2
View File
@@ -583,7 +583,7 @@ namespace AllBase.Model.DBModel
/// </summary>
public string supplier_remark_exception { get; set; }
/// <summary>
/// 礼物单状态,默认值0:不存在礼物单,1:礼物单已发货,2:礼物单信息已更正 3 礼物单发货失败
/// 礼物单状态,默认值0:不存在礼物单,1:礼物单已发货,2:礼物单信息已更正 3 礼物单发货失败 4 礼物单已购买但微信发货失败 5 礼物单发货中
/// </summary>
public int? gift_order_status
{
@@ -595,8 +595,12 @@ namespace AllBase.Model.DBModel
GiftOrderStatusStr = "礼品单已购买";
else if (value == 3)
GiftOrderStatusStr = "礼品单购买失败";
else if (value == 4)
GiftOrderStatusStr = "礼物单已购买但微信发货失败";
else if (value == 5)
GiftOrderStatusStr = "礼物单发货中";
else
GiftOrderStatusStr = "";
GiftOrderStatusStr = "礼品单状态错误";
return;
}
}
@@ -773,6 +777,8 @@ namespace AllBase.Model.DBModel
// 直发或者云改直已购买且未退货,从异常单移除
if (orderItems.All(oi => oi.DirectPddBuyerOrder != null && oi.DirectPddBuyerAfterSale == null) /*&& (out_shipped != 2 || string.IsNullOrEmpty(this.out_express_no))*/)
return false;
if (gift_order_status == 1 || gift_order_status == 2)
return false;
if (orderItems.Any(oi => !(oi.OrderItemExt?.abnormal_text).IsNullOrEmpty()))
return true;
+11 -1
View File
@@ -280,7 +280,8 @@
<Compile Include="_29Tools\BLL\HttpResponseYkdBLL.cs" />
<Compile Include="_29Tools\BLL\ShopBLL.cs" />
<Compile Include="_29Tools\BLL\WxApiBLL.cs" />
<Compile Include="_29Tools\BLL\WxOrderSupplierBLL.cs" />
<Compile Include="_29Tools\BLL\WxSimOrderSupplierBLL.cs" />
<Compile Include="_29Tools\BLL\WxSimProductBLL.cs" />
<Compile Include="_29Tools\CefTools\LocalCEFBrowser.cs" />
<Compile Include="_29Tools\CefTools\LocalCookieVisitor.cs" />
<Compile Include="_29Tools\CefTools\LocalRequestHandler.cs" />
@@ -299,6 +300,12 @@
<Compile Include="_29Tools\Forms\PddMobileLoginForm.designer.cs">
<DependentUpon>PddMobileLoginForm.cs</DependentUpon>
</Compile>
<Compile Include="_29Tools\Forms\ProductForms\WXOrderListOptimizeForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="_29Tools\Forms\ProductForms\WXOrderListOptimizeForm.Designer.cs">
<DependentUpon>WXOrderListOptimizeForm.cs</DependentUpon>
</Compile>
<Compile Include="_29Tools\Forms\ShopForms\WXShopLoginForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -398,6 +405,9 @@
<EmbeddedResource Include="_29Tools\Forms\PddMobileLoginForm.resx">
<DependentUpon>PddMobileLoginForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="_29Tools\Forms\ProductForms\WXOrderListOptimizeForm.resx">
<DependentUpon>WXOrderListOptimizeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="_29Tools\Forms\ShopForms\WXShopLoginForm.resx">
<DependentUpon>WXShopLoginForm.cs</DependentUpon>
</EmbeddedResource>
@@ -7,7 +7,7 @@ using AllBase.Model.DBModel;
namespace Work._29Tools.BLL
{
public static class WxOrderSupplierBLL
public static class WxSimOrderSupplierBLL
{
public static string GetWxSupplierList(ShopLoginInfo shop)
{
+109
View File
@@ -0,0 +1,109 @@
using AllBase;
using AllBase.Model.DBModel;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Work._29Tools.BLL
{
public class WxSimProductBLL
{
/// <summary>
/// 获取商品列表
/// </summary>
/// <param name="shop"></param>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <param name="prodIds"></param>
/// <param name="status"></param>
/// <param name="sortType"></param>
/// <returns></returns>
public static string searchProduct(ShopLoginInfo shop, int pageNum, int pageSize = 50, string prodIds = null, int status = 5, int? sortType = null)
{
//https://store.weixin.qq.com/shop-faas/mmchannelstradeproductcore/cgi/goods/searchProduct?token=&lang=zh_CN&pageSize=20&productStatus[]=-1&productSource=[1,16,32]&searchSource=1&useNew=true&pageNum=44&status[]=5&presaleType[]=1
//https://store.weixin.qq.com/shop-faas/mmchannelstradeproductcore/cgi/goods/searchProduct?token=&lang=zh_CN&pageSize=20&productStatus[]=-1&productSource=[1,16,32]&searchSource=1&useNew=true&pageNum=1&status[]=-1&spuId=1000080961530,10000802736449
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeproductcore/cgi/goods/searchProduct?token=&lang=zh_CN&" +
"pageSize=" + pageSize + "&productStatus[]=-1&productSource=[1,16,32]&searchSource=1&useNew=true&pageNum=" + pageNum + "&status[]=" + status;
if (prodIds != null)
url += "&spuId=" + prodIds;
if (sortType != null)
url += "&sortType=" + sortType;
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = HttpResponseWXBLL.WeiXinGetResponse(shop, url, refere);
return result;
}
public static string getSkuBySpu(ShopLoginInfo shop, string spuIds)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/getStockBySpu?token=&lang=zh_CN";
string body = @"{""productIdList"":[" + spuIds + @"]}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
/// <summary>
/// 下架商品
/// </summary>
/// <param name="shop"></param>
/// <param name="prodId"></param>
/// <returns></returns>
public static string DownProd(ShopLoginInfo shop, string prodIds)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/BatchUnListing?token=&lang=zh_CN";
string referer = "https://store.weixin.qq.com/shop/goods/list";
string body = @"{""ids"":[" + prodIds + @"],""uploadSource"":6}";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, referer);
return result;
}
public static string batchUpdateStockAdd(ShopLoginInfo shop, string spuId, string skuId, string num)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/batchUpdateStock?token=&lang=zh_CN";
string body = @"{""skuList"":[{""spuId"":""" + spuId + @""",""skuId"":""" + skuId + @""",""diffType"":1,""num"":" + num + "}]}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string batchUpdateStockReduce(ShopLoginInfo shop, string spuId, string skuId, string num)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/batchUpdateStock?token=&lang=zh_CN";
string body = @"{""skuList"":[{""spuId"":""" + spuId + @""",""skuId"":""" + skuId + @""",""diffType"":2,""num"":" + num + "}]}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
/// <summary>
/// 编辑商品价格
/// </summary>
/// <param name="shop"></param>
/// <param name="priceData">@"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";</param>
/// <returns></returns>
public static string EditPrice(ShopLoginInfo shop, JObject priceData)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/listingUpdatePrice?token=&lang=zh_CN";
//string body = @"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";
string body = JsonHelper.SerializeObject(priceData);
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string cancelActivity(ShopLoginInfo shop, JObject activityData)
{
string url = "https://store.weixin.qq.com/shop-faas/mmeckolmarketingnode/activity/cgi/updateRequestProductList?token=&lang=zh_CN";
string body = JsonHelper.SerializeObject(activityData);
string refere = "https://store.weixin.qq.com/shop/marketingkol/activity/detail?id=1016&curTab=2";
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
}
}
+8 -6
View File
@@ -102,13 +102,13 @@ namespace TemuKJD.ToolForms
this.CenterToScreen();
chkAutoChangeWarehouseAddress.Checked = GlobalConfig.BuyConfig.IsAutoChangeWarehouseAddress;
chkUseAppBalance.Checked = GlobalConfig.BuyConfig.IsUseAppBalance;
chkUseAppBalance.Checked = GlobalConfig.BuyConfig.IsUseAppBalance;
//chkUseAppBalance.Checked = false;
//chkUseAppBalance.Visible = false;
//GlobalConfig.BuyConfig.IsUseAppBalance = false;
// 强制使用软件余额而非erp余额拍单
chkUseAppBalance.Checked = true;
GlobalConfig.BuyConfig.IsUseAppBalance = true;
if (CloseAfterSecond > 0)
if (CloseAfterSecond > 0)
{
Task.Run(() =>
{
@@ -1317,7 +1317,9 @@ namespace TemuKJD.ToolForms
if (IsFormLoad)
{
GlobalConfig.BuyConfig.IsUseAppBalance = chkUseAppBalance.Checked;
NaiBa.Util.Helper.ConfigHelper.SaveConfig("buy_config_260708", GlobalConfig.BuyConfig);
GlobalConfig.BuyConfig.IsUseAppBalance = true;
NaiBa.Util.Helper.ConfigHelper.SaveConfig("buy_config_260708", GlobalConfig.BuyConfig);
}
}
+1
View File
@@ -846,6 +846,7 @@
this.chkUseAppBalance.TabIndex = 877;
this.chkUseAppBalance.Text = "使用快递余额拍单";
this.chkUseAppBalance.UseVisualStyleBackColor = true;
this.chkUseAppBalance.Visible = false;
this.chkUseAppBalance.CheckedChanged += new System.EventHandler(this.chkUseAppBalance_CheckedChanged);
//
// txtShopName
@@ -0,0 +1,550 @@
namespace Work._29Tools.Forms.ShopForms
{
partial class WXOrderListOptimizeForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXOrderListOptimizeForm));
this.panel1 = new System.Windows.Forms.Panel();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.btnCancel = new DevComponents.DotNetBar.PanelEx();
this.ucGroupBoxEx4 = new Work.UserComponents.UcGroupBoxEx(this.components);
this.btnCancelActivity = new DevComponents.DotNetBar.PanelEx();
this.label5 = new System.Windows.Forms.Label();
this.ucGroupBoxEx1 = new Work.UserComponents.UcGroupBoxEx(this.components);
this.lblOrderId = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.btnSendGift = new DevComponents.DotNetBar.PanelEx();
this.txtGiftOrderWaybillId = new System.Windows.Forms.TextBox();
this.txtCurrentStock = new System.Windows.Forms.TextBox();
this.btnDownProduct = new DevComponents.DotNetBar.PanelEx();
this.btnClearStock = new DevComponents.DotNetBar.PanelEx();
this.txtOrderPrice = new System.Windows.Forms.TextBox();
this.lblSpuId = new System.Windows.Forms.Label();
this.txtCurrentPrice = new System.Windows.Forms.TextBox();
this.lblSkuId = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.商品名 = new System.Windows.Forms.Label();
this.txtGoodsName = new System.Windows.Forms.TextBox();
this.规格名 = new System.Windows.Forms.Label();
this.txtSkuName = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.numAddPrice = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.btnAddPrice = new DevComponents.DotNetBar.PanelEx();
((System.ComponentModel.ISupportInitialize)(this.pbCloseBase)).BeginInit();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
this.ucGroupBoxEx4.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numAddPrice)).BeginInit();
this.SuspendLayout();
//
// pbCloseBase
//
this.pbCloseBase.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.pbCloseBase.Location = new System.Drawing.Point(447, 0);
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.White;
this.panel1.Controls.Add(this.pbLoading);
this.panel1.Controls.Add(this.btnCancel);
this.panel1.Controls.Add(this.ucGroupBoxEx4);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(1, 33);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(479, 394);
this.panel1.TabIndex = 1;
//
// pbLoading
//
this.pbLoading.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.pbLoading.Image = global::Work.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(8, 356);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(24, 24);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 829;
this.pbLoading.TabStop = false;
this.pbLoading.Visible = false;
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control;
this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty;
this.btnCancel.Location = new System.Drawing.Point(402, 358);
this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(65, 23);
this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnCancel.Style.GradientAngle = 90;
this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnCancel.TabIndex = 5;
this.btnCancel.TabStop = true;
this.btnCancel.Text = "取消";
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// ucGroupBoxEx4
//
this.ucGroupBoxEx4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx4.BorderStyle = Work.UserComponents.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx4.Controls.Add(this.btnCancelActivity);
this.ucGroupBoxEx4.Controls.Add(this.label5);
this.ucGroupBoxEx4.Controls.Add(this.ucGroupBoxEx1);
this.ucGroupBoxEx4.Controls.Add(this.txtCurrentStock);
this.ucGroupBoxEx4.Controls.Add(this.btnDownProduct);
this.ucGroupBoxEx4.Controls.Add(this.btnClearStock);
this.ucGroupBoxEx4.Controls.Add(this.txtOrderPrice);
this.ucGroupBoxEx4.Controls.Add(this.lblSpuId);
this.ucGroupBoxEx4.Controls.Add(this.txtCurrentPrice);
this.ucGroupBoxEx4.Controls.Add(this.lblSkuId);
this.ucGroupBoxEx4.Controls.Add(this.label4);
this.ucGroupBoxEx4.Controls.Add(this.商品名);
this.ucGroupBoxEx4.Controls.Add(this.txtGoodsName);
this.ucGroupBoxEx4.Controls.Add(this.规格名);
this.ucGroupBoxEx4.Controls.Add(this.txtSkuName);
this.ucGroupBoxEx4.Controls.Add(this.label2);
this.ucGroupBoxEx4.Controls.Add(this.numAddPrice);
this.ucGroupBoxEx4.Controls.Add(this.label1);
this.ucGroupBoxEx4.Controls.Add(this.btnAddPrice);
this.ucGroupBoxEx4.Location = new System.Drawing.Point(7, 8);
this.ucGroupBoxEx4.Name = "ucGroupBoxEx4";
this.ucGroupBoxEx4.Size = new System.Drawing.Size(464, 342);
this.ucGroupBoxEx4.TabIndex = 828;
this.ucGroupBoxEx4.TabStop = false;
this.ucGroupBoxEx4.Text = "优化订单商品";
//
// btnCancelActivity
//
this.btnCancelActivity.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancelActivity.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnCancelActivity.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCancelActivity.DisabledBackColor = System.Drawing.Color.Empty;
this.btnCancelActivity.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCancelActivity.Location = new System.Drawing.Point(13, 302);
this.btnCancelActivity.Name = "btnCancelActivity";
this.btnCancelActivity.Size = new System.Drawing.Size(95, 23);
this.btnCancelActivity.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancelActivity.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancelActivity.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCancelActivity.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnCancelActivity.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnCancelActivity.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnCancelActivity.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnCancelActivity.Style.GradientAngle = 90;
this.btnCancelActivity.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnCancelActivity.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnCancelActivity.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnCancelActivity.TabIndex = 860;
this.btnCancelActivity.TabStop = true;
this.btnCancelActivity.Text = "取消活动报名";
this.btnCancelActivity.Click += new System.EventHandler(this.btnCancelActivity_Click);
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(286, 171);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 17);
this.label5.TabIndex = 847;
this.label5.Text = "Sku库存";
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = Work.UserComponents.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.lblOrderId);
this.ucGroupBoxEx1.Controls.Add(this.label3);
this.ucGroupBoxEx1.Controls.Add(this.btnSendGift);
this.ucGroupBoxEx1.Controls.Add(this.txtGiftOrderWaybillId);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(237, 20);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(212, 95);
this.ucGroupBoxEx1.TabIndex = 829;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "发送礼物单";
this.ucGroupBoxEx1.Visible = false;
//
// lblOrderId
//
this.lblOrderId.AutoSize = true;
this.lblOrderId.Location = new System.Drawing.Point(20, 66);
this.lblOrderId.Name = "lblOrderId";
this.lblOrderId.Size = new System.Drawing.Size(53, 17);
this.lblOrderId.TabIndex = 825;
this.lblOrderId.Text = "orderId";
this.lblOrderId.Visible = false;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(20, 38);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(56, 17);
this.label3.TabIndex = 439;
this.label3.Text = "物流单号";
//
// btnSendGift
//
this.btnSendGift.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSendGift.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSendGift.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSendGift.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSendGift.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSendGift.Location = new System.Drawing.Point(123, 35);
this.btnSendGift.Name = "btnSendGift";
this.btnSendGift.Size = new System.Drawing.Size(65, 23);
this.btnSendGift.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSendGift.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSendGift.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSendGift.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSendGift.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSendGift.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSendGift.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSendGift.Style.GradientAngle = 90;
this.btnSendGift.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSendGift.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSendGift.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSendGift.TabIndex = 15;
this.btnSendGift.TabStop = true;
this.btnSendGift.Text = "发送";
this.btnSendGift.Click += new System.EventHandler(this.btnSendGift_Click);
//
// txtGiftOrderWaybillId
//
this.txtGiftOrderWaybillId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtGiftOrderWaybillId.Location = new System.Drawing.Point(77, 35);
this.txtGiftOrderWaybillId.Name = "txtGiftOrderWaybillId";
this.txtGiftOrderWaybillId.Size = new System.Drawing.Size(41, 23);
this.txtGiftOrderWaybillId.TabIndex = 11;
//
// txtCurrentStock
//
this.txtCurrentStock.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCurrentStock.BackColor = System.Drawing.SystemColors.Window;
this.txtCurrentStock.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCurrentStock.Location = new System.Drawing.Point(342, 171);
this.txtCurrentStock.Name = "txtCurrentStock";
this.txtCurrentStock.ReadOnly = true;
this.txtCurrentStock.Size = new System.Drawing.Size(98, 16);
this.txtCurrentStock.TabIndex = 846;
this.txtCurrentStock.Text = "currentStock";
//
// btnDownProduct
//
this.btnDownProduct.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnDownProduct.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnDownProduct.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnDownProduct.DisabledBackColor = System.Drawing.Color.Empty;
this.btnDownProduct.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDownProduct.Location = new System.Drawing.Point(386, 302);
this.btnDownProduct.Name = "btnDownProduct";
this.btnDownProduct.Size = new System.Drawing.Size(65, 23);
this.btnDownProduct.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnDownProduct.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDownProduct.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnDownProduct.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnDownProduct.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnDownProduct.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnDownProduct.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnDownProduct.Style.GradientAngle = 90;
this.btnDownProduct.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnDownProduct.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnDownProduct.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnDownProduct.TabIndex = 836;
this.btnDownProduct.TabStop = true;
this.btnDownProduct.Text = "下架商品";
this.btnDownProduct.Click += new System.EventHandler(this.btnDownProduct_Click);
//
// btnClearStock
//
this.btnClearStock.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnClearStock.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnClearStock.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnClearStock.DisabledBackColor = System.Drawing.Color.Empty;
this.btnClearStock.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClearStock.Location = new System.Drawing.Point(316, 302);
this.btnClearStock.Name = "btnClearStock";
this.btnClearStock.Size = new System.Drawing.Size(65, 23);
this.btnClearStock.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnClearStock.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnClearStock.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnClearStock.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnClearStock.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnClearStock.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnClearStock.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnClearStock.Style.GradientAngle = 90;
this.btnClearStock.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnClearStock.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnClearStock.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnClearStock.TabIndex = 832;
this.btnClearStock.TabStop = true;
this.btnClearStock.Text = "清除库存";
this.btnClearStock.Click += new System.EventHandler(this.btnClearStock_Click);
//
// txtOrderPrice
//
this.txtOrderPrice.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtOrderPrice.BackColor = System.Drawing.SystemColors.Window;
this.txtOrderPrice.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtOrderPrice.Location = new System.Drawing.Point(77, 171);
this.txtOrderPrice.Name = "txtOrderPrice";
this.txtOrderPrice.ReadOnly = true;
this.txtOrderPrice.Size = new System.Drawing.Size(129, 16);
this.txtOrderPrice.TabIndex = 821;
this.txtOrderPrice.Text = "orderPrice";
//
// lblSpuId
//
this.lblSpuId.AutoSize = true;
this.lblSpuId.Location = new System.Drawing.Point(35, 53);
this.lblSpuId.Name = "lblSpuId";
this.lblSpuId.Size = new System.Drawing.Size(41, 17);
this.lblSpuId.TabIndex = 810;
this.lblSpuId.Text = "spuId";
this.lblSpuId.Visible = false;
//
// txtCurrentPrice
//
this.txtCurrentPrice.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCurrentPrice.BackColor = System.Drawing.SystemColors.Window;
this.txtCurrentPrice.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCurrentPrice.Location = new System.Drawing.Point(77, 137);
this.txtCurrentPrice.Name = "txtCurrentPrice";
this.txtCurrentPrice.ReadOnly = true;
this.txtCurrentPrice.Size = new System.Drawing.Size(129, 16);
this.txtCurrentPrice.TabIndex = 820;
this.txtCurrentPrice.Text = "currentPrice";
//
// lblSkuId
//
this.lblSkuId.AutoSize = true;
this.lblSkuId.Location = new System.Drawing.Point(36, 106);
this.lblSkuId.Name = "lblSkuId";
this.lblSkuId.Size = new System.Drawing.Size(40, 17);
this.lblSkuId.TabIndex = 811;
this.lblSkuId.Text = "skuId";
this.lblSkuId.Visible = false;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(32, 171);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(44, 17);
this.label4.TabIndex = 813;
this.label4.Text = "订单价";
//
// 商品名
//
this.商品名.AutoSize = true;
this.商品名.Location = new System.Drawing.Point(32, 28);
this.商品名.Name = "商品名";
this.商品名.Size = new System.Drawing.Size(44, 17);
this.商品名.TabIndex = 440;
this.商品名.Text = "商品名";
//
// txtGoodsName
//
this.txtGoodsName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtGoodsName.BackColor = System.Drawing.SystemColors.Window;
this.txtGoodsName.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtGoodsName.Location = new System.Drawing.Point(77, 28);
this.txtGoodsName.Multiline = true;
this.txtGoodsName.Name = "txtGoodsName";
this.txtGoodsName.ReadOnly = true;
this.txtGoodsName.Size = new System.Drawing.Size(361, 42);
this.txtGoodsName.TabIndex = 1;
this.txtGoodsName.Text = "goodsName";
//
// 规格名
//
this.规格名.AutoSize = true;
this.规格名.Location = new System.Drawing.Point(32, 81);
this.规格名.Name = "规格名";
this.规格名.Size = new System.Drawing.Size(44, 17);
this.规格名.TabIndex = 439;
this.规格名.Text = "规格名";
//
// txtSkuName
//
this.txtSkuName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtSkuName.BackColor = System.Drawing.SystemColors.Window;
this.txtSkuName.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtSkuName.Location = new System.Drawing.Point(77, 81);
this.txtSkuName.Multiline = true;
this.txtSkuName.Name = "txtSkuName";
this.txtSkuName.ReadOnly = true;
this.txtSkuName.Size = new System.Drawing.Size(361, 42);
this.txtSkuName.TabIndex = 2;
this.txtSkuName.Text = "skuName";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(32, 137);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(44, 17);
this.label2.TabIndex = 438;
this.label2.Text = "当前价";
//
// numAddPrice
//
this.numAddPrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.numAddPrice.DecimalPlaces = 2;
this.numAddPrice.Increment = new decimal(new int[] {
1,
0,
0,
65536});
this.numAddPrice.Location = new System.Drawing.Point(171, 302);
this.numAddPrice.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.numAddPrice.Name = "numAddPrice";
this.numAddPrice.Size = new System.Drawing.Size(61, 23);
this.numAddPrice.TabIndex = 0;
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(138, 305);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(32, 17);
this.label1.TabIndex = 436;
this.label1.Text = "加价";
//
// btnAddPrice
//
this.btnAddPrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnAddPrice.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnAddPrice.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnAddPrice.DisabledBackColor = System.Drawing.Color.Empty;
this.btnAddPrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnAddPrice.Location = new System.Drawing.Point(237, 302);
this.btnAddPrice.Name = "btnAddPrice";
this.btnAddPrice.Size = new System.Drawing.Size(53, 23);
this.btnAddPrice.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnAddPrice.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnAddPrice.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnAddPrice.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnAddPrice.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnAddPrice.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnAddPrice.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnAddPrice.Style.GradientAngle = 90;
this.btnAddPrice.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnAddPrice.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnAddPrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnAddPrice.TabIndex = 4;
this.btnAddPrice.TabStop = true;
this.btnAddPrice.Text = "改价";
this.btnAddPrice.Click += new System.EventHandler(this.btnAddPrice_Click);
//
// WXOrderListOptimizeForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(481, 428);
this.Controls.Add(this.panel1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "WXOrderListOptimizeForm";
this.Padding = new System.Windows.Forms.Padding(1);
this.Text = "优化订单";
this.TitleText = "优化订单";
this.Load += new System.EventHandler(this.WXOrderListOptimizeForm_Load);
this.Controls.SetChildIndex(this.panel1, 0);
((System.ComponentModel.ISupportInitialize)(this.pbCloseBase)).EndInit();
this.panel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
this.ucGroupBoxEx4.ResumeLayout(false);
this.ucGroupBoxEx4.PerformLayout();
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numAddPrice)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
public System.Windows.Forms.TextBox txtSkuName;
public System.Windows.Forms.TextBox txtGoodsName;
private System.Windows.Forms.Label 商品名;
private System.Windows.Forms.Label 规格名;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private DevComponents.DotNetBar.PanelEx btnAddPrice;
public System.Windows.Forms.NumericUpDown numAddPrice;
private DevComponents.DotNetBar.PanelEx btnCancel;
public System.Windows.Forms.Label lblSkuId;
public System.Windows.Forms.Label lblSpuId;
private System.Windows.Forms.Label label4;
public System.Windows.Forms.TextBox txtCurrentPrice;
public System.Windows.Forms.TextBox txtOrderPrice;
private UserComponents.UcGroupBoxEx ucGroupBoxEx4;
private UserComponents.UcGroupBoxEx ucGroupBoxEx1;
private System.Windows.Forms.Label label3;
private DevComponents.DotNetBar.PanelEx btnSendGift;
private System.Windows.Forms.TextBox txtGiftOrderWaybillId;
public System.Windows.Forms.Label lblOrderId;
private System.Windows.Forms.PictureBox pbLoading;
private DevComponents.DotNetBar.PanelEx btnClearStock;
private DevComponents.DotNetBar.PanelEx btnDownProduct;
public System.Windows.Forms.TextBox txtCurrentStock;
private System.Windows.Forms.Label label5;
private DevComponents.DotNetBar.PanelEx btnCancelActivity;
}
}
@@ -0,0 +1,450 @@
using AllBase;
using AllBase.Model.DBModel;
using AllBase.Model.Result;
//using AllBase.Model.Result.WXResult;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Work._29Tools.BLL;
using Work.BaseForms;
namespace Work._29Tools.Forms.ShopForms
{
public partial class WXOrderListOptimizeForm : BaseForms.BaseGeneralForm
{
public ShopLoginInfo shop;
public WXOrderListOptimizeForm(ShopLoginInfo _shop)
{
InitializeComponent();
shop = _shop;
this.TitleText = "店铺 " + shop.ShopAccount + " 优化订单";
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
public JObject prodObj = new JObject();
public bool EditPriceSuccess { get; set; } = false;
public bool SendGiftSuccess { get; set; } = false;
public bool ClearStock { get; set; } = false;
public bool IsDownProd { get; set; } = false;
private void btnAddPrice_Click(object sender, EventArgs e)
{
EditPriceSuccess = false;
try
{
var spuId = lblSpuId.Text;
int onSaleStatusCode = -1;
int pageSize = 50;
var getProdOnSaleRst = WxSimProductBLL.searchProduct(shop, 1, pageSize, spuId, onSaleStatusCode);
if (!getProdOnSaleRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJsonByRegs(ref getProdOnSaleRst, getProdOnSaleRst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
BaseMsgForm.ShowInfo("改价失败" + error);
return;
}
prodObj = JsonHelper.JObjectParse(getProdOnSaleRst)["productList"].FirstOrDefault() as JObject;
if (prodObj != null)
{
var str = JsonHelper.SerializeObject(prodObj);
}
if (prodObj == null)
{
BaseMsgForm.ShowError("源商品已删除");
return;
}
//var rst = WxSimProductBLL.EditPrice(shop, lblSpuId.Text, lblSkuId.Text, (numAddPrice.Value * 100).ParseToInt());
JObject changePriceObj = new JObject();
JArray skuArr = new JArray();
foreach (var sku in prodObj["skuList"])
{
JObject obj = new JObject();
obj["spuId"] = spuId;
obj["skuId"] = sku["skuId"];
obj["salePrice"] = sku["price"].ParseToInt() + (numAddPrice.Value * 100).ParseToInt();
skuArr.Add(obj);
}
changePriceObj["skuList"] = skuArr;
changePriceObj["uploadSource"] = 6;
// string body = @"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";
var rst = WxSimProductBLL.EditPrice(shop, changePriceObj);
if (rst.Contains("\"code\":0"))
{
EditPriceSuccess = true;
BaseMsgForm.ShowInfo("改价成功");
this.Close();
}
else
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
BaseMsgForm.ShowError("改价失败:" + error);
}
}
catch
{
}
}
/// <summary>
/// 发送礼物单,作废
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSendGift_Click(object sender, EventArgs e)
{
//SendGiftSuccess = false;
//string orderId = lblOrderId.Text.Trim();
//string waybillId = txtGiftOrderWaybillId.Text.Trim();
//pbLoading.Visible = true;
//Task.Run(() =>
//{
// var rst = WXOrderList.initDeliveryInfo(shop, orderId);
// // {"code":0,"orderDetail":{"commonInfo":{"orderId":"3736582386601580032","orderType":0,"statusStr":"待发货","status":20,"originalStatus":11,"openid":"ow5ty7Kyik_dSqtrivr5hY2t4cwY","createTime":1779540820,"createTimeStr":"2026-05-23 20:53","isPayScoreOrder":false,"isPayDone":true,"isVirtualOrder":false,"isAuthorizedAccount":false,"giftOrderType":"","isInspectOrder":false,"isCommissionOrderDone":false,"isRechargeOrder":false,"isExpediteOrder":false,"isOverTimeOrder":2,"isMultiPackage":false,"inspectType":0,"isGiftOrder":false,"isBuyTogetherOrder":false,"isLotteryOrder":false,"isEducationOrder":false,"hideGiftOrderAddressInfo":false,"cosignmentFlag":1,"isNationalSubsidy":0,"isSameCityOrder":false,"isNationalSubsidyMerchant":false,"isSupplyOrder":false},"orderProducts":{"orderProductInfo":[{"productId":"10000863142394","thumbImg":"https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/6a092e3a000107862152a36aa881bc1e000000a100004f50","title":"脂砚斋评石头记(全三册) 烫金珍藏版 彩绘绣像 双色印刷","skuId":"15274875174","saleParam":["默认"],"productType":1,"productCnt":1,"salePrice":"3400","spuCode":"9787555418979","skuCode":"BSEC12302592708637555055A","isPreSale":false,"isIflashbuy":false,"isFreeGift":false,"canAfterSale":true,"realPrice":3350,"perRealPrice":3350,"tags":[{"class":"black","desc":"7天无理由","iconUrl":"","mainUrl":"","tagType":4},{"class":"black","desc":"运费险","iconUrl":"","mainUrl":"","tagType":5}],"icons":[],"perExchangeScore":"","productSource":{"show":false},"afterSaleInfo":{"afterId":"","canAfterSale":true,"canNotAfterSaleReason":"","jumpUrl":"","title":"","content":"","afterSaleDoneStr":"","afterSaleDoneAmountStr":"","afterSaleDoneAmount":0,"afterSaleDoneProductCnt":0,"afterSaleIngProductCnt":0,"isGuaranteeIng":false,"hasFakeOnePayFourDoneGuarantee":false},"changeProduct":0,"afterSaleDoneProductCnt":0,"afterSaleIngProductCnt":0,"supplyProductId":"","supplyNickName":"","supplyOrderId":"","supplyAppid":""}],"priceInfo":{"productPrice":"3400","orderPrice":"3350","freight":0,"originalOrderPrice":"3400","estimateProductPrice":"3350","handingFee":"0","maxUnsplitAmount":"3350","totalDiscountedPrice":"50","merchantReceievePrice":"3350","platformActivityMerchantDiscountedPrice":"50"},"activityInfo":{},"presentFee":{}},"acceptInfo":{"decodeSensitiveTime":0,"editAddrInfo":{"applyEditAddrStatus":0,"applyEditAddrAuditStaff":"","applyEditAddrAuditTimeText":"","negotiationEditTextForB":"","negotiationEditTextForA":"","negotiationEditStatus":0,"negotiationEditHistory":[],"canNegotiation":true,"hasUnResolvedRequest":0,"hasHistoryMerchantEditAddr":0,"editHistory":[]},"customerNotes":"","merchantNotes":"","presentNotes":"","addressInfo":{"cityName":"宝鸡市","countyName":"眉县","provinceName":"陕西省","userName":"刘**","telNumber":"187****9569","detailInfo":"****","virtualOrderTelNumber":""},"virtualNumberInfo":{},"quota":{"code":0,"limit":10,"used":10,"hideSensitiveInfo":true},"rechargeData":{"label":"","content":"","deliverMethod":0},"addressErrType":0},"expressInfo":{"phone":"9569","deliveryProductInfo":[],"orderProductCnt":1,"deliveryCnt":0,"isIntracityOrder":false,"intracityTracking":null,"formatUnshippedProductList":[{"productId":"10000863142394","thumbImg":"https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/6a092e3a000107862152a36aa881bc1e000000a100004f50","title":"脂砚斋评石头记(全三册) 烫金珍藏版 彩绘绣像 双色印刷","skuId":"15274875174","saleParam":["默认"],"productType":1,"productCnt":1,"salePrice":"3400","spuCode":"9787555418979","skuCode":"BSEC12302592708637555055A","isPreSale":false,"isIflashbuy":false,"isFreeGift":false,"canAfterSale":true,"realPrice":3350,"perRealPrice":3350,"tags":[{"class":"black","desc":"7天无理由","iconUrl":"","mainUrl":"","tagType":4},{"class":"black","desc":"运费险","iconUrl":"","mainUrl":"","tagType":5}],"icons":[],"perExchangeScore":"","productSource":1,"afterSaleInfo":{"afterId":"","canAfterSale":true,"canNotAfterSaleReason":"","jumpUrl":"","title":"","content":"","afterSaleDoneStr":"","afterSaleDoneAmountStr":"","afterSaleDoneAmount":0,"afterSaleDoneProductCnt":0,"afterSaleIngProductCnt":0,"isGuaranteeIng":false,"hasFakeOnePayFourDoneGuarantee":false},"changeProduct":0,"afterSaleDoneProductCnt":0,"afterSaleIngProductCnt":0,"supplyProductId":"","supplyNickName":"","supplyOrderId":"","supplyAppid":""}],"product2Img":{"15274875174":"https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/6a092e3a000107862152a36aa881bc1e000000a100004f50"}},"ewaybillInfo":{"isAllPrintOne":false,"isOpen":false,"deliveryId":"","deliveryName":"","waybillId":""}},"sendAddressInfo":{"userName":"陈图书","postalCode":"","provinceName":"安徽省","cityName":"合肥市","countyName":"肥西县","detailInfo":"上派镇中盟电子产业园8栋一单元(东电梯3楼快递指定存放点)","telNumber":"13023098035","lat":0,"lng":0},"deliveryCompanyOptions":[{"laLine truncated
// if (!rst.Contains("\"code\":0"))
// {
// var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
// BaseMsgForm.ShowInfo("发送礼物单失败 " + error);
// Invoke(new Action(() =>
// {
// pbLoading.Visible = false;
// }));
// return;
// }
// var statusStr = BaseRegex.GetStringJson(ref rst, "statusStr");
// if (statusStr == "待发货")
// {
// //{"orderId":"3736580679658008320","deliveryProduct":{"deliveryId":"YUNDA","waybillId":"313023381086999","isAllProduct":true,"deliverType":1}}
// //{"code":0,"errcode":0,"errmsg":"ok"}
// rst = WXOrderList.orderSendOut(shop, orderId, waybillId);
// if (!rst.Contains("\"code\":0"))
// {
// var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
// BaseMsgForm.ShowInfo("发送礼物单失败 " + error);
// Invoke(new Action(() =>
// {
// pbLoading.Visible = false;
// }));
// return;
// }
// Invoke(new Action(() =>
// {
// SendGiftSuccess = true;
// BaseMsgForm.ShowInfo("发送礼物单成功");
// pbLoading.Visible = false;
// this.Close();
// }));
// }
// 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"];
// var orderExpressInfo = JsonHelper.DeserializeJsonToObject<WxOrderExpressInfo>(JsonHelper.SerializeObject(orderExpressInfoObj));
// UpdateDeliverInfoParam param = new UpdateDeliverInfoParam();
// param.orderId = orderId;
// param.changeInfo = new List<Dictionary<string, UpdateDeliverChangeInfo>>();
// foreach (var deliveryProductInfo in orderExpressInfo.deliveryProductInfo)
// {
// Dictionary<string, UpdateDeliverChangeInfo> dicChange = new Dictionary<string, UpdateDeliverChangeInfo>();
// dicChange["old"] = new UpdateDeliverChangeInfo();
// dicChange["old"].deliveryId = deliveryProductInfo.deliveryId;
// dicChange["old"].waybillId = deliveryProductInfo.waybillId;
// dicChange["old"].productInfos = new List<UpdateDeliverProductInfo>();
// dicChange["new"] = new UpdateDeliverChangeInfo();
// dicChange["new"].deliveryId = "OTHER";
// dicChange["new"].waybillId = waybillId;
// dicChange["new"].productInfos = new List<UpdateDeliverProductInfo>();
// foreach (var prod in deliveryProductInfo.productInfos)
// {
// dicChange["old"].productInfos.Add(new UpdateDeliverProductInfo() { productCnt = prod.productCnt, productId = prod.productId, skuId = prod.skuId });
// dicChange["new"].productInfos.Add(new UpdateDeliverProductInfo() { productCnt = prod.productCnt, productId = prod.productId, skuId = prod.skuId });
// }
// param.changeInfo.Add(dicChange);
// }
// rst = WXOrderList.updateDeliveryInfo(shop, param);
// var str = JsonHelper.SerializeObject(param);
// if (!rst.Contains("\"code\":0"))
// {
// var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
// BaseMsgForm.ShowInfo("变更发送礼物单失败 " + error);
// Invoke(new Action(() =>
// {
// pbLoading.Visible = false;
// }));
// return;
// }
// Invoke(new Action(() =>
// {
// SendGiftSuccess = true;
// BaseMsgForm.ShowInfo("变更发送礼物单成功");
// pbLoading.Visible = false;
// this.Close();
// }));
// }
//});
}
private void btnClearStock_Click(object sender, EventArgs e)
{
ClearStock = false;
string spuId = lblSpuId.Text.Trim();
string skuId = lblSkuId.Text.Trim();
string num = txtCurrentStock.Text.Trim();
var rst = WxSimProductBLL.batchUpdateStockReduce(shop, spuId, skuId, num);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
BaseMsgForm.ShowInfo("清除库存失败 " + error);
Invoke(new Action(() =>
{
pbLoading.Visible = false;
}));
return;
}
Invoke(new Action(() =>
{
ClearStock = true;
BaseMsgForm.ShowInfo("清除库存成功");
pbLoading.Visible = false;
this.Close();
}));
}
private void btnDownProduct_Click(object sender, EventArgs e)
{
if (BaseMsgForm.ShowConfirm("确定下架吗?重新上架需要消耗提审次数").DialogResult != DialogResult.OK)
return;
IsDownProd = false;
string spuId = lblSpuId.Text.Trim();
string skuId = lblSkuId.Text.Trim();
string num = txtCurrentStock.Text.Trim();
var rst = WxSimProductBLL.DownProd(shop, spuId);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
BaseMsgForm.ShowInfo("商品下架失败 " + error);
Invoke(new Action(() =>
{
pbLoading.Visible = false;
}));
return;
}
Invoke(new Action(() =>
{
IsDownProd = true;
BaseMsgForm.ShowInfo("商品下架成功");
pbLoading.Visible = false;
this.Close();
}));
}
private void WXOrderListOptimizeForm_Load(object sender, EventArgs e)
{
var spuId = lblSpuId.Text;
var skuId = lblSkuId.Text;
//int onSaleStatusCode = -1;
//int pageSize = 50;
//var getProdOnSaleRst = WxSimProductBLL.searchProduct(shop, 1, pageSize, spuId, onSaleStatusCode);
//if (!getProdOnSaleRst.Contains("\"success\":true"))
//{
// var error = BaseRegex.GetStringJsonByRegs(ref getProdOnSaleRst, getProdOnSaleRst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
// BaseMsgForm.ShowInfo("读取原价错误,请重新打开窗口 " + error);
//}
//prodObj = JsonHelper.JObjectParse(getProdOnSaleRst)["productList"].FirstOrDefault() as JObject;
//if (prodObj != null)
//{
// var str = JsonHelper.SerializeObject(prodObj);
//}
//if (prodObj == null)
//{
// //BaseMsgForm.ShowError("源商品已删除");
// return;
//}
////var rst = WXOrderList.EditPrice(shop, lblSpuId.Text, lblSkuId.Text, (numAddPrice.Value * 100).ParseToInt());
//JObject changePriceObj = new JObject();
//JArray skuArr = new JArray();
//foreach (var sku in prodObj["skuList"])
//{
// var str = sku.ParseToString();
// JObject obj = new JObject();
// var skuId1 = sku["skuId"].ParseToString();
// var price = sku["price"].ParseToInt() * 0.01m;
// if (skuId1 == skuId)
// {
// this.txtCurrentPrice.Text = price.ToString();
// break;
// }
//}
var getProductDetailBuSpuRst = WxSimProductBLL.getSkuBySpu(shop, GetHtml.UrlDecode(spuId));
Thread.Sleep(Randomx.GetId(50, 100));
if (!getProductDetailBuSpuRst.Contains("\"success\":true") && !getProductDetailBuSpuRst.Contains("\"code\":0"))
{
return;
}
try
{
var prodObjs = JsonHelper.JObjectParse(getProductDetailBuSpuRst);
var prod = prodObjs["products"].FirstOrDefault(p => p["productKey"]["productId"].ParseToString() == spuId);
if (prod != null)
{
var prodStr = prod.ParseToString();
var sku = prod["productSkus"].FirstOrDefault(p => p["skuKey"]["skuId"].ParseToString() == skuId);
if (sku != null)
{
var skuStr = JsonHelper.SerializeObject(sku);
this.txtCurrentPrice.Text = (BaseRegex.GetIntJson(ref skuStr, "salePrice") * 0.01m).ParseToString();
this.txtCurrentStock.Text = BaseRegex.GetIntJson(ref skuStr, "stockNum").ParseToString();
}
}
}
catch { }
}
private void btnCancelActivity_Click(object sender, EventArgs e)
{
string spuId = lblSpuId.Text.Trim();
var skuId = lblSkuId.Text.Trim();
var price = (this.txtCurrentPrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
int onSaleStatusCode = -1;
int pageSize = 50;
var getProdOnSaleRst = WxSimProductBLL.searchProduct(shop, 1, pageSize, spuId, onSaleStatusCode);
Thread.Sleep(Randomx.GetId(50, 100));
if (!getProdOnSaleRst.Contains("\"success\":true"))
{
BaseMsgForm.ShowError("取消活动失败" + getProdOnSaleRst);
return;
}
var prodObjs = JsonHelper.JObjectParse(getProdOnSaleRst)["productList"].FirstOrDefault();
if (prodObjs != null)
{
var str = JsonHelper.SerializeObject(prodObjs);
}
var deltaPrice = 0;
while (!price.ToString().EndsWith("66"))
{
deltaPrice++;
price++;
}
JObject changePriceObj = new JObject();
JArray skuArr = new JArray();
foreach (var sku in prodObjs["skuList"])
{
JObject obj = new JObject();
obj["spuId"] = spuId;
obj["skuId"] = sku["skuId"];
obj["salePrice"] = sku["price"].ParseToInt() + deltaPrice;
skuArr.Add(obj);
}
changePriceObj["skuList"] = skuArr;
changePriceObj["uploadSource"] = 6;
// string body = @"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";
var rst = WxSimProductBLL.EditPrice(shop, changePriceObj);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg");
BaseMsgForm.ShowError("商品取消活动失败(标记活动价格失败) " + error);
return;
}
{
JObject endActivityObj = new JObject();
endActivityObj["platformActivityId"] = "1269";
JArray arr = new JArray();
foreach (var sku in prodObjs["skuList"])
{
JObject obj = new JObject();
obj["productId"] = spuId;
obj["skuId"] = sku["skuId"];
arr.Add(obj);
}
endActivityObj["productList"] = arr;
endActivityObj["actionType"] = 1;
//{ "platformActivityId":"1016","productList":[{ "productId":"10000879673464","skuId":"15601266074"},{ "productId":"10000879673464","skuId":"15601240593"}],"actionType":1}
rst = WxSimProductBLL.cancelActivity(shop, endActivityObj);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg");
BaseMsgForm.ShowError("取消优惠失败 " + error);
return;
}
}
{
JObject endActivityObj = new JObject();
endActivityObj["platformActivityId"] = "1323";
JArray arr = new JArray();
foreach (var sku in prodObjs["skuList"])
{
JObject obj = new JObject();
obj["productId"] = spuId;
obj["skuId"] = sku["skuId"];
arr.Add(obj);
}
endActivityObj["productList"] = arr;
endActivityObj["actionType"] = 1;
//{ "platformActivityId":"1016","productList":[{ "productId":"10000879673464","skuId":"15601266074"},{ "productId":"10000879673464","skuId":"15601240593"}],"actionType":1}
rst = WxSimProductBLL.cancelActivity(shop, endActivityObj);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg");
BaseMsgForm.ShowError("取消优惠失败 " + error);
return;
}
}
BaseMsgForm.ShowInfo("取消优惠成功");
}
}
public class UpdateDeliverInfoParam
{
public string orderId { get; set; } // "3736580679658008320",
public List<Dictionary<string, UpdateDeliverChangeInfo>> changeInfo { get; set; }
}
public class UpdateDeliverChangeInfo
{
public string deliveryId { get; set; } // "OTHER",
public string waybillId { get; set; } // "772064082455686",
public List<UpdateDeliverProductInfo> productInfos { get; set; } = new List<UpdateDeliverProductInfo>(); // [ { "productId": "10000875072190", "skuId": "15516018429", "productCnt": 1 } ]
}
public class UpdateDeliverProductInfo
{
public string productId { get; set; } // "10000875072190",
public string skuId { get; set; } // "15516018429",
public int? productCnt { get; set; } // 1
}
}
@@ -0,0 +1,298 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
//////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
//+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
//uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
//+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
/////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
//85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
//////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
//////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
/4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
/4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
</value>
</data>
</root>