微信调用外部插件修改订单,拼多多获取token等部分功能

This commit is contained in:
wule committed 2026-03-31 09:51:15 +08:00
1 parent 81d5107b32
commit ff42506091
24 files changed
+2728 -193

No files matched your search

+4
View File
@@ -195,6 +195,9 @@
<Compile Include="Model\Param\PDDCouponParam\PDDActivityMarketingParam.cs" />
<Compile Include="Model\Param\PDDCouponParam\PDDCouponParam.cs" />
<Compile Include="Model\Param\OutServerGoodsParam.cs" />
<Compile Include="Model\Param\ToolsManage\ADSLAccountParam.cs" />
<Compile Include="Model\Param\ToolsManage\ProductMappingExportInfo.cs" />
<Compile Include="Model\Param\ToolsManage\ProductMappingImportParam.cs" />
<Compile Include="Model\Param\WXParam\WXCateAuthParam.cs" />
<Compile Include="Model\Param\WXParam\WXCoupon.cs" />
<Compile Include="Model\Result\1688\_1688ClientProductInfo.cs" />
@@ -271,6 +274,7 @@
<Compile Include="Model\Result\WXResult\GetCateOnShelfInfo.cs" />
<Compile Include="Model\Result\WXResult\GetProdCateInfo.cs" />
<Compile Include="Model\Result\WXResult\WxCatInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOrderInfoLite.cs" />
<Compile Include="Model\Result\WXResult\WXShopTokenInfo.cs" />
<Compile Include="MultiThreadClient.cs" />
<Compile Include="OutExcel.cs" />
+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 936;
public static int VersionCount = 937;
//public static int VersionCount = 613;
/// <summary>
+11
View File
@@ -33,7 +33,14 @@ namespace AllBase.Model.Result
public DateTime WxTokenExpire { get; set; }
public string Cookies { get; set; } = "";
public string Cookies2 { get; set; } = "";
/// <summary>
/// 拼多多 pdd id
/// </summary>
public string pddid { get; set; }
/// <summary>
/// 拼多多 mall id
/// </summary>
public string MallId { get; set; }
public ConcurrentList<string> AntiContents { get; set; } = new ConcurrentList<string>();
public string openid { get; set; }
public Dictionary<string, string> DictMultiCookies { get; set; } = new Dictionary<string, string>();
@@ -288,6 +295,10 @@ namespace AllBase.Model.Result
/// </summary>
public string AntiContent { get; set; }
/// <summary>
/// 拼多多店铺信息
/// </summary>
public string MallId { get; set; }
/// <summary>
/// 微信小店开放Id信息
/// </summary>
public string openid { get; set; }
@@ -0,0 +1,155 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result.WXResult
{
public class WxOrderInfoLite
{
public commonInfoInfo commonInfo { get; set; }
public buyerInfoInfo buyerInfo { get; set; }
public acceptInfoInfo acceptInfo { get; set; }
public notesInfoInfo notesInfo { get; set; }
public List<orderProductInfoInfo> orderProductInfo { get; set; }
public priceInfoInfo priceInfo { get; set; }
}
public class priceInfoInfo
{
public string productPrice { get; set; } // "1314",
public string orderPrice { get; set; } // "920",
public int? freight { get; set; } // 0,
public string discountedPrice { get; set; } // "394",
public bool? isDiscounted { get; set; } // true,
public string originalOrderPrice { get; set; } // "1314",
public string estimateProductPrice { get; set; } // "920",
public string handingFee { get; set; } // "0",
public string maxUnsplitAmount { get; set; } // "920",
public string totalDiscountedPrice { get; set; } // "394",
public string merchantReceievePrice { get; set; } // "920"
}
public class orderProductInfoInfo
{
public string productId { get; set; } // "10000522038261",
public string thumbImg { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/6980d5e9000274af1d77c459f0a41715000000a100004f50",
public string title { get; set; } // "鸡蛋花发夹头饰2025新款发卡花朵耳边抓夹海边发饰边夹女侧边夹子",
public string skuId { get; set; } // "8461227474",
public List<string> saleParam { get; set; } // [ "鸡蛋花发夹【小号+中号+大号】三件", "无规格" ],
public int? productType { get; set; } // 1,
public int? productCnt { get; set; } // 1,
public string salePrice { get; set; } // "1314",
public string spuCode { get; set; } // "2017501223894417410",
public string skuCode { get; set; } // "2017501223915388930",
public bool? isPreSale { get; set; } // false,
public bool? isIflashbuy { get; set; } // false,
public bool? isFreeGift { get; set; } // false,
public bool? canAfterSale { get; set; } // true,
public int? realPrice { get; set; } // 920,
public int? perRealPrice { get; set; } // 920,
public List<orderTagInfo> tags { get; set; }
public productSourceInfo productSource { get; set; }
public afterSaleInfoInfo afterSaleInfo { get; set; }
}
public class afterSaleInfoInfo
{
public string afterId { get; set; } // "",
public bool? canAfterSale { get; set; } // true,
public string canNotAfterSaleReason { get; set; } // "",
public string jumpUrl { get; set; } // "",
public string title { get; set; } // "",
public string content { get; set; } // "",
public string afterSaleDoneStr { get; set; } // "",
public string afterSaleDoneAmountStr { get; set; } // "",
public int? afterSaleDoneAmount { get; set; } // 0,
public int? afterSaleDoneProductCnt { get; set; } // 0,
public int? afterSaleIngProductCnt { get; set; } // 0,
public bool? isGuaranteeIng { get; set; } // false,
public bool? hasFakeOnePayFourDoneGuarantee { get; set; } // false
}
public class productSourceInfo
{
public bool? show { get; set; } // true,
public int? saleChannelType { get; set; } // 100,
public string saleChannel { get; set; } // "达人带货",
public string accountType { get; set; } // "带货达人",
public string accountName { get; set; } // "橙子家女装穿搭",
public string productTitle { get; set; } // "鸡蛋花发夹头饰2025新款发卡花朵耳边抓夹海边发饰边夹女侧边夹子",
public string headImgUrl { get; set; } // "http://wx.qlogo.cn/finderhead/UOlZKghBxabnuOsYTibfjpr4Opg40jvBgR7sibl5DGibhvgm9Ihiaibxdyw/96?wxf_fmt=jpeg",
public string contentTypeWording { get; set; } // "",
public string contentName { get; set; } // "",
public string commissionFeeTypeWoring { get; set; } // "达人佣金",
public string commissionFeeWording { get; set; } // "预估佣金",
public int? commissionFee { get; set; } // 276,
public string promoterAccountTypeWording { get; set; } // "",
public string promoterHeadImgUrl { get; set; } // "",
public string promoterNickname { get; set; } // "",
public string promoterCommissionFeeTypeWoring { get; set; } // "",
public string promoterCommissionFeeWording { get; set; } // "",
public string promoterCommissionFee { get; set; } // 0
}
public class orderTagInfo
{
public string @class { get; set; } // "black",
public string desc { get; set; } // "7天无理由",
public string iconUrl { get; set; } // "",
public string mainUrl { get; set; } // "",
public int? tagType { get; set; } // 4
}
public class notesInfoInfo
{
public string hasNotes { get; set; } // true,
public string customerNotes { get; set; } // "",
public string merchantNotes { get; set; } // "订单测试",
public string presentNotes { get; set; } // ""
}
public class acceptInfoInfo
{
public addressInfoInfo addressInfo { get; set; }
}
public class addressInfoInfo
{
public string cityName { get; set; } // "南宁市",
public string countyName { get; set; } // "西乡塘区",
public string provinceName { get; set; } // "广西壮族自治区",
public string userName { get; set; } // "敏*",
public string telNumber { get; set; } // "156****0358",
public string detailInfo { get; set; } // "****",
public string virtualOrderTelNumber { get; set; } // ""
}
public class buyerInfoInfo
{
public bool? canConnectCustomer { get; set; } // true,
public string nickName { get; set; } // "蓝精灵wh"
}
public class commonInfoInfo
{
public string orderId { get; set; } // "3735356447476047104",
public int? orderType { get; set; } // 0,
public string statusStr { get; set; } // "待发货",
public int? status { get; set; } // 20,
public int? originalStatus { get; set; } // 11,
public string openid { get; set; } // "oHmFD2VTpRXWUvGdyACw9C5CnVUc",
public int? createTime { get; set; } // 1774864226,
public string createTimeStr { get; set; } // "2026-03-30 17:50",
public int? isOverTimeOrder { get; set; } // 2
}
}
@@ -94,7 +94,7 @@ namespace KJD_Web.BLL.BXX
}
else
{
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.anti_contents,s.pddid,s.shop_id,s.shop_account,s.sub_user_name," +
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.anti_contents,s.pddid,s.mall_id,s.shop_id,s.shop_account,s.sub_user_name," +
"s.user_name,s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month," +
"s.add_time,s.mdy_time,s.add_sub_sa_time,s.operate_sub_sa_name";
//sql += " FROM bxx.shop s WHERE 1=1";
@@ -133,6 +133,7 @@ namespace KJD_Web.BLL.BXX
add_product_month = row["add_product_month"].ParseToInt(),
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
pddid = row["pddid"].ParseToString(),
mall_id = row["mall_id"].ParseToString(),
};
shopList.Add(shop);
}
@@ -525,6 +526,7 @@ namespace KJD_Web.BLL.BXX
string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2");
string anti_contents = RegexUtils.GetStringQuery(ref inputData, "anti_contents");
string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
string mall_id = RegexUtils.GetStringQuery(ref inputData, "mall_id");
string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account");
string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name");
string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes"));
@@ -555,9 +557,10 @@ namespace KJD_Web.BLL.BXX
return "{\"code\":500,\"msg\":\"店铺" + login_name +" " + shop_account + "已存在\"}";
}
sql = "insert into bxx.shop (login_name,login_pass,cookie,cookie2,anti_contents,shop_account,shop_id,sub_user_name,user_name,group_name,notes,add_time,mdy_time) " +
"values ('" + login_name + "','" + login_pass + "','" + cookie + "','" + cookie2 + "','" + anti_contents + "','" + shop_account + "','" + shop_id + "','" +
sub_user_name + "','" + user_name + "','" + group_name + "','" + notes + "','" +
sql = "insert into bxx.shop (login_name,login_pass,cookie,cookie2,anti_contents,shop_account,shop_id," +
"mall_id,sub_user_name,user_name,group_name,notes,add_time,mdy_time) " +
"values ('" + login_name + "','" + login_pass + "','" + cookie + "','" + cookie2 + "','" + anti_contents + "','" + shop_account + "','" + shop_id +
"','" + mall_id + "','" + sub_user_name + "','" + user_name + "','" + group_name + "','" + notes + "','" +
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" +
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');";
var rst = mySql.ExecuteNonQuery(sql);
@@ -585,6 +588,7 @@ namespace KJD_Web.BLL.BXX
string anti_contents = RegexUtils.GetStringQuery(ref inputData, "anti_contents");
string new_shop_id = RegexUtils.GetStringQuery(ref inputData, "new_shop_id");
string old_shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
string mall_id = RegexUtils.GetStringQuery(ref inputData, "mall_id");
string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account");
string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name");
string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes"));
@@ -615,6 +619,8 @@ namespace KJD_Web.BLL.BXX
sql += " anti_contents='" + anti_contents + "',";
if (new_shop_id != null)
sql += " shop_id='" + new_shop_id + "',";
if (mall_id != null)
sql += " mall_id='" + mall_id + "',";
if (shop_account != null)
sql += " shop_account='" + shop_account + "',";
if (sub_user_name != null)
@@ -812,5 +818,25 @@ namespace KJD_Web.BLL.BXX
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
public string E57GetPddShopToken(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt();
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
if (time1 != EncrypUtil.Encryption(time))
return "{\"code\":50000,\"msg\":\"校验失败\"}";
var mall_id = RegexUtils.GetStringQuery(ref inputData, "mall_id")?.Replace("'", "\\'");
var url = "https://po.e57.cn/prod-api/api/sys-api/system/open/api/shop/info/forPdd?mallId=" + mall_id;
var tokenRst = HttpUtils.e57GetResponse(url, "");
if (!tokenRst.Contains("\"code\":0"))
tokenRst = HttpUtils.e57GetResponse(url, "");
return tokenRst;
}
return "{\"code\":19999,\"msg\":\"输入为空\"}";
}
}
}
@@ -228,5 +228,17 @@ namespace KJD_Web
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void e57_get_pdd_shop_token()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new BXXShopManage().E57GetPddShopToken(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
}
}
@@ -21,6 +21,10 @@ namespace KJD_Web.Model.ShopModel
/// </summary>
public string pddid { get; set; }
/// <summary>
/// 拼多多mall_id
/// </summary>
public string mall_id { get; set; }
/// <summary>
/// 微信openId
/// </summary>
public string openid { get; set; }
+193
View File
@@ -1,12 +1,15 @@
using AllBase;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Work.CollectClass;
namespace TemuKJD.BLL.PddApi
{
@@ -74,6 +77,196 @@ namespace TemuKJD.BLL.PddApi
return html;
}
public string PddGoodsGetRelation(string pid = "")
{
string type = "pdd.goods.get.relation";
if (!string.IsNullOrEmpty(pid))
Data["pdd_goods_id"] = "[" + pid.ToString() + "]";
string html = PddApiRequest(type, Data);
return html;
}
public string PddPopAuthTokenCreate()
{
string type = "pdd.pop.auth.token.create";
if (!Data.Keys.Contains("code"))
Data["code"] = "83be994d5ed04e6cb9643a423094a3296bf8827a";
string html = PddApiRequest(type, Data);
return html;
}
/// <summary>
/// 关联
/// </summary>
/// <param name="pid"></param>
/// <param name="outGoodsId"></param>
/// <param name="minPrice">最低价 分</param>
/// <param name="maxPrice">最高价 分</param>
/// <param name="postAge">邮费 元</param>
/// <param name="sourceType">
/// 外部平台枚举值, 0-淘宝/天猫 ,1-京东,2-1688,3-唯品会,4-苏宁,5-亚马逊,6-网易,
/// 8-微店,9-网商园,10-蘑菇街,11-vvic搜款网,12-搜鞋网,13-一起做网店17zwd,14-杭州女装网,
/// 15-折800,16-当当,17-青创网,18-开山网,19-新款网
/// </param>
/// <returns></returns>
public string Relation2603(long pid, long outGoodsId, int minPrice, int maxPrice, int postAge, int sourceType)
{
string type = "pdd.goods.relation.set";
Data = new Dictionary<string, object>();
Data.Add("goods_id", pid.ToString());
Data.Add("out_goods_id", outGoodsId.ToString());
string detailUrl = "";
if (sourceType == 0)
detailUrl = "https://item.taobao.com/item.htm?id=" + outGoodsId;
if (sourceType == 2)
detailUrl = "https://detail.1688.com/offer/" + outGoodsId + ".html";
else if (sourceType == 8)
detailUrl = "https://weidian.com/item.html?itemID=" + outGoodsId;
else if (sourceType == 1)
detailUrl = "https://item.jd.com/" + outGoodsId + ".html";
Data.Add("out_detail_url", detailUrl);
Data.Add("out_low_goods_price", minPrice.ToString());
Data.Add("out_high_goods_price", maxPrice.ToString());
Data.Add("source_type", sourceType.ToString());
Data.Add("postage", postAge.ToString());
string html = PddApiRequest(type, Data);
return html;
}
/// <summary>
/// 更新商品,然后设置关联映射(更新成功必须设置映射关系)。
/// 拼多多要求所有的商品必须与淘宝商品ID关联,且拼多多每个SKU价格小于等于淘宝价格*1.08。
/// 如果有以下情况:1.上家为拼多多商品、2.加价大于8%、3.单独有增加邮费,则去淘宝查找同款,获取单价大于当前加价后价格93%的
/// 淘宝ID,然后把价格和淘宝ID通过接口影射修改商品接口。其他情况,使用拼多多查询之前的映射关系,再次映射。如果无法通过以上
/// 办法获取映射,则想尽所有办法做一个正确的,甚至虚假的映射。
/// </summary>
/// <param name="pddRelation">关联参数类</param>
/// <returns></returns>
public string UpdataThenRelation(PinduoduoRelation pddRelation)
{
Dictionary<string, object> dataTemp = new Dictionary<string, object>();
foreach (var keyValue in this.Data)
{
dataTemp.Add(keyValue.Key, keyValue.Value);
}
string upResult = string.Empty;
#region 先判断是否有基本数据足以关联,不足直接退出
if (pddRelation == null)
pddRelation = new PinduoduoRelation();
if (pddRelation.goods_id == null)
{
if (dataTemp.ContainsKey("goods_id"))
{
try
{
pddRelation.goods_id = Convert.ToInt64(dataTemp["goods_id"]);
}
catch
{
//LogSave.Add(Name, "拼多多id获取失败,跳过");
return "拼多多id获取失败";
}
}
else
{
//LogSave.Add(Name, "拼多多id获取失败,跳过");
return "拼多多id获取失败";
}
}
if (pddRelation.out_low_goods_price == null || pddRelation.out_high_goods_price == null)
{
pddRelation.out_low_goods_price = int.MaxValue;
pddRelation.out_high_goods_price = 0;
if (dataTemp.ContainsKey("sku_list"))
{
var skuJson = dataTemp["sku_list"];
var mPriceMatches = BaseRegex.GetMatchRegex(skuJson.ParseToString(), "\"multi_price\":\"([\\s\\S]*?)\"");
if (mPriceMatches.Count > 0)
{
foreach (Match mPriceMatch in mPriceMatches)
{
try
{
string strPrice = BaseRegex.GetMatchRegexString(mPriceMatch.ToString(), "\"multi_price\":\"([\\s\\S]*?)\"");
long price = Convert.ToInt64(strPrice);
if (price < pddRelation.out_low_goods_price)
pddRelation.out_low_goods_price = price;
if (price > pddRelation.out_high_goods_price)
pddRelation.out_high_goods_price = price;
}
catch { }
}
pddRelation.out_low_goods_price = (long)(pddRelation.out_low_goods_price * 0.93);
pddRelation.out_high_goods_price = (long)(pddRelation.out_high_goods_price * 0.93);
}
}
if (pddRelation.out_low_goods_price == int.MaxValue)
return "关联价格获取失败";
}
#endregion
#region 获取其他关联数据
#region 通过服务器缓存获取关联数据
//// 内部获取上家id
//string idx = "";
//var re = new JumpUpProductNew(Shop).GetServerId(pddRelation.goods_id.Value, out idx);
#endregion
#region 通过接口获取关联数据
if (pddRelation.out_goods_id == null || pddRelation.source_type == null)
{
string html = PddGoodsGetRelation(pddRelation.goods_id.ToString());
// 有获取到对应的上家id
if (html.Contains("out_goods_id") && html.Contains("out_goods_platform"))
{
if (pddRelation.out_goods_id == null)
pddRelation.out_goods_id = BaseRegex.GetLongJson(ref html, "out_goods_id").ToString();
if (pddRelation.source_type == null)
pddRelation.source_type = BaseRegex.GetIntJson(ref html, "out_goods_platform");
}
else
{
// 未获取到上家id的情况,随机淘宝id,临时使用
pddRelation.out_goods_id = "5" + Randomx.GetNumber(11);
pddRelation.source_type = 0;
}
}
#endregion
if (pddRelation.postage == null)
pddRelation.postage = 0;
#endregion
#region 更新商品
this.Data = dataTemp;
upResult = this.PddGoodsInformationUpdate();
// 调用失败直接返回结果,不设置关联
if (string.IsNullOrEmpty(upResult) || !upResult.Contains("\"is_success\":true"))
return upResult;
#endregion
#region 设置关联
try
{
string html = this.Relation2603(pddRelation.goods_id.Value, long.Parse(pddRelation.out_goods_id),
(int)pddRelation.out_low_goods_price.Value, (int)pddRelation.out_high_goods_price,
(int)pddRelation.postage.Value, pddRelation.source_type.Value);
if (string.IsNullOrEmpty(html) || !html.Contains("\"is_success\":true"))
{
//LogSave.Add(Name, "关联设置失败,商品id是" + pddRelation.goods_id);
return "关联设置失败,商品id是" + pddRelation.goods_id;
}
}
catch
{
}
#endregion
return upResult;
}
/// <summary>
///
/// </summary>
+27 -2
View File
@@ -1,13 +1,38 @@
using System;
using AllBase;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Work;
namespace TemuKJD.BLL.PddApi
{
public class PddApiHelper
{
public static AuthInfo GetShopPddToken(ShopLoginInfo shop)
{
var url = BaseClass.BuildObjString("shop/e57_get_pdd_shop_token");
var data = UserLogin.GetSignaturex();
data += "&mall_id=" + shop.MallId;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":0"))
{
}
else
{
var token = new AuthInfo()
{
ShopId = shop.ShopId,
AppKey = BaseClass.GetFileMd5(BaseRegex.GetStringJson(ref html, "appKey").ParseToString()),
AccessToken = BaseRegex.GetStringJson(ref html, "accessToken"),
ExpiresTime = BaseClass.StampToDateTime(BaseRegex.GetIntJson(ref html, "tokenExpiresTime")),
};
return token;
}
return new AuthInfo() { ShopId = shop.ShopId, AccessToken = "", ExpiresTime = DateTime.Now };
}
}
}
+2
View File
@@ -22,6 +22,7 @@ namespace TemuKJD.BLL
+ "&login_pass=" + GetHtml.UrlEncodeUtf8(_shop.Password)
+ "&shop_id=" + _shop.ShopId
+ "&shop_account=" + _shop.ShopAccount
+ "&mall_id" + _shop.MallId
+ "&cookie=" + _shop.Cookies
+ "&cookie2=" + _shop.Cookies2
+ "&group_name=" + GetHtml.UrlEncodeUtf8(_shop.GroupName)
@@ -289,6 +290,7 @@ namespace TemuKJD.BLL
shop.ad_seller_unique_id = BaseRegex.GetStringJson(ref shopStr, "ad_seller_unique_id");
shop.ad_url = BaseRegex.GetStringJson(ref shopStr, "ad_url");
shop.pddid = BaseRegex.GetStringJson(ref shopStr, "pddid");
shop.MallId = BaseRegex.GetStringJson(ref shopStr, "mall_id");
shop.openid = BaseRegex.GetStringJson(ref shopStr, "openid");
shop.jit_expire_time = BaseRegex.GetStringJson(ref shopStr, "jit_expire_time") == null ? new DateTime?() : Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "jit_expire_time"));
shop.AddTime = BaseRegex.GetStringJson(ref shopStr, "add_time") == null ? DateTime.MinValue : Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "add_time"));
+78
View File
@@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.BLL.Tools
{
public class DownloadBLL
{
public static string downloadFile(string url, string fileName, Control ctrl)
{
if (ctrl == null)
ctrl = new Control();
//string StrFileName = "d:\\wgscd.zip"; //根据实际情况设置
//string StrUrl = "https://files.cnblogs.com/files/wgscd/xxx.zip"; //根据实际情况设置
string StrFileName = fileName;
string StrUrl = url;
//打开上次下载的文件或新建文件
long lStartPos = 0;
System.IO.FileStream fs;
if (System.IO.File.Exists(StrFileName))//另外如果文件已经下载完毕,就不需要再断点续传了,不然请求的range 会不合法会抛出异常。
{
fs = System.IO.File.OpenWrite(StrFileName);
lStartPos = fs.Length;
fs.Seek(lStartPos, System.IO.SeekOrigin.Current); //移动文件流中的当前指针
}
else
{
fs = new System.IO.FileStream(StrFileName, System.IO.FileMode.Create);
lStartPos = 0;
}
//打开网络连接
try
{
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(StrUrl);
if (lStartPos > 0)
{
request.AddRange((int)lStartPos); // 设置Range值
}
System.Net.WebResponse response = request.GetResponse();
//向服务器请求,获得服务器回应数据流
System.IO.Stream ns = response.GetResponseStream();
long totalSize = response.ContentLength;
long hasDownSize = 0;
byte[] nbytes = new byte[512];//521,2048 etc
int nReadSize = 0;
nReadSize = ns.Read(nbytes, 0, nbytes.Length);
while (nReadSize > 0)
{
fs.Write(nbytes, 0, nReadSize);
nReadSize = ns.Read(nbytes, 0, 512);
hasDownSize += nReadSize;
ctrl.Invoke(new Action(() =>
{
//ctrl.Text = "" + hasDownSize + "/" + totalSize + " (" + (((double)hasDownSize * 100 / totalSize).ToString("0.00")) + "%)"; // 显示下载百分比
ctrl.Text = "正在下载模块 " + ((double)(hasDownSize + lStartPos) * 100 / (totalSize + lStartPos)).ToString("0.00") + "%"; // 显示下载百分比
}));
//Application.DoEvents();
}
fs.Close();
ns.Close();
ctrl.Invoke(new Action(() =>
{
ctrl.Text = "模块下载完成 " + ((double)(hasDownSize + lStartPos) * 100 / (totalSize + lStartPos)).ToString("0.00") + "%"; // 显示下载百分比
}));
return "下载完成";
}
catch (Exception ex)
{
fs.Close();
return "下载过程中出现错误:" + ex.ToString();
}
}
}
}
+3 -1
View File
@@ -15,13 +15,15 @@ namespace TemuKJD.BLL
{
public class WxApiBLL
{
public WXShopTokenInfo GetRandomWxToken()
public WXShopTokenInfo GetRandomWxToken(bool isShowErrorDlg = true)
{
if (GlobalConfig.WxTokenList.Count == 0 || GlobalConfig.WxTokenList.All(t => t.isExpire == true))
{
var url = BaseClass.BuildObjString("shop/e57_get_wx_tokens");
var data = UserLogin.GetSignaturex();
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
BaseMsgForm.ShowError("获取授权失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
+11
View File
@@ -101,6 +101,7 @@
</Reference>
<Reference Include="System.Design" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
@@ -127,6 +128,7 @@
<Compile Include="BLL\Pdd\PddApi.cs" />
<Compile Include="BLL\PDDProdFormConverter.cs" />
<Compile Include="BLL\ProductSelectBLL.cs" />
<Compile Include="BLL\Tools\DownloadBLL.cs" />
<Compile Include="BLL\WxApiBLL.cs" />
<Compile Include="BLL\WXHttpResponseBLL.cs" />
<Compile Include="BLL\WxProdFormConverter.cs" />
@@ -1143,6 +1145,12 @@
<Compile Include="WXForms\TalkForms\WxTalkForm.Designer.cs">
<DependentUpon>WxTalkForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\TalkForms\WxOrderListForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="WXForms\TalkForms\WxOrderListForm.Designer.cs">
<DependentUpon>WxOrderListForm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="BaseForms\BaseTalkForm.resx">
<DependentUpon>BaseTalkForm.cs</DependentUpon>
</EmbeddedResource>
@@ -1619,6 +1627,9 @@
<EmbeddedResource Include="WXForms\TalkForms\WxTalkForm.resx">
<DependentUpon>WxTalkForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\TalkForms\WxOrderListForm.resx">
<DependentUpon>WxOrderListForm.cs</DependentUpon>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
@@ -30,15 +30,16 @@ namespace TemuKJD.PDDForms.ProductSelectForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.btnApiUpload = new DevComponents.DotNetBar.PanelEx();
this.btnUpload = new DevComponents.DotNetBar.PanelEx();
this.label7 = new System.Windows.Forms.Label();
this.txtWaitSeconds = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
@@ -80,7 +81,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.txtAddMorePrice = new System.Windows.Forms.TextBox();
this.txtAddTimes = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.btnUpload = new DevComponents.DotNetBar.PanelEx();
this.txtStockNum = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
@@ -211,6 +211,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx2.Controls.Add(this.btnApiUpload);
this.ucGroupBoxEx2.Controls.Add(this.btnUpload);
this.ucGroupBoxEx2.Controls.Add(this.label7);
this.ucGroupBoxEx2.Controls.Add(this.txtWaitSeconds);
this.ucGroupBoxEx2.Controls.Add(this.label6);
@@ -248,7 +249,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.ucGroupBoxEx2.Controls.Add(this.txtAddMorePrice);
this.ucGroupBoxEx2.Controls.Add(this.txtAddTimes);
this.ucGroupBoxEx2.Controls.Add(this.label10);
this.ucGroupBoxEx2.Controls.Add(this.btnUpload);
this.ucGroupBoxEx2.Controls.Add(this.txtStockNum);
this.ucGroupBoxEx2.Controls.Add(this.label4);
this.ucGroupBoxEx2.Controls.Add(this.label9);
@@ -270,7 +270,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnApiUpload.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnApiUpload.DisabledBackColor = System.Drawing.Color.Empty;
this.btnApiUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnApiUpload.Location = new System.Drawing.Point(965, 67);
this.btnApiUpload.Location = new System.Drawing.Point(965, 40);
this.btnApiUpload.Name = "btnApiUpload";
this.btnApiUpload.Size = new System.Drawing.Size(84, 23);
this.btnApiUpload.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -285,10 +285,35 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.btnApiUpload.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnApiUpload.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnApiUpload.TabIndex = 742;
this.btnApiUpload.Text = "接口上传";
this.btnApiUpload.Text = "批量上传";
this.btnApiUpload.Visible = false;
this.btnApiUpload.Click += new System.EventHandler(this.btnApiUpload_Click);
//
// btnUpload
//
this.btnUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty;
this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpload.Location = new System.Drawing.Point(965, 81);
this.btnUpload.Name = "btnUpload";
this.btnUpload.Size = new System.Drawing.Size(84, 23);
this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnUpload.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUpload.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUpload.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnUpload.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnUpload.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnUpload.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnUpload.Style.GradientAngle = 90;
this.btnUpload.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnUpload.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnUpload.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnUpload.TabIndex = 517;
this.btnUpload.Text = "模拟上传";
this.btnUpload.Click += new System.EventHandler(this.btnUpload_Click);
//
// label7
//
this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -406,8 +431,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chkUpgradeVersion
//
this.chkUpgradeVersion.AutoSize = true;
this.chkUpgradeVersion.Checked = true;
this.chkUpgradeVersion.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkUpgradeVersion.Location = new System.Drawing.Point(531, 82);
this.chkUpgradeVersion.Name = "chkUpgradeVersion";
this.chkUpgradeVersion.Size = new System.Drawing.Size(83, 21);
@@ -445,8 +468,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chk15996
//
this.chk15996.AutoSize = true;
this.chk15996.Checked = true;
this.chk15996.CheckState = System.Windows.Forms.CheckState.Checked;
this.chk15996.Location = new System.Drawing.Point(870, 52);
this.chk15996.Name = "chk15996";
this.chk15996.Size = new System.Drawing.Size(62, 21);
@@ -458,8 +479,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chk21365
//
this.chk21365.AutoSize = true;
this.chk21365.Checked = true;
this.chk21365.CheckState = System.Windows.Forms.CheckState.Checked;
this.chk21365.Location = new System.Drawing.Point(815, 52);
this.chk21365.Name = "chk21365";
this.chk21365.Size = new System.Drawing.Size(62, 21);
@@ -471,8 +490,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chk20981
//
this.chk20981.AutoSize = true;
this.chk20981.Checked = true;
this.chk20981.CheckState = System.Windows.Forms.CheckState.Checked;
this.chk20981.Location = new System.Drawing.Point(760, 52);
this.chk20981.Name = "chk20981";
this.chk20981.Size = new System.Drawing.Size(62, 21);
@@ -484,8 +501,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chk22347
//
this.chk22347.AutoSize = true;
this.chk22347.Checked = true;
this.chk22347.CheckState = System.Windows.Forms.CheckState.Checked;
this.chk22347.Location = new System.Drawing.Point(705, 52);
this.chk22347.Name = "chk22347";
this.chk22347.Size = new System.Drawing.Size(62, 21);
@@ -576,8 +591,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chkActivity
//
this.chkActivity.AutoSize = true;
this.chkActivity.Checked = true;
this.chkActivity.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkActivity.Location = new System.Drawing.Point(531, 52);
this.chkActivity.Name = "chkActivity";
this.chkActivity.Size = new System.Drawing.Size(135, 21);
@@ -848,31 +861,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
this.label10.TabIndex = 534;
this.label10.Text = "倍再加";
//
// btnUpload
//
this.btnUpload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty;
this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpload.Location = new System.Drawing.Point(965, 40);
this.btnUpload.Name = "btnUpload";
this.btnUpload.Size = new System.Drawing.Size(84, 23);
this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnUpload.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUpload.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnUpload.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnUpload.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnUpload.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnUpload.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnUpload.Style.GradientAngle = 90;
this.btnUpload.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnUpload.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnUpload.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnUpload.TabIndex = 517;
this.btnUpload.Text = "批量上传";
this.btnUpload.Click += new System.EventHandler(this.btnUpload_Click);
//
// txtStockNum
//
this.txtStockNum.Location = new System.Drawing.Point(486, 110);
@@ -932,8 +920,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
// chkLowPriceSku
//
this.chkLowPriceSku.AutoSize = true;
this.chkLowPriceSku.Checked = true;
this.chkLowPriceSku.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkLowPriceSku.Location = new System.Drawing.Point(531, 111);
this.chkLowPriceSku.Name = "chkLowPriceSku";
this.chkLowPriceSku.Size = new System.Drawing.Size(83, 21);
@@ -1302,19 +1288,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle13.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle13;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle14.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle14.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle14;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1473,19 +1459,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
this.dgvSelectProduct.AllowUserToAddRows = false;
this.dgvSelectProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle15.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle15;
this.dgvSelectProduct.AutoRowNumber = true;
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle16.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle16.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle16.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle16.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle16.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle16;
this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1547,8 +1533,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colSupplierName
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle17;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1626,8 +1612,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
//
// colProductName
//
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle18.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle18;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -195,12 +195,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms
shop.ApiAuthInfoList = new List<AuthInfo>();
shop.ApiAuthInfoList.Add(new AuthInfo { AccessToken = accessToken });
}
//var shop = GlobalConfig.ShopLoginList.First(s => s.ShopAccount == "阿杰小铺浦哈哈");
//shop.ApiAuthInfoList = new List<AuthInfo>();
//shop.ApiAuthInfoList.Add(new AuthInfo { AccessToken = "9ebbf9cc47834f7685af90c87cea1c7d4ff8d3dc" });
}
}
// 测试写死
var shop1 = GlobalConfig.ShopLoginList.First(s => s.ShopAccount == "阿杰小铺浦哈哈");
shop1.ApiAuthInfoList = new List<AuthInfo>();
shop1.ApiAuthInfoList.Add(new AuthInfo { AccessToken = "269a0baaca9b42abb443756fac90f88b0836f610" });
}
private void chkSelectAll_CheckedChanged(object sender, EventArgs e)
@@ -6630,7 +6631,15 @@ Content-Type: image/jpeg
cancellationTokenSource = new CancellationTokenSource();
Task.Run(() =>
{
GetShopAndUpProduct();
// 随机店铺并分配商品
try
{
GetShopAndUpProduct();
}
catch (Exception ex)
{
BaseMsgForm.ShowError("店铺分配错误:" + ex.Message);
}
Invoke(new Action(() =>
{
this.btnUpload.Enabled = true;
@@ -6680,19 +6689,107 @@ Content-Type: image/jpeg
{
lblWaitToUp.Text = "待上传 " + lstTemuDBProductSelect.Count + " 件";
}));
// 开启一个上传线程
// 启动一个上传线程
Task.Run(() =>
{
string result;
DateTime startTime = DateTime.Now;
double duration = 0;
string result = "";
try
{
ApiUploadProduct(canUpShop, selectProd);
// 列表显示选择到的商品
DataGridViewRow row = null;
Invoke(new Action(() =>
{
int rowIndex = 0;
this.dgvSelectProduct.Rows.Insert(rowIndex,
true,
selectProd.id,
selectProd.shop_id,
selectProd.shop_account,
"登录",
"进店",
//prod.spu_id,
BaseClass.SaLevel > 0 ? selectProd.spu_id : selectProd.spu_id.ParseToString().GetHashCode().ParseToString().Trim('-'),
selectProd.skc_id,
selectProd.main_img,
null,
"",
null,
selectProd.product_name, // 用户端显示商品原名
selectProd.cat_name,
//prod.secret_spu_id == null ? prod.ext_code : prod.secret_spu_id,
BaseClass.SaLevel > 0 ? selectProd.ext_code : selectProd.ext_code.ParseToString().GetHashCode().ParseToString().Trim('-'),
selectProd.status,
selectProd.draft_id,
selectProd.notes,
(selectProd.user_notes + " 编辑").Trim(),
"删除",
"",
"");
row = dgvSelectProduct.Rows[rowIndex];
row.Height = 60;
int maxRowCount = 10000;
while (dgvSelectProduct.Rows.Count > maxRowCount)
{
dgvSelectProduct.Rows.RemoveAt(maxRowCount);
}
}));
// 接口上传
try
{
result = ApiUploadProduct(canUpShop, selectProd, row);
}
catch (Exception ex)
{
result = "{\"success\":false,\"status\":\"未上传\",\"errMsg\":\"" + ex.Message + "\"}";
}
var error = "";
// 上传失败
if (!result.Contains("\"success\":true") && !result.Contains("上传成功"))
{
error = BaseRegex.GetStringJson(ref result, "errMsg");
if (string.IsNullOrWhiteSpace(error))
error = result;
Invoke(new Action(() =>
{
if (row.Index >= 0)
{
var endTime = DateTime.Now;
var timeSpan = endTime - startTime;
duration = timeSpan.TotalSeconds;
row.Cells["colOpResult"].Value = error + " " + duration.ParseToInt() + "秒";
}
}));
}
else // 上传成功
{
selectProd.status = BaseRegex.GetStringJson(ref result, "status");
if (string.IsNullOrWhiteSpace(selectProd.status))
selectProd.status = "待上传";
var goodsId = BaseRegex.GetStringJson(ref result, "goodsId");
Invoke(new Action(() =>
{
if (row.Index >= 0)
{
row.Cells["colDraftId"].Value = goodsId; // 草稿箱id
row.Cells["colAddTime"].Value = DateTime.Now.ToString("yy-MM-dd HH:mm:ss");
row.Cells["colOpResult"].Value = (selectProd.status == "已上传" ? "已成功上传" : "已上传 发生错误:") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒";
row.Cells["colMsg"].Value = selectProd.status;
}
}));
}
}
catch (Exception ex)
{
result = "{\"success\":false,\"status\":\"未上传\",\"errMsg\":\"" + ex.Message + "\"}";
BaseMsgForm.ShowError("上传启动错误:" + ex.Message);
}
// 额外休眠
// 额外等待时间,休眠
Thread.Sleep(1000 * WaitUploadTime);
// 店铺移出上货队列,等待下次随机
currentUpShopLst.Remove(canUpShop);
@@ -6701,48 +6798,9 @@ Content-Type: image/jpeg
}
}
string ApiUploadProduct(ShopLoginInfo shop, TemuDBProductSelect selectProd)
string ApiUploadProduct(ShopLoginInfo shop, TemuDBProductSelect selectProd, DataGridViewRow row)
{
DataGridViewRow row = null;
DataGridViewCell cell = null;
Invoke(new Action(() =>
{
int rowIndex = 0;
this.dgvSelectProduct.Rows.Insert(rowIndex,
true,
selectProd.id,
selectProd.shop_id,
selectProd.shop_account,
"登录",
"进店",
//prod.spu_id,
BaseClass.SaLevel > 0 ? selectProd.spu_id : selectProd.spu_id.ParseToString().GetHashCode().ParseToString().Trim('-'),
selectProd.skc_id,
selectProd.main_img,
null,
"",
null,
selectProd.product_name, // 用户端显示商品原名
selectProd.cat_name,
//prod.secret_spu_id == null ? prod.ext_code : prod.secret_spu_id,
BaseClass.SaLevel > 0 ? selectProd.ext_code : selectProd.ext_code.ParseToString().GetHashCode().ParseToString().Trim('-'),
selectProd.status,
selectProd.draft_id,
selectProd.notes,
(selectProd.user_notes + " 编辑").Trim(),
"删除",
"",
"");
row = dgvSelectProduct.Rows[rowIndex];
cell = row.Cells["colOpResult"];
row.Height = 60;
int maxRowCount = 10000;
while (dgvSelectProduct.Rows.Count > maxRowCount)
{
dgvSelectProduct.Rows.RemoveAt(maxRowCount);
}
}));
DataGridViewCell cell = row.Cells["colOpResult"];
KJDDBProduct dbProd = selectProd.kjdDbProduct;
if (dbProd == null)
@@ -6775,6 +6833,15 @@ Content-Type: image/jpeg
prodInfo = JsonHelper.DeserializeJsonToObject<PDDProductInfo>(dbProd.product_json);
var pddApi = new PddApi(shop);
pddApi.Data["cat_id"] = prodInfo.detail.cat_id;
var carRuleGetRst = pddApi.PddGoodsCatRuleGet();
// 临时刷新token
//var rst1 = pddApi.PddPopAuthTokenCreate();
//满两件折扣,todo通过pdd.goods.cat.rule.get查询具体规则
//{"cat_rule_get_response":{"goods_properties_rule":{"input_max_spec_num":0,"properties":[{"is_sale":false,"is_important":false,"is_sku":false,"values":[{"vid":4643510,"value":"无品牌/无注册商标"},{"vid":1280848,"value":"画南头"},{"vid":30601,"value":"固竹匠"},{"vid":220778,"value":"浪漫喜事"},{"vid":334660,"value":"梦瑾"},{"vid":130470,"value":"朋意"},{"vid":12034,"value":"THEBEAST/野兽派"},{"vid":1942,"value":"Uchino/内野"},{"vid":34231,"value":"NITORI/宜得利家居"},{"vid":6439,"value":"Brother/兄弟"},{"vid":8553,"value":"Zara Home"},{"vid":8554,"value":"MUJI/无印良品"},{"vid":14223,"value":"VERSACE/范思哲"},{"vid":18534,"value":"Mtg"},{"vid":19991,"value":"SINGER/胜家"},{"vid":196848,"value":"Hoyo"},{"vid":224544,"value":"亚朵星球"},{"vid":280,"value":"KING SHORE/金号"},{"vid":327,"value":"SEMIR/森马"},{"vid":68,"value":"MERCURY/水星家纺"},{"vid":44617,"value":"LUOLAI/罗莱"},{"vid":386,"value":"Xiaomi/小米"},{"vid":394,"value":"Lock&Lock/乐扣乐扣"},{"vid":53109,"value":"CHRISTY"},{"vid":5702,"value":"东升"},{"vid":5727,"value":"DOHIA/多喜爱"},{"vid":561,"value":"Purcotton/全棉时代"},{"vid":6159,"value":"金蝉"},{"vid":6770,"value":"MENDALE/梦洁"},{"vid":8882,"value":"HLA/海澜之家"},{"vid":9570,"value":"MINISO/名创优品"},{"vid":119495,"value":"AUSTTBABY"},{"vid":119914,"value":"棉森"},{"vid":12031,"value":"大朴"},{"vid":128592,"value":"亿恩忆"},{"vid":12598,"value":"怡沁园"},{"vid":134564,"value":"茱莉亚"},{"vid":14220,"value":"JEANSWEST/真维斯"},{"vid":16898,"value":"奥帝罗"},{"vid":16900,"value":"德奇力"},{"vid":17523,"value":"Bravo/馨而乐"},{"vid":17529,"value":"Grace·orchid/洁丽雅·兰"},{"vid":165321,"value":"孩子王"},{"vid":17819,"value":"EverShine/永亮"},{"vid":172186,"value":"BULULOM/布鲁罗曼"},{"vid":173,"value":"南极人"},{"vid":192015,"value":"Mionsoo/棉上"},{"vid":192617,"value":"Lovhome/乐巢家居"},{"vid":193562,"value":"Tumei Home Collection/图美寝饰"},{"vid":195662,"value":"Jrb/嘉瑞宝"},{"vid":197759,"value":"Gafuhome"},{"vid":202708,"value":"LATEX SYSTEMS CO.,LTD."},{"vid":1746,"value":"梦雅莉"},{"vid":1747,"value":"虹原风尚"},{"vid":1748,"value":"LUOLANNI/罗兰妮"},{"vid":1749,"value":"梓晨"},{"vid":1752,"value":"LORiCA/骆易家"},{"vid":1769,"value":"BLISS/百丽丝"},{"vid":215899,"value":"竹月阁"},{"vid":216546,"value":"荣邦"},{"vid":200,"value":"GRACE/洁丽雅"},{"vid":1957,"value":"黄古林"},{"vid":245780,"value":"yesland雅熙莱帝"},{"vid":2105,"value":"SANLI/三利"},{"vid":2106,"value":"CARESEEN/康尔馨"},{"vid":262384,"value":"爱络"},{"vid":27838,"value":"ABS/爱彼此"},{"vid":275849,"value":"伊丝绮"},{"vid":280996,"value":"Qisilove/前世有约"},{"vid":281160,"value":"Ppw"},{"vid":252,"value":"BEJIROG/北极绒"},{"vid":283511,"value":"梦蝶莎"},{"vid":2675,"value":"芳华"},{"vid":32611,"value":"TY LIVE/田园生活"},{"vid":302922,"value":"一米"},{"vid":32853,"value":"温恋"},{"vid":32879,"value":"WS/伟殳家居"},{"vid":32881,"value":"港龙"},{"vid":32882,"value":"亚亨"},{"vid":273,"value":"Disney/迪士尼"},{"vid":33880,"value":"Aqara"},{"vid":294,"value":"洁玉"},{"vid":303,"value":"网易严选"},{"vid":3274,"value":"A-LIFE/最生活"},{"vid":369086,"value":"山花"},{"vid":373614,"value":"五洲"},{"vid":329,"value":"BOBDOG/巴布豆"},{"vid":382380,"value":"SouthLife/南方生活"},{"vid":330,"value":"Montagut/梦特娇"},{"vid":69,"value":"LOVO/乐蜗"},{"vid":3602,"value":"Curbblan/卡伴"},{"vid":3897,"value":"知梦人"},{"vid":45598,"value":"SAINTMARC/尚玛可"},{"vid":45746,"value":"SINOMAX/赛诺"},{"vid":45808,"value":"SOMERELLE/安睡宝"},{"vid":45938,"value":"SUNVIM/孚日"},{"vid":397,"value":"童泰"},{"vid":464223,"value":"Yuniku/优尼可"},{"vid":4602,"value":"Jago/佳奥"},{"vid":4657,"value":"四季帘华"},{"vid":517644,"value":"家顿"},{"vid":519506,"value":"MENBORY/梦宝莉"},{"vid":532306,"value":"MENDALE HOME"},{"vid":781538,"value":"4monster"},{"vid":5240,"value":"春天十字绣"},{"vid":5247,"value":"HD/惠多"},{"vid":65402,"value":"梦雯"},{"vid":842952,"value":"赛勒"},{"vid":846015,"value":"墨斗鱼"},{"vid":5832,"value":"8H"},{"vid":923181,"value":"大江(地垫)"},{"vid":950059,"value":"甄简良品"},{"vid":79195,"value":"伊佳仁"},{"vid":79198,"value":"雅熙莱帝"},{"vid":6958,"value":"轻生活"},{"vid":7347,"value":"TANGY/天意"},{"vid":7351,"value":"FREETEX"},{"vid":94190,"value":"冬阳"},{"vid":96868,"value":"硕木"},{"vid":97393,"value":"LOFTEX/亚光"},{"vid":97771,"value":"彩朵朵"},{"vid":9254,"value":"AiSleep/睡眠博士"},{"vid":9709,"value":"HD/华德"},{"vid":9780,"value":"欧意"},{"vid":9942,"value":"百思寒"},{"vid":107350,"value":"布蝶轩"},{"vid":108166,"value":"夕姿"},{"vid":12165,"value":"一朵"},{"vid":12549,"value":"金柒"},{"vid":1286,"value":"BONAS/宝娜斯"},{"vid":17569,"value":"恩兴"},{"vid":18231,Line truncated
// 主图
string carousel_gallery = "";
foreach (var img in prodInfo.detail.galleries.Where(g => g.type ==1).ToList())
@@ -6852,7 +6919,7 @@ Content-Type: image/jpeg
pddApi.Data["goods_name"] = prodInfo.detail.goods_name;
//todo 非必填
pddApi.Data["goods_properties"] = new object();
pddApi.Data["goods_properties"] = "[]";
pddApi.Data["goods_type"] = 1;
if (!string.IsNullOrEmpty(prodInfo.detail.image_url))
@@ -7124,14 +7191,14 @@ Content-Type: image/jpeg
retry:
var upLoadRst = pddApi.PddGoodsAdd();
retryTimes--;
if (upLoadRst.Contains("该分类下只能选择7天无理由退货"))
if (upLoadRst.Contains("该分类下只能选择7天无理由退货") && retryTimes >= 0)
{
pddApi.Data["is_refundable"] = true;
goto retry;
}
return "上传成功";
var goods_id = BaseRegex.GetStringJson(ref upLoadRst, "goods_id");
return "{\"success\":true,\"goods_id\":" + goods_id + ",\"status\":\"已上传\",\"msg\":\"上传成功\"}";
}
public void MatchPddProperty(ShopLoginInfo shop, PDDProductUploadParam prodParam, PDDProductInfo prodInfo, PDDProductTemplateInfo prodCatTemplateInfo, DataGridViewCell cell)
+51 -28
View File
@@ -54,8 +54,11 @@
this.btnRefreshAuth = new TemuKJD.UserControls.ButtonEx();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
this.chkAutoDrag = new System.Windows.Forms.CheckBox();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMallId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -66,6 +69,7 @@
this.colBuyAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colChatAccount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colBuyApi = new System.Windows.Forms.DataGridViewLinkColumn();
this.colGotoShop = new System.Windows.Forms.DataGridViewLinkColumn();
this.colShopOperate = new System.Windows.Forms.DataGridViewLinkColumn();
this.colRelogin = new System.Windows.Forms.DataGridViewLinkColumn();
@@ -77,8 +81,6 @@
this.colCopyCookies = new System.Windows.Forms.DataGridViewLinkColumn();
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
this.chkAutoDrag = new System.Windows.Forms.CheckBox();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -408,6 +410,7 @@
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
@@ -423,6 +426,7 @@
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colLoginName,
this.colMallId,
this.colShopId,
this.colShopAccount,
this.colNotes,
@@ -433,6 +437,7 @@
this.colBuyAccount,
this.colChatAccount,
this.colLoginStatus,
this.colBuyApi,
this.colGotoShop,
this.colShopOperate,
this.colRelogin,
@@ -446,6 +451,7 @@
this.colDelete});
this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvShop.Location = new System.Drawing.Point(4, 0);
this.dgvShop.MultiSelectCheckBox = true;
this.dgvShop.Name = "dgvShop";
this.dgvShop.ReadOnly = true;
this.dgvShop.RowTemplate.Height = 23;
@@ -453,6 +459,31 @@
this.dgvShop.TabIndex = 5;
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
// chkAutoDrag
//
this.chkAutoDrag.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.chkAutoDrag.AutoSize = true;
this.chkAutoDrag.BackColor = System.Drawing.Color.White;
this.chkAutoDrag.Location = new System.Drawing.Point(1108, 2);
this.chkAutoDrag.Name = "chkAutoDrag";
this.chkAutoDrag.Size = new System.Drawing.Size(159, 21);
this.chkAutoDrag.TabIndex = 3;
this.chkAutoDrag.Text = "登录时自动滑动拼图验证";
this.chkAutoDrag.UseVisualStyleBackColor = false;
this.chkAutoDrag.Visible = false;
this.chkAutoDrag.Click += new System.EventHandler(this.chkAutoDrag_Click);
//
// statusBar
//
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Bottom;
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.statusBar.Location = new System.Drawing.Point(0, -1);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(1264, 29);
this.statusBar.TabIndex = 1;
//
// colSelect
//
this.colSelect.FillWeight = 26F;
@@ -469,6 +500,13 @@
this.colLoginName.Name = "colLoginName";
this.colLoginName.ReadOnly = true;
//
// colMallId
//
this.colMallId.FillWeight = 50F;
this.colMallId.HeaderText = "商城Id";
this.colMallId.Name = "colMallId";
this.colMallId.ReadOnly = true;
//
// colShopId
//
this.colShopId.FillWeight = 69.42599F;
@@ -541,6 +579,13 @@
this.colLoginStatus.ReadOnly = true;
this.colLoginStatus.Visible = false;
//
// colBuyApi
//
this.colBuyApi.FillWeight = 46F;
this.colBuyApi.HeaderText = "购买授权";
this.colBuyApi.Name = "colBuyApi";
this.colBuyApi.ReadOnly = true;
//
// colGotoShop
//
this.colGotoShop.FillWeight = 46F;
@@ -641,31 +686,6 @@
this.colDelete.Name = "colDelete";
this.colDelete.ReadOnly = true;
//
// chkAutoDrag
//
this.chkAutoDrag.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.chkAutoDrag.AutoSize = true;
this.chkAutoDrag.BackColor = System.Drawing.Color.White;
this.chkAutoDrag.Location = new System.Drawing.Point(1108, 2);
this.chkAutoDrag.Name = "chkAutoDrag";
this.chkAutoDrag.Size = new System.Drawing.Size(159, 21);
this.chkAutoDrag.TabIndex = 3;
this.chkAutoDrag.Text = "登录时自动滑动拼图验证";
this.chkAutoDrag.UseVisualStyleBackColor = false;
this.chkAutoDrag.Visible = false;
this.chkAutoDrag.Click += new System.EventHandler(this.chkAutoDrag_Click);
//
// statusBar
//
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Bottom;
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.statusBar.Location = new System.Drawing.Point(0, -1);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(1264, 29);
this.statusBar.TabIndex = 1;
//
// PDDShopListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -674,6 +694,7 @@
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.label1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.KeyPreview = true;
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "PDDShopListForm";
this.Text = "ShopListForm";
@@ -725,8 +746,10 @@
private DevComponents.DotNetBar.PanelEx pnlEmpty;
private UserControls.ButtonEx btnRefreshShop;
private System.Windows.Forms.ComboBox cmbNotes;
private UserComponent.UcCheckBox chkUsePddWorkbanch;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
private System.Windows.Forms.DataGridViewTextBoxColumn colMallId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount;
private System.Windows.Forms.DataGridViewTextBoxColumn colNotes;
@@ -737,6 +760,7 @@
private System.Windows.Forms.DataGridViewTextBoxColumn colBuyAccount;
private System.Windows.Forms.DataGridViewTextBoxColumn colChatAccount;
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginStatus;
private System.Windows.Forms.DataGridViewLinkColumn colBuyApi;
private System.Windows.Forms.DataGridViewLinkColumn colGotoShop;
private System.Windows.Forms.DataGridViewLinkColumn colShopOperate;
private System.Windows.Forms.DataGridViewLinkColumn colRelogin;
@@ -748,6 +772,5 @@
private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies;
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private UserComponent.UcCheckBox chkUsePddWorkbanch;
}
}
@@ -471,6 +471,7 @@ namespace TemuKJD.PDDForms.ShopForms
int rowIndex = this.dgvShop.Rows.Add(
isRowCheck,
param.LoginName,
param.MallId,
param.ShopId,
param.ShopAccount,
param.Notes,
@@ -481,6 +482,7 @@ namespace TemuKJD.PDDForms.ShopForms
param.BuyAccount,
param.ChatAccount,
"",
"购买授权",
"进入",
"检测",
string.IsNullOrWhiteSpace(param.LoginStatus) ? "未登录" : param.LoginStatus.Trim(),
@@ -851,6 +853,16 @@ namespace TemuKJD.PDDForms.ShopForms
}
IsOperate = false;
break;
case "购买授权":
{
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/service-detail?detailId=84862";
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
btnRefreshCookie_Click(null, null);
}
break;
//case "多重登录":
// IsOperate = true;
// ShopLoginForm shopMultiLoginForm = new ShopLoginForm(shop);
@@ -123,6 +123,9 @@
<metadata name="colLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMallId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -153,6 +156,9 @@
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colBuyApi.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colGotoShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
+112 -25
View File
@@ -226,6 +226,7 @@ namespace TemuKJD.PDDForms.ShopForms
GroupName = shop.GroupName,
ShopAccount = sc.AccountName,
ShopId = sc.AccountId,
MallId = sc.MallId,
SubUserName = shop.SubUserName,
Notes = shop.Notes,
AntiContents = new NaiBa.Util.ConcurrentList<string> { sc.AntiContent },
@@ -245,6 +246,7 @@ namespace TemuKJD.PDDForms.ShopForms
oldShop.GroupName = newShop.GroupName;
oldShop.ShopAccount = newShop.ShopAccount;
oldShop.ShopId = newShop.ShopId;
oldShop.MallId = newShop.MallId;
oldShop.SubUserName = newShop.SubUserName;
oldShop.Notes = newShop.Notes;
oldShop.AntiContents.AddRange(newShop.AntiContents);
@@ -254,9 +256,10 @@ namespace TemuKJD.PDDForms.ShopForms
// 店铺更新写入到服务端
var url = BaseClass.BuildObjString("shop/mdy_shop");
var data = UserLogin.GetSignaturex()
+ "&login_name=" + oldShop.LoginName
+ "&new_shop_id=" + oldShop.ShopId
+ "&shop_account=" + oldShop.ShopAccount;
+ "&login_name=" + newShop.LoginName
+ "&new_shop_id=" + newShop.ShopId
+ "&shop_account=" + newShop.ShopAccount
+ "&mall_id=" + newShop.MallId;
var result = GetHtml.PostUtf8(url, data);
ShopBLL.MdyAntiContent(oldShop);
@@ -647,7 +650,8 @@ namespace TemuKJD.PDDForms.ShopForms
}
});
}
if (url == "https://mms.pinduoduo.com/janus/api/userinfo")
if (url.Contains("https://mms.pinduoduo.com/home"))
{
Task.Run(() =>
{
@@ -656,35 +660,118 @@ namespace TemuKJD.PDDForms.ShopForms
{
var username = BaseRegex.GetStringJson(ref data, "username");
var maskMobile = BaseRegex.GetStringJson(ref data, "mobile");
maskMobile = maskMobile.Split('*').Last();
if (string.IsNullOrWhiteSpace(maskMobile) || string.IsNullOrWhiteSpace(username))
return;
if (shop.LoginName.EndsWith(maskMobile) || shop.LoginName == username)
if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(maskMobile))
{
lstShopCompany.Clear();
var jObj = JObject.Parse(data);
var jArr = jObj["result"] as JArray;
if (jArr == null)
jArr = new JArray();
maskMobile = maskMobile.Split('*').Last();
if (string.IsNullOrWhiteSpace(maskMobile) || string.IsNullOrWhiteSpace(username))
return;
Thread.Sleep(500);
ShopCompany sc = new ShopCompany()
if (shop.LoginName.EndsWith(maskMobile) || shop.LoginName == username)
{
//AccountId = BaseRegex.GetStringJson(ref data, "mallId"),
AccountId = BaseRegex.GetStringJson(ref data, "username"),
AccountName = BaseRegex.GetStringJson(ref data, "mall_name"),
LoginName = shop.LoginName,
UserName = BaseClass.UserName,
LoginStatus = "登录成功",
AntiContent = antiContent,
};
this.lstShopCompany.Add(sc);
lstShopCompany.Clear();
//var jObj = JObject.Parse(data);
//var jArr = jObj["result"] as JArray;
//if (jArr == null)
// jArr = new JArray();
Thread.Sleep(500);
ShopCompany sc = new ShopCompany()
{
MallId = BaseRegex.GetStringJson(ref data, "mall_id"),
AccountId = BaseRegex.GetStringJson(ref data, "username"),
AccountName = BaseRegex.GetStringJson(ref data, "mall_name"),
LoginName = shop.LoginName,
UserName = BaseClass.UserName,
LoginStatus = "登录成功",
AntiContent = antiContent,
};
this.lstShopCompany.Add(sc);
}
}
}
});
}
//if (responseData.Contains("球球小小店铺55") && responseData.Contains("pdd24873711027"))
//{
// Task.Run(() =>
// {
// var data = responseData;
// if (this.shop != null && data.Contains("\"success\":true"))
// {
// var username = BaseRegex.GetStringJson(ref data, "username");
// var maskMobile = BaseRegex.GetStringJson(ref data, "mobile");
// maskMobile = maskMobile.Split('*').Last();
// if (string.IsNullOrWhiteSpace(maskMobile) || string.IsNullOrWhiteSpace(username))
// return;
// if (shop.LoginName.EndsWith(maskMobile) || shop.LoginName == username)
// {
// lstShopCompany.Clear();
// //var jObj = JObject.Parse(data);
// //var jArr = jObj["result"] as JArray;
// //if (jArr == null)
// // jArr = new JArray();
// Thread.Sleep(500);
// ShopCompany sc = new ShopCompany()
// {
// MallId = BaseRegex.GetStringJson(ref data, "mall_id"),
// AccountId = BaseRegex.GetStringJson(ref data, "username"),
// AccountName = BaseRegex.GetStringJson(ref data, "mall_name"),
// LoginName = shop.LoginName,
// UserName = BaseClass.UserName,
// LoginStatus = "登录成功",
// AntiContent = antiContent,
// };
// this.lstShopCompany.Add(sc);
// }
// }
// });
//}
//if (url == "https://mms.pinduoduo.com/janus/api/userinfo" /*|| url == "https://mms.pinduoduo.com/janus/api/new/userinfo"*/)
//{
// Task.Run(() =>
// {
// var data = responseData;
// if (this.shop != null && data.Contains("\"success\":true"))
// {
// var username = BaseRegex.GetStringJson(ref data, "username");
// var maskMobile = BaseRegex.GetStringJson(ref data, "mobile");
// maskMobile = maskMobile.Split('*').Last();
// if (string.IsNullOrWhiteSpace(maskMobile) || string.IsNullOrWhiteSpace(username))
// return;
// if (shop.LoginName.EndsWith(maskMobile) || shop.LoginName == username)
// {
// lstShopCompany.Clear();
// var jObj = JObject.Parse(data);
// var jArr = jObj["result"] as JArray;
// if (jArr == null)
// jArr = new JArray();
// Thread.Sleep(500);
// ShopCompany sc = new ShopCompany()
// {
// MallId = BaseRegex.GetStringJson(ref data, "mall_id"),
// AccountId = BaseRegex.GetStringJson(ref data, "username"),
// AccountName = BaseRegex.GetStringJson(ref data, "mall_name"),
// LoginName = shop.LoginName,
// UserName = BaseClass.UserName,
// LoginStatus = "登录成功",
// AntiContent = antiContent,
// };
// this.lstShopCompany.Add(sc);
// }
// }
// });
//}
if (prodUserSelectForm != null && url.StartsWith("https://mms.pinduoduo.com/glide/mms/goodsCommit/action/edit"))
{
try
+946
View File
@@ -0,0 +1,946 @@
namespace TemuKJD.WXForms.TalkForms
{
partial class WxOrderListForm
{
/// <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()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WxOrderListForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btnStopStop = new DevComponents.DotNetBar.PanelEx();
this.lblCurrentShop = new System.Windows.Forms.Label();
this.btnSelect = new DevComponents.DotNetBar.PanelEx();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.btnSearch = new DevComponents.DotNetBar.PanelEx();
this.pnlEmpty = new DevComponents.DotNetBar.PanelEx();
this.cmbCat3 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
this.label17 = new System.Windows.Forms.Label();
this.cmbCat2 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
this.label14 = new System.Windows.Forms.Label();
this.cmbCat1 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
this.label2 = new System.Windows.Forms.Label();
this.txtProdName = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.lblWxSafe = new System.Windows.Forms.Label();
this.cmbWxSafe = new System.Windows.Forms.ComboBox();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.col_db_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFromShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFromShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_product_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMainImg = new System.Windows.Forms.DataGridViewImageColumn();
this.colSkuReplaceImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSkuReplaceImg = new System.Windows.Forms.DataGridViewImageColumn();
this.col_spu_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_skc_id = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMainCate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_cat_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCatBound = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_ext_code = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colStyleCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colGroup = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPriceText = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colExtCodePrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn();
this.colAddTimes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSelectTotalCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaleCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_notes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colHeadWords = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colEndWords = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFissionWords = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colGetType = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSpProdType = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colWxSafe = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMdyTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_edit = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_delete = new System.Windows.Forms.DataGridViewLinkColumn();
this.col_select_product = new System.Windows.Forms.DataGridViewLinkColumn();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.BackColor = System.Drawing.Color.White;
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(1, 33);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.btnStopStop);
this.splitContainer1.Panel1.Controls.Add(this.lblCurrentShop);
this.splitContainer1.Panel1.Controls.Add(this.btnSelect);
this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(1438, 686);
this.splitContainer1.SplitterDistance = 74;
this.splitContainer1.TabIndex = 1;
//
// btnStopStop
//
this.btnStopStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStopStop.CanvasColor = System.Drawing.SystemColors.Control;
this.btnStopStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnStopStop.DisabledBackColor = System.Drawing.Color.Empty;
this.btnStopStop.Location = new System.Drawing.Point(982, 9);
this.btnStopStop.Name = "btnStopStop";
this.btnStopStop.Size = new System.Drawing.Size(76, 25);
this.btnStopStop.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnStopStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnStopStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnStopStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnStopStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStopStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnStopStop.Style.GradientAngle = 90;
this.btnStopStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnStopStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnStopStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStopStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStopStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnStopStop.TabIndex = 878;
this.btnStopStop.Text = "停止查询";
this.btnStopStop.Visible = false;
this.btnStopStop.Click += new System.EventHandler(this.btnStopStop_Click);
//
// lblCurrentShop
//
this.lblCurrentShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblCurrentShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblCurrentShop.ForeColor = System.Drawing.Color.DarkOrange;
this.lblCurrentShop.Location = new System.Drawing.Point(1094, 45);
this.lblCurrentShop.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblCurrentShop.Name = "lblCurrentShop";
this.lblCurrentShop.Size = new System.Drawing.Size(326, 17);
this.lblCurrentShop.TabIndex = 718;
this.lblCurrentShop.Text = "当前店铺:";
this.lblCurrentShop.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// btnSelect
//
this.btnSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSelect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSelect.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSelect.Location = new System.Drawing.Point(1336, 9);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(84, 25);
this.btnSelect.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSelect.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSelect.Style.GradientAngle = 90;
this.btnSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSelect.TabIndex = 647;
this.btnSelect.Text = "添加选中商品";
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel1.ColumnCount = 10;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00225F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00225F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.99475F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00074F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.Controls.Add(this.btnSearch, 8, 0);
this.tableLayoutPanel1.Controls.Add(this.pnlEmpty, 9, 0);
this.tableLayoutPanel1.Controls.Add(this.cmbCat3, 7, 0);
this.tableLayoutPanel1.Controls.Add(this.label17, 6, 0);
this.tableLayoutPanel1.Controls.Add(this.cmbCat2, 5, 0);
this.tableLayoutPanel1.Controls.Add(this.label14, 4, 0);
this.tableLayoutPanel1.Controls.Add(this.cmbCat1, 3, 0);
this.tableLayoutPanel1.Controls.Add(this.label2, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.txtProdName, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.lblWxSafe, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.cmbWxSafe, 1, 1);
this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 4);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33444F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33445F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33112F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(972, 105);
this.tableLayoutPanel1.TabIndex = 679;
//
// btnSearch
//
this.btnSearch.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearch.Location = new System.Drawing.Point(868, 5);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(46, 25);
this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSearch.Style.GradientAngle = 90;
this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.TabIndex = 643;
this.btnSearch.Text = "搜索";
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
//
// pnlEmpty
//
this.pnlEmpty.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control;
this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlEmpty.Location = new System.Drawing.Point(920, 5);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(46, 25);
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.pnlEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.pnlEmpty.Style.GradientAngle = 90;
this.pnlEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.pnlEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.pnlEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.pnlEmpty.TabIndex = 431;
this.pnlEmpty.Text = "清空";
this.pnlEmpty.Click += new System.EventHandler(this.pnlEmpty_Click);
//
// cmbCat3
//
this.cmbCat3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbCat3.DefaultText = "全部";
this.cmbCat3.DropDownHeight = 1;
this.cmbCat3.DropDownWidth = 1;
this.cmbCat3.FormattingEnabled = true;
this.cmbCat3.IntegralHeight = false;
this.cmbCat3.Location = new System.Drawing.Point(707, 7);
this.cmbCat3.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat3.Name = "cmbCat3";
this.cmbCat3.Size = new System.Drawing.Size(155, 25);
this.cmbCat3.TabIndex = 811;
this.cmbCat3.Text = "全部";
this.cmbCat3.SelectedIndexChanged += new System.EventHandler(this.cmbCat3_SelectedIndexChanged);
this.cmbCat3.TextChanged += new System.EventHandler(this.cmbCat3_MultiSelectChanged);
//
// label17
//
this.label17.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(656, 9);
this.label17.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(51, 17);
this.label17.TabIndex = 811;
this.label17.Text = "类目3:";
//
// cmbCat2
//
this.cmbCat2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbCat2.DefaultText = "全部";
this.cmbCat2.DropDownHeight = 1;
this.cmbCat2.DropDownWidth = 1;
this.cmbCat2.FormattingEnabled = true;
this.cmbCat2.IntegralHeight = false;
this.cmbCat2.Location = new System.Drawing.Point(495, 7);
this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat2.Name = "cmbCat2";
this.cmbCat2.Size = new System.Drawing.Size(155, 25);
this.cmbCat2.TabIndex = 804;
this.cmbCat2.Text = "全部";
this.cmbCat2.SelectedIndexChanged += new System.EventHandler(this.cmbCat2_SelectedIndexChanged);
this.cmbCat2.TextChanged += new System.EventHandler(this.cmbCat2_MultiSelectChanged);
//
// label14
//
this.label14.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(444, 9);
this.label14.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(51, 17);
this.label14.TabIndex = 784;
this.label14.Text = "类目2:";
//
// cmbCat1
//
this.cmbCat1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbCat1.DefaultText = "全部";
this.cmbCat1.DropDownHeight = 1;
this.cmbCat1.DropDownWidth = 1;
this.cmbCat1.FormattingEnabled = true;
this.cmbCat1.IntegralHeight = false;
this.cmbCat1.Location = new System.Drawing.Point(283, 7);
this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat1.Name = "cmbCat1";
this.cmbCat1.Size = new System.Drawing.Size(155, 25);
this.cmbCat1.TabIndex = 805;
this.cmbCat1.Text = "全部";
this.cmbCat1.SelectedIndexChanged += new System.EventHandler(this.cmbCat1_SelectedIndexChanged);
this.cmbCat1.TextChanged += new System.EventHandler(this.cmbCat1_MultiSelectChanged);
//
// label2
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(232, 9);
this.label2.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(51, 17);
this.label2.TabIndex = 426;
this.label2.Text = "类目1:";
//
// txtProdName
//
this.txtProdName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.txtProdName.Location = new System.Drawing.Point(71, 6);
this.txtProdName.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtProdName.Name = "txtProdName";
this.txtProdName.Size = new System.Drawing.Size(155, 23);
this.txtProdName.TabIndex = 427;
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(3, 9);
this.label3.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(68, 17);
this.label3.TabIndex = 428;
this.label3.Text = "商品标题:";
//
// lblWxSafe
//
this.lblWxSafe.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblWxSafe.AutoSize = true;
this.lblWxSafe.Location = new System.Drawing.Point(3, 44);
this.lblWxSafe.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.lblWxSafe.Name = "lblWxSafe";
this.lblWxSafe.Size = new System.Drawing.Size(68, 17);
this.lblWxSafe.TabIndex = 651;
this.lblWxSafe.Text = "微信安检:";
//
// cmbWxSafe
//
this.cmbWxSafe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbWxSafe.FormattingEnabled = true;
this.cmbWxSafe.Items.AddRange(new object[] {
"",
"安全+未校验",
"安全商品",
"未校验"});
this.cmbWxSafe.Location = new System.Drawing.Point(71, 42);
this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbWxSafe.Name = "cmbWxSafe";
this.cmbWxSafe.Size = new System.Drawing.Size(155, 25);
this.cmbWxSafe.TabIndex = 676;
this.cmbWxSafe.Text = "安全+未校验";
//
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
this.splitContainer2.Name = "splitContainer2";
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.pbLoading);
this.splitContainer2.Panel1.Controls.Add(this.dgvDbProduct);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(1438, 608);
this.splitContainer2.SplitterDistance = 579;
this.splitContainer2.TabIndex = 0;
//
// pbLoading
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(694, 264);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 7;
this.pbLoading.TabStop = false;
//
// dgvDbProduct
//
this.dgvDbProduct.AllowUserToAddRows = false;
this.dgvDbProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvDbProduct.AutoRowNumber = true;
this.dgvDbProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvDbProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvDbProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvDbProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvDbProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvDbProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.col_db_id,
this.colFromShopId,
this.colFromShopName,
this.col_product_name,
this.colImgUrl,
this.colMainImg,
this.colSkuReplaceImgUrl,
this.colSkuReplaceImg,
this.col_spu_id,
this.col_skc_id,
this.colMainCate,
this.col_cat_name,
this.colCatBound,
this.col_ext_code,
this.colStyleCode,
this.colGroup,
this.colPriceText,
this.colExtCodePrice,
this.colEdit,
this.colAddTimes,
this.colSelectTotalCount,
this.colSaleCount,
this.col_notes,
this.colHeadWords,
this.colEndWords,
this.colFissionWords,
this.colGetType,
this.colSpProdType,
this.colWxSafe,
this.colAddTime,
this.colMdyTime,
this.col_edit,
this.col_delete,
this.col_select_product});
this.dgvDbProduct.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvDbProduct.Location = new System.Drawing.Point(4, 0);
this.dgvDbProduct.MultiSelectCheckBox = true;
this.dgvDbProduct.Name = "dgvDbProduct";
this.dgvDbProduct.ReadOnly = true;
this.dgvDbProduct.RowTemplate.Height = 23;
this.dgvDbProduct.Size = new System.Drawing.Size(1430, 579);
this.dgvDbProduct.TabIndex = 6;
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
this.dgvDbProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll);
//
// colSelect
//
this.colSelect.FillWeight = 26F;
this.colSelect.HeaderText = "选";
this.colSelect.Name = "colSelect";
this.colSelect.ReadOnly = true;
this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// col_db_id
//
this.col_db_id.FillWeight = 50F;
this.col_db_id.HeaderText = "数据库Id";
this.col_db_id.Name = "col_db_id";
this.col_db_id.ReadOnly = true;
this.col_db_id.Visible = false;
//
// colFromShopId
//
this.colFromShopId.HeaderText = "来源店铺Id";
this.colFromShopId.Name = "colFromShopId";
this.colFromShopId.ReadOnly = true;
this.colFromShopId.Visible = false;
//
// colFromShopName
//
this.colFromShopName.HeaderText = "来源店铺名称";
this.colFromShopName.Name = "colFromShopName";
this.colFromShopName.ReadOnly = true;
this.colFromShopName.Visible = false;
//
// col_product_name
//
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_product_name.DefaultCellStyle = dataGridViewCellStyle3;
this.col_product_name.FillWeight = 140F;
this.col_product_name.HeaderText = "标题";
this.col_product_name.Name = "col_product_name";
this.col_product_name.ReadOnly = true;
//
// colImgUrl
//
this.colImgUrl.HeaderText = "主图路径";
this.colImgUrl.Name = "colImgUrl";
this.colImgUrl.ReadOnly = true;
this.colImgUrl.Visible = false;
//
// colMainImg
//
this.colMainImg.FillWeight = 35F;
this.colMainImg.HeaderText = "主图";
this.colMainImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.colMainImg.Name = "colMainImg";
this.colMainImg.ReadOnly = true;
this.colMainImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colMainImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
// colSkuReplaceImgUrl
//
this.colSkuReplaceImgUrl.HeaderText = "sku替换图路径";
this.colSkuReplaceImgUrl.Name = "colSkuReplaceImgUrl";
this.colSkuReplaceImgUrl.ReadOnly = true;
this.colSkuReplaceImgUrl.Visible = false;
//
// colSkuReplaceImg
//
this.colSkuReplaceImg.FillWeight = 70F;
this.colSkuReplaceImg.HeaderText = "sku替换图";
this.colSkuReplaceImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.colSkuReplaceImg.Name = "colSkuReplaceImg";
this.colSkuReplaceImg.ReadOnly = true;
this.colSkuReplaceImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSkuReplaceImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colSkuReplaceImg.Visible = false;
//
// col_spu_id
//
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_spu_id.DefaultCellStyle = dataGridViewCellStyle4;
this.col_spu_id.HeaderText = "商品Id";
this.col_spu_id.Name = "col_spu_id";
this.col_spu_id.ReadOnly = true;
this.col_spu_id.Visible = false;
//
// col_skc_id
//
this.col_skc_id.HeaderText = "SKC Id";
this.col_skc_id.Name = "col_skc_id";
this.col_skc_id.ReadOnly = true;
this.col_skc_id.Visible = false;
//
// colMainCate
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colMainCate.DefaultCellStyle = dataGridViewCellStyle5;
this.colMainCate.FillWeight = 50F;
this.colMainCate.HeaderText = "主类目";
this.colMainCate.Name = "colMainCate";
this.colMainCate.ReadOnly = true;
//
// col_cat_name
//
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_cat_name.DefaultCellStyle = dataGridViewCellStyle6;
this.col_cat_name.FillWeight = 50F;
this.col_cat_name.HeaderText = "类目";
this.col_cat_name.Name = "col_cat_name";
this.col_cat_name.ReadOnly = true;
//
// colCatBound
//
this.colCatBound.FillWeight = 50F;
this.colCatBound.HeaderText = "类目保证金";
this.colCatBound.Name = "colCatBound";
this.colCatBound.ReadOnly = true;
//
// col_ext_code
//
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_ext_code.DefaultCellStyle = dataGridViewCellStyle7;
this.col_ext_code.HeaderText = "货号";
this.col_ext_code.Name = "col_ext_code";
this.col_ext_code.ReadOnly = true;
this.col_ext_code.Visible = false;
//
// colStyleCode
//
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colStyleCode.DefaultCellStyle = dataGridViewCellStyle8;
this.colStyleCode.HeaderText = "资料编码/真实上家";
this.colStyleCode.Name = "colStyleCode";
this.colStyleCode.ReadOnly = true;
this.colStyleCode.Visible = false;
//
// colGroup
//
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colGroup.DefaultCellStyle = dataGridViewCellStyle9;
this.colGroup.HeaderText = "分组";
this.colGroup.Name = "colGroup";
this.colGroup.ReadOnly = true;
this.colGroup.Visible = false;
//
// colPriceText
//
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colPriceText.DefaultCellStyle = dataGridViewCellStyle10;
this.colPriceText.FillWeight = 65F;
this.colPriceText.HeaderText = "母店价格";
this.colPriceText.Name = "colPriceText";
this.colPriceText.ReadOnly = true;
//
// colExtCodePrice
//
this.colExtCodePrice.FillWeight = 60F;
this.colExtCodePrice.HeaderText = "货号价格";
this.colExtCodePrice.Name = "colExtCodePrice";
this.colExtCodePrice.ReadOnly = true;
this.colExtCodePrice.Visible = false;
//
// colEdit
//
this.colEdit.FillWeight = 40F;
this.colEdit.HeaderText = "编辑";
this.colEdit.Name = "colEdit";
this.colEdit.ReadOnly = true;
this.colEdit.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colEdit.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colEdit.Visible = false;
//
// colAddTimes
//
this.colAddTimes.FillWeight = 52F;
this.colAddTimes.HeaderText = "单店认领次数";
this.colAddTimes.Name = "colAddTimes";
this.colAddTimes.ReadOnly = true;
this.colAddTimes.Visible = false;
//
// colSelectTotalCount
//
this.colSelectTotalCount.FillWeight = 52F;
this.colSelectTotalCount.HeaderText = "认领总数";
this.colSelectTotalCount.Name = "colSelectTotalCount";
this.colSelectTotalCount.ReadOnly = true;
this.colSelectTotalCount.Visible = false;
//
// colSaleCount
//
this.colSaleCount.FillWeight = 60F;
this.colSaleCount.HeaderText = "销量";
this.colSaleCount.Name = "colSaleCount";
this.colSaleCount.ReadOnly = true;
this.colSaleCount.Visible = false;
//
// col_notes
//
dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.col_notes.DefaultCellStyle = dataGridViewCellStyle11;
this.col_notes.FillWeight = 70F;
this.col_notes.HeaderText = "备注";
this.col_notes.Name = "col_notes";
this.col_notes.ReadOnly = true;
this.col_notes.Visible = false;
//
// colHeadWords
//
dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colHeadWords.DefaultCellStyle = dataGridViewCellStyle12;
this.colHeadWords.HeaderText = "标题前缀";
this.colHeadWords.Name = "colHeadWords";
this.colHeadWords.ReadOnly = true;
this.colHeadWords.Visible = false;
//
// colEndWords
//
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colEndWords.DefaultCellStyle = dataGridViewCellStyle13;
this.colEndWords.HeaderText = "标题后缀";
this.colEndWords.Name = "colEndWords";
this.colEndWords.ReadOnly = true;
this.colEndWords.Visible = false;
//
// colFissionWords
//
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colFissionWords.DefaultCellStyle = dataGridViewCellStyle14;
this.colFissionWords.HeaderText = "裂变词";
this.colFissionWords.Name = "colFissionWords";
this.colFissionWords.ReadOnly = true;
this.colFissionWords.Visible = false;
//
// colGetType
//
dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colGetType.DefaultCellStyle = dataGridViewCellStyle15;
this.colGetType.FillWeight = 70F;
this.colGetType.HeaderText = "采集来源";
this.colGetType.Name = "colGetType";
this.colGetType.ReadOnly = true;
this.colGetType.Visible = false;
//
// colSpProdType
//
this.colSpProdType.FillWeight = 70F;
this.colSpProdType.HeaderText = "商品类型";
this.colSpProdType.Name = "colSpProdType";
this.colSpProdType.ReadOnly = true;
this.colSpProdType.Visible = false;
//
// colWxSafe
//
this.colWxSafe.FillWeight = 70F;
this.colWxSafe.HeaderText = "微信安检";
this.colWxSafe.Name = "colWxSafe";
this.colWxSafe.ReadOnly = true;
//
// colAddTime
//
dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colAddTime.DefaultCellStyle = dataGridViewCellStyle16;
this.colAddTime.FillWeight = 70F;
this.colAddTime.HeaderText = "入库时间";
this.colAddTime.Name = "colAddTime";
this.colAddTime.ReadOnly = true;
//
// colMdyTime
//
dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle17;
this.colMdyTime.FillWeight = 70F;
this.colMdyTime.HeaderText = "更新时间";
this.colMdyTime.Name = "colMdyTime";
this.colMdyTime.ReadOnly = true;
//
// col_edit
//
this.col_edit.FillWeight = 42F;
this.col_edit.HeaderText = "详情";
this.col_edit.Name = "col_edit";
this.col_edit.ReadOnly = true;
this.col_edit.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.col_edit.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.col_edit.Visible = false;
//
// col_delete
//
this.col_delete.FillWeight = 42F;
this.col_delete.HeaderText = "删除";
this.col_delete.Name = "col_delete";
this.col_delete.ReadOnly = true;
this.col_delete.Visible = false;
//
// col_select_product
//
this.col_select_product.FillWeight = 42F;
this.col_select_product.HeaderText = "认领";
this.col_select_product.Name = "col_select_product";
this.col_select_product.ReadOnly = true;
this.col_select_product.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.col_select_product.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.col_select_product.Visible = false;
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right;
this.ucSplitPage1.IsShowPageSize = true;
this.ucSplitPage1.Location = new System.Drawing.Point(985, 0);
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
this.ucSplitPage1.PageSize = 100;
this.ucSplitPage1.Size = new System.Drawing.Size(453, 25);
this.ucSplitPage1.TabIndex = 6;
this.ucSplitPage1.TotalPage = 1;
//
// statusBar
//
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill;
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.statusBar.Location = new System.Drawing.Point(0, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(1438, 25);
this.statusBar.TabIndex = 5;
//
// WxOrderListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1440, 720);
this.Controls.Add(this.splitContainer1);
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.KeyPreview = true;
this.Name = "WxOrderListForm";
this.Text = "产品数据库";
this.TitleText = "产品数据库";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.WXUserProdListForm_FormClosing);
this.Load += new System.EventHandler(this.ProductListForm_Load);
this.VisibleChanged += new System.EventHandler(this.ProductListForm_VisibleChanged);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.PDDDBProdListForm_KeyDown);
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.PDDDBProdListForm_KeyUp);
this.Controls.SetChildIndex(this.splitContainer1, 0);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserControls.UcSplitPage ucSplitPage1;
private UserControls.StatusBarUserControl statusBar;
private DevComponents.DotNetBar.PanelEx pnlEmpty;
private System.Windows.Forms.TextBox txtProdName;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private UserComponent.DataGridViewEx dgvDbProduct;
private System.Windows.Forms.PictureBox pbLoading;
private DevComponents.DotNetBar.PanelEx btnSearch;
private DevComponents.DotNetBar.PanelEx btnSelect;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label lblWxSafe;
private System.Windows.Forms.ComboBox cmbWxSafe;
private UserComponent.UcComboBoxMutiSelect cmbCat2;
private System.Windows.Forms.Label label14;
private UserComponent.UcComboBoxMutiSelect cmbCat1;
private DevComponents.DotNetBar.PanelEx btnStopStop;
private System.Windows.Forms.Label label17;
private UserComponent.UcComboBoxMutiSelect cmbCat3;
private System.Windows.Forms.Label lblCurrentShop;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn col_db_id;
private System.Windows.Forms.DataGridViewTextBoxColumn colFromShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colFromShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn col_product_name;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl;
private System.Windows.Forms.DataGridViewImageColumn colMainImg;
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuReplaceImgUrl;
private System.Windows.Forms.DataGridViewImageColumn colSkuReplaceImg;
private System.Windows.Forms.DataGridViewTextBoxColumn col_spu_id;
private System.Windows.Forms.DataGridViewTextBoxColumn col_skc_id;
private System.Windows.Forms.DataGridViewTextBoxColumn colMainCate;
private System.Windows.Forms.DataGridViewTextBoxColumn col_cat_name;
private System.Windows.Forms.DataGridViewTextBoxColumn colCatBound;
private System.Windows.Forms.DataGridViewTextBoxColumn col_ext_code;
private System.Windows.Forms.DataGridViewTextBoxColumn colStyleCode;
private System.Windows.Forms.DataGridViewTextBoxColumn colGroup;
private System.Windows.Forms.DataGridViewTextBoxColumn colPriceText;
private System.Windows.Forms.DataGridViewTextBoxColumn colExtCodePrice;
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private System.Windows.Forms.DataGridViewTextBoxColumn colAddTimes;
private System.Windows.Forms.DataGridViewTextBoxColumn colSelectTotalCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCount;
private System.Windows.Forms.DataGridViewTextBoxColumn col_notes;
private System.Windows.Forms.DataGridViewTextBoxColumn colHeadWords;
private System.Windows.Forms.DataGridViewTextBoxColumn colEndWords;
private System.Windows.Forms.DataGridViewTextBoxColumn colFissionWords;
private System.Windows.Forms.DataGridViewTextBoxColumn colGetType;
private System.Windows.Forms.DataGridViewTextBoxColumn colSpProdType;
private System.Windows.Forms.DataGridViewTextBoxColumn colWxSafe;
private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime;
private System.Windows.Forms.DataGridViewTextBoxColumn colMdyTime;
private System.Windows.Forms.DataGridViewLinkColumn col_edit;
private System.Windows.Forms.DataGridViewLinkColumn col_delete;
private System.Windows.Forms.DataGridViewLinkColumn col_select_product;
}
}
@@ -0,0 +1,309 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Param;
using AllBase.Model.Result;
using AllBase.Model.Result.PDDResult;
using AllBase.Model.Result.WXResult;
using NaiBa.Util;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.BLL;
using TemuKJD.Extension;
using TemuKJD.PDDForms.ProductSelectForms;
using TemuKJD.ToolForms;
using Work;
namespace TemuKJD.WXForms.TalkForms
{
public partial class WxOrderListForm : BaseGeneralForm
{
private static WxOrderListForm instance = null;
public static WxOrderListForm Instance { get { if (instance == null || instance.IsDisposed || instance.Disposing) instance = new WxOrderListForm(); return instance; } }
ShopLoginInfo currentShop { get; set; } = null;
ConcurrentList<KJDDBProduct> lstTemuDbProduct { get; set; } = new ConcurrentList<KJDDBProduct>();
public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
public WxOrderListForm()
{
InitializeComponent();
instance = this;
}
private void ProductListForm_Load(object sender, EventArgs e)
{
btnSelect.Visible = true;
}
private void btnSearch_Click(object sender, EventArgs e)
{
}
Bitmap defaultBitmap = null;
void ShowDgvImg()
{
Task.Run(() =>
{
foreach (DataGridViewRow row in this.dgvDbProduct.Rows)
{
if (row.Index > 0 && row.Cells["colMainImg"].Displayed == false)
{
Invoke(new Action(() =>
{
try
{
row.Cells["colMainImg"].Value = defaultBitmap;
}
catch
{
}
}));
continue;
}
if (row.Cells["colMainImg"].Value != null && row.Cells["colMainImg"].Value != defaultBitmap)
continue;
Image image = null;
string imgUrl = row.Cells["colImgUrl"]?.Value.ParseToString();
string getImgError = "";
if (!string.IsNullOrWhiteSpace(imgUrl))
image = GetHtml.GetUrlImg(imgUrl, out getImgError);
if (!string.IsNullOrEmpty(getImgError))
//BaseMsgForm.ShowError("图片加载失败 " + getImgError);
image = TemuKJD.Properties.Resources.errpic;
Invoke(new Action(() =>
{
try
{
row.Cells["colMainImg"].Value = image;
}
catch
{
}
}));
}
});
}
private void ProductListForm_VisibleChanged(object sender, EventArgs e)
{
}
private void pnlEmpty_Click(object sender, EventArgs e)
{
this.cmbCat1.Text = "全部";
this.cmbCat2.Text = "全部";
this.cmbCat3.Text = "全部";
this.txtProdName.Text = "";
this.cmbWxSafe.Text = "安全+未校验";
}
private void cmbCat1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void cmbCat2_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void cmbCat3_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void cmbCat1_MultiSelectChanged(object sender, EventArgs e)
{
}
private void cmbCat2_MultiSelectChanged(object sender, EventArgs e)
{
}
private void cmbCat3_MultiSelectChanged(object sender, EventArgs e)
{
//var cate1 = GlobalConfig.WxCatList.FirstOrDefault(c => c.level == 1 && c.name == cmbCat1.Text.Trim());
//var cates2 = GlobalConfig.WxCatList.Where(c => c.f_cat_id == cate1?.cat_id).ToList();
//var cate2 = cates2.FirstOrDefault(c => c.level == 2 && c.name == cmbCat1.Text.Trim());
//var cates3 = GlobalConfig.WxCatList.Where(c => c.f_cat_id == cate2?.cat_id).ToList();
//var cate3 = cates3.FirstOrDefault(c => c.level == 3 && c.name == cmbCat1.Text.Trim());
}
private void dgvDbProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvDbProduct.Columns[e.ColumnIndex].HeaderText;
var dbId = dgvDbProduct.Rows[e.RowIndex].Cells["col_db_id"].Value.ParseToString();
var dbProduct = lstTemuDbProduct.FirstOrDefault(p => p.id.ToString() == dbId);
switch (headerText)
{
case "详情":
case "编辑/详情":
//PDDDBProdEditForm editForm = new PDDDBProdEditForm(dbProduct);
//if (BaseClass.MainPath != "binxixi")
//{
// editForm.pnlSkuOption.Visible = false;
// editForm.txtProductName.ReadOnly = true;
// editForm.txtExtCode.ReadOnly = true;
// editForm.lblSkcId.Text = "仓库编码";
//}
//editForm.ShowDialog();
//dgvDbProduct.Rows[e.RowIndex].Cells["col_notes"].Value = dbProduct.notes;
//dgvDbProduct.Rows[e.RowIndex].Cells["col_ext_code"].Value = dbProduct.ext_code;
//dgvDbProduct.Rows[e.RowIndex].Cells["colHeadWords"].Value = dbProduct.head_words;
//dgvDbProduct.Rows[e.RowIndex].Cells["colEndWords"].Value = dbProduct.end_words;
//dgvDbProduct.Rows[e.RowIndex].Cells["colFissionWords"].Value = dbProduct.fission_words;
//dgvDbProduct.Rows[e.RowIndex].Cells["col_product_name"].Value = dbProduct.product_name;
//dgvDbProduct.Rows[e.RowIndex].Cells["colSkuReplaceImgUrl"].Value = dbProduct.sku_img_replace_url;
break;
case "主图":
ShowImgForm imgFrom = new ShowImgForm(dgvDbProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString().Replace("?imageView2/2/w/90/h/90", ""));
imgFrom.ShowDialog();
break;
case "认领":
//Task.Run(() => { SelectProduct(new KJDDBProduct[] { dbProduct }); });
break;
case "资料编码/真实上家":
try
{
string url = "";
if (string.IsNullOrEmpty(dbProduct.real_spu_id) || string.IsNullOrEmpty(dbProduct.real_coid))
url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.spu_id + "?itemCoId=" + dbProduct.skc_id + "&noBack=true";
else
url = "https://sc.scm121.com/manage/goods/qualitySupplier/goodsDetail/" + dbProduct.real_spu_id + "?itemCoId=" + dbProduct.real_coid + "&noBack=true";
Process.Start(new ProcessStartInfo(url)
{
UseShellExecute = true
});
}
catch
{
// 可能需要手动指定浏览器路径
Process.Start(new ProcessStartInfo("https://www.baidu.com") { UseShellExecute = true });
}
break;
case "":
dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value;
//rowIndex1 = rowIndex2;
//rowIndex2 = e.RowIndex;
//if (IsShiftDown)
//{
// if (rowIndex1 > -1 && rowIndex2 > -1)
// {
// try
// {
// if (rowIndex1 > rowIndex2)
// {
// for (int i = rowIndex2; i <= rowIndex1; i++)
// {
// dgvDbProduct.Rows[i].Cells["colSelect"].Value = dgvDbProduct.Rows[rowIndex1].Cells["colSelect"].Value;
// }
// }
// else
// {
// for (int i = rowIndex1; i <= rowIndex2; i++)
// {
// dgvDbProduct.Rows[i].Cells["colSelect"].Value = dgvDbProduct.Rows[rowIndex1].Cells["colSelect"].Value;
// }
// }
// }
// catch
// {
// }
// //rowIndex1 = -1;
// //rowIndex2 = -1;
// }
//}
break;
default:
break;
}
}
private void DeleteProduct(string dbId, bool isUpdate = true)
{
var url = BaseClass.BuildPDDObjString("product/del_db_product");
var data = UserLogin.GetSignaturex() +
"&db_id=" + dbId;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
BaseMsgForm.ShowError("删除商品失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
return;
}
else
{
}
}
private void btnSelect_Click(object sender, EventArgs e)
{
}
private void dgvDbProduct_Scroll(object sender, ScrollEventArgs e)
{
ShowDgvImg();
}
private void btnStopStop_Click(object sender, EventArgs e)
{
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
Task.Run(() =>
{
Thread.Sleep(3000);
Invoke(new Action(() =>
{
if (cancellationTokenSource == null || cancellationTokenSource.IsCancellationRequested)
pbLoading.Visible = false;
}));
});
}
private void PDDDBProdListForm_KeyDown(object sender, KeyEventArgs e)
{
//switch (e.KeyCode)
//{
// case Keys.Shift:
// case Keys.ShiftKey:
// case Keys.LShiftKey:
// case Keys.RShiftKey:
// IsShiftDown = true;
// break;
//}
}
private void PDDDBProdListForm_KeyUp(object sender, KeyEventArgs e)
{
}
private void WXUserProdListForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.Hide();
e.Cancel = true;
}
}
}
@@ -0,0 +1,403 @@
<?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>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_db_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colFromShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colFromShopName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_product_name.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMainImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuReplaceImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuReplaceImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_spu_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_skc_id.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMainCate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_cat_name.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCatBound.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_ext_code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colStyleCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colGroup.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPriceText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colExtCodePrice.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colEdit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAddTimes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSelectTotalCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSaleCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_notes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colHeadWords.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colEndWords.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colFissionWords.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colGetType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSpProdType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colWxSafe.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAddTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMdyTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_edit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_delete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_select_product.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<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>
+83 -4
View File
@@ -36,6 +36,8 @@ namespace TemuKJD.WXForms.TalkForms
this.panel3 = new System.Windows.Forms.Panel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.lblProgress = new System.Windows.Forms.Label();
this.btnChangeAddress = new DevComponents.DotNetBar.PanelEx();
this.btnMultiLogin = new DevComponents.DotNetBar.PanelEx();
this.chkNotShowMessageWindow = new System.Windows.Forms.CheckBox();
this.cmbMessage = new System.Windows.Forms.ComboBox();
@@ -44,6 +46,7 @@ namespace TemuKJD.WXForms.TalkForms
this.line4 = new DevComponents.DotNetBar.Controls.Line();
this.chkIsAutoReply = new System.Windows.Forms.CheckBox();
this.splitContainer4 = new System.Windows.Forms.SplitContainer();
this.progressBarX1 = new DevComponents.DotNetBar.Controls.ProgressBarX();
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new TemuKJD.UserComponent.UcDataGridViewCheckBoxColumn(this.components);
this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -90,6 +93,8 @@ namespace TemuKJD.WXForms.TalkForms
this.txtAutoReplyText = new System.Windows.Forms.TextBox();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.mainPanel = new System.Windows.Forms.Panel();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.panel4 = new System.Windows.Forms.Panel();
this.ColumnShopStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.ColumnShopID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -123,6 +128,7 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer3.SuspendLayout();
this.pnlTalk.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage3.SuspendLayout();
this.SuspendLayout();
//
// pbLogo
@@ -132,7 +138,7 @@ namespace TemuKJD.WXForms.TalkForms
// lblVersionName
//
this.lblVersionName.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblVersionName.Location = new System.Drawing.Point(27423, 33);
this.lblVersionName.Location = new System.Drawing.Point(30627, 33);
//
// panel3
//
@@ -174,6 +180,8 @@ namespace TemuKJD.WXForms.TalkForms
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.lblProgress);
this.splitContainer2.Panel1.Controls.Add(this.btnChangeAddress);
this.splitContainer2.Panel1.Controls.Add(this.btnMultiLogin);
this.splitContainer2.Panel1.Controls.Add(this.chkNotShowMessageWindow);
this.splitContainer2.Panel1.Controls.Add(this.cmbMessage);
@@ -190,6 +198,36 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer2.SplitterDistance = 62;
this.splitContainer2.TabIndex = 0;
//
// lblProgress
//
this.lblProgress.AutoSize = true;
this.lblProgress.Location = new System.Drawing.Point(280, 39);
this.lblProgress.Name = "lblProgress";
this.lblProgress.Size = new System.Drawing.Size(74, 17);
this.lblProgress.TabIndex = 234;
this.lblProgress.Text = "lblProgress";
//
// btnChangeAddress
//
this.btnChangeAddress.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnChangeAddress.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnChangeAddress.DisabledBackColor = System.Drawing.Color.Empty;
this.btnChangeAddress.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnChangeAddress.Location = new System.Drawing.Point(216, 37);
this.btnChangeAddress.Name = "btnChangeAddress";
this.btnChangeAddress.Size = new System.Drawing.Size(64, 20);
this.btnChangeAddress.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnChangeAddress.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnChangeAddress.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnChangeAddress.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnChangeAddress.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnChangeAddress.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnChangeAddress.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnChangeAddress.Style.GradientAngle = 90;
this.btnChangeAddress.TabIndex = 223;
this.btnChangeAddress.Text = "订单优化";
this.btnChangeAddress.Click += new System.EventHandler(this.btnChangeAddress_Click);
//
// btnMultiLogin
//
this.btnMultiLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -263,7 +301,7 @@ namespace TemuKJD.WXForms.TalkForms
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(7, 8);
this.label1.Location = new System.Drawing.Point(4, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(80, 17);
this.label1.TabIndex = 197;
@@ -275,7 +313,7 @@ namespace TemuKJD.WXForms.TalkForms
this.pnlSet.Cursor = System.Windows.Forms.Cursors.Hand;
this.pnlSet.DisabledBackColor = System.Drawing.Color.Empty;
this.pnlSet.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.pnlSet.Location = new System.Drawing.Point(107, 37);
this.pnlSet.Location = new System.Drawing.Point(102, 37);
this.pnlSet.Name = "pnlSet";
this.pnlSet.Size = new System.Drawing.Size(88, 20);
this.pnlSet.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -305,7 +343,7 @@ namespace TemuKJD.WXForms.TalkForms
// chkIsAutoReply
//
this.chkIsAutoReply.AutoSize = true;
this.chkIsAutoReply.Location = new System.Drawing.Point(9, 38);
this.chkIsAutoReply.Location = new System.Drawing.Point(6, 38);
this.chkIsAutoReply.Name = "chkIsAutoReply";
this.chkIsAutoReply.Size = new System.Drawing.Size(99, 21);
this.chkIsAutoReply.TabIndex = 0;
@@ -323,6 +361,7 @@ namespace TemuKJD.WXForms.TalkForms
//
// splitContainer4.Panel1
//
this.splitContainer4.Panel1.Controls.Add(this.progressBarX1);
this.splitContainer4.Panel1.Controls.Add(this.dgvShop);
//
// splitContainer4.Panel2
@@ -348,6 +387,19 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer4.SplitterDistance = 450;
this.splitContainer4.TabIndex = 7;
//
// progressBarX1
//
//
//
//
this.progressBarX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.progressBarX1.Location = new System.Drawing.Point(21, 46);
this.progressBarX1.Name = "progressBarX1";
this.progressBarX1.Size = new System.Drawing.Size(98, 10);
this.progressBarX1.TabIndex = 224;
this.progressBarX1.Text = "下载中";
this.progressBarX1.Visible = false;
//
// dgvShop
//
this.dgvShop.AllowUserToAddRows = false;
@@ -775,6 +827,7 @@ namespace TemuKJD.WXForms.TalkForms
this.ucTabControl1.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251)))));
this.ucTabControl1.Controls.Add(this.tabPage1);
this.ucTabControl1.Controls.Add(this.tabPage2);
this.ucTabControl1.Controls.Add(this.tabPage3);
this.ucTabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ucTabControl1.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ucTabControl1.ItemSize = new System.Drawing.Size(80, 31);
@@ -992,6 +1045,26 @@ namespace TemuKJD.WXForms.TalkForms
this.mainPanel.Size = new System.Drawing.Size(985, 573);
this.mainPanel.TabIndex = 1;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.panel4);
this.tabPage3.Location = new System.Drawing.Point(2, 35);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(991, 579);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "订单管理";
this.tabPage3.UseVisualStyleBackColor = true;
//
// panel4
//
this.panel4.BackColor = System.Drawing.Color.White;
this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel4.Location = new System.Drawing.Point(3, 3);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(985, 573);
this.panel4.TabIndex = 0;
//
// ColumnShopStatus
//
this.ColumnShopStatus.HeaderText = "登录状态";
@@ -1107,6 +1180,7 @@ namespace TemuKJD.WXForms.TalkForms
this.pnlTalk.ResumeLayout(false);
this.pnlTalk.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage3.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -1179,5 +1253,10 @@ namespace TemuKJD.WXForms.TalkForms
private System.Windows.Forms.DataGridViewTextBoxColumn colScore;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
private DevComponents.DotNetBar.PanelEx btnMultiLogin;
private DevComponents.DotNetBar.PanelEx btnChangeAddress;
private DevComponents.DotNetBar.Controls.ProgressBarX progressBarX1;
private System.Windows.Forms.Label lblProgress;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.Panel panel4;
}
}
+94
View File
@@ -14,6 +14,8 @@ using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Media;
using System.Runtime.InteropServices;
@@ -23,6 +25,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.BLL;
using TemuKJD.BLL.Tools;
using TemuKJD.Helper;
using TemuKJD.ToolForms;
using TemuKJD.WXForms.ShopForms;
@@ -76,6 +79,8 @@ namespace TemuKJD.WXForms.TalkForms
public static Dictionary<DataGridViewRow, Color> dicRowColor = new Dictionary<DataGridViewRow, Color>();
public List<string> LstTagShop = new List<string>();
public WxOrderListForm WxOrderListForm = null;
public int LocationXY = 0;
public int LocationSize = 200;
@@ -100,6 +105,7 @@ namespace TemuKJD.WXForms.TalkForms
else
this.Icon = BaseClass.Ico = ImageBuild.ConvertToIcon(Properties.Resources.icon);
lblProgress.Text = "";
//SetTitle();
// 点击变绿的按钮
@@ -323,6 +329,22 @@ namespace TemuKJD.WXForms.TalkForms
Thread.Sleep(1000);
}
});
WxOrderListForm = new WxOrderListForm();
WxOrderListForm.TopLevel = false;
WxOrderListForm.FormBorderStyle = FormBorderStyle.None;
WxOrderListForm.Dock = DockStyle.Fill;
panel4.Controls.Add(WxOrderListForm);
WxOrderListForm.Show();
//var _1688AddressForm = new GetAddressForm() { AddressType = "1688" };
//_1688AddressForm.cmbType.Enabled = false;
//_1688AddressForm.cmbTypeFilter.Enabled = false;
//_1688AddressForm.TopLevel = false;
//_1688AddressForm.FormBorderStyle = FormBorderStyle.None;
//_1688AddressForm.Dock = DockStyle.Fill;
//this.panel4.Controls.Add(_1688AddressForm);
//_1688AddressForm.Show();
}
void ClosePopWindow()
@@ -1647,6 +1669,66 @@ namespace TemuKJD.WXForms.TalkForms
}
}
private void btnChangeAddress_Click(object sender, EventArgs e)
{
if (!Directory.Exists("temp\\orderInfo"))
Directory.CreateDirectory("temp\\orderInfo");
if (!FileBase.Exists("temp\\orderInfo\\订单物流信息更新.exe"))
{
Task.Run(() =>
{
//if (GetHtml.DownloadFile(BaseClass.ServerUrl + "/Download/" + "orderInfo.zip", "temp\\orderInfo\\orderInfo.zip"))
if (DownloadBLL.downloadFile(BaseClass.ServerUrl + "/Download/orderInfo.zip", Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo\\orderInfo.zip"), lblProgress) == "下载完成")
{
ZipFile.ExtractToDirectory(Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo\\orderInfo.zip"), Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo"));
File.Delete(Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo\\orderInfo.zip"));
}
});
return;
}
try
{
System.Diagnostics.Process[] psiNewcas = System.Diagnostics.Process.GetProcessesByName("订单物流信息更新");
foreach (System.Diagnostics.Process p in psiNewcas)
{
p.Kill();
}
string cookie = "";
string biz_magic = "";
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(currentShop.Cookies.ParseToString().Replace("empty=true;", "[]"));
foreach (var c in cookieLst)
{
if (c.Name == "biz_magic")
biz_magic = c.Value;
cookie += c.Name + "=" + c.Value + "; ";
}
cookie = cookie.Trim(';', ' ');
File.WriteAllText(Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo\\cookie.txt"), cookie);
File.WriteAllText(Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo\\biz_magic.txt"), biz_magic);
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo\\订单物流信息更新.exe");
//startInfo.Arguments = "arg1 arg2"; // exe参数
startInfo.UseShellExecute = false; // 不使用shell启动
startInfo.RedirectStandardOutput = false; // 不重定向输出
startInfo.WorkingDirectory = Path.Combine(Environment.CurrentDirectory, "temp\\orderInfo");
using (Process process = Process.Start(startInfo))
{
//process.WaitForExit(); // 等待进程退出
}
}
catch (Exception ex)
{
BaseMsgForm.ShowError("优化工具打开失败 " + ex.Message);
}
}
public static string defaultTalkTemplate = @"###亲亲,客服人员正在仓库核实打包发货,您的问题我们记录好,客服小姐姐回来会为您解答哦!
###亲亲,在的呢亲亲,这款商品质量很好的呢,现在下单为您优先发出哦
###亲,客户已经听到您的呼叫,请稍等!
@@ -1715,5 +1797,17 @@ namespace TemuKJD.WXForms.TalkForms
//催发货###亲,您的订单我们已经收到,仓库正在为您进行质量检查,确认无误后就会发出的哦!
//订单编号###亲,您的这笔订单已核实,请问是遇到什么问题了呢?
//退款成功###亲,您的退款已办理成功,欢迎下次光临哦!";
//https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/list/cgi/orderSearch?token=&lang=zh_CN
//https://store.weixin.qq.com/shop/order/list
// 待发货
//{"isSearch":false,"pageSize":30,"overTime":0,"pengingShipOneDay":0,"pengingShipSixHour":0,"expediteDelivery":0,"stockoutPunishAlert":0,"waybillStatus":0,"pageNum":1,"onAftersaleOrderExist":0,"orderStatus":20}
// 售后中
//{"isSearch":false,"pageSize":30,"overTime":0,"pengingShipOneDay":0,"pengingShipSixHour":0,"expediteDelivery":0,"stockoutPunishAlert":0,"waybillStatus":0,"pageNum":1,"onAftersaleOrderExist":1,"orderStatus":0}
// 已发货
//{"isSearch":false,"pageSize":30,"overTime":0,"pengingShipOneDay":0,"pengingShipSixHour":0,"expediteDelivery":0,"stockoutPunishAlert":0,"waybillStatus":0,"pageNum":1,"onAftersaleOrderExist":0,"orderStatus":30}
// 时间段查询全部
//{"isSearch":true,"pageSize":30,"overTime":0,"pengingShipOneDay":0,"pengingShipSixHour":0,"expediteDelivery":0,"stockoutPunishAlert":0,"waybillStatus":0,"pageNum":1,"onAftersaleOrderExist":0,"orderStatus":0,"orderId":"","orderTime":{"type":0,"time":[1772380800000,1774868515000]},"telNumber":"","title":"","receiverName":"","finderNickName":"","merchantNotes":"","merchantNotesTagColor":0,"waybillId":"","productCode":"","inspectStatus":"","finderWay":0,"searchOrderType":0,"payMethod":0,"orderChannel":0,"bulkbuyActivityId":"","deliveryNegotiationFlag":0,"transactionId":"","page":1,"status":20,"startCreateTime":1772380800000,"endCreateTime":1774868515000}
}
}