1库存上传重组标题功能 2优化国际版cookie登录功能 3拒绝跟架功能移植新接口完成

This commit is contained in:
wule committed 2025-07-31 18:46:49 +08:00
1 parent 096e1a450d
commit c203c161a2
46 files changed
+976 -6690

No files matched your search

+1
View File
@@ -191,6 +191,7 @@
<Compile Include="Model\Param\DyProductManage\ViolateRuleParam.cs" />
<Compile Include="Model\Param\SalesManage\PromotionAddParam.cs" />
<Compile Include="Model\Param\ShopManage\DouShopSettingParam.cs" />
<Compile Include="Model\Param\TemuProductManage\TemuProductWords.cs" />
<Compile Include="Model\Param\TemuProductManage\TemuSizeSpecParam.cs" />
<Compile Include="Model\Result\TemuDBProductSelect.cs" />
<Compile Include="Model\Result\TemuPriceAdjustInfo.cs" />
+2 -2
View File
@@ -27,8 +27,8 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 391;
//public static int VersionCount = 391;
public static int VersionCount = 395;
//public static int VersionCount = 395;
/// <summary>
/// 版本号
+3
View File
@@ -1,6 +1,7 @@
using AllBase.Model.Param.CollectManage;
using AllBase.Model.Param.ProductManage;
using AllBase.Model.Param.ShopManage;
using AllBase.Model.Param.TemuProductManage;
using AllBase.Model.Result;
using NaiBa.Util;
using System;
@@ -45,5 +46,7 @@ namespace AllBase.Helper
public static string cAgentIpCode { get; } = "AFZ94w3a";
public static List<SameProductCheckParam> SameProductCheckParamList { get; set; }
public static TemuProductWords ProductWords { get; set; }
}
}
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Param.TemuProductManage
{
public class TemuProductWords
{
public string HeadWords { get; set; } = "5-99个";
public string EndWords { get; set; } = "适合不同的搭配风格";
}
}
@@ -476,7 +476,7 @@ namespace KJD_Web.BLL
//else
sql = "select s.id,s.out_product_id,s.shop_id,s.shop_account,s.user_name," +
"s.sub_user_name,s.notes,s.status,s.draft_id,s.add_times,s.add_time,s.mdy_time," +
"s.operate_sub_sa_name,s.add_sub_sa_time," +
"s.fission_product_name,s.operate_sub_sa_name,s.add_sub_sa_time," +
"p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.ext_code,p.product_name,p.main_img," +
"u.nick_name as operate_sub_sa_nick " +
"from kjd.third_product_select s left join kjd.third_product p on s.out_product_id=p.id " +
@@ -520,7 +520,8 @@ namespace KJD_Web.BLL
skc_id = row["skc_id"].ToString(),
spu_id = row["spu_id"].ToString(),
operate_sub_sa_name = row["operate_sub_sa_name"].ToString(),
operate_sub_sa_nick = row["operate_sub_sa_nick"].ToString()
operate_sub_sa_nick = row["operate_sub_sa_nick"].ToString(),
fission_product_name = row["fission_product_name"].ToString(),
//product_json = row["product_json"].ToString(),
//size_json = row["size_json"].ToString(),
};
@@ -647,6 +648,7 @@ namespace KJD_Web.BLL
var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'");
var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'");
string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes"))?.Replace("'", "\\'");
string fission_product_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "fission_product_name"))?.Replace("'", "\\'");
if (string.IsNullOrEmpty(user_name))
{
@@ -658,10 +660,15 @@ namespace KJD_Web.BLL
string sql = "update kjd.third_product_select set";
if (notes != null)
sql += " notes='" + notes + "',";
if (fission_product_name != null)
sql += " fission_product_name=@fission_product_name,";
sql = sql.TrimEnd(',');
sql += " where id=" + id + ";";
var rst = mySql.ExecuteNonQuery(sql);
List<MySqlParameter> paramLst = new List<MySqlParameter>();
paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "fission_product_name", Value = fission_product_name, });
var rst = mySql.ExecuteNonQuery(sql, paramLst.ToArray());
mySql.Close();
if (rst)
{
+10 -63
View File
@@ -258,42 +258,6 @@
<Compile Include="KJDForms\BaseForms\LRBaseForm.designer.cs">
<DependentUpon>LRBaseForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\CollectForms\CaiNiXiHuanCollectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\CollectForms\CaiNiXiHuanCollectForm.Designer.cs">
<DependentUpon>CaiNiXiHuanCollectForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\CollectForms\FriendShopCollectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\CollectForms\FriendShopCollectForm.Designer.cs">
<DependentUpon>FriendShopCollectForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\CollectForms\HaoWuCollectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\CollectForms\HaoWuCollectForm.Designer.cs">
<DependentUpon>HaoWuCollectForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\CollectForms\CollectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\CollectForms\CollectForm.Designer.cs">
<DependentUpon>CollectForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\CollectForms\KeywordCollectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\CollectForms\KeywordCollectForm.Designer.cs">
<DependentUpon>KeywordCollectForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\CollectForms\ShopProductCollectForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\CollectForms\ShopProductCollectForm.Designer.cs">
<DependentUpon>ShopProductCollectForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\OrderForms\OrderForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -355,6 +319,12 @@
<Compile Include="KJDForms\ProductThirdSelectForms\ProductThirdSelectListManageForm.Designer.cs">
<DependentUpon>ProductThirdSelectListManageForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductThirdSelectForms\ProductThirdTitleForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductThirdSelectForms\ProductThirdTitleForm.Designer.cs">
<DependentUpon>ProductThirdTitleForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductThirdSelectForms\UserSelectThirdProductForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -589,12 +559,6 @@
<Compile Include="KJDForms\ToolForms\JDVerifyForm\CollectVerifyForm.designer.cs">
<DependentUpon>CollectVerifyForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ToolForms\DouUserLoginForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ToolForms\DouUserLoginForm.Designer.cs">
<DependentUpon>DouUserLoginForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ToolForms\KeywordsForms\KeywordsCatchFrom.cs">
<SubType>Form</SubType>
</Compile>
@@ -936,24 +900,6 @@
<EmbeddedResource Include="KJDForms\BaseForms\LRBaseForm.resx">
<DependentUpon>LRBaseForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\CollectForms\CaiNiXiHuanCollectForm.resx">
<DependentUpon>CaiNiXiHuanCollectForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\CollectForms\FriendShopCollectForm.resx">
<DependentUpon>FriendShopCollectForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\CollectForms\HaoWuCollectForm.resx">
<DependentUpon>HaoWuCollectForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\CollectForms\CollectForm.resx">
<DependentUpon>CollectForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\CollectForms\KeywordCollectForm.resx">
<DependentUpon>KeywordCollectForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\CollectForms\ShopProductCollectForm.resx">
<DependentUpon>ShopProductCollectForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\OrderForms\OrderForm.resx">
<DependentUpon>OrderForm.cs</DependentUpon>
</EmbeddedResource>
@@ -984,6 +930,9 @@
<EmbeddedResource Include="KJDForms\ProductThirdSelectForms\ProductThirdSelectListManageForm.resx">
<DependentUpon>ProductThirdSelectListManageForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductThirdSelectForms\ProductThirdTitleForm.resx">
<DependentUpon>ProductThirdTitleForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductThirdSelectForms\UserSelectThirdProductForm.resx">
<DependentUpon>UserSelectThirdProductForm.cs</DependentUpon>
</EmbeddedResource>
@@ -1102,9 +1051,6 @@
<EmbeddedResource Include="KJDForms\ToolForms\JDVerifyForm\CollectVerifyForm.resx">
<DependentUpon>CollectVerifyForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ToolForms\DouUserLoginForm.resx">
<DependentUpon>DouUserLoginForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ToolForms\KeywordsForms\KeywordsCatchFrom.resx">
<DependentUpon>KeywordsCatchFrom.cs</DependentUpon>
</EmbeddedResource>
@@ -1247,6 +1193,7 @@
<None Include="Resources\tree_子账号管理_select.png" />
<Content Include="Resources\tree_清理无流量.png" />
<Content Include="Resources\tree_清理无流量_select.png" />
<Content Include="Resources\齿轮.png" />
<Content Include="Static\DyCategorys.txt" />
</ItemGroup>
<ItemGroup>
+15 -18
View File
@@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
@@ -209,25 +210,15 @@ namespace TemuKJD.KJDForms.AdminForms
break;
case "复制Cookies":
string cook = shop.Cookies;
//cook = BaseRegex.GetStringCookie(ref cook, "SUB_PASS_ID");
//cook = "SUB_PASS_ID=" + cook;
//cook = "document.cookie='" + cook + "';window.location.href='https://seller.kuajingmaihuo.com'";
//Clipboard.SetDataObject(cook);
//var subPassId = cook = BaseRegex.GetStringCookie(ref cook, "SUB_PASS_ID");
//var nanoFp = cook = BaseRegex.GetStringCookie(ref cook, "_nano_fp");
//var cookJs = sJsSetCookie;
//cookJs += "\r\nsetCookie('SUB_PASS_ID', '" + subPassId + "', 'Session', '/', 'seller.kuajingmaihuo.com');";
//cookJs += "\r\nsetCookie('_nano_fp', '" + nanoFp + "', 1, '/', 'seller.kuajingmaihuo.com', true);";
//cookJs += "\r\nsetTimeout(() => { window.location.href='https://seller.kuajingmaihuo.com'; }, 200)";
string cookJs = "";
var keys = new string[] { "a42", "_bee", "_f77", "_nano_fp", "api_uid", "rckk", "ru1k", "ru2k", "SUB_PASS_ID" };
//var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "mallid", "njrpl", "seller_temp" };
var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "njrpl", "seller_temp" };
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k=>cookie.StartsWith(k)))
continue;
//if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';";
}
foreach (var shopCook in shop.Cookies2.Split(';'))
@@ -238,7 +229,7 @@ namespace TemuKJD.KJDForms.AdminForms
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.kuajingmaihuo.com;';";
@@ -249,12 +240,16 @@ namespace TemuKJD.KJDForms.AdminForms
foreach (var shopCook in shop.Cookies2.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (cookie.StartsWith("mallid"))
cookie = "mallid=" + shop.ShopId;
if (!keys2.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("seller_temp") && !cookie.StartsWith("_nano_fp") && !cookie.StartsWith("mallid"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
else
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
}
cookJs += "\r\nwindow.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');";
cookJs += "\r\nwindow.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');";
@@ -558,9 +553,11 @@ namespace TemuKJD.KJDForms.AdminForms
loginResult = ShopListForm.GetShopStatus2(shop);
if (!loginResult.Contains("\"success\":true"))
{
shop.Cookies2 = "empty=true;";
foreach (var sc in campanys)
{
sc.LoginStatus2 = "国际版未登录";
sc.Cookies2 = "empty=true;";
}
}
else
@@ -198,11 +198,15 @@ namespace TemuKJD.KJDForms.AdminForms
}
else
{
cefWebBrowser.Load("https://agentseller.temu.com");
//cefWebBrowser.Load("https://agentseller.temu.com");
BaseMsgForm.ShowInfo("获取国际版跳转链接失败,请手动跳转并等待Cookie获取结束!");
}
}
else
{
var cookie2 = shop.Cookies2;
var t = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
cefWebBrowser.Load("https://agentseller.temu.com");
}
}
@@ -223,16 +227,9 @@ namespace TemuKJD.KJDForms.AdminForms
List<Cookie> cookieList2 = CEFBrowser.GetCookieList(shopCookieHead2, cefWebBrowser.RequestContext.GetCookieManager(null));
if (cookieList2 != null && cookieList2.Count > 0)
{
foreach (var cookie in cookieList2)
for(int i =0; i < cookieList2.Count; i++)
{
//SUB_PASS_ID同时出现两个,domain是seller.kuajingmaihuo.com才是能登录店铺后台的
//if (cookie.Name == "seller_temp" && cookie.Domain != "agentseller.temu.com")
// continue;
//if (cookie.Name == "mallid" && cookie.Domain != "agentseller.temu.com")
// continue;
//if (cookie.Name != "seller_temp")
// continue;
var cookie = cookieList2[i];
cookies2 += cookie.Name + "=" + cookie.Value + "; ";
}
cookies2 = cookies2.Trim().TrimEnd(';');
@@ -398,14 +395,17 @@ namespace TemuKJD.KJDForms.AdminForms
if (isMultiLogin)
cookie = shop.DictMultiCookies.Keys.Contains(MultiLoginCookieName) ? shop.DictMultiCookies[MultiLoginCookieName] : "";
var cookie2 = shop.Cookies2;
Task.Run(() =>
{
var t = CEFBrowser.SetCookieAsync(shopCookieHead, cookie, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
t = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
if (this.openType != EnumOpenType.login)
{
var cookie2 = shop.Cookies2;
var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
t2.Wait(5000);
}
Invoke(new Action(() =>
{
@@ -1,598 +0,0 @@
namespace TemuKJD.KJDForms.CollectForms
{
partial class CaiNiXiHuanCollectForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.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();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.btnExport = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtKeyWords = new DevComponents.DotNetBar.Controls.TextBoxX();
this.btnLoginDouyin = new TemuKJD.UserControls.ButtonEx();
this.btnCollect = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtRateMax = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.txtRateMin = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txtCommentCountMax = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.txtTotalPage = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.txtCommentCountMin = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.txtSellCountMax = new System.Windows.Forms.TextBox();
this.txtPriceMax = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.txtPriceMin = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.txtSellCountMin = new System.Windows.Forms.TextBox();
this.label16 = new System.Windows.Forms.Label();
this.dgvCollect = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductName = new System.Windows.Forms.DataGridViewLinkColumn();
this.colImage = new System.Windows.Forms.DataGridViewImageColumn();
this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaleCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCommentCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colRate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
this.ucGroupBoxEx2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvCollect)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.btnExport);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
this.splitContainer1.Panel1.Controls.Add(this.btnLoginDouyin);
this.splitContainer1.Panel1.Controls.Add(this.btnCollect);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx2);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(800, 450);
this.splitContainer1.SplitterDistance = 121;
this.splitContainer1.TabIndex = 377;
//
// 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.dgvCollect);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(800, 325);
this.splitContainer2.SplitterDistance = 296;
this.splitContainer2.SplitterWidth = 1;
this.splitContainer2.TabIndex = 7;
//
// btnExport
//
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnExport.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnExport.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnExport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExport.ForeColor = System.Drawing.Color.White;
this.btnExport.Location = new System.Drawing.Point(720, 84);
this.btnExport.Margin = new System.Windows.Forms.Padding(2);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(66, 26);
this.btnExport.TabIndex = 394;
this.btnExport.Text = "导出数据";
this.btnExport.UseVisualStyleBackColor = false;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.txtKeyWords);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(222, 120);
this.ucGroupBoxEx1.TabIndex = 393;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "采集商品 请输入商品ID或为空";
//
// txtKeyWords
//
//
//
//
this.txtKeyWords.Border.Class = "TextBoxBorder";
this.txtKeyWords.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtKeyWords.Location = new System.Drawing.Point(10, 21);
this.txtKeyWords.Multiline = true;
this.txtKeyWords.Name = "txtKeyWords";
this.txtKeyWords.PreventEnterBeep = true;
this.txtKeyWords.Size = new System.Drawing.Size(202, 88);
this.txtKeyWords.TabIndex = 7;
this.txtKeyWords.WatermarkText = "请输入要搜索的商品id或链接\r\n一行一个\r\n\r\n为空采集默认猜你喜欢商品";
//
// btnLoginDouyin
//
this.btnLoginDouyin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnLoginDouyin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnLoginDouyin.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnLoginDouyin.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLoginDouyin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLoginDouyin.ForeColor = System.Drawing.Color.White;
this.btnLoginDouyin.Location = new System.Drawing.Point(720, 20);
this.btnLoginDouyin.Margin = new System.Windows.Forms.Padding(2);
this.btnLoginDouyin.Name = "btnLoginDouyin";
this.btnLoginDouyin.Size = new System.Drawing.Size(66, 26);
this.btnLoginDouyin.TabIndex = 373;
this.btnLoginDouyin.Text = "登录抖音";
this.btnLoginDouyin.UseVisualStyleBackColor = false;
this.btnLoginDouyin.Visible = false;
this.btnLoginDouyin.Click += new System.EventHandler(this.btnLoginDouyin_Click);
//
// btnCollect
//
this.btnCollect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCollect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCollect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCollect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCollect.ForeColor = System.Drawing.Color.White;
this.btnCollect.Location = new System.Drawing.Point(720, 52);
this.btnCollect.Margin = new System.Windows.Forms.Padding(2);
this.btnCollect.Name = "btnCollect";
this.btnCollect.Size = new System.Drawing.Size(66, 26);
this.btnCollect.TabIndex = 374;
this.btnCollect.Text = "开始采集";
this.btnCollect.UseVisualStyleBackColor = false;
this.btnCollect.Click += new System.EventHandler(this.btnCollect_Click);
//
// ucGroupBoxEx2
//
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.label4);
this.ucGroupBoxEx2.Controls.Add(this.label3);
this.ucGroupBoxEx2.Controls.Add(this.txtRateMax);
this.ucGroupBoxEx2.Controls.Add(this.label1);
this.ucGroupBoxEx2.Controls.Add(this.txtRateMin);
this.ucGroupBoxEx2.Controls.Add(this.label2);
this.ucGroupBoxEx2.Controls.Add(this.txtCommentCountMax);
this.ucGroupBoxEx2.Controls.Add(this.label9);
this.ucGroupBoxEx2.Controls.Add(this.txtTotalPage);
this.ucGroupBoxEx2.Controls.Add(this.label10);
this.ucGroupBoxEx2.Controls.Add(this.txtCommentCountMin);
this.ucGroupBoxEx2.Controls.Add(this.label12);
this.ucGroupBoxEx2.Controls.Add(this.txtSellCountMax);
this.ucGroupBoxEx2.Controls.Add(this.txtPriceMax);
this.ucGroupBoxEx2.Controls.Add(this.label13);
this.ucGroupBoxEx2.Controls.Add(this.txtPriceMin);
this.ucGroupBoxEx2.Controls.Add(this.label14);
this.ucGroupBoxEx2.Controls.Add(this.label15);
this.ucGroupBoxEx2.Controls.Add(this.txtSellCountMin);
this.ucGroupBoxEx2.Controls.Add(this.label16);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(231, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
this.ucGroupBoxEx2.Size = new System.Drawing.Size(409, 120);
this.ucGroupBoxEx2.TabIndex = 395;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "采集参数";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(183, 58);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(19, 17);
this.label4.TabIndex = 401;
this.label4.Text = "%";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(115, 58);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(19, 17);
this.label3.TabIndex = 400;
this.label3.Text = "%";
//
// txtRateMax
//
this.txtRateMax.Location = new System.Drawing.Point(139, 54);
this.txtRateMax.Name = "txtRateMax";
this.txtRateMax.Size = new System.Drawing.Size(40, 23);
this.txtRateMax.TabIndex = 399;
this.txtRateMax.Text = "100";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(127, 57);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(13, 17);
this.label1.TabIndex = 398;
this.label1.Text = "-";
//
// txtRateMin
//
this.txtRateMin.Location = new System.Drawing.Point(71, 54);
this.txtRateMin.Name = "txtRateMin";
this.txtRateMin.Size = new System.Drawing.Size(40, 23);
this.txtRateMin.TabIndex = 396;
this.txtRateMin.Text = "0";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(14, 58);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(44, 17);
this.label2.TabIndex = 397;
this.label2.Text = "好评率";
//
// txtCommentCountMax
//
this.txtCommentCountMax.Location = new System.Drawing.Point(335, 86);
this.txtCommentCountMax.Name = "txtCommentCountMax";
this.txtCommentCountMax.Size = new System.Drawing.Size(55, 23);
this.txtCommentCountMax.TabIndex = 391;
this.txtCommentCountMax.Text = "99999999";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(323, 89);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(13, 17);
this.label9.TabIndex = 390;
this.label9.Text = "-";
//
// txtTotalPage
//
this.txtTotalPage.Location = new System.Drawing.Point(71, 22);
this.txtTotalPage.Name = "txtTotalPage";
this.txtTotalPage.Size = new System.Drawing.Size(123, 23);
this.txtTotalPage.TabIndex = 376;
this.txtTotalPage.Text = "5";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(210, 90);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 389;
this.label10.Text = "评论数量";
//
// txtCommentCountMin
//
this.txtCommentCountMin.Location = new System.Drawing.Point(267, 86);
this.txtCommentCountMin.Name = "txtCommentCountMin";
this.txtCommentCountMin.Size = new System.Drawing.Size(55, 23);
this.txtCommentCountMin.TabIndex = 388;
this.txtCommentCountMin.Text = "0";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(13, 26);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(56, 17);
this.label12.TabIndex = 378;
this.label12.Text = "采集页数";
//
// txtSellCountMax
//
this.txtSellCountMax.Location = new System.Drawing.Point(335, 54);
this.txtSellCountMax.Name = "txtSellCountMax";
this.txtSellCountMax.Size = new System.Drawing.Size(55, 23);
this.txtSellCountMax.TabIndex = 387;
this.txtSellCountMax.Text = "99999999";
//
// txtPriceMax
//
this.txtPriceMax.Location = new System.Drawing.Point(335, 22);
this.txtPriceMax.Name = "txtPriceMax";
this.txtPriceMax.Size = new System.Drawing.Size(55, 23);
this.txtPriceMax.TabIndex = 383;
this.txtPriceMax.Text = "99999999";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(323, 57);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(13, 17);
this.label13.TabIndex = 386;
this.label13.Text = "-";
//
// txtPriceMin
//
this.txtPriceMin.Location = new System.Drawing.Point(267, 22);
this.txtPriceMin.Name = "txtPriceMin";
this.txtPriceMin.Size = new System.Drawing.Size(55, 23);
this.txtPriceMin.TabIndex = 379;
this.txtPriceMin.Text = "0";
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(210, 58);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(56, 17);
this.label14.TabIndex = 385;
this.label14.Text = "宝贝销量";
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(210, 26);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(56, 17);
this.label15.TabIndex = 380;
this.label15.Text = "宝贝价格";
//
// txtSellCountMin
//
this.txtSellCountMin.Location = new System.Drawing.Point(267, 54);
this.txtSellCountMin.Name = "txtSellCountMin";
this.txtSellCountMin.Size = new System.Drawing.Size(55, 23);
this.txtSellCountMin.TabIndex = 384;
this.txtSellCountMin.Text = "0";
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(323, 25);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(13, 17);
this.label16.TabIndex = 382;
this.label16.Text = "-";
//
// dgvCollect
//
this.dgvCollect.AllowUserToAddRows = false;
this.dgvCollect.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvCollect.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvCollect.BackgroundColor = System.Drawing.Color.White;
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.dgvCollect.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvCollect.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvCollect.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colProductId,
this.colProductName,
this.colImage,
this.colPrice,
this.colSaleCount,
this.colCommentCount,
this.colRate,
this.colDelete});
this.dgvCollect.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvCollect.Location = new System.Drawing.Point(5, 0);
this.dgvCollect.Name = "dgvCollect";
this.dgvCollect.ReadOnly = true;
dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgvCollect.RowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvCollect.RowTemplate.Height = 23;
this.dgvCollect.Size = new System.Drawing.Size(790, 296);
this.dgvCollect.TabIndex = 6;
this.dgvCollect.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvCollect_CellContentClick);
//
// colSelect
//
this.colSelect.FillWeight = 50F;
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;
this.colSelect.Visible = false;
this.colSelect.Width = 41;
//
// colProductId
//
this.colProductId.HeaderText = "商品Id";
this.colProductId.Name = "colProductId";
this.colProductId.ReadOnly = true;
this.colProductId.Width = 150;
//
// colProductName
//
this.colProductName.HeaderText = "商品名称";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
this.colProductName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colProductName.Width = 350;
//
// colImage
//
this.colImage.HeaderText = "图片";
this.colImage.Name = "colImage";
this.colImage.ReadOnly = true;
this.colImage.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colImage.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colImage.Visible = false;
this.colImage.Width = 70;
//
// colPrice
//
this.colPrice.HeaderText = "价格";
this.colPrice.Name = "colPrice";
this.colPrice.ReadOnly = true;
this.colPrice.Width = 80;
//
// colSaleCount
//
this.colSaleCount.HeaderText = "销量";
this.colSaleCount.Name = "colSaleCount";
this.colSaleCount.ReadOnly = true;
//
// colCommentCount
//
this.colCommentCount.HeaderText = "评论数量";
this.colCommentCount.Name = "colCommentCount";
this.colCommentCount.ReadOnly = true;
//
// colRate
//
this.colRate.HeaderText = "好评率";
this.colRate.Name = "colRate";
this.colRate.ReadOnly = true;
this.colRate.Width = 80;
//
// colDelete
//
this.colDelete.HeaderText = "删除";
this.colDelete.Name = "colDelete";
this.colDelete.ReadOnly = true;
this.colDelete.Visible = false;
this.colDelete.Width = 81;
//
// 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(800, 28);
this.statusBar.TabIndex = 3;
//
// CaiNiXiHuanCollectForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "CaiNiXiHuanCollectForm";
this.Text = "CaiNiXiHuanCollectForm";
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx2.ResumeLayout(false);
this.ucGroupBoxEx2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvCollect)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private UserControls.ButtonEx btnExport;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private DevComponents.DotNetBar.Controls.TextBoxX txtKeyWords;
private UserControls.ButtonEx btnLoginDouyin;
private UserControls.ButtonEx btnCollect;
private UserComponent.UcGroupBoxEx ucGroupBoxEx2;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtRateMax;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtRateMin;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtCommentCountMax;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox txtTotalPage;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox txtCommentCountMin;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox txtSellCountMax;
private System.Windows.Forms.TextBox txtPriceMax;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtPriceMin;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.TextBox txtSellCountMin;
private System.Windows.Forms.Label label16;
private UserComponent.DataGridViewEx dgvCollect;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colProductId;
private System.Windows.Forms.DataGridViewLinkColumn colProductName;
private System.Windows.Forms.DataGridViewImageColumn colImage;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colCommentCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colRate;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserControls.StatusBarUserControl statusBar;
}
}
@@ -1,327 +0,0 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using TemuKJD.KJDForms.ToolForms;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.KJDForms.BaseForms;
namespace TemuKJD.KJDForms.CollectForms
{
public partial class CaiNiXiHuanCollectForm : BaseForm
{
decimal priceMin = 0;
decimal priceMax = 99999999;
long sellCountMin = 0;
long sellCountMax = 99999999;
long commentCountMin = 0;
long commentCountMax = 99999999;
int rateMin = 0;
int rateMax = 100;
List<DouGoodsCollectInfo> lstProduct = new List<DouGoodsCollectInfo>();
CancellationTokenSource cancellationTokenSource = null;
public CaiNiXiHuanCollectForm()
{
InitializeComponent();
}
private void btnCollect_Click(object sender, EventArgs e)
{
if (btnCollect.Text != "开始采集")
{
cancellationTokenSource.Cancel();
}
else
{
var cookieShop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.LoginStatus == "登录成功");
if (cookieShop == null)
{
BaseForms.BaseMsgForm.ShowError("请登录店铺账号后搜索");
return;
}
priceMin = this.txtPriceMin.Text.ParseToDecimal();
priceMax = this.txtPriceMax.Text.ParseToDecimal();
sellCountMin = this.txtSellCountMin.Text.ParseToLong();
sellCountMax = this.txtSellCountMax.Text.ParseToLong();
commentCountMin = this.txtCommentCountMin.Text.ParseToLong();
commentCountMax = this.txtCommentCountMax.Text.ParseToLong();
rateMin = this.txtRateMin.Text.ParseToInt();
rateMax = this.txtRateMax.Text.ParseToInt();
int pageTotal = txtTotalPage.Text.ParseToInt();
if (pageTotal < 1)
{
BaseForms.BaseMsgForm.ShowError("请至少查询一页以上数据");
return;
}
var searchTextArr = this.txtKeyWords.Text.Split(new string[] { "\r", "\n", ",", " " }, StringSplitOptions.RemoveEmptyEntries);
if (searchTextArr.Length == 0)
{
searchTextArr = new string[] { "" };
//BaseForms.BaseMsgForm.ShowError("请至少输入一个商品");
//return;
}
lstProduct.Clear();
this.dgvCollect.Rows.Clear();
cancellationTokenSource = new CancellationTokenSource();
int n = 0;
int total = searchTextArr.Count() * pageTotal;
this.statusBar.lblTaskStatus.Text = "开始采集...";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
btnCollect.Text = "停止采集";
Task.Run(() =>
{
if (!Directory.Exists("采集导出"))
Directory.CreateDirectory("采集导出");
var exportFileName = "采集导出\\猜你喜欢采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
StreamWriter writer = new StreamWriter(exportFileName, true, Encoding.GetEncoding("gb2312"));
object[] objArray1 = new object[] { "商品ID,", "商品名称,", "价格,", "销量,", "评论数,", "好评率" };
writer.WriteLine(string.Concat(objArray1));
writer.Close();
foreach (var searchText in searchTextArr)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
var text = searchText;
if (text.ParseToLong() == 0)
text = BaseRegex.GetMatchRegexString(ref text, "(\\d{10,22})");
for (int i = 1; i < pageTotal + 1; i++)
{
n++;
Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在采集商品" + text + "猜你喜欢,当前采集到第 " + i + " 页";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
Thread.Sleep(Randomx.GetId(100, 500));
int pageNum = i;
var cnxhResult = CollectCaiNiXiHuan(cookieShop.Cookies, text, pageNum.ToString());
if (!string.IsNullOrEmpty(cnxhResult) && cnxhResult.Contains("\"status_code\":0"))
{
JObject jObj = JObject.Parse(cnxhResult);
if (jObj["item_cards"] == null)
return;
foreach (JObject pObj in jObj["item_cards"])
{
if (cancellationTokenSource.IsCancellationRequested)
break;
var pStr = JsonHelper.SerializeObject(pObj);
var pId = BaseRegex.GetStringJson(ref pStr, "product_id");
if (!string.IsNullOrEmpty(pId))
{
DouGoodsCollectInfo prod = new DouGoodsCollectInfo();
prod.Id = pId;
prod.GoodsName = BaseRegex.GetStringJson(ref pStr, "title");
if (string.IsNullOrEmpty(prod.GoodsName))
{
}
prod.Price = (BaseRegex.GetDecimalJson(ref pStr, "min_price") / 100).ToString();
prod.Sales = BaseRegex.GetIntJson(ref pStr, "sales").ToString();
// 筛选条件
if (prod.Price.ParseToDecimal() < this.priceMin || prod.Price.ParseToDecimal() > this.priceMax
|| prod.Sales.ParseToDecimal() < this.sellCountMin || prod.Sales.ParseToDecimal() > this.sellCountMax)
continue;
Thread.Sleep(Randomx.GetId(500, 1000));
var commentResult = GetComments(GlobalConfig.DouUserCookies, prod.Id);
if (!string.IsNullOrEmpty(commentResult) && commentResult.Contains("\"status_code\":0"))
{
prod.CommentsCount = BaseRegex.GetIntJson(ref commentResult, "total_comments_num");
prod.CommentsRate = BaseRegex.GetDecimalJson(ref commentResult, "good_comment_ratio").ParseToDouble() / 100;
}
// 筛选条件
if (prod.CommentsRate < this.rateMin || prod.CommentsRate > this.rateMax
|| prod.CommentsCount < this.commentCountMin || prod.CommentsCount > this.commentCountMax)
continue;
this.lstProduct.Add(prod);
try
{
StreamWriter writer1 = new StreamWriter(exportFileName, true, Encoding.GetEncoding("gb2312"));
object[] objArray2 = new object[15];
objArray2[1] = "https://haohuo.jinritemai.com/views/product/item2?id=" + prod.Id;
objArray2[2] = ",";
objArray2[3] = prod.GoodsName;
objArray2[4] = ",";
objArray2[5] = prod.Price;
objArray2[6] = ",";
objArray2[7] = prod.Sales;
objArray2[8] = ",";
objArray2[9] = prod.CommentsCount;
objArray2[10] = ",";
objArray2[11] = prod.CommentsRate;
writer1.WriteLine(string.Concat(objArray2));
writer1.Close();
}
catch (Exception ex)
{
}
Invoke(new Action(() =>
{
var index = this.dgvCollect.Rows.Add(false, prod.Id, prod.GoodsName, null, prod.Price, prod.Sales, prod.CommentsCount,
prod.CommentsRate, "删除");
}));
}
}
}
}
}
Invoke(new Action(() =>
{
btnCollect.Text = "开始采集";
this.statusBar.lblTaskStatus.Text = "采集结束,共采集到商品" + this.lstProduct.Count + "个";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
}, cancellationTokenSource.Token);
}
}
private string CollectCaiNiXiHuan(string cookies, string productId, string pageNum = "1", string cursor = "20")
{
HttpWebResponse response = null;
string result;
try
{
string url = "https://api5-normal-c-lf.amemv.com/aweme/v2/commerce/favorite/feed?app_name=aweme&channel=App%20Store&slide_guide_has_shown=1&minor_status=0&product_id=" +
productId + "&page_num=" + pageNum + "&cursor=" + cursor + "&page_name=product_detail&feedbacks=&count=20&filters=&filter_type=";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36";
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
public static string GetComments(string cookies, string productId)
{
HttpWebResponse response = null;
string result;
try
{
string url = "http://lianmengapi.snssdk.com/ies/v2/decision/getProductComments?product_id=" + productId + "&aid=1128";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.177";
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
private void btnLoginDouyin_Click(object sender, EventArgs e)
{
DouUserLoginForm dForm = new DouUserLoginForm();
dForm.ShowDialog();
}
private void btnExport_Click(object sender, EventArgs e)
{
try
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "表格文件(*.csv)|*.csv";
saveFileDialog1.FileName = "猜你喜欢采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("商品ID," + "商品名称," + "价格," + "销量," + "评论数," + "好评率");
foreach (var goodsInfo in lstProduct)
{
sb.AppendLine("https://haohuo.jinritemai.com/views/product/item2?id=" + goodsInfo.Id + "," + goodsInfo.GoodsName + ","
+ goodsInfo.Price + "," + goodsInfo.Sales + "," + goodsInfo.CommentsCount + "," + goodsInfo.CommentsRate);
}
System.IO.File.WriteAllText(saveFileDialog1.FileName, sb.ToString(), Encoding.Default);
BaseForms.BaseMsgForm.ShowInfo("导出成功");
}
}
catch (Exception ex)
{
BaseForms.BaseMsgForm.ShowError(ex.Message);
}
}
private void dgvCollect_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0)
return;
var goodsId = dgvCollect.Rows[e.RowIndex].Cells["colProductId"].Value.ToString();
var columnName = dgvCollect.Columns[e.ColumnIndex].Name;
if (columnName == "colProductName")
{
string url = "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsId;
GetHtml.OpenUrl(url);
}
}
}
}
@@ -1,147 +0,0 @@
<?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="colProductId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrice.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="colCommentCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colRate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
-180
View File
@@ -1,180 +0,0 @@
namespace TemuKJD.KJDForms.CollectForms
{
partial class CollectForm
{
/// <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.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("好物采集");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("同行采集");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("整店采集");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("猜你喜欢采集");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("关键词采集");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("采集商品", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4,
treeNode5});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
this.lblName = new System.Windows.Forms.Label();
this.tv = new TemuKJD.UserComponent.UcTreeView();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.White;
this.panel1.Controls.Add(this.panel3);
this.panel1.Controls.Add(this.panel2);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(659, 450);
this.panel1.TabIndex = 4;
//
// panel3
//
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(0, 28);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(659, 422);
this.panel3.TabIndex = 1;
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244)))));
this.panel2.Controls.Add(this.lblName);
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(659, 28);
this.panel2.TabIndex = 0;
//
// lblName
//
this.lblName.AutoSize = true;
this.lblName.Location = new System.Drawing.Point(5, 6);
this.lblName.Name = "lblName";
this.lblName.Size = new System.Drawing.Size(57, 17);
this.lblName.TabIndex = 0;
this.lblName.Text = "lblName";
//
// tv
//
this.tv.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251)))));
this.tv.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.tv.ChildNodeSelectedBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.tv.Cursor = System.Windows.Forms.Cursors.Hand;
this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
this.tv.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll;
this.tv.ExpandButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.tv.FullRowSelect = true;
this.tv.GroupBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249)))));
this.tv.GroupFont = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tv.GroupTitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.tv.HideCollapsedGroup = false;
this.tv.ItemHeight = 32;
this.tv.Location = new System.Drawing.Point(0, 0);
this.tv.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.tv.Name = "tv";
treeNode1.Name = "好物采集";
treeNode1.Text = "好物采集";
treeNode2.Name = "同行采集";
treeNode2.Text = "同行采集";
treeNode3.Name = "整店采集";
treeNode3.Text = "整店采集";
treeNode4.Name = "猜你喜欢采集";
treeNode4.Text = "猜你喜欢采集";
treeNode5.Name = "关键词采集";
treeNode5.Text = "关键词采集";
treeNode6.Name = "采集商品";
treeNode6.Text = "采集商品";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode6});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 450);
this.tv.TabIndex = 3;
this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect);
//
// splitContainer1
//
this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.tv);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.panel1);
this.splitContainer1.Size = new System.Drawing.Size(800, 450);
this.splitContainer1.SplitterDistance = 140;
this.splitContainer1.SplitterWidth = 1;
this.splitContainer1.TabIndex = 5;
//
// CollectForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "CollectForm";
this.Text = "CollectForm";
this.Load += new System.EventHandler(this.CollectForm_Load);
this.panel1.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Label lblName;
private UserComponent.UcTreeView tv;
private System.Windows.Forms.SplitContainer splitContainer1;
}
}
@@ -1,119 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.KJDForms.BaseForms;
namespace TemuKJD.KJDForms.CollectForms
{
public partial class CollectForm : BaseForm
{
public Lazy<HaoWuCollectForm> haoWuCollectForm = new Lazy<HaoWuCollectForm>();
public Lazy<FriendShopCollectForm> friendShopCollectForm = new Lazy<FriendShopCollectForm>();
public Lazy<KeywordCollectForm> keywordCollectForm = new Lazy<KeywordCollectForm>();
public Lazy<CaiNiXiHuanCollectForm> caiNiXiHuanCollectForm = new Lazy<CaiNiXiHuanCollectForm>();
public Lazy<ShopProductCollectForm> shopProductCollectForm = new Lazy<ShopProductCollectForm>();
public CollectForm()
{
InitializeComponent();
}
private void tv_AfterSelect(object sender, TreeViewEventArgs e)
{
MainForm.sCurrentModule = e.Node.Name;
this.lblName.Text = e.Node.Text;
//如果是一级菜单,不做任何动作
if (e.Node.Parent == null) return;
new Thread(() =>
{
Thread.Sleep(200);
Invoke(new Action(() =>
{
switch (e.Node.Name)
{
case "好物采集":
SetForm(haoWuCollectForm.Value);
break;
case "同行采集":
SetForm(friendShopCollectForm.Value);
break;
case "整店采集":
SetForm(shopProductCollectForm.Value);
break;
case "关键词采集":
SetForm(keywordCollectForm.Value);
break;
case "猜你喜欢采集":
SetForm(caiNiXiHuanCollectForm.Value);
break;
}
}));
}).Start();
}
/// <summary>
/// 显示隐藏层
/// </summary>
/// <param name="f"></param>
private void SetForm(Form f)
{
if (f == null)
{
foreach (Control form in panel3.Controls)
{
form.Visible = false;
if (form is Form)
{
panel3.Controls.Remove(form as Form);
}
}
return;
}
bool had = false;
string sCurrentFormName = f.Name;
for (int i = 0; i < panel3.Controls.Count; i++)
{
if (sCurrentFormName == panel3.Controls[i].Name)
{
had = true;
panel3.Controls[i].Visible = true;
}
else
{
panel3.Controls[i].Visible = false;
}
}
if (had)
{
f = null;
return;
}
f.TopLevel = false;
f.Left = 0;
f.Top = 0;
f.FormBorderStyle = FormBorderStyle.None;
panel3.Controls.Add(f);
f.AutoSize = true;
f.Dock = DockStyle.Fill;
f.Show();
}
private void CollectForm_Load(object sender, EventArgs e)
{
try
{
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
}
catch { }
}
}
}
@@ -1,120 +0,0 @@
<?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>
</root>
@@ -1,566 +0,0 @@
namespace TemuKJD.KJDForms.CollectForms
{
partial class FriendShopCollectForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.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();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btnExport = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtKeyWords = new DevComponents.DotNetBar.Controls.TextBoxX();
this.btnLoginDouyin = new TemuKJD.UserControls.ButtonEx();
this.btnCollect = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.cmbSort = new System.Windows.Forms.ComboBox();
this.txtScoreRateMax = new System.Windows.Forms.TextBox();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.label9 = new System.Windows.Forms.Label();
this.txtTotalPage = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.txtScoreRateMin = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.txtShopSalesMax = new System.Windows.Forms.TextBox();
this.txtProductCountMax = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.txtProductCountMin = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.txtShopSalesMin = new System.Windows.Forms.TextBox();
this.label16 = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.dgvCollect = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colKeyword = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colRate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaleCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
this.ucGroupBoxEx2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvCollect)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.btnExport);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
this.splitContainer1.Panel1.Controls.Add(this.btnLoginDouyin);
this.splitContainer1.Panel1.Controls.Add(this.btnCollect);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx2);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(800, 450);
this.splitContainer1.SplitterDistance = 121;
this.splitContainer1.TabIndex = 376;
//
// btnExport
//
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnExport.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnExport.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnExport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExport.ForeColor = System.Drawing.Color.White;
this.btnExport.Location = new System.Drawing.Point(720, 84);
this.btnExport.Margin = new System.Windows.Forms.Padding(2);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(66, 26);
this.btnExport.TabIndex = 394;
this.btnExport.Text = "导出数据";
this.btnExport.UseVisualStyleBackColor = false;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.txtKeyWords);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(192, 120);
this.ucGroupBoxEx1.TabIndex = 393;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "采集关键词";
//
// txtKeyWords
//
//
//
//
this.txtKeyWords.Border.Class = "TextBoxBorder";
this.txtKeyWords.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtKeyWords.Location = new System.Drawing.Point(10, 21);
this.txtKeyWords.Multiline = true;
this.txtKeyWords.Name = "txtKeyWords";
this.txtKeyWords.PreventEnterBeep = true;
this.txtKeyWords.Size = new System.Drawing.Size(171, 88);
this.txtKeyWords.TabIndex = 7;
this.txtKeyWords.WatermarkText = "请输入要搜索的商品名称\r\n如垃圾桶,连衣裙等\r\n一行一个";
//
// btnLoginDouyin
//
this.btnLoginDouyin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnLoginDouyin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnLoginDouyin.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnLoginDouyin.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLoginDouyin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLoginDouyin.ForeColor = System.Drawing.Color.White;
this.btnLoginDouyin.Location = new System.Drawing.Point(720, 20);
this.btnLoginDouyin.Margin = new System.Windows.Forms.Padding(2);
this.btnLoginDouyin.Name = "btnLoginDouyin";
this.btnLoginDouyin.Size = new System.Drawing.Size(66, 26);
this.btnLoginDouyin.TabIndex = 373;
this.btnLoginDouyin.Text = "登录抖音";
this.btnLoginDouyin.UseVisualStyleBackColor = false;
this.btnLoginDouyin.Click += new System.EventHandler(this.btnLoginDouyin_Click);
//
// btnCollect
//
this.btnCollect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCollect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCollect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCollect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCollect.ForeColor = System.Drawing.Color.White;
this.btnCollect.Location = new System.Drawing.Point(720, 52);
this.btnCollect.Margin = new System.Windows.Forms.Padding(2);
this.btnCollect.Name = "btnCollect";
this.btnCollect.Size = new System.Drawing.Size(66, 26);
this.btnCollect.TabIndex = 374;
this.btnCollect.Text = "开始采集";
this.btnCollect.UseVisualStyleBackColor = false;
this.btnCollect.Click += new System.EventHandler(this.btnCollect_Click);
//
// ucGroupBoxEx2
//
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.cmbSort);
this.ucGroupBoxEx2.Controls.Add(this.txtScoreRateMax);
this.ucGroupBoxEx2.Controls.Add(this.checkBox1);
this.ucGroupBoxEx2.Controls.Add(this.label9);
this.ucGroupBoxEx2.Controls.Add(this.txtTotalPage);
this.ucGroupBoxEx2.Controls.Add(this.label10);
this.ucGroupBoxEx2.Controls.Add(this.label11);
this.ucGroupBoxEx2.Controls.Add(this.txtScoreRateMin);
this.ucGroupBoxEx2.Controls.Add(this.label12);
this.ucGroupBoxEx2.Controls.Add(this.txtShopSalesMax);
this.ucGroupBoxEx2.Controls.Add(this.txtProductCountMax);
this.ucGroupBoxEx2.Controls.Add(this.label13);
this.ucGroupBoxEx2.Controls.Add(this.txtProductCountMin);
this.ucGroupBoxEx2.Controls.Add(this.label14);
this.ucGroupBoxEx2.Controls.Add(this.label15);
this.ucGroupBoxEx2.Controls.Add(this.txtShopSalesMin);
this.ucGroupBoxEx2.Controls.Add(this.label16);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(196, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
this.ucGroupBoxEx2.Size = new System.Drawing.Size(357, 120);
this.ucGroupBoxEx2.TabIndex = 395;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "采集参数";
//
// cmbSort
//
this.cmbSort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbSort.FormattingEnabled = true;
this.cmbSort.Items.AddRange(new object[] {
"综合",
"销量"});
this.cmbSort.Location = new System.Drawing.Point(68, 22);
this.cmbSort.Name = "cmbSort";
this.cmbSort.Size = new System.Drawing.Size(85, 25);
this.cmbSort.TabIndex = 375;
//
// txtScoreRateMax
//
this.txtScoreRateMax.Location = new System.Drawing.Point(287, 86);
this.txtScoreRateMax.Name = "txtScoreRateMax";
this.txtScoreRateMax.Size = new System.Drawing.Size(55, 23);
this.txtScoreRateMax.TabIndex = 391;
this.txtScoreRateMax.Text = "5";
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(13, 87);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(99, 21);
this.checkBox1.TabIndex = 392;
this.checkBox1.Text = "显示商品图片";
this.checkBox1.UseVisualStyleBackColor = true;
this.checkBox1.Visible = false;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(275, 89);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(13, 17);
this.label9.TabIndex = 390;
this.label9.Text = "-";
//
// txtTotalPage
//
this.txtTotalPage.Location = new System.Drawing.Point(68, 54);
this.txtTotalPage.Name = "txtTotalPage";
this.txtTotalPage.Size = new System.Drawing.Size(85, 23);
this.txtTotalPage.TabIndex = 376;
this.txtTotalPage.Text = "5";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(162, 90);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 389;
this.label10.Text = "体验分数";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(11, 26);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(56, 17);
this.label11.TabIndex = 377;
this.label11.Text = "排  序";
//
// txtScoreRateMin
//
this.txtScoreRateMin.Location = new System.Drawing.Point(219, 86);
this.txtScoreRateMin.Name = "txtScoreRateMin";
this.txtScoreRateMin.Size = new System.Drawing.Size(55, 23);
this.txtScoreRateMin.TabIndex = 388;
this.txtScoreRateMin.Text = "0";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(10, 58);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(56, 17);
this.label12.TabIndex = 378;
this.label12.Text = "采集页数";
//
// txtShopSalesMax
//
this.txtShopSalesMax.Location = new System.Drawing.Point(287, 54);
this.txtShopSalesMax.Name = "txtShopSalesMax";
this.txtShopSalesMax.Size = new System.Drawing.Size(55, 23);
this.txtShopSalesMax.TabIndex = 387;
this.txtShopSalesMax.Text = "99999999";
//
// txtProductCountMax
//
this.txtProductCountMax.Location = new System.Drawing.Point(287, 22);
this.txtProductCountMax.Name = "txtProductCountMax";
this.txtProductCountMax.Size = new System.Drawing.Size(55, 23);
this.txtProductCountMax.TabIndex = 383;
this.txtProductCountMax.Text = "99999999";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(275, 57);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(13, 17);
this.label13.TabIndex = 386;
this.label13.Text = "-";
//
// txtProductCountMin
//
this.txtProductCountMin.Location = new System.Drawing.Point(219, 22);
this.txtProductCountMin.Name = "txtProductCountMin";
this.txtProductCountMin.Size = new System.Drawing.Size(55, 23);
this.txtProductCountMin.TabIndex = 379;
this.txtProductCountMin.Text = "0";
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(162, 58);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(56, 17);
this.label14.TabIndex = 385;
this.label14.Text = "店铺月销";
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(162, 26);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(56, 17);
this.label15.TabIndex = 380;
this.label15.Text = "宝贝数量";
//
// txtShopSalesMin
//
this.txtShopSalesMin.Location = new System.Drawing.Point(219, 54);
this.txtShopSalesMin.Name = "txtShopSalesMin";
this.txtShopSalesMin.Size = new System.Drawing.Size(55, 23);
this.txtShopSalesMin.TabIndex = 384;
this.txtShopSalesMin.Text = "0";
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(275, 25);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(13, 17);
this.label16.TabIndex = 382;
this.label16.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.dgvCollect);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(800, 325);
this.splitContainer2.SplitterDistance = 299;
this.splitContainer2.SplitterWidth = 1;
this.splitContainer2.TabIndex = 7;
//
// dgvCollect
//
this.dgvCollect.AllowUserToAddRows = false;
this.dgvCollect.AllowUserToDeleteRows = false;
dataGridViewCellStyle4.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvCollect.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle4;
this.dgvCollect.BackgroundColor = System.Drawing.Color.White;
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvCollect.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5;
this.dgvCollect.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvCollect.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colKeyword,
this.colShopId,
this.colShopName,
this.colRate,
this.colSaleCount,
this.colShopCount,
this.colProductId,
this.colDelete});
this.dgvCollect.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvCollect.Location = new System.Drawing.Point(5, 0);
this.dgvCollect.Name = "dgvCollect";
this.dgvCollect.ReadOnly = true;
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgvCollect.RowsDefaultCellStyle = dataGridViewCellStyle6;
this.dgvCollect.RowTemplate.Height = 23;
this.dgvCollect.Size = new System.Drawing.Size(790, 299);
this.dgvCollect.TabIndex = 6;
this.dgvCollect.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvCollect_CellContentClick);
//
// colSelect
//
this.colSelect.FillWeight = 50F;
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;
this.colSelect.Visible = false;
this.colSelect.Width = 41;
//
// colKeyword
//
this.colKeyword.HeaderText = "关键词";
this.colKeyword.Name = "colKeyword";
this.colKeyword.ReadOnly = true;
//
// colShopId
//
this.colShopId.HeaderText = "店铺Id";
this.colShopId.Name = "colShopId";
this.colShopId.ReadOnly = true;
//
// colShopName
//
this.colShopName.FillWeight = 150F;
this.colShopName.HeaderText = "店铺名称";
this.colShopName.Name = "colShopName";
this.colShopName.ReadOnly = true;
this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colShopName.Width = 150;
//
// colRate
//
this.colRate.HeaderText = "体验分数";
this.colRate.Name = "colRate";
this.colRate.ReadOnly = true;
this.colRate.Width = 80;
//
// colSaleCount
//
this.colSaleCount.HeaderText = "店铺销量";
this.colSaleCount.Name = "colSaleCount";
this.colSaleCount.ReadOnly = true;
this.colSaleCount.Width = 80;
//
// colShopCount
//
this.colShopCount.FillWeight = 150F;
this.colShopCount.HeaderText = "店铺宝贝数量";
this.colShopCount.Name = "colShopCount";
this.colShopCount.ReadOnly = true;
//
// colProductId
//
this.colProductId.HeaderText = "商品链接";
this.colProductId.Name = "colProductId";
this.colProductId.ReadOnly = true;
this.colProductId.Width = 300;
//
// colDelete
//
this.colDelete.HeaderText = "删除";
this.colDelete.Name = "colDelete";
this.colDelete.ReadOnly = true;
this.colDelete.Visible = false;
this.colDelete.Width = 81;
//
// 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(800, 25);
this.statusBar.TabIndex = 4;
//
// FriendShopCollectForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "FriendShopCollectForm";
this.Text = "同行采集";
this.Load += new System.EventHandler(this.FriendShopCollectForm_Load);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx2.ResumeLayout(false);
this.ucGroupBoxEx2.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.dgvCollect)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private UserControls.ButtonEx btnExport;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private UserControls.ButtonEx btnLoginDouyin;
private UserControls.ButtonEx btnCollect;
private UserComponent.DataGridViewEx dgvCollect;
private UserComponent.UcGroupBoxEx ucGroupBoxEx2;
private System.Windows.Forms.ComboBox cmbSort;
private System.Windows.Forms.TextBox txtScoreRateMax;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox txtTotalPage;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.TextBox txtScoreRateMin;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox txtShopSalesMax;
private System.Windows.Forms.TextBox txtProductCountMax;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtProductCountMin;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.TextBox txtShopSalesMin;
private System.Windows.Forms.Label label16;
private DevComponents.DotNetBar.Controls.TextBoxX txtKeyWords;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colKeyword;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn colRate;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colProductId;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserControls.StatusBarUserControl statusBar;
}
}
@@ -1,357 +0,0 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using TemuKJD.KJDForms.BaseForms;
using TemuKJD.KJDForms.ToolForms;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.KJDForms.CollectForms
{
public partial class FriendShopCollectForm : BaseForm
{
List<DouGoodsCollectInfo> lstProduct = new List<DouGoodsCollectInfo>();
CancellationTokenSource cancellationTokenSource = null;
long productCountMin = 0;
long productCountMax = 99999999;
long shopSaleCountMin = 0;
long shopSaleCountMax = 99999999;
/// <summary>
/// 体验分数最小值
/// </summary>
decimal scoreMin = 0;
/// <summary>
/// 体验分数最大值
/// </summary>
decimal scoreMax = 100;
public FriendShopCollectForm()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
/// <param name="cookies"></param>
/// <param name="searchText">搜索关键字</param>
/// <param name="cursor">当前搜索的游标</param>
/// <param name="count">要搜索的总数</param>
/// <param name="sort">排序依据 0:综合 2:销量</param>
/// <returns></returns>
private string GetFriendShops(string cookies, string searchText, string cursor = "0", string count = "50", string sort = "0")
{
HttpWebResponse response = null;
string result;
try
{
string url = "https://lianmengapi-lf.snssdk.com/selection/search/shop?channel=App%20Store&slide_guide_has_shown=1&minor_status=0"
+ "&cursor=" + cursor + "&count=" + count + "&search_text=" + GetHtml.UrlEncodeUtf8(searchText) + "&request_tag_from=m&order_by=&sort=" + sort;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//https://lianmengapi-lf.snssdk.com/selection/search/shop?channel=App%20Store&slide_guide_has_shown=1&minor_status=0&cursor=0&count=50&search_text=%e8%bf%9e%e8%a1%a3%e8%a3%99&request_tag_from=m&order_by=&sort=0
//https://lianmengapi-lf.snssdk.com/selection/search/shop?channel=App%20Store&slide_guide_has_shown=1&minor_status=0&cursor=80&count=100&search_text=%E8%BF%9E%E8%A1%A3%E8%A3%99&request_tag_from=m&order_by=&sort=0");
//gfsitesid=MTI1NzAyNzU1NHwxNjI2MDc2NDI1NDN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTI1NzAyNzU1NHwxNjI2MDc2NDI1NDN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTI1NzAyNzU1NHwxNjI2MDc2NDI1NDN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTI1NzAyNzU1NHwxNjI2MDc2NDI1NDN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gftoken=MTI1NzAyNzU1NHwxNjI2MDc2NDI1NDN8fDAGBgYGBgY; Hm_lvt_b6520b076191ab4b36812da4c90f7a5e=1626076426; MONITOR_WEB_ID=ff46fe79-c1bd-4d03-b18d-39e78c59e3cf; passport_csrf_token_default=7565758120670bc073d791d6c2516599; passport_csrf_token=7565758120670bc073d791d6c2516599; ttcid=84ce6ad7a7c54817876bc354ce50e63998; ttwid=1%7C6M4WENwiVxCUI00v2KqThQe4VmQM34O0AXRdgU3S7ns%7C1626076427%7C6238c10c68cd01bf99c1a8fa834c4250f32a8b2ccc2adc1029ef451cab53cd60; n_mh=7LrrRmeUceh3vjPZWa4C3h7B_APxodsUr7zuYy75V90; sso_uid_tt=2ef4d6078ca6ad08e04251ff869d1454; sso_uid_tt_ss=2ef4d6078ca6ad08e04251ff869d1454; toutiao_sso_user=1f5ff878e13850a8a76d1c5002053dbb; toutiao_sso_user_ss=1f5ff878e13850a8a76d1c5002053dbb; odin_tt=fa6e9e56199abc6fe54781e77c689540450d6e2513913a8b02ae5b1253072129714f9118b1da0c09bfb9397d4dc5c318604bae278e4cf15e9845340f22d65e69; uidpasaddaehruigqreajf=0; tt_scid=rx5XfMYxzTA66ZKDdmoMcC4qrQQzNeZh-wTo-K3sfH8pDdVFgiS9pBpGCcVx2ORX5bdd; ucas_sso_c0_ss=CkEKBTEuMC4wEJ6Ihe7Jof31YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CT6q-HBkiTnuyJBlCOvKLE77ansWBYbhIU5OPHMBH5sjM45bXzqY54qXYF2OY; ucas_sso_c0=CkEKBTEuMC4wEJ6Ihe7Jof31YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CT6q-HBkiTnuyJBlCOvKLE77ansWBYbhIU5OPHMBH5sjM45bXzqY54qXYF2OY; ucas_c0_ss=CkEKBTEuMC4wEKSIhsLaof31YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CT6q-HBkiTnuyJBlCOvKLE77ansWBYbhIUpAxRIGvlmWnW3egoiY9Qkn_jA-M; sid_guard=0f3e1676339ab15de4697e624ff85b58%7C1626076435%7C5184000%7CFri%2C+10-Sep-2021+07%3A53%3A55+GMT; uid_tt=40ce5c67070509846fb296d5d132a38a; uid_tt_ss=40ce5c67070509846fb296d5d132a38a; sid_tt=0f3e1676339ab15de4697e624ff85b58; sessionid=0f3e1676339ab15de4697e624ff85b58; sessionid_ss=0f3e1676339ab15de4697e624ff85b58; ucas_c0=CkEKBTEuMC4wEKSIhsLaof31YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CT6q-HBkiTnuyJBlCOvKLE77ansWBYbhIUpAxRIGvlmWnW3egoiY9Qkn_jA-M; PHPSESSID=ff529a6f01eaf19e6a00245e676d1fa0; PHPSESSID_SS=ff529a6f01eaf19e6a00245e676d1fa0; need_choose_shop=0; Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e=1626076436; login_info=%7B%22for_im_reply%22%3A%22ff529a6f01eaf19e6a00245e676d1fa0%22%7D
//passport_csrf_token_default=b45f8a5deab82f55ee0a9b2452c78a2d; passport_csrf_token=b45f8a5deab82f55ee0a9b2452c78a2d; n_mh=7LrrRmeUceh3vjPZWa4C3h7B_APxodsUr7zuYy75V90; sso_uid_tt=77d4f2eb5023c34a6a9a7cebb2b382db; sso_uid_tt_ss=77d4f2eb5023c34a6a9a7cebb2b382db; toutiao_sso_user=a884ccbcc49dad835d33cdc613c62438; toutiao_sso_user_ss=a884ccbcc49dad835d33cdc613c62438; odin_tt=ef6c903d84d840d6849ac89bba2da6f261fd3ae8b722c34f3e85ac154b69709e145deb2aef4fa2dbb777d1d6c53146dcc3ade71ffb17f315e410d911b0eff5db; ucas_sso_c0_ss=CkEKBTEuMC4wEKSIiN6mnor2YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CG0rCHBkiGhu2JBlCOvKLE77ansWBYbhIUtfYvQwb4NE052EdbcrL95yHsFrs; ucas_sso_c0=CkEKBTEuMC4wEKSIiN6mnor2YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CG0rCHBkiGhu2JBlCOvKLE77ansWBYbhIUtfYvQwb4NE052EdbcrL95yHsFrs; ucas_c0_ss=CkEKBTEuMC4wEKSIid6mnor2YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CG0rCHBkiGhu2JBlCOvKLE77ansWBYbhIU-APRWpBUAsOmIf4repethZ5coPw; sid_guard=630400240480860367e63fa726e7238f%7C1626089734%7C5184000%7CFri%2C+10-Sep-2021+11%3A35%3A34+GMT; uid_tt=1b1612b50857532656f4f623275adb40; uid_tt_ss=1b1612b50857532656f4f623275adb40; sid_tt=630400240480860367e63fa726e7238f; sessionid=630400240480860367e63fa726e7238f; sessionid_ss=630400240480860367e63fa726e7238f; ucas_c0=CkEKBTEuMC4wEKSIid6mnor2YBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0CG0rCHBkiGhu2JBlCOvKLE77ansWBYbhIU-APRWpBUAsOmIf4repethZ5coPw; PHPSESSID=840c94272b784072021cecf2aefccb30; PHPSESSID_SS=840c94272b784072021cecf2aefccb30; MONITOR_WEB_ID=e8b18a1d-c085-4692-bba2-3972f9dc16e7; buyin_shop_type=24; ttwid=1%7CuycbM01qMO-TgJUFec3jiZ_znHlSLKDYKGuzE_vWz90%7C1626242695%7C4bccbd38df4bd7ff3265ca69959cdc6a6dd7df547437ab4e891149ff37a464cf; SASID=SID2_3492329951615696327; BUYIN_SASID=SID2_3492329951615696327");
request.ContentType = "application/x-www-form-urlencoded";
//request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36";
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
return result;
}
private string GetShopDetail(string productId)
{
HttpWebResponse response = null;
string result;
try
{
string url = "http://ec.snssdk.com/product/ajaxitem?b_type_new=0&device_id=0&is_outside=1&id=" + productId + "&abParams=0";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Referer = "https://haohuo.jinritemai.com/";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.509";
request.Headers.Add("origin", @"https://haohuo.jinritemai.com");
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
return result;
}
private void btnCollect_Click(object sender, EventArgs e)
{
if (btnCollect.Text != "开始采集")
{
cancellationTokenSource.Cancel();
return;
}
var cookieShop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.LoginStatus == "登录成功");
if (cookieShop == null)
{
BaseForms.BaseMsgForm.ShowError("请登录店铺账号后搜索");
return;
}
var searchTextArr = this.txtKeyWords.Text.Split(new string[] { "\r", "\n", ",", " " }, StringSplitOptions.RemoveEmptyEntries);
if (searchTextArr.Length == 0)
{
BaseForms.BaseMsgForm.ShowError("请至少输入一个关键词");
return;
}
productCountMin = txtProductCountMin.Text.ParseToLong();
productCountMax = txtProductCountMax.Text.ParseToLong();
shopSaleCountMin = txtShopSalesMin.Text.ParseToLong();
shopSaleCountMax = txtShopSalesMax.Text.ParseToLong();
scoreMin = txtScoreRateMin.Text.ParseToDecimal();
scoreMax = txtScoreRateMax.Text.ParseToDecimal();
int totalPage = txtTotalPage.Text.ParseToInt();
lstProduct.Clear();
this.dgvCollect.Rows.Clear();
var sortType = cmbSort.SelectedIndex <= 0 ? "0" : "2";
cancellationTokenSource = new CancellationTokenSource();
int n = 0;
int total = searchTextArr.Count() * totalPage;
this.statusBar.lblTaskStatus.Text = "开始采集...";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
btnCollect.Text = "停止采集";
Task.Run(() =>
{
foreach (var searchText in searchTextArr)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
var exportFileName = "采集导出\\抖音同行采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
try
{
if (!Directory.Exists("采集导出"))
Directory.CreateDirectory("采集导出");
StringBuilder sb = new StringBuilder();
sb.AppendLine("关键词,店铺编号,店铺名称,体验分数,店铺销量,店铺商品总数,商品链接");
File.AppendAllText(exportFileName, sb.ToString(), Encoding.Default);
}
catch (Exception ex) { }
for (int page = 0; page < totalPage; page++)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
n++;
Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在采集同行商品:" + searchText + ",当前采集到第 " + (page + 1) + " 页";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
//var friendProductResult = GetFriendShops(cookieShop.Cookies, searchText, (page * 10).ToString(), (totalPage * 10).ToString(), sortType);
var friendProductResult = GetFriendShops(GlobalConfig.DouUserCookies, searchText, (page * 10).ToString(), (totalPage * 10).ToString(), sortType);
if (friendProductResult.Contains("用户未登录"))
{
Invoke(new Action(() =>
{
ToolForms.DouUserLoginForm dForm = new ToolForms.DouUserLoginForm();
dForm.ShowDialog();
}));
}
friendProductResult = GetFriendShops(GlobalConfig.DouUserCookies, searchText, (page * 10).ToString(), (totalPage * 10).ToString(), sortType);
if (friendProductResult.Contains("用户未登录"))
{
BaseMsgForm.ShowError("用户登录失败,请登录抖音账号后再试!");
break;
}
else if (!string.IsNullOrEmpty(friendProductResult) && friendProductResult.Contains("\"status_code\":0"))
{
JObject jObj = JObject.Parse(friendProductResult);
if (jObj["shops"] == null)
continue;
foreach (var shop in jObj["shops"])
{
if (cancellationTokenSource.IsCancellationRequested)
break;
var shopStr = JsonHelper.SerializeObject(shop);
DouGoodsCollectInfo good = new DouGoodsCollectInfo();
good.Keyword = searchText;
good.Id = BaseRegex.GetStringJson(ref shopStr, "product_id");
good.ShopName = BaseRegex.GetStringJson(ref shopStr, "name");
//good.ShopId = BaseRegex.GetStringJson(ref shopStr, "shop_id");
good.CommentsRate = BaseRegex.GetStringJson(ref shopStr, "score").ParseToDouble();
good.Sales = BaseRegex.GetStringJson(ref shopStr, "sales");
// 筛选条件
if (good.Sales.ParseToLong() < this.shopSaleCountMin || good.Sales.ParseToLong() > this.shopSaleCountMax
|| good.CommentsRate.ParseToDecimal() < scoreMin || good.CommentsRate.ParseToDecimal() > scoreMax)
{
continue;
}
Thread.Sleep(Randomx.GetId(500, 1000));
string detailResult = GetShopDetail(good.Id);
if (string.IsNullOrEmpty(detailResult) || !detailResult.Contains("\"st\":0"))
{
Thread.Sleep(Randomx.GetId(500, 1000));
detailResult = GetShopDetail(good.Id);
}
if (!string.IsNullOrEmpty(detailResult) && detailResult.Contains("\"st\":0"))
{
good.ShopProductCount = BaseRegex.GetStringJson(ref detailResult, "shop_product_count").ParseToInt();
// 筛选条件
if (good.ShopProductCount < this.productCountMin || good.ShopProductCount > this.productCountMax)
{
continue;
}
}
// 获取可用于店铺查询的店铺ID
Thread.Sleep(Randomx.GetId(300, 600));
string shopResult = Work.BLL.Collect.HaoWuCollectBLL.getHtml("https://ec.snssdk.com/product/fxgajaxstaticitem?" +
"b_type_new=0&device_id=0&is_outside=1&id=" + good.Id + "&preview=0", "", "utf8");
if (!string.IsNullOrEmpty(shopResult))
good.ShopId = BaseRegex.GetStringJson(ref shopResult, "shop_id");
try
{
this.lstProduct.Add(good);
StringBuilder sb = new StringBuilder();
sb.AppendLine(good.Keyword + "," + good.ShopId + ","
+ good.ShopName + "," + good.CommentsRate + "," + good.Sales + "," + good.ShopProductCount + ","
+ "https://haohuo.jinritemai.com/views/product/item2?id=" + good.Id);
File.AppendAllText(exportFileName, sb.ToString(), Encoding.Default);
}
catch (Exception ex)
{
}
Invoke(new Action(() =>
{
var index = this.dgvCollect.Rows.Add(false, good.Keyword, good.ShopId, good.ShopName, good.CommentsRate, good.Sales,
good.ShopProductCount, "https://haohuo.jinritemai.com/views/product/item2?id=" + good.Id, "删除");
}));
}
}
}
}
Invoke(new Action(() =>
{
btnCollect.Text = "开始采集";
this.statusBar.lblTaskStatus.Text = "采集结束,共采集到商品" + this.lstProduct.Count + "个";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
}, cancellationTokenSource.Token);
}
private void btnLoginDouyin_Click(object sender, EventArgs e)
{
DouUserLoginForm dForm = new DouUserLoginForm();
dForm.ShowDialog();
}
private void FriendShopCollectForm_Load(object sender, EventArgs e)
{
this.cmbSort.SelectedIndex = 0;
}
private void dgvCollect_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0)
return;
var goodsId = dgvCollect.Rows[e.RowIndex].Cells["colProductId"].Value.ToString();
var columnName = dgvCollect.Columns[e.ColumnIndex].Name;
if (columnName == "colProductId")
{
string url = goodsId;
GetHtml.OpenUrl(url);
}
}
private void btnExport_Click(object sender, EventArgs e)
{
try
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "表格文件(*.csv)|*.csv";
saveFileDialog1.FileName = "抖音同行采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("关键词,店铺编号,店铺名称,体验分数,店铺销量,店铺商品总数,商品链接");
foreach (var goodsInfo in lstProduct)
{
sb.AppendLine(goodsInfo.Keyword + "," + goodsInfo.ShopId + ","
+ goodsInfo.ShopName + "," + goodsInfo.CommentsRate + "," + goodsInfo.Sales + "," + goodsInfo.ShopProductCount + ","
+ "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsInfo.Id);
}
File.WriteAllText(saveFileDialog1.FileName, sb.ToString(), Encoding.Default);
BaseForms.BaseMsgForm.ShowInfo("导出成功");
}
}
catch (Exception ex)
{
BaseForms.BaseMsgForm.ShowError(ex.Message);
}
}
}
}
@@ -1,144 +0,0 @@
<?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="colKeyword.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>
<metadata name="colRate.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="colShopCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
-556
View File
@@ -1,556 +0,0 @@
namespace TemuKJD.KJDForms.CollectForms
{
partial class HaoWuCollectForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.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();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btnExport = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.cmbCategory = new System.Windows.Forms.ComboBox();
this.txtRateMax = new System.Windows.Forms.TextBox();
this.chkShowImage = new System.Windows.Forms.CheckBox();
this.label7 = new System.Windows.Forms.Label();
this.txtCollectPage = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.txtRateMin = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txtSaleCountMax = new System.Windows.Forms.TextBox();
this.txtPriceMax = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.txtPriceMin = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtSaleCountMin = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.btnLoginDouyin = new TemuKJD.UserControls.ButtonEx();
this.btnCollect = new TemuKJD.UserControls.ButtonEx();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.dgvCollect = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductName = new System.Windows.Forms.DataGridViewLinkColumn();
this.colImage = new System.Windows.Forms.DataGridViewImageColumn();
this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaleCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colRate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvCollect)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.btnExport);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
this.splitContainer1.Panel1.Controls.Add(this.btnLoginDouyin);
this.splitContainer1.Panel1.Controls.Add(this.btnCollect);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(878, 472);
this.splitContainer1.SplitterDistance = 121;
this.splitContainer1.TabIndex = 375;
//
// btnExport
//
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnExport.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnExport.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnExport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExport.ForeColor = System.Drawing.Color.White;
this.btnExport.Location = new System.Drawing.Point(798, 84);
this.btnExport.Margin = new System.Windows.Forms.Padding(2);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(66, 26);
this.btnExport.TabIndex = 394;
this.btnExport.Text = "导出数据";
this.btnExport.UseVisualStyleBackColor = false;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.cmbCategory);
this.ucGroupBoxEx1.Controls.Add(this.txtRateMax);
this.ucGroupBoxEx1.Controls.Add(this.chkShowImage);
this.ucGroupBoxEx1.Controls.Add(this.label7);
this.ucGroupBoxEx1.Controls.Add(this.txtCollectPage);
this.ucGroupBoxEx1.Controls.Add(this.label8);
this.ucGroupBoxEx1.Controls.Add(this.label1);
this.ucGroupBoxEx1.Controls.Add(this.txtRateMin);
this.ucGroupBoxEx1.Controls.Add(this.label2);
this.ucGroupBoxEx1.Controls.Add(this.txtSaleCountMax);
this.ucGroupBoxEx1.Controls.Add(this.txtPriceMax);
this.ucGroupBoxEx1.Controls.Add(this.label5);
this.ucGroupBoxEx1.Controls.Add(this.txtPriceMin);
this.ucGroupBoxEx1.Controls.Add(this.label6);
this.ucGroupBoxEx1.Controls.Add(this.label3);
this.ucGroupBoxEx1.Controls.Add(this.txtSaleCountMin);
this.ucGroupBoxEx1.Controls.Add(this.label4);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(426, 120);
this.ucGroupBoxEx1.TabIndex = 393;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "采集参数";
//
// cmbCategory
//
this.cmbCategory.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbCategory.FormattingEnabled = true;
this.cmbCategory.Location = new System.Drawing.Point(76, 21);
this.cmbCategory.Name = "cmbCategory";
this.cmbCategory.Size = new System.Drawing.Size(105, 25);
this.cmbCategory.TabIndex = 375;
//
// txtRateMax
//
this.txtRateMax.Location = new System.Drawing.Point(330, 86);
this.txtRateMax.Name = "txtRateMax";
this.txtRateMax.Size = new System.Drawing.Size(55, 23);
this.txtRateMax.TabIndex = 391;
this.txtRateMax.Text = "100";
//
// chkShowImage
//
this.chkShowImage.AutoSize = true;
this.chkShowImage.Location = new System.Drawing.Point(76, 87);
this.chkShowImage.Name = "chkShowImage";
this.chkShowImage.Size = new System.Drawing.Size(99, 21);
this.chkShowImage.TabIndex = 392;
this.chkShowImage.Text = "显示商品图片";
this.chkShowImage.UseVisualStyleBackColor = true;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(314, 89);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(13, 17);
this.label7.TabIndex = 390;
this.label7.Text = "-";
//
// txtCollectPage
//
this.txtCollectPage.Location = new System.Drawing.Point(76, 54);
this.txtCollectPage.Name = "txtCollectPage";
this.txtCollectPage.Size = new System.Drawing.Size(105, 23);
this.txtCollectPage.TabIndex = 376;
this.txtCollectPage.Text = "5";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(205, 89);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(44, 17);
this.label8.TabIndex = 389;
this.label8.Text = "好评率";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(14, 25);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 377;
this.label1.Text = "采集类目";
//
// txtRateMin
//
this.txtRateMin.Location = new System.Drawing.Point(256, 86);
this.txtRateMin.Name = "txtRateMin";
this.txtRateMin.Size = new System.Drawing.Size(55, 23);
this.txtRateMin.TabIndex = 388;
this.txtRateMin.Text = "0";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(14, 57);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(56, 17);
this.label2.TabIndex = 378;
this.label2.Text = "采集页数";
//
// txtSaleCountMax
//
this.txtSaleCountMax.Location = new System.Drawing.Point(330, 54);
this.txtSaleCountMax.Name = "txtSaleCountMax";
this.txtSaleCountMax.Size = new System.Drawing.Size(55, 23);
this.txtSaleCountMax.TabIndex = 387;
this.txtSaleCountMax.Text = "99999999";
//
// txtPriceMax
//
this.txtPriceMax.Location = new System.Drawing.Point(330, 22);
this.txtPriceMax.Name = "txtPriceMax";
this.txtPriceMax.Size = new System.Drawing.Size(55, 23);
this.txtPriceMax.TabIndex = 383;
this.txtPriceMax.Text = "99999999";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(314, 57);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(13, 17);
this.label5.TabIndex = 386;
this.label5.Text = "-";
//
// txtPriceMin
//
this.txtPriceMin.Location = new System.Drawing.Point(256, 22);
this.txtPriceMin.Name = "txtPriceMin";
this.txtPriceMin.Size = new System.Drawing.Size(55, 23);
this.txtPriceMin.TabIndex = 379;
this.txtPriceMin.Text = "0";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(217, 57);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(32, 17);
this.label6.TabIndex = 385;
this.label6.Text = "销量";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(217, 25);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(32, 17);
this.label3.TabIndex = 380;
this.label3.Text = "价格";
//
// txtSaleCountMin
//
this.txtSaleCountMin.Location = new System.Drawing.Point(256, 54);
this.txtSaleCountMin.Name = "txtSaleCountMin";
this.txtSaleCountMin.Size = new System.Drawing.Size(55, 23);
this.txtSaleCountMin.TabIndex = 384;
this.txtSaleCountMin.Text = "0";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(314, 25);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(13, 17);
this.label4.TabIndex = 382;
this.label4.Text = "-";
//
// btnLoginDouyin
//
this.btnLoginDouyin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnLoginDouyin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnLoginDouyin.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnLoginDouyin.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLoginDouyin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLoginDouyin.ForeColor = System.Drawing.Color.White;
this.btnLoginDouyin.Location = new System.Drawing.Point(798, 20);
this.btnLoginDouyin.Margin = new System.Windows.Forms.Padding(2);
this.btnLoginDouyin.Name = "btnLoginDouyin";
this.btnLoginDouyin.Size = new System.Drawing.Size(66, 26);
this.btnLoginDouyin.TabIndex = 373;
this.btnLoginDouyin.Text = "登录抖音";
this.btnLoginDouyin.UseVisualStyleBackColor = false;
this.btnLoginDouyin.Click += new System.EventHandler(this.btnLoginDouyin_Click);
//
// btnCollect
//
this.btnCollect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCollect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCollect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCollect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCollect.ForeColor = System.Drawing.Color.White;
this.btnCollect.Location = new System.Drawing.Point(798, 52);
this.btnCollect.Margin = new System.Windows.Forms.Padding(2);
this.btnCollect.Name = "btnCollect";
this.btnCollect.Size = new System.Drawing.Size(66, 26);
this.btnCollect.TabIndex = 374;
this.btnCollect.Text = "开始采集";
this.btnCollect.UseVisualStyleBackColor = false;
this.btnCollect.Click += new System.EventHandler(this.btnCollect_Click);
//
// 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.dgvCollect);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(878, 347);
this.splitContainer2.SplitterDistance = 318;
this.splitContainer2.SplitterWidth = 1;
this.splitContainer2.TabIndex = 7;
//
// dgvCollect
//
this.dgvCollect.AllowUserToAddRows = false;
this.dgvCollect.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvCollect.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvCollect.BackgroundColor = System.Drawing.Color.White;
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.dgvCollect.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvCollect.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvCollect.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colProductId,
this.colProductName,
this.colImage,
this.colPrice,
this.colSaleCount,
this.colRate,
this.colShopId,
this.colShopName,
this.colShopCount,
this.colDelete});
this.dgvCollect.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvCollect.Location = new System.Drawing.Point(5, 0);
this.dgvCollect.Name = "dgvCollect";
this.dgvCollect.ReadOnly = true;
dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgvCollect.RowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvCollect.RowTemplate.Height = 23;
this.dgvCollect.Size = new System.Drawing.Size(868, 318);
this.dgvCollect.TabIndex = 6;
this.dgvCollect.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
// colSelect
//
this.colSelect.FillWeight = 50F;
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;
this.colSelect.Visible = false;
this.colSelect.Width = 41;
//
// colProductId
//
this.colProductId.HeaderText = "商品Id";
this.colProductId.Name = "colProductId";
this.colProductId.ReadOnly = true;
//
// colProductName
//
this.colProductName.HeaderText = "商品名称";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
this.colProductName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colProductName.Width = 240;
//
// colImage
//
this.colImage.HeaderText = "图片";
this.colImage.Name = "colImage";
this.colImage.ReadOnly = true;
this.colImage.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colImage.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colImage.Visible = false;
this.colImage.Width = 70;
//
// colPrice
//
this.colPrice.HeaderText = "价格";
this.colPrice.Name = "colPrice";
this.colPrice.ReadOnly = true;
this.colPrice.Width = 80;
//
// colSaleCount
//
this.colSaleCount.HeaderText = "销量";
this.colSaleCount.Name = "colSaleCount";
this.colSaleCount.ReadOnly = true;
this.colSaleCount.Width = 80;
//
// colRate
//
this.colRate.HeaderText = "好评率";
this.colRate.Name = "colRate";
this.colRate.ReadOnly = true;
this.colRate.Width = 80;
//
// colShopId
//
this.colShopId.HeaderText = "店铺Id";
this.colShopId.Name = "colShopId";
this.colShopId.ReadOnly = true;
//
// colShopName
//
this.colShopName.FillWeight = 150F;
this.colShopName.HeaderText = "店铺名称";
this.colShopName.Name = "colShopName";
this.colShopName.ReadOnly = true;
this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colShopName.Width = 150;
//
// colShopCount
//
this.colShopCount.FillWeight = 150F;
this.colShopCount.HeaderText = "店铺商品总数";
this.colShopCount.Name = "colShopCount";
this.colShopCount.ReadOnly = true;
this.colShopCount.Width = 80;
//
// colDelete
//
this.colDelete.HeaderText = "删除";
this.colDelete.Name = "colDelete";
this.colDelete.ReadOnly = true;
this.colDelete.Visible = false;
this.colDelete.Width = 81;
//
// 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(878, 28);
this.statusBar.TabIndex = 4;
//
// HaoWuCollectForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(878, 472);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "HaoWuCollectForm";
this.Text = "好物采集";
this.Load += new System.EventHandler(this.HaoWuCollectForm_Load);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx1.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.dgvCollect)).EndInit();
this.ResumeLayout(false);
}
#endregion
private UserControls.ButtonEx btnLoginDouyin;
private UserControls.ButtonEx btnCollect;
private System.Windows.Forms.SplitContainer splitContainer1;
private UserComponent.DataGridViewEx dgvCollect;
private System.Windows.Forms.ComboBox cmbCategory;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtCollectPage;
private System.Windows.Forms.TextBox txtRateMax;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox txtRateMin;
private System.Windows.Forms.TextBox txtSaleCountMax;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtSaleCountMin;
private System.Windows.Forms.TextBox txtPriceMax;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtPriceMin;
private System.Windows.Forms.CheckBox chkShowImage;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private UserControls.ButtonEx btnExport;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colProductId;
private System.Windows.Forms.DataGridViewLinkColumn colProductName;
private System.Windows.Forms.DataGridViewImageColumn colImage;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colRate;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopCount;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserControls.StatusBarUserControl statusBar;
}
}
@@ -1,437 +0,0 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using TemuKJD.KJDForms.ToolForms;
using NaiBa.Util.Extension;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
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 Work.BLL.Collect;
using TemuKJD.KJDForms.BaseForms;
namespace TemuKJD.KJDForms.CollectForms
{
public partial class HaoWuCollectForm : BaseForm
{
CancellationTokenSource cancellationTokenSource = null;
/// <summary>
/// 商品标题不包含的关键词列表
/// </summary>
private List<string> lstBanKeyText = new List<string>();
List<DouGoodsCollectInfo> lstProduct = new List<DouGoodsCollectInfo>();
/// <summary>
/// 商品过滤的最低销量
/// </summary>
private string minSaleCount = "0";
private string maxSaleCount = "99999999";
private string minPrice = "0";
private string maxPrice = "99999999";
/// <summary>
/// 好评率
/// </summary>
private double hplMin = -1;
private double hplMax = 100;
/// <summary>
/// 采集详情推荐中的商品
/// </summary>
private bool isXqtj = false;
/// <summary>
/// 是否显示图片
/// </summary>
private bool isShowImg = false;
private string exportFileName = "douyinhaowu_collect.csv";
private string[] cates = new string[] { "精选", "食品饮料", "生鲜", "女装", "鞋靴", "彩妆", "护肤", "珠宝文玩", "家电", "数码办公", "男装",
"家纺", "家装", "厨具", "图书", "配饰", "母婴", "运动", "百货", "洗护", "票务卡券", "车品", "绿植农资" };
public HaoWuCollectForm()
{
InitializeComponent();
}
private void HaoWuCollectForm_Load(object sender, EventArgs e)
{
foreach (var item in cates)
{
this.cmbCategory.Items.Add(item);
}
this.cmbCategory.SelectedIndex = 0;
this.splitContainer2.SplitterWidth = 1;
}
public void Collect(string dyCookies, int totalPage, string cateName, string cateIndex, ref List<DouGoodsCollectInfo> lstGoods, ref int currentPage)
{
int total = totalPage;
string str = "";
try
{
if (!Directory.Exists("采集导出"))
Directory.CreateDirectory("采集导出");
exportFileName = "采集导出\\抖音好物采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
StreamWriter writer = new StreamWriter(this.exportFileName, true, Encoding.GetEncoding("gb2312"));
object[] objArray1 = new object[] { "商品名称,", "价格,", "销量,", "好评率,", "商品ID,", "店铺ID,", "店铺名称,", "店铺商品总数" };
writer.WriteLine(string.Concat(objArray1));
writer.Close();
int num = 0;
while (num < totalPage)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
currentPage = num + 1;
Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在采集类目:" + cateName + ",当前采集到第 " + (num + 1) + " 页";
this.statusBar.pgbTaskProgress.Value = (num + 1);
this.statusBar.pgbTaskProgress.Text = (num + 1) + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
str = $"[{DateTime.Now.ToString("MM-dd HH:mm:ss")}] 正在采集类目:{cateName} 第{num + 1}页,成功采集{lstGoods.Count}条。";
object[] objArray2 = new object[] { str };
//base.BeginInvoke(new showMessageDelegate(this.showMsg), objArray2);
int num2 = num * 10;
string str2 = "";
object[] objArray3 = new object[] { "https://aweme.snssdk.com/aweme/v2/commerce/favorite/feed?feature_version=new_operate_resource&tab_id=", cateIndex, "&entrances&cursor=", num2, "&request_tag_from=lynx&with_tabs=false&filters=2_3481030053603741229%2C2_3484212195024324357%2C1_6971768879194327844%2C2_3479930499084982767%2C2_3470779358002703750%2C1_6971770338224982791%2C2_3476553583086965127%2C2_3478793526744103385%2C1_6971747541322976035%2C2_3480664549739395118&page_num=2&feedbacks&page_name=order_homepage&only_entrance=false&os_api=22&device_type=TAS-AN00&ssmix=a&manifest_version_code=160002&dpi=240&uuid=865166029839340&app_name=aweme&version_name=16.0.1&ts=1623252303&cpu_support64=false&app_type=normal&appTheme=dark&ac=wifi&host_abi=armeabi-v7a&update_version_code=16019900&channel=aweGW&_rticket=1623252304036&device_platform=android&iid=1935603863652935&version_code=160001&cdid=61a31b75-b28a-448f-b688-2803bf62456b&openudid=2292f1eb6ba5f1c1&device_id=68214623104&resolution=1600*900&os_version=5.1.1&language=zh&device_brand=HUAWEI&aid=1128&minor_status=0&mcc_mnc=46000" };
string url = string.Concat(objArray3);
object[] objArray4 = new object[0x13];
objArray4[0] = "https://aweme.snssdk.com/aweme/v2/commerce/favorite/feed?feature_version=new_operate_resource&tab_id=";
objArray4[1] = cateIndex;
objArray4[2] = "&render_purchase=0&entrances&cursor=";
objArray4[3] = num2;
objArray4[4] = "&request_tag_from=lynx&with_tabs=false&filters&page_num=";
objArray4[5] = num + 1;
objArray4[6] = "&feedbacks&page_name=order_homepage&only_entrance=false&os_api=22&device_type=TAS-AN00&ssmix=a&manifest_version_code=160002&dpi=240&uuid=8651";
objArray4[7] = DateTime.Now.ToString("ff");
objArray4[8] = "02983";
objArray4[9] = DateTime.Now.ToString("ss");
objArray4[10] = "40&app_name=aweme&version_name=16.0.1&ts=";
objArray4[11] = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000L) / 10000000L).ToString(); // Base.ConvertDateTimeToInt();
objArray4[12] = "&cpu_support64=false&app_type=normal&appTheme=dark&ac=wifi&host_abi=armeabi-v7a&update_version_code=16019900&channel=aweGW&_rticket=1623515082669&device_platform=android&iid=1935603863652935&version_code=160001&cdid=61a31b75-b28a-448f-b6";
objArray4[13] = DateTime.Now.ToString("ss");
objArray4[14] = "-2803bf62456b&openudid=22";
objArray4[15] = DateTime.Now.ToString("ss");
objArray4[16] = "f1eb6ba5f1c1&device_id=682";
objArray4[17] = DateTime.Now.ToString("ff");
objArray4[18] = "623104&resolution=1600*900&os_version=5.1.1&language=zh&device_brand=HUAWEI&aid=1128&minor_status=0&mcc_mnc=46000";
url = string.Concat(objArray4);
if (string.IsNullOrWhiteSpace(dyCookies))
{
dyCookies = "sid_guard=f7fbff5199b1bfe9de6eacb334368979|||";
}
str2 = GetHtml.GetUtf8(url, AllBase.BaseClass.ChromeUserAgent, dyCookies);
int num3 = 0;
if (str2.IndexOf("用户未登录") != -1)
{
DateTime now = DateTime.Now;
str = $"[{now.ToString("MM-dd HH:mm:ss")}] 请重新登入抖音.";
object[] objArray7 = new object[] { str };
//base.BeginInvoke(new showMessageDelegate(this.showMsg), objArray7);
//this.int_6 = 0x1_869f;
break;
}
while (true)
{
if (!(((str2.IndexOf("服务器打瞌睡了") != -1) || ((str2.IndexOf("你搜得太多啦") != -1) || (str2.Trim() == ""))) ? (num3 < 20) : false))
{
char[] separator = new char[] { 'ㄨ' };
string[] strArray = str2.Replace("\"product\":", "ㄨ\"product\":").Split(separator);
if (str2.Contains("\"item_cards\":"))
{
var jobj = Newtonsoft.Json.Linq.JObject.Parse(str2);
var sObj = jobj["item_cards"];
var sList = new List<string>();
foreach (var s in sObj)
{
sList.Add(JsonHelper.SerializeObject(s));
}
strArray = sList.ToArray();
}
int index = 0;
while (true)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
if (index >= strArray.Length)
{
Thread.Sleep(1000);
num++;
break;
}
try
{
string goodStr = strArray[index];
DouGoodsCollectInfo item = new DouGoodsCollectInfo();
item.Id = AllBase.BaseRegex.GetStringJson(ref goodStr, "product_id");
if (!string.IsNullOrEmpty(item.Id) && !lstGoods.Any(g => g.Id == item.Id))
{
item.GoodsName = AllBase.BaseRegex.GetStringJson(ref goodStr, "title")?.Trim();
if (!string.IsNullOrEmpty(item.GoodsName))
{
if (lstBanKeyText.Count == 0 || !lstBanKeyText.Any(t => item.GoodsName.Contains(t)))
{
// 销量数据
item.Sales = AllBase.BaseRegex.GetStringJson(ref goodStr, "sales");
if (string.IsNullOrEmpty(item.Sales))
item.Sales = "0";
// 销量符合筛选条件
if (Convert.ToInt32(item.Sales) >= Convert.ToInt32(this.minSaleCount) && Convert.ToInt32(item.Sales) <= Convert.ToInt32(this.maxSaleCount))
{
string price = BaseRegex.GetStringJson(ref goodStr, "min_price");
if (string.IsNullOrEmpty(price))
price = "0";
item.Price = ((Convert.ToDouble(price) * 1.0) / 100.0).ToString("f2");
if (Convert.ToDouble(item.Price) >= Convert.ToDouble(this.minPrice) && Convert.ToDouble(item.Price) <= Convert.ToDouble(this.maxPrice))
{
var img = BaseRegex.GetStringJson(ref goodStr, "url_list");
if (item.img == null)
img = BaseRegex.GetMatchRegexString(ref goodStr, "\"cover\":[^\\[\\]]+?\"url_list\":\\[([^\\[\\]]+?)\\]");
if (!string.IsNullOrEmpty(img))
{
item.img = img.Split(',')[0].Trim('"');
}
// 获取商品评价
item.CommentsCount = this.GetRate(item.Id, ref item.ShopProductCount, ref item.CommentsRate);
if (item.CommentsRate >= this.hplMin && item.CommentsRate <= hplMax)
{
//Application.DoEvents();
Thread.Sleep(1000);
string content = HaoWuCollectBLL.getHtml(
"https://ec.snssdk.com/product/fxgajaxstaticitem?b_type_new=0&device_id=0&is_outside=1&id=" + item.Id + "&preview=0",
"", "utf8");
item.ShopId = BaseRegex.GetStringJson(ref content, "shop_id");
item.ShopName = BaseRegex.GetStringJson(ref content, "shop_name");
lstGoods.Add(item);
this.ShowData(lstGoods.Count, item);
if (this.isXqtj)
{
//this.method_3(spid);
}
if (((index % 2) == 0) && (index > 0))
Thread.Sleep(1000);
}
}
}
}
}
}
}
catch (Exception ex)
{
}
index++;
}
break;
}
str = $"[{DateTime.Now.ToString("MM-dd HH:mm:ss")}] 服务器打瞌睡了,重试...";
object[] objArray5 = new object[] { str };
//base.BeginInvoke(new showMessageDelegate(this.showMsg), objArray5);
//Application.DoEvents();
Thread.Sleep(3000);
num3++;
}
}
}
catch
{
}
str = $"[{DateTime.Now.ToString("MM-dd HH:mm:ss")}] 采集结束,成功采集{lstGoods.Count}个.";
object[] args = new object[] { str };
//base.BeginInvoke(new showMessageDelegate(this.showMsg), args);
}
private int GetRate(string productId, ref int productCount, ref double rate)
{
int num = 0;
string url = "https://ec.snssdk.com/product/ajaxitem?b_type_new=0&device_id=0&is_outside=1&id=" + productId + "&abParams=0";
string content = HaoWuCollectBLL.getHtml_fxg_20201220(url, "", "");
int num2 = 0;
string ip = "";
while ((num2 < 10) && (content.Trim().Length < 10))
{
//Application.DoEvents(); // 刷新界面
Thread.Sleep(500);
num2++;
content = HaoWuCollectBLL.getHtml_fxg_20201220(url, "", ip);
}
num = BaseRegex.GetIntJson(ref content, "count");
productCount = BaseRegex.GetIntJson(ref content, "shop_product_count");
rate = (double)BaseRegex.GetDecimalJson(ref content, "value");
return num;
}
private void ShowData(int totalCount, DouGoodsCollectInfo goodsInfo)
{
try
{
StreamWriter writer = new StreamWriter(this.exportFileName, true, Encoding.GetEncoding("gb2312"));
object[] objArray1 = new object[15];
objArray1[0] = goodsInfo.GoodsName;
objArray1[1] = ",";
objArray1[2] = goodsInfo.Price;
objArray1[3] = ",";
objArray1[4] = goodsInfo.Sales;
objArray1[5] = ",";
objArray1[6] = goodsInfo.CommentsRate;
objArray1[7] = ",";
objArray1[8] = "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsInfo.Id;
objArray1[9] = ",";
objArray1[10] = goodsInfo.ShopId;
objArray1[11] = ",";
objArray1[12] = goodsInfo.ShopName;
objArray1[13] = ",";
objArray1[14] = goodsInfo.ShopProductCount;
writer.WriteLine(string.Concat(objArray1));
writer.Close();
}
catch
{
}
Invoke(new Action(() =>
{
var index = this.dgvCollect.Rows.Add(false, goodsInfo.Id, goodsInfo.GoodsName, null, goodsInfo.Price, goodsInfo.Sales, goodsInfo.CommentsRate,
goodsInfo.ShopId, goodsInfo.ShopName, goodsInfo.ShopProductCount, "删除");
if (this.isShowImg)
{
this.dgvCollect.Columns["colImage"].Visible = true;
var row = dgvCollect.Rows[index];
row.Cells["colImage"].Value = this.GetImage2(goodsInfo.img, 60);
row.Height = 70;
}
else
this.dgvCollect.Columns["colImage"].Visible = false;
}));
}
public Image GetImage2(string path, int size = 130)
{
try
{
return new Bitmap(Image.FromStream(WebRequest.Create(path).GetResponse().GetResponseStream()), size, size);
}
catch
{
return null;
}
}
private void btnLoginDouyin_Click(object sender, EventArgs e)
{
DouUserLoginForm dForm = new DouUserLoginForm();
dForm.ShowDialog();
}
private void btnCollect_Click(object sender, EventArgs e)
{
if (btnCollect.Text == "开始采集")
{
var cookie = GlobalConfig.DouUserCookies;
var cate = this.cmbCategory.Text;
var cid = this.cmbCategory.SelectedIndex.ToString();
var collectPage = this.txtCollectPage.Text.Trim().ParseToInt();
minSaleCount = this.txtSaleCountMin.Text.ParseToInt().ToString();
maxSaleCount = this.txtSaleCountMax.Text.ParseToInt().ToString();
minPrice = this.txtPriceMin.Text.ParseToDecimal().ToString();
maxPrice = this.txtPriceMax.Text.ParseToDecimal().ToString();
hplMin = this.txtRateMin.Text.ParseToDouble();
hplMax = this.txtRateMax.Text.ParseToDouble();
isShowImg = this.chkShowImage.Checked;
this.dgvCollect.Rows.Clear();
this.lstProduct.Clear();
cancellationTokenSource = new CancellationTokenSource();
btnCollect.Text = "停止采集";
int n = 0;
int total = collectPage;
this.statusBar.lblTaskStatus.Text = "开始采集...";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
Task.Run(() =>
{
Collect(cookie, collectPage, cate, cid, ref lstProduct, ref n);
Invoke(new Action(() =>
{
btnCollect.Text = "开始采集";
this.statusBar.lblTaskStatus.Text = "采集结束,共采集到商品" + this.lstProduct.Count + "个";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
}, cancellationTokenSource.Token);
}
else
{
cancellationTokenSource.Cancel();
}
}
private void btnExport_Click(object sender, EventArgs e)
{
try
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "表格文件(*.csv)|*.csv";
saveFileDialog1.FileName = "好物采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("商品名称," + "价格," + "销量," + "好评率," + "商品ID," + "店铺ID," + "店铺名称," + "店铺商品总数");
foreach (var goodsInfo in lstProduct)
{
sb.AppendLine(goodsInfo.GoodsName + "," + goodsInfo.Price + "," + goodsInfo.Sales + "," + goodsInfo.CommentsRate + ","
+ "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsInfo.Id + "," + goodsInfo.ShopId + ","
+ goodsInfo.ShopName + "," + goodsInfo.ShopProductCount);
}
File.WriteAllText(saveFileDialog1.FileName, sb.ToString(), Encoding.Default);
BaseForms.BaseMsgForm.ShowInfo("导出成功");
}
}
catch (Exception ex)
{
BaseForms.BaseMsgForm.ShowError(ex.Message);
}
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0)
return;
var goodsId = dgvCollect.Rows[e.RowIndex].Cells["colProductId"].Value.ToString();
var columnName = dgvCollect.Columns[e.ColumnIndex].Name;
if (columnName == "colProductName")
{
string url = "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsId;
GetHtml.OpenUrl(url);
}
}
}
}
@@ -1,150 +0,0 @@
<?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="colProductId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrice.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="colRate.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>
<metadata name="colShopCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
@@ -1,734 +0,0 @@
namespace TemuKJD.KJDForms.CollectForms
{
partial class KeywordCollectForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.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();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btnExport = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtKeyWords = new DevComponents.DotNetBar.Controls.TextBoxX();
this.btnLoginDouyin = new TemuKJD.UserControls.ButtonEx();
this.btnCollect = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.cmbCategory = new System.Windows.Forms.ComboBox();
this.label9 = new System.Windows.Forms.Label();
this.txtCommentRateMax = new System.Windows.Forms.TextBox();
this.txtCommentRateMin = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.txtCommentCountMax = new System.Windows.Forms.TextBox();
this.txtCommentCountMin = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.txtScoreMax = new System.Windows.Forms.TextBox();
this.txtScoreMin = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.txtYongJinMax = new System.Windows.Forms.TextBox();
this.txtYongJinMin = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.txtTotalPage = new System.Windows.Forms.TextBox();
this.txtSellCountMax = new System.Windows.Forms.TextBox();
this.txtPriceMax = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.txtPriceMin = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.txtSellCountMin = new System.Windows.Forms.TextBox();
this.label16 = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.dgvCollect = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colKeyword = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductName = new System.Windows.Forms.DataGridViewLinkColumn();
this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaleCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colYongJin = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colYongJinLv = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCommentCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCommentRate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colScore = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNmae = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
this.ucGroupBoxEx2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvCollect)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.BackColor = System.Drawing.Color.White;
this.splitContainer1.Panel1.Controls.Add(this.btnExport);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
this.splitContainer1.Panel1.Controls.Add(this.btnLoginDouyin);
this.splitContainer1.Panel1.Controls.Add(this.btnCollect);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx2);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(852, 468);
this.splitContainer1.SplitterDistance = 121;
this.splitContainer1.TabIndex = 379;
//
// btnExport
//
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnExport.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnExport.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnExport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExport.ForeColor = System.Drawing.Color.White;
this.btnExport.Location = new System.Drawing.Point(772, 84);
this.btnExport.Margin = new System.Windows.Forms.Padding(2);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(66, 26);
this.btnExport.TabIndex = 394;
this.btnExport.Text = "导出数据";
this.btnExport.UseVisualStyleBackColor = false;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.txtKeyWords);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(277, 120);
this.ucGroupBoxEx1.TabIndex = 393;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "采集关键字";
//
// txtKeyWords
//
this.txtKeyWords.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
//
//
this.txtKeyWords.Border.Class = "TextBoxBorder";
this.txtKeyWords.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtKeyWords.Location = new System.Drawing.Point(10, 21);
this.txtKeyWords.Multiline = true;
this.txtKeyWords.Name = "txtKeyWords";
this.txtKeyWords.PreventEnterBeep = true;
this.txtKeyWords.Size = new System.Drawing.Size(257, 88);
this.txtKeyWords.TabIndex = 7;
this.txtKeyWords.WatermarkText = "请输入要搜索的关键词\r\n一行一个";
//
// btnLoginDouyin
//
this.btnLoginDouyin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnLoginDouyin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnLoginDouyin.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnLoginDouyin.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLoginDouyin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLoginDouyin.ForeColor = System.Drawing.Color.White;
this.btnLoginDouyin.Location = new System.Drawing.Point(772, 20);
this.btnLoginDouyin.Margin = new System.Windows.Forms.Padding(2);
this.btnLoginDouyin.Name = "btnLoginDouyin";
this.btnLoginDouyin.Size = new System.Drawing.Size(66, 26);
this.btnLoginDouyin.TabIndex = 373;
this.btnLoginDouyin.Text = "登录抖音";
this.btnLoginDouyin.UseVisualStyleBackColor = false;
this.btnLoginDouyin.Visible = false;
//
// btnCollect
//
this.btnCollect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCollect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCollect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCollect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCollect.ForeColor = System.Drawing.Color.White;
this.btnCollect.Location = new System.Drawing.Point(772, 52);
this.btnCollect.Margin = new System.Windows.Forms.Padding(2);
this.btnCollect.Name = "btnCollect";
this.btnCollect.Size = new System.Drawing.Size(66, 26);
this.btnCollect.TabIndex = 374;
this.btnCollect.Text = "开始采集";
this.btnCollect.UseVisualStyleBackColor = false;
this.btnCollect.Click += new System.EventHandler(this.btnCollect_Click);
//
// ucGroupBoxEx2
//
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.cmbCategory);
this.ucGroupBoxEx2.Controls.Add(this.label9);
this.ucGroupBoxEx2.Controls.Add(this.txtCommentRateMax);
this.ucGroupBoxEx2.Controls.Add(this.txtCommentRateMin);
this.ucGroupBoxEx2.Controls.Add(this.label7);
this.ucGroupBoxEx2.Controls.Add(this.label8);
this.ucGroupBoxEx2.Controls.Add(this.txtCommentCountMax);
this.ucGroupBoxEx2.Controls.Add(this.txtCommentCountMin);
this.ucGroupBoxEx2.Controls.Add(this.label5);
this.ucGroupBoxEx2.Controls.Add(this.label6);
this.ucGroupBoxEx2.Controls.Add(this.txtScoreMax);
this.ucGroupBoxEx2.Controls.Add(this.txtScoreMin);
this.ucGroupBoxEx2.Controls.Add(this.label3);
this.ucGroupBoxEx2.Controls.Add(this.label4);
this.ucGroupBoxEx2.Controls.Add(this.txtYongJinMax);
this.ucGroupBoxEx2.Controls.Add(this.txtYongJinMin);
this.ucGroupBoxEx2.Controls.Add(this.label1);
this.ucGroupBoxEx2.Controls.Add(this.label2);
this.ucGroupBoxEx2.Controls.Add(this.label10);
this.ucGroupBoxEx2.Controls.Add(this.txtTotalPage);
this.ucGroupBoxEx2.Controls.Add(this.txtSellCountMax);
this.ucGroupBoxEx2.Controls.Add(this.txtPriceMax);
this.ucGroupBoxEx2.Controls.Add(this.label13);
this.ucGroupBoxEx2.Controls.Add(this.txtPriceMin);
this.ucGroupBoxEx2.Controls.Add(this.label14);
this.ucGroupBoxEx2.Controls.Add(this.label15);
this.ucGroupBoxEx2.Controls.Add(this.txtSellCountMin);
this.ucGroupBoxEx2.Controls.Add(this.label16);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(281, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
this.ucGroupBoxEx2.Size = new System.Drawing.Size(409, 120);
this.ucGroupBoxEx2.TabIndex = 395;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "采集参数";
//
// cmbCategory
//
this.cmbCategory.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbCategory.Font = new System.Drawing.Font("微软雅黑", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbCategory.FormattingEnabled = true;
this.cmbCategory.Items.AddRange(new object[] {
"综合",
"佣金排序",
"销量排序",
"价格降序",
"价格升序"});
this.cmbCategory.Location = new System.Drawing.Point(73, 14);
this.cmbCategory.Name = "cmbCategory";
this.cmbCategory.Size = new System.Drawing.Size(123, 24);
this.cmbCategory.TabIndex = 406;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(16, 18);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(56, 17);
this.label9.TabIndex = 407;
this.label9.Text = "排  序";
//
// txtCommentRateMax
//
this.txtCommentRateMax.Location = new System.Drawing.Point(337, 90);
this.txtCommentRateMax.Name = "txtCommentRateMax";
this.txtCommentRateMax.Size = new System.Drawing.Size(55, 23);
this.txtCommentRateMax.TabIndex = 405;
this.txtCommentRateMax.Text = "100";
//
// txtCommentRateMin
//
this.txtCommentRateMin.Location = new System.Drawing.Point(269, 90);
this.txtCommentRateMin.Name = "txtCommentRateMin";
this.txtCommentRateMin.Size = new System.Drawing.Size(55, 23);
this.txtCommentRateMin.TabIndex = 402;
this.txtCommentRateMin.Text = "0";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(224, 93);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(44, 17);
this.label7.TabIndex = 403;
this.label7.Text = "好评率";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(325, 93);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(13, 17);
this.label8.TabIndex = 404;
this.label8.Text = "-";
//
// txtCommentCountMax
//
this.txtCommentCountMax.Location = new System.Drawing.Point(337, 65);
this.txtCommentCountMax.Name = "txtCommentCountMax";
this.txtCommentCountMax.Size = new System.Drawing.Size(55, 23);
this.txtCommentCountMax.TabIndex = 401;
this.txtCommentCountMax.Text = "99999999";
//
// txtCommentCountMin
//
this.txtCommentCountMin.Location = new System.Drawing.Point(269, 65);
this.txtCommentCountMin.Name = "txtCommentCountMin";
this.txtCommentCountMin.Size = new System.Drawing.Size(55, 23);
this.txtCommentCountMin.TabIndex = 398;
this.txtCommentCountMin.Text = "0";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(224, 68);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(44, 17);
this.label5.TabIndex = 399;
this.label5.Text = "评论数";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(325, 68);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(13, 17);
this.label6.TabIndex = 400;
this.label6.Text = "-";
//
// txtScoreMax
//
this.txtScoreMax.Location = new System.Drawing.Point(337, 40);
this.txtScoreMax.Name = "txtScoreMax";
this.txtScoreMax.Size = new System.Drawing.Size(55, 23);
this.txtScoreMax.TabIndex = 397;
this.txtScoreMax.Text = "5";
//
// txtScoreMin
//
this.txtScoreMin.Location = new System.Drawing.Point(269, 40);
this.txtScoreMin.Name = "txtScoreMin";
this.txtScoreMin.Size = new System.Drawing.Size(55, 23);
this.txtScoreMin.TabIndex = 394;
this.txtScoreMin.Text = "0";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(212, 43);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(56, 17);
this.label3.TabIndex = 395;
this.label3.Text = "体验分数";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(325, 43);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(13, 17);
this.label4.TabIndex = 396;
this.label4.Text = "-";
//
// txtYongJinMax
//
this.txtYongJinMax.Location = new System.Drawing.Point(337, 15);
this.txtYongJinMax.Name = "txtYongJinMax";
this.txtYongJinMax.Size = new System.Drawing.Size(55, 23);
this.txtYongJinMax.TabIndex = 393;
this.txtYongJinMax.Text = "99999999";
//
// txtYongJinMin
//
this.txtYongJinMin.Location = new System.Drawing.Point(269, 15);
this.txtYongJinMin.Name = "txtYongJinMin";
this.txtYongJinMin.Size = new System.Drawing.Size(55, 23);
this.txtYongJinMin.TabIndex = 390;
this.txtYongJinMin.Text = "0";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(212, 18);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 391;
this.label1.Text = "宝贝佣金";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(325, 18);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(13, 17);
this.label2.TabIndex = 392;
this.label2.Text = "-";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(16, 93);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 389;
this.label10.Text = "采集页数";
//
// txtTotalPage
//
this.txtTotalPage.Location = new System.Drawing.Point(73, 90);
this.txtTotalPage.Name = "txtTotalPage";
this.txtTotalPage.Size = new System.Drawing.Size(123, 23);
this.txtTotalPage.TabIndex = 388;
this.txtTotalPage.Text = "5";
//
// txtSellCountMax
//
this.txtSellCountMax.Location = new System.Drawing.Point(141, 65);
this.txtSellCountMax.Name = "txtSellCountMax";
this.txtSellCountMax.Size = new System.Drawing.Size(55, 23);
this.txtSellCountMax.TabIndex = 387;
this.txtSellCountMax.Text = "99999999";
//
// txtPriceMax
//
this.txtPriceMax.Location = new System.Drawing.Point(141, 40);
this.txtPriceMax.Name = "txtPriceMax";
this.txtPriceMax.Size = new System.Drawing.Size(55, 23);
this.txtPriceMax.TabIndex = 383;
this.txtPriceMax.Text = "99999999";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(129, 68);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(13, 17);
this.label13.TabIndex = 386;
this.label13.Text = "-";
//
// txtPriceMin
//
this.txtPriceMin.Location = new System.Drawing.Point(73, 40);
this.txtPriceMin.Name = "txtPriceMin";
this.txtPriceMin.Size = new System.Drawing.Size(55, 23);
this.txtPriceMin.TabIndex = 379;
this.txtPriceMin.Text = "0";
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(16, 68);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(56, 17);
this.label14.TabIndex = 385;
this.label14.Text = "宝贝销量";
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(16, 43);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(56, 17);
this.label15.TabIndex = 380;
this.label15.Text = "宝贝价格";
//
// txtSellCountMin
//
this.txtSellCountMin.Location = new System.Drawing.Point(73, 65);
this.txtSellCountMin.Name = "txtSellCountMin";
this.txtSellCountMin.Size = new System.Drawing.Size(55, 23);
this.txtSellCountMin.TabIndex = 384;
this.txtSellCountMin.Text = "0";
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(129, 43);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(13, 17);
this.label16.TabIndex = 382;
this.label16.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.dgvCollect);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(852, 343);
this.splitContainer2.SplitterDistance = 314;
this.splitContainer2.SplitterWidth = 1;
this.splitContainer2.TabIndex = 7;
//
// dgvCollect
//
this.dgvCollect.AllowUserToAddRows = false;
this.dgvCollect.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvCollect.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvCollect.BackgroundColor = System.Drawing.Color.White;
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.dgvCollect.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvCollect.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvCollect.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colKeyword,
this.colProductId,
this.colProductName,
this.colPrice,
this.colSaleCount,
this.colYongJin,
this.colYongJinLv,
this.colCommentCount,
this.colCommentRate,
this.colScore,
this.colShopNmae,
this.colDelete});
this.dgvCollect.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvCollect.Location = new System.Drawing.Point(5, 0);
this.dgvCollect.Name = "dgvCollect";
this.dgvCollect.ReadOnly = true;
dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgvCollect.RowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvCollect.RowTemplate.Height = 23;
this.dgvCollect.Size = new System.Drawing.Size(842, 314);
this.dgvCollect.TabIndex = 6;
this.dgvCollect.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvCollect_CellContentClick);
//
// colSelect
//
this.colSelect.FillWeight = 50F;
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;
this.colSelect.Visible = false;
this.colSelect.Width = 41;
//
// colKeyword
//
this.colKeyword.HeaderText = "关键词";
this.colKeyword.Name = "colKeyword";
this.colKeyword.ReadOnly = true;
//
// colProductId
//
this.colProductId.HeaderText = "商品Id";
this.colProductId.Name = "colProductId";
this.colProductId.ReadOnly = true;
this.colProductId.Width = 150;
//
// colProductName
//
this.colProductName.HeaderText = "商品名称";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
this.colProductName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colProductName.Width = 350;
//
// colPrice
//
this.colPrice.HeaderText = "价格";
this.colPrice.Name = "colPrice";
this.colPrice.ReadOnly = true;
this.colPrice.Width = 80;
//
// colSaleCount
//
this.colSaleCount.HeaderText = "销量";
this.colSaleCount.Name = "colSaleCount";
this.colSaleCount.ReadOnly = true;
//
// colYongJin
//
this.colYongJin.HeaderText = "佣金";
this.colYongJin.Name = "colYongJin";
this.colYongJin.ReadOnly = true;
//
// colYongJinLv
//
this.colYongJinLv.HeaderText = "佣金率";
this.colYongJinLv.Name = "colYongJinLv";
this.colYongJinLv.ReadOnly = true;
//
// colCommentCount
//
this.colCommentCount.HeaderText = "评论数";
this.colCommentCount.Name = "colCommentCount";
this.colCommentCount.ReadOnly = true;
//
// colCommentRate
//
this.colCommentRate.HeaderText = "好评率";
this.colCommentRate.Name = "colCommentRate";
this.colCommentRate.ReadOnly = true;
//
// colScore
//
this.colScore.HeaderText = "体验分数";
this.colScore.Name = "colScore";
this.colScore.ReadOnly = true;
//
// colShopNmae
//
this.colShopNmae.HeaderText = "店铺名称";
this.colShopNmae.Name = "colShopNmae";
this.colShopNmae.ReadOnly = true;
this.colShopNmae.Width = 150;
//
// colDelete
//
this.colDelete.HeaderText = "删除";
this.colDelete.Name = "colDelete";
this.colDelete.ReadOnly = true;
this.colDelete.Visible = false;
this.colDelete.Width = 81;
//
// 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(852, 28);
this.statusBar.TabIndex = 5;
//
// KeywordCollectForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(852, 468);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "KeywordCollectForm";
this.Text = "关键词采集";
this.Load += new System.EventHandler(this.KeywordCollectForm_Load);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx2.ResumeLayout(false);
this.ucGroupBoxEx2.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.dgvCollect)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private UserControls.ButtonEx btnExport;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private DevComponents.DotNetBar.Controls.TextBoxX txtKeyWords;
private UserControls.ButtonEx btnLoginDouyin;
private UserControls.ButtonEx btnCollect;
private UserComponent.UcGroupBoxEx ucGroupBoxEx2;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox txtTotalPage;
private System.Windows.Forms.TextBox txtSellCountMax;
private System.Windows.Forms.TextBox txtPriceMax;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtPriceMin;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.TextBox txtSellCountMin;
private System.Windows.Forms.Label label16;
private UserComponent.DataGridViewEx dgvCollect;
private System.Windows.Forms.TextBox txtCommentRateMax;
private System.Windows.Forms.TextBox txtCommentRateMin;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox txtCommentCountMax;
private System.Windows.Forms.TextBox txtCommentCountMin;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtScoreMax;
private System.Windows.Forms.TextBox txtScoreMin;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtYongJinMax;
private System.Windows.Forms.TextBox txtYongJinMin;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ComboBox cmbCategory;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colKeyword;
private System.Windows.Forms.DataGridViewTextBoxColumn colProductId;
private System.Windows.Forms.DataGridViewLinkColumn colProductName;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colYongJin;
private System.Windows.Forms.DataGridViewTextBoxColumn colYongJinLv;
private System.Windows.Forms.DataGridViewTextBoxColumn colCommentCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colCommentRate;
private System.Windows.Forms.DataGridViewTextBoxColumn colScore;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNmae;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserControls.StatusBarUserControl statusBar;
}
}
@@ -1,328 +0,0 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using TemuKJD.KJDForms.ToolForms;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.KJDForms.BaseForms;
namespace TemuKJD.KJDForms.CollectForms
{
public partial class KeywordCollectForm : BaseForm
{
List<DouGoodsCollectInfo> lstProduct = new List<DouGoodsCollectInfo>();
CancellationTokenSource cancellationTokenSource = null;
decimal priceMin = 0;
decimal priceMax = 99999999;
long salesMin = 0;
long salesMax = 99999999;
decimal yongjinMin = 0;
decimal yongjinMax = 99999999;
decimal scoreMin = 0;
decimal scoreMax = 5;
long commentCountMin = 0;
long commentCountMax = 99999999;
decimal commentRateMin = 0;
decimal commentRateMax = 100;
public KeywordCollectForm()
{
InitializeComponent();
}
private string Collect(string cookies, string collectKeyword, string pageNum = "1", string sortText = "", string sortId = "0")
{
HttpWebResponse response = null;
string result;
try
{
string url = "https://lianmengapi.snssdk.com/selection_api/search/pmt?app_name=aweme&channel=App%20Store" +
"&slide_guide_has_shown=1&minor_status=0&cursor=" + (pageNum.ParseToInt() * 20 - 20) + "&count=20" +
"&search_text=" + AllBase.HttpUtility.UrlEncode(collectKeyword, Encoding.UTF8) + "&request_tag_from=m" +
"&aid=1128&order_by=" + sortText + "&sort=" + sortId;
url = "https://buyin.jinritemai.com/pc/selection/search/pmt?page=" + pageNum
+ "&page_size=20&search_text=" + HttpUtility.UrlEncode(collectKeyword, Encoding.UTF8)
+ "&order_by=" + sortText + "&sort=" + sortId;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
//request.Headers.Set(HttpRequestHeader.Cookie, @"sid_tt=e21290832ad2b7efaeceb9cdc6c20935");
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
private void btnCollect_Click(object sender, EventArgs e)
{
if (this.btnCollect.Text == "停止采集")
{
cancellationTokenSource.Cancel();
return;
}
var cookieShop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.LoginStatus == "登录成功");
if (cookieShop == null)
{
BaseForms.BaseMsgForm.ShowError("请登录店铺账号后搜索");
return;
}
priceMin = this.txtPriceMin.Text.ParseToDecimal();
priceMax = this.txtPriceMax.Text.ParseToDecimal();
salesMin = this.txtSellCountMin.Text.ParseToLong();
salesMax = this.txtSellCountMax.Text.ParseToLong();
yongjinMin = this.txtYongJinMin.Text.ParseToDecimal();
yongjinMax = this.txtYongJinMax.Text.ParseToDecimal();
scoreMin = this.txtScoreMin.Text.ParseToDecimal();
scoreMax = this.txtScoreMax.Text.ParseToDecimal();
commentCountMin = this.txtCommentCountMin.Text.ParseToLong();
commentCountMax = this.txtCommentCountMax.Text.ParseToLong();
commentRateMin = this.txtCommentRateMin.Text.ParseToDecimal();
commentRateMax = this.txtCommentRateMax.Text.ParseToDecimal();
var totalPage = this.txtTotalPage.Text.ParseToInt();
var keywords = this.txtKeyWords.Text.Split(new string[] { "\r", "\n", " ", "," }, StringSplitOptions.RemoveEmptyEntries);
string sortText = "";
string sort = "0";
if (this.cmbCategory.SelectedItem.ToString() == "佣金排序")
{
sortText = "cos_ratio";
sort = "2";
}
else if (this.cmbCategory.SelectedItem.ToString() == "销量排序")
{
sortText = "sales";
sort = "2";
}
else if (this.cmbCategory.SelectedItem.ToString() == "价格降序")
{
sortText = "price";
sort = "2";
}
else if (this.cmbCategory.SelectedItem.ToString() == "价格升序")
{
sortText = "price";
sort = "1";
}
lstProduct.Clear();
this.dgvCollect.Rows.Clear();
cancellationTokenSource = new CancellationTokenSource();
btnCollect.Text = "停止采集";
int n = 0;
int total = totalPage * keywords.Count();
this.statusBar.lblTaskStatus.Text = "开始采集...";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
Task.Run(() =>
{
var exportFileName = "采集导出\\爆款关键词采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv"; try
{
if (!Directory.Exists("采集导出"))
Directory.CreateDirectory("采集导出");
StringBuilder sb = new StringBuilder();
sb.AppendLine("关键词,商品ID,商品标题,价格,销量,佣金,佣金率,评论数,好评率,体验分数,店铺名称");
File.AppendAllText(exportFileName, sb.ToString(), Encoding.Default);
}
catch (Exception ex)
{
};
foreach (var keyword in keywords)
{
for (int i = 0; i < totalPage; i++)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
n++;
int page = i + 1;
Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在采集关键词:\"" + keyword + "\",当前采集到第 " + page + " 页";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
var listCollectResult = Collect(GlobalConfig.DouBuyinCookies, keyword, page.ToString(), sortText, sort);
if (listCollectResult.Contains("用户未登录") || listCollectResult.Contains("当前网络不稳定") || listCollectResult.Contains("操作异常"))
{
Invoke(new Action(() =>
{
DouUserLoginForm douLoginForm = new DouUserLoginForm("https://buyin.jinritemai.com/mpa/account/login?log_out=1&type=24");
//DouUserLoginForm douLoginForm = new DouUserLoginForm("https://buyin.jinritemai.com/dashboard/servicehall/daren-square");
douLoginForm.ShowDialog();
}));
cancellationTokenSource.Cancel();
break;
}
Thread.Sleep(Randomx.GetId(1000, 3000));
if (listCollectResult.Contains("\"code\":0"))
{
// todo
JObject jObj = JObject.Parse(listCollectResult);
if (jObj["data"] != null && jObj["data"]["promotions"] != null)
{
foreach (JObject obj in jObj["data"]["promotions"])
{
DouGoodsCollectInfo goodsInfo = new DouGoodsCollectInfo();
string goodStr = JsonHelper.SerializeObject(obj);
goodsInfo.Keyword = keyword;
goodsInfo.GoodsName = BaseRegex.GetStringJson(ref goodStr, "title");
goodsInfo.Id = BaseRegex.GetStringJson(ref goodStr, "product_id");
goodsInfo.Price = (BaseRegex.GetDecimalJson(ref goodStr, "price") / 100).ToString();
goodsInfo.yj = (BaseRegex.GetDecimalJson(ref goodStr, "cos_fee") / 100).ToString();
goodsInfo.yjl = (BaseRegex.GetDecimalJson(ref goodStr, "cos_ratio") / 100).ToString();
goodsInfo.Sales = BaseRegex.GetStringJson(ref goodStr, "month_sales"); // 月销量
goodsInfo.ShopId = BaseRegex.GetStringJson(ref goodStr, "shop_id");
goodsInfo.ShopName = BaseRegex.GetStringJson(ref goodStr, "shop_name");
goodsInfo.Score = BaseRegex.GetDecimalJson(ref goodStr, "exp_score").ParseToDouble();
if (goodsInfo.Price.ParseToDecimal() < priceMin || goodsInfo.Price.ParseToDecimal() > priceMax)
continue;
if (goodsInfo.yj.ParseToDecimal() < yongjinMin || goodsInfo.yj.ParseToDecimal() > yongjinMax)
continue;
if (goodsInfo.Sales.ParseToDecimal() < salesMin || goodsInfo.Sales.ParseToDecimal() > salesMax)
continue;
if (goodsInfo.Score.ParseToDecimal() < scoreMin || goodsInfo.Score.ParseToDecimal() > scoreMax)
continue;
var commentResult = CaiNiXiHuanCollectForm.GetComments(GlobalConfig.DouBuyinCookies, goodsInfo.Id);
Thread.Sleep(Randomx.GetId(400, 600));
if (!string.IsNullOrEmpty(commentResult) && commentResult.Contains("\"status_code\":0"))
{
goodsInfo.CommentsCount = BaseRegex.GetIntJson(ref commentResult, "total_comments_num");
goodsInfo.CommentsRate = BaseRegex.GetDecimalJson(ref commentResult, "good_comment_ratio").ParseToDouble() / 100;
}
// 筛选条件
if (goodsInfo.CommentsRate < this.commentRateMin.ParseToDouble() || goodsInfo.CommentsRate > this.commentRateMax.ParseToDouble()
|| goodsInfo.CommentsCount < this.commentCountMin || goodsInfo.CommentsCount > this.commentCountMax)
continue;
Invoke(new Action(() =>
{
this.dgvCollect.Rows.Add(false, keyword, goodsInfo.Id, goodsInfo.GoodsName, goodsInfo.Price, goodsInfo.Sales, goodsInfo.yj, goodsInfo.yjl,
goodsInfo.CommentsCount, goodsInfo.CommentsRate, goodsInfo.Score, goodsInfo.ShopName);
}));
try
{
lstProduct.Add(goodsInfo);
StringBuilder sb = new StringBuilder();
sb.AppendLine(goodsInfo.Keyword + ",https://haohuo.jinritemai.com/views/product/item2?id=" + goodsInfo.Id + "," + goodsInfo.GoodsName + ","
+ goodsInfo.Price + "," + goodsInfo.Sales + "," + goodsInfo.yj + "," + goodsInfo.yjl + "," + goodsInfo.CommentsCount + ","
+ goodsInfo.CommentsRate + "," + goodsInfo.Score + "," + goodsInfo.ShopName);
System.IO.File.WriteAllText(exportFileName, sb.ToString(), Encoding.Default);
}
catch (Exception ex) { }
}
}
}
}
}
Invoke(new Action(() =>
{
btnCollect.Text = "开始采集";
this.statusBar.lblTaskStatus.Text = "采集结束,共采集到商品" + this.lstProduct.Count + "个";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
}, cancellationTokenSource.Token);
}
private void btnExport_Click(object sender, EventArgs e)
{
try
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "表格文件(*.csv)|*.csv";
saveFileDialog1.FileName = "爆款关键词采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("关键词,商品ID,商品标题,价格,销量,佣金,佣金率,评论数,好评率,体验分数,店铺名称");
foreach (var goodsInfo in lstProduct)
{
sb.AppendLine(goodsInfo.Keyword + ",https://haohuo.jinritemai.com/views/product/item2?id=" + goodsInfo.Id + "," + goodsInfo.GoodsName + ","
+ goodsInfo.Price + "," + goodsInfo.Sales + "," + goodsInfo.yj + "," + goodsInfo.yjl + "," + goodsInfo.CommentsCount + ","
+ goodsInfo.CommentsRate + "," + goodsInfo.Score + "," + goodsInfo.ShopName);
}
System.IO.File.WriteAllText(saveFileDialog1.FileName, sb.ToString(), Encoding.Default);
BaseForms.BaseMsgForm.ShowInfo("导出成功");
}
}
catch (Exception ex)
{
BaseForms.BaseMsgForm.ShowError(ex.Message);
}
}
private void KeywordCollectForm_Load(object sender, EventArgs e)
{
this.cmbCategory.SelectedIndex = 0;
}
private void dgvCollect_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0)
return;
var goodsId = dgvCollect.Rows[e.RowIndex].Cells["colProductId"].Value.ToString();
var columnName = dgvCollect.Columns[e.ColumnIndex].Name;
if (columnName == "colProductName")
{
string url = "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsId;
GetHtml.OpenUrl(url);
}
}
}
}
@@ -1,159 +0,0 @@
<?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="colKeyword.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrice.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="colYongJin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colYongJinLv.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCommentCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCommentRate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colScore.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopNmae.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
@@ -1,506 +0,0 @@
namespace TemuKJD.KJDForms.CollectForms
{
partial class ShopProductCollectForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.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();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.btnExport = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtKeyWords = new DevComponents.DotNetBar.Controls.TextBoxX();
this.btnLoginDouyin = new TemuKJD.UserControls.ButtonEx();
this.btnCollect = new TemuKJD.UserControls.ButtonEx();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtFilter = new DevComponents.DotNetBar.Controls.TextBoxX();
this.label10 = new System.Windows.Forms.Label();
this.txtTotalPage = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.txtSellCountMax = new System.Windows.Forms.TextBox();
this.txtPriceMax = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.txtPriceMin = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.label15 = new System.Windows.Forms.Label();
this.txtSellCountMin = new System.Windows.Forms.TextBox();
this.label16 = new System.Windows.Forms.Label();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.dgvCollect = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductName = new System.Windows.Forms.DataGridViewLinkColumn();
this.colImage = new System.Windows.Forms.DataGridViewImageColumn();
this.colShopNmae = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSaleCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDelete = new System.Windows.Forms.DataGridViewLinkColumn();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
this.ucGroupBoxEx2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvCollect)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.btnExport);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
this.splitContainer1.Panel1.Controls.Add(this.btnLoginDouyin);
this.splitContainer1.Panel1.Controls.Add(this.btnCollect);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx2);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(800, 450);
this.splitContainer1.SplitterDistance = 121;
this.splitContainer1.TabIndex = 378;
//
// btnExport
//
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnExport.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnExport.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnExport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExport.ForeColor = System.Drawing.Color.White;
this.btnExport.Location = new System.Drawing.Point(720, 84);
this.btnExport.Margin = new System.Windows.Forms.Padding(2);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(66, 26);
this.btnExport.TabIndex = 394;
this.btnExport.Text = "导出数据";
this.btnExport.UseVisualStyleBackColor = false;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.txtKeyWords);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(277, 120);
this.ucGroupBoxEx1.TabIndex = 393;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "采集店铺";
//
// txtKeyWords
//
this.txtKeyWords.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
//
//
this.txtKeyWords.Border.Class = "TextBoxBorder";
this.txtKeyWords.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtKeyWords.Location = new System.Drawing.Point(10, 21);
this.txtKeyWords.Multiline = true;
this.txtKeyWords.Name = "txtKeyWords";
this.txtKeyWords.PreventEnterBeep = true;
this.txtKeyWords.Size = new System.Drawing.Size(257, 88);
this.txtKeyWords.TabIndex = 7;
this.txtKeyWords.WatermarkText = "请输入要搜索的店铺id或链接\r\n一行一个";
//
// btnLoginDouyin
//
this.btnLoginDouyin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnLoginDouyin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnLoginDouyin.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnLoginDouyin.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLoginDouyin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLoginDouyin.ForeColor = System.Drawing.Color.White;
this.btnLoginDouyin.Location = new System.Drawing.Point(720, 20);
this.btnLoginDouyin.Margin = new System.Windows.Forms.Padding(2);
this.btnLoginDouyin.Name = "btnLoginDouyin";
this.btnLoginDouyin.Size = new System.Drawing.Size(66, 26);
this.btnLoginDouyin.TabIndex = 373;
this.btnLoginDouyin.Text = "登录抖音";
this.btnLoginDouyin.UseVisualStyleBackColor = false;
this.btnLoginDouyin.Click += new System.EventHandler(this.btnLoginDouyin_Click);
//
// btnCollect
//
this.btnCollect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCollect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnCollect.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCollect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCollect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCollect.ForeColor = System.Drawing.Color.White;
this.btnCollect.Location = new System.Drawing.Point(720, 52);
this.btnCollect.Margin = new System.Windows.Forms.Padding(2);
this.btnCollect.Name = "btnCollect";
this.btnCollect.Size = new System.Drawing.Size(66, 26);
this.btnCollect.TabIndex = 374;
this.btnCollect.Text = "开始采集";
this.btnCollect.UseVisualStyleBackColor = false;
this.btnCollect.Click += new System.EventHandler(this.btnCollect_Click);
//
// ucGroupBoxEx2
//
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.txtFilter);
this.ucGroupBoxEx2.Controls.Add(this.label10);
this.ucGroupBoxEx2.Controls.Add(this.txtTotalPage);
this.ucGroupBoxEx2.Controls.Add(this.label12);
this.ucGroupBoxEx2.Controls.Add(this.txtSellCountMax);
this.ucGroupBoxEx2.Controls.Add(this.txtPriceMax);
this.ucGroupBoxEx2.Controls.Add(this.label13);
this.ucGroupBoxEx2.Controls.Add(this.txtPriceMin);
this.ucGroupBoxEx2.Controls.Add(this.label14);
this.ucGroupBoxEx2.Controls.Add(this.label15);
this.ucGroupBoxEx2.Controls.Add(this.txtSellCountMin);
this.ucGroupBoxEx2.Controls.Add(this.label16);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(281, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
this.ucGroupBoxEx2.Size = new System.Drawing.Size(409, 120);
this.ucGroupBoxEx2.TabIndex = 395;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "采集参数";
//
// txtFilter
//
//
//
//
this.txtFilter.Border.Class = "TextBoxBorder";
this.txtFilter.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.txtFilter.Location = new System.Drawing.Point(16, 47);
this.txtFilter.Multiline = true;
this.txtFilter.Name = "txtFilter";
this.txtFilter.PreventEnterBeep = true;
this.txtFilter.Size = new System.Drawing.Size(176, 62);
this.txtFilter.TabIndex = 392;
this.txtFilter.WatermarkText = "请输入关键字,输入多个请用逗号隔开";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(210, 90);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 389;
this.label10.Text = "采集页数";
//
// txtTotalPage
//
this.txtTotalPage.Location = new System.Drawing.Point(267, 86);
this.txtTotalPage.Name = "txtTotalPage";
this.txtTotalPage.Size = new System.Drawing.Size(123, 23);
this.txtTotalPage.TabIndex = 388;
this.txtTotalPage.Text = "5";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(13, 26);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(104, 17);
this.label12.TabIndex = 378;
this.label12.Text = "包含以下关键字:";
//
// txtSellCountMax
//
this.txtSellCountMax.Location = new System.Drawing.Point(335, 54);
this.txtSellCountMax.Name = "txtSellCountMax";
this.txtSellCountMax.Size = new System.Drawing.Size(55, 23);
this.txtSellCountMax.TabIndex = 387;
this.txtSellCountMax.Text = "99999999";
//
// txtPriceMax
//
this.txtPriceMax.Location = new System.Drawing.Point(335, 22);
this.txtPriceMax.Name = "txtPriceMax";
this.txtPriceMax.Size = new System.Drawing.Size(55, 23);
this.txtPriceMax.TabIndex = 383;
this.txtPriceMax.Text = "99999999";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(323, 57);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(13, 17);
this.label13.TabIndex = 386;
this.label13.Text = "-";
//
// txtPriceMin
//
this.txtPriceMin.Location = new System.Drawing.Point(267, 22);
this.txtPriceMin.Name = "txtPriceMin";
this.txtPriceMin.Size = new System.Drawing.Size(55, 23);
this.txtPriceMin.TabIndex = 379;
this.txtPriceMin.Text = "0";
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(210, 58);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(56, 17);
this.label14.TabIndex = 385;
this.label14.Text = "宝贝销量";
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(210, 26);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(56, 17);
this.label15.TabIndex = 380;
this.label15.Text = "宝贝价格";
//
// txtSellCountMin
//
this.txtSellCountMin.Location = new System.Drawing.Point(267, 54);
this.txtSellCountMin.Name = "txtSellCountMin";
this.txtSellCountMin.Size = new System.Drawing.Size(55, 23);
this.txtSellCountMin.TabIndex = 384;
this.txtSellCountMin.Text = "0";
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(323, 25);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(13, 17);
this.label16.TabIndex = 382;
this.label16.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.dgvCollect);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(800, 325);
this.splitContainer2.SplitterDistance = 299;
this.splitContainer2.SplitterWidth = 1;
this.splitContainer2.TabIndex = 7;
//
// dgvCollect
//
this.dgvCollect.AllowUserToAddRows = false;
this.dgvCollect.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvCollect.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvCollect.BackgroundColor = System.Drawing.Color.White;
this.dgvCollect.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.dgvCollect.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvCollect.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvCollect.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colProductId,
this.colProductName,
this.colImage,
this.colShopNmae,
this.colSaleCount,
this.colPrice,
this.colDelete});
this.dgvCollect.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvCollect.Location = new System.Drawing.Point(5, 0);
this.dgvCollect.Name = "dgvCollect";
this.dgvCollect.ReadOnly = true;
dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgvCollect.RowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvCollect.RowTemplate.Height = 23;
this.dgvCollect.Size = new System.Drawing.Size(790, 299);
this.dgvCollect.TabIndex = 6;
this.dgvCollect.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvCollect_CellContentClick);
//
// colSelect
//
this.colSelect.FillWeight = 50F;
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;
this.colSelect.Visible = false;
this.colSelect.Width = 41;
//
// colProductId
//
this.colProductId.HeaderText = "商品Id";
this.colProductId.Name = "colProductId";
this.colProductId.ReadOnly = true;
this.colProductId.Width = 150;
//
// colProductName
//
this.colProductName.HeaderText = "商品名称";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
this.colProductName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colProductName.Width = 350;
//
// colImage
//
this.colImage.HeaderText = "图片";
this.colImage.Name = "colImage";
this.colImage.ReadOnly = true;
this.colImage.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colImage.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colImage.Visible = false;
this.colImage.Width = 70;
//
// colShopNmae
//
this.colShopNmae.HeaderText = "店铺名称";
this.colShopNmae.Name = "colShopNmae";
this.colShopNmae.ReadOnly = true;
this.colShopNmae.Width = 150;
//
// colSaleCount
//
this.colSaleCount.HeaderText = "销量";
this.colSaleCount.Name = "colSaleCount";
this.colSaleCount.ReadOnly = true;
//
// colPrice
//
this.colPrice.HeaderText = "价格";
this.colPrice.Name = "colPrice";
this.colPrice.ReadOnly = true;
this.colPrice.Width = 80;
//
// colDelete
//
this.colDelete.HeaderText = "删除";
this.colDelete.Name = "colDelete";
this.colDelete.ReadOnly = true;
this.colDelete.Visible = false;
this.colDelete.Width = 81;
//
// 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(800, 25);
this.statusBar.TabIndex = 6;
//
// ShopProductCollectForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "ShopProductCollectForm";
this.Text = "抖音整店采集";
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx2.ResumeLayout(false);
this.ucGroupBoxEx2.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.dgvCollect)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private UserControls.ButtonEx btnExport;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private DevComponents.DotNetBar.Controls.TextBoxX txtKeyWords;
private UserControls.ButtonEx btnLoginDouyin;
private UserControls.ButtonEx btnCollect;
private UserComponent.UcGroupBoxEx ucGroupBoxEx2;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox txtTotalPage;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox txtSellCountMax;
private System.Windows.Forms.TextBox txtPriceMax;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtPriceMin;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.TextBox txtSellCountMin;
private System.Windows.Forms.Label label16;
private UserComponent.DataGridViewEx dgvCollect;
private DevComponents.DotNetBar.Controls.TextBoxX txtFilter;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colProductId;
private System.Windows.Forms.DataGridViewLinkColumn colProductName;
private System.Windows.Forms.DataGridViewImageColumn colImage;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNmae;
private System.Windows.Forms.DataGridViewTextBoxColumn colSaleCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserControls.StatusBarUserControl statusBar;
}
}
@@ -1,359 +0,0 @@
using AllBase;
using AllBase.Model.Result;
using TemuKJD.KJDForms.ToolForms;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Work.BLL.Collect;
using TemuKJD.KJDForms.BaseForms;
namespace TemuKJD.KJDForms.CollectForms
{
public partial class ShopProductCollectForm : BaseForm
{
List<string> lstFilterKeyword = new List<string>();
List<DouGoodsCollectInfo> lstProduct = new List<DouGoodsCollectInfo>();
decimal priceMin = 0;
decimal priceMax = 99999999;
long salesMin = 0;
long salesMax = 99999999;
int totalPage = 5;
CancellationTokenSource cancellationTokenSource = null;
public ShopProductCollectForm()
{
InitializeComponent();
}
private void btnCollect_Click(object sender, EventArgs e)
{
if (btnCollect.Text != "开始采集")
{
cancellationTokenSource.Cancel();
return;
}
priceMin = this.txtPriceMin.Text.ParseToDecimal();
priceMax = this.txtPriceMax.Text.ParseToDecimal();
salesMin = this.txtSellCountMin.Text.ParseToLong();
salesMax = this.txtSellCountMax.Text.ParseToLong();
totalPage = this.txtTotalPage.Text.ParseToInt();
lstFilterKeyword = this.txtFilter.Text.Trim().Split(new string[] { "\r", "\n", " ", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
if (string.IsNullOrWhiteSpace(txtKeyWords.Text))
{
BaseForms.BaseMsgForm.ShowError("请输入要搜索的Id或链接");
return;
}
if (totalPage < 1)
{
BaseForms.BaseMsgForm.ShowError("请至少查询一页以上数据");
return;
}
var searchTextArr = this.txtKeyWords.Text.Split(new string[] { "\r", "\n", ",", " " }, StringSplitOptions.RemoveEmptyEntries);
lstProduct.Clear();
this.dgvCollect.Rows.Clear();
cancellationTokenSource = new CancellationTokenSource();
btnCollect.Text = "停止采集";
int n = 0;
int total = searchTextArr.Count() * totalPage;
this.statusBar.lblTaskStatus.Text = "开始采集...";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
Task.Run(() =>
{
if (cancellationTokenSource.IsCancellationRequested)
return;
var exportFileName = "采集导出\\抖音整店采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
try
{
if (!Directory.Exists("采集导出"))
Directory.CreateDirectory("采集导出");
StringBuilder sb = new StringBuilder();
sb.AppendLine("商品Id,商品名称,店铺名称,商品销量,商品价格");
File.AppendAllText(exportFileName, sb.ToString(), Encoding.Default);
}
catch (Exception ex) { }
foreach (var searchText in searchTextArr)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
DouGoodsCollectInfo goodShop = new DouGoodsCollectInfo();
var text = searchText;
var goodId = BaseRegex.GetMatchRegexString(ref text, "(\\d{15,25})");
if (goodId != null && goodId.ParseToLong() > 0)
goodShop.Id = goodId;
else
{
var shopId = searchText;
if (searchText.Contains("shop/index?id="))
{
shopId = searchText.Substring(shopId.IndexOf("shop/index?id=") + "shop/index?id=".Length);
}
goodShop.ShopId = shopId;
}
if (goodShop.Id != null && goodShop.Id.ParseToLong() > 0)
{
string douShopResult = CollectDouShopDetailByProduct(goodShop.Id);
goodShop.ShopId = BaseRegex.GetStringJson(ref douShopResult, "shop_id");
goodShop.ShopName = BaseRegex.GetStringJson(ref douShopResult, "shop_name");
}
else
{
string douShopResult = CollectDouShopDetail(goodShop.ShopId);
goodShop.ShopName = BaseRegex.GetStringJson(ref douShopResult, "shop_name");
}
if (!string.IsNullOrEmpty(goodShop.ShopName) && !string.IsNullOrEmpty(goodShop.ShopId))
{
for (int i = 0; i < this.totalPage; i++)
{
if (i >= 19)
{
}
try
{
if (cancellationTokenSource.IsCancellationRequested)
break;
n++;
Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在采集店铺:" + goodShop.ShopId + ",当前采集到第 " + (i + 1) + " 页";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
var goodsListResult = CollectShopGoodsList(goodShop.ShopId, i.ToString());
if (!string.IsNullOrEmpty(goodsListResult) && goodsListResult.Contains("用户未登录"))
{
BaseForms.BaseMsgForm.ShowError("请先未登录!");
break;
}
if (!string.IsNullOrEmpty(goodsListResult) && goodsListResult.Contains("\"st\":0"))
{
if (goodsListResult.Contains("\"list\":[]"))
break;
JObject jObj = JObject.Parse(goodsListResult);
if (jObj["data"]?["list"] != null)
{
foreach (JObject pObj in jObj["data"]?["list"])
{
string pStr = JsonHelper.SerializeObject(pObj);
DouGoodsCollectInfo good = new DouGoodsCollectInfo();
good.GoodsName = BaseRegex.GetStringJson(ref pStr, "goods_name");
good.Id = BaseRegex.GetStringJson(ref pStr, "product_id");
good.ShopName = goodShop.ShopName;
good.Sales = BaseRegex.GetStringJson(ref pStr, "sell_num");
good.Price = BaseRegex.GetDecimalJson(ref pStr, "goods_price").ToString();
var salesLong = good.Sales.Replace("+", "").Replace("万", "").ParseToDecimal();
if (good.Sales.Contains("万"))
salesLong = salesLong * 10000;
if (good.Price.ParseToDecimal() < priceMin || good.Price.ParseToDecimal() > priceMax
|| salesLong < salesMin || salesLong > salesMax)
{
continue;
}
if (lstFilterKeyword.Count > 0 && !lstFilterKeyword.Any(k => good.GoodsName.Contains(k)))
{
continue;
}
try
{
this.lstProduct.Add(good);
StringBuilder sb = new StringBuilder();
sb.AppendLine("https://haohuo.jinritemai.com/views/product/item2?id=" + good.Id + "," + good.GoodsName + "," + good.ShopName + ","
+ good.Sales + "," + good.Price);
File.AppendAllText(exportFileName, sb.ToString(), Encoding.Default);
}
catch (Exception ex) { }
Invoke(new Action(() =>
{
var index = this.dgvCollect.Rows.Add(false, good.Id, good.GoodsName, null, good.ShopName, good.Sales, good.Price, "删除");
}));
}
}
}
}
catch (Exception ex)
{
}
Thread.Sleep(Randomx.GetId(3000, 4000));
}
}
}
Invoke(new Action(() =>
{
btnCollect.Text = "开始采集";
this.statusBar.lblTaskStatus.Text = "采集结束,共采集到商品" + this.lstProduct.Count + "个";
this.statusBar.pgbTaskProgress.Value = n;
this.statusBar.pgbTaskProgress.Text = n + "/" + total;
this.statusBar.pgbTaskProgress.Maximum = total;
}));
});
}
private void btnExport_Click(object sender, EventArgs e)
{
try
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "表格文件(*.csv)|*.csv";
saveFileDialog1.FileName = "抖音整店采集" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("商品Id,商品名称,店铺名称,商品销量,商品价格");
foreach (var good in lstProduct)
{
sb.AppendLine("https://haohuo.jinritemai.com/views/product/item2?id=" + good.Id + "," + good.GoodsName + "," + good.ShopName + ","
+ good.Sales + "," + good.Price);
}
File.WriteAllText(saveFileDialog1.FileName, sb.ToString(), Encoding.Default);
BaseForms.BaseMsgForm.ShowInfo("导出成功");
}
}
catch (Exception ex)
{
BaseForms.BaseMsgForm.ShowError(ex.Message);
}
}
/// <summary>
/// 获取店铺名称等信息
/// </summary>
/// <param name="shopId"></param>
/// <returns></returns>
private string CollectDouShopDetail(string shopId)
{
HttpWebResponse response = null;
string result;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://ec.snssdk.com/shop/getInfo?id=" + shopId + "&b_type_new=0&device_id=0&is_outside=1");
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36";
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
/// <summary>
/// 根据店铺商品获取店铺名称等信息
/// </summary>
/// <param name="shopId"></param>
/// <returns></returns>
private string CollectDouShopDetailByProduct(string productId)
{
return HaoWuCollectBLL.getHtml("https://ec.snssdk.com/product/fxgajaxstaticitem?b_type_new=0&device_id=0&is_outside=1&id=" + productId + "&preview=0", "", "utf8");
}
private string CollectShopGoodsList(string shopId, string page)
{
HttpWebResponse response = null;
string result;
try
{
string url = "https://ec.snssdk.com/shop/goodsList?shop_id=" + shopId + "&pageSize=20&page=" + page;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36";
request.Headers.Add("Cookie", AllBase.Helper.GlobalConfig.DouUserCookies);
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = GetProxyHtml.ReadResponse(response);
if (response != null) response.Close();
return result;
}
private void dgvCollect_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0)
return;
var goodsId = dgvCollect.Rows[e.RowIndex].Cells["colProductId"].Value.ToString();
var columnName = dgvCollect.Columns[e.ColumnIndex].Name;
if (columnName == "colProductId" || columnName == "colProductName")
{
string url = "https://haohuo.jinritemai.com/views/product/item2?id=" + goodsId;
GetHtml.OpenUrl(url);
}
}
private void btnLoginDouyin_Click(object sender, EventArgs e)
{
DouUserLoginForm dForm = new DouUserLoginForm();
dForm.ShowDialog();
}
}
}
@@ -1,144 +0,0 @@
<?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="colProductId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopNmae.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="colPrice.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
@@ -51,7 +51,7 @@ namespace TemuKJD.KJDForms.ProductForms
}
else
{
var list = GlobalConfig.ShopLoginList.Where(s => s.LoginStatus == "登录成功").Select(ss => ss.ShopId);
var list = GlobalConfig.ShopLoginList.Where(s => s.LoginStatus2 == "国际版在线").Select(ss => ss.ShopId);
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (list.Any(l => l == row.Cells["colShopId"]?.Value?.ToString()))
@@ -98,7 +98,7 @@ namespace TemuKJD.KJDForms.ProductForms
if (selectShopId == null)
selectShopId = new List<string>();
bool canUse = shopEntity.LoginStatus == "登录成功";
bool canUse = shopEntity.LoginStatus2 == "国际版在线";
var row = dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId);
if (row == null)
{
@@ -107,7 +107,7 @@ namespace TemuKJD.KJDForms.ProductForms
shopEntity.LoginName,
shopEntity.ShopId,
shopEntity.ShopAccount,
shopEntity.LoginStatus,
shopEntity.LoginStatus2 == "国际版在线" ? "在线" : "未登录",
canUse,
string.Empty
);
@@ -117,7 +117,7 @@ namespace TemuKJD.KJDForms.ProductForms
row.Cells["colSelect"].Value = selectShopId.Contains(shopEntity.ShopId) && canUse;
row.Cells["colShopLoginName"].Value = shopEntity.LoginName;
row.Cells["colShopName"].Value = shopEntity.ShopAccount;
row.Cells["colLoginStatus"].Value = shopEntity.LoginStatus;
row.Cells["colLoginStatus"].Value = shopEntity.LoginStatus2 == "国际版在线" ? "在线" : "未登录";
row.Cells["colCanUse"].Value = canUse;
}
}
@@ -129,7 +129,9 @@ namespace TemuKJD.KJDForms.ProductForms
switch (columnName)
{
case "colSelect":
dgvShop.CellContentClick -= dgvShop_CellContentClick;
dgvShop_CellContentClick(sender, e);
//dgvShop.CellContentClick += dgvShop_CellContentClick;
break;
}
}
@@ -159,7 +161,7 @@ namespace TemuKJD.KJDForms.ProductForms
}
else
{
BaseMsgForm.ShowInfo("店铺未登录!");
BaseMsgForm.ShowInfo("店铺国际版未登录!");
}
break;
}
@@ -226,14 +228,14 @@ namespace TemuKJD.KJDForms.ProductForms
continue;
#region 检测登录
if (shop.LoginStatus != "登录成功")
if (shop.LoginStatus2 != "国际版在线")
{
continue;
}
if (ShopListForm.Instance == null)
ShopListForm.Instance = new ShopListForm();
ShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
if (shop.LoginStatus != "登录成功")
if (shop.LoginStatus2 != "国际版在线")
{
Invoke(new Action(() =>
{
@@ -241,7 +243,7 @@ namespace TemuKJD.KJDForms.ProductForms
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "店铺掉线";
row.Cells["colLoginStatus"].Value = "未登录";
row.Cells["colLoginStatus"].Value = "国际版未登录";
row.Cells["colCanUse"].Value = false;
}
}));
@@ -393,16 +395,19 @@ namespace TemuKJD.KJDForms.ProductForms
private string GetPriceAdjustList(ShopLoginInfo shop, int page = 1, string type = "待调价")
{
page = Math.Max(page, 1);
string url = "https://seller.kuajingmaihuo.com/marvel-mms/cn/api/kiana/magneto/price-adjust/page-query";
//string url = "https://seller.kuajingmaihuo.com/marvel-mms/cn/api/kiana/magneto/price-adjust/page-query";
string url = "https://agentseller.temu.com/api/kiana/mms/magneto/price-adjust/page-query";
string body;
if (type == "待调价")
body = @"{""pageInfo"":{""pageSize"":10,""pageNo"":" + page + @"},""status"":1,""quickSearch"":[]}";
else
body = @"{""pageInfo"":{""pageSize"":10,""pageNo"":" + page + @"},""status"":2,""quickSearch"":[]}";
string refere = "https://seller.kuajingmaihuo.com/main/price-manage/price-adjustment";
//string refere = "https://seller.kuajingmaihuo.com/main/price-manage/price-adjustment";
string refere = "https://agentseller.temu.com/main/adjust-price-manage/order-price";
return KJDHttpResponse.PostResponse(shop, url, body, refere);
//return KJDHttpResponse.PostResponse(shop, url, body, refere);
return KJDHttpResponse.PostResponse2(shop, url, body, refere);
}
private void panelEx1_Click(object sender, EventArgs e)
@@ -476,7 +481,7 @@ namespace TemuKJD.KJDForms.ProductForms
}
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == priceAdjust.supplierId.ToString());
if (shop == null || shop.LoginStatus != "登录成功")
if (shop == null || shop.LoginStatus2 != "国际版在线")
{
Invoke(new Action(() =>
{
@@ -556,7 +561,8 @@ namespace TemuKJD.KJDForms.ProductForms
/// <returns></returns>
private string refuseAdjust(ShopLoginInfo shop, List<string> adjustIdList, string refuseReason)
{
string url = "https://seller.kuajingmaihuo.com/marvel-mms/cn/api/kiana/gmp/bg/magneto/api/price-adjust/batch/adjust";
//string url = "https://seller.kuajingmaihuo.com/marvel-mms/cn/api/kiana/gmp/bg/magneto/api/price-adjust/batch/adjust";
string url = "https://agentseller.temu.com/api/kiana/mms/gmp/bg/magneto/api/price-adjust/batch/adjust";
string body = "{\"adjustList\":[";
foreach (var adjustId in adjustIdList)
{
@@ -564,9 +570,10 @@ namespace TemuKJD.KJDForms.ProductForms
}
body = body.TrimEnd(',');
body += "]}";
string refere = "https://seller.kuajingmaihuo.com/main/price-manage/price-adjustment";
//string refere = "https://seller.kuajingmaihuo.com/main/price-manage/price-adjustment";
string refere = "https://agentseller.temu.com/main/adjust-price-manage/order-price";
return KJDHttpResponse.PostResponse(shop, url, body, refere);
return KJDHttpResponse.PostResponse2(shop, url, body, refere);
}
private void dgvStock_CellContentClick(object sender, DataGridViewCellEventArgs e)
@@ -81,6 +81,17 @@ namespace TemuKJD.KJDForms
/// <returns></returns>
public static string PostResponse2(ShopLoginInfo shop, string _url, string _data, string referer)
{
var cookiesArr = shop.Cookies2.Split(';').Select(s => s.Trim());
string cookies = "";
foreach(var cook in cookiesArr)
{
if (cook.StartsWith("mallid"))
cookies += "mallid=" + shop.ShopId + "; ";
else
cookies += cook + "; ";
}
cookies = cookies.Trim().TrimEnd(';');
HttpWebResponse response = null;
string result;
try
@@ -106,7 +117,7 @@ namespace TemuKJD.KJDForms
request.Referer = referer;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.Headers.Set(HttpRequestHeader.Cookie, shop.Cookies2);
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
@@ -76,7 +76,7 @@
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(1, 33);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(465, 686);
this.panel2.Size = new System.Drawing.Size(464, 686);
this.panel2.TabIndex = 1;
//
// label7
@@ -108,7 +108,7 @@
this.txtFissionWords.Location = new System.Drawing.Point(90, 391);
this.txtFissionWords.Multiline = true;
this.txtFissionWords.Name = "txtFissionWords";
this.txtFissionWords.Size = new System.Drawing.Size(338, 238);
this.txtFissionWords.Size = new System.Drawing.Size(337, 238);
this.txtFissionWords.TabIndex = 402;
this.txtFissionWords.WatermarkText = "一行一个";
//
@@ -116,7 +116,7 @@
//
this.txtEndWords.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtEndWords.Location = new System.Drawing.Point(292, 353);
this.txtEndWords.Location = new System.Drawing.Point(291, 353);
this.txtEndWords.Name = "txtEndWords";
this.txtEndWords.Size = new System.Drawing.Size(136, 23);
this.txtEndWords.TabIndex = 401;
@@ -124,7 +124,7 @@
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(234, 356);
this.label6.Location = new System.Drawing.Point(233, 356);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(56, 17);
this.label6.TabIndex = 400;
@@ -154,14 +154,14 @@
this.txtProductName.Multiline = true;
this.txtProductName.Name = "txtProductName";
this.txtProductName.ReadOnly = true;
this.txtProductName.Size = new System.Drawing.Size(338, 46);
this.txtProductName.Size = new System.Drawing.Size(337, 46);
this.txtProductName.TabIndex = 397;
//
// txtSkcId
//
this.txtSkcId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtSkcId.Location = new System.Drawing.Point(292, 171);
this.txtSkcId.Location = new System.Drawing.Point(291, 171);
this.txtSkcId.Name = "txtSkcId";
this.txtSkcId.ReadOnly = true;
this.txtSkcId.Size = new System.Drawing.Size(136, 23);
@@ -181,7 +181,7 @@
| System.Windows.Forms.AnchorStyles.Right)));
this.txtExtCode.Location = new System.Drawing.Point(90, 262);
this.txtExtCode.Name = "txtExtCode";
this.txtExtCode.Size = new System.Drawing.Size(338, 23);
this.txtExtCode.Size = new System.Drawing.Size(337, 23);
this.txtExtCode.TabIndex = 394;
//
// label4
@@ -205,7 +205,7 @@
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(234, 174);
this.label2.Location = new System.Drawing.Point(233, 174);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(56, 17);
this.label2.TabIndex = 391;
@@ -259,7 +259,7 @@
this.txtNotes.Location = new System.Drawing.Point(90, 296);
this.txtNotes.Multiline = true;
this.txtNotes.Name = "txtNotes";
this.txtNotes.Size = new System.Drawing.Size(338, 47);
this.txtNotes.Size = new System.Drawing.Size(337, 47);
this.txtNotes.TabIndex = 385;
//
// btnOk
@@ -270,7 +270,7 @@
this.btnOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOk.ForeColor = System.Drawing.Color.White;
this.btnOk.Location = new System.Drawing.Point(373, 640);
this.btnOk.Location = new System.Drawing.Point(372, 640);
this.btnOk.Margin = new System.Windows.Forms.Padding(2);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(55, 26);
@@ -282,7 +282,7 @@
// DbProductEditNotesForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(467, 720);
this.ClientSize = new System.Drawing.Size(466, 720);
this.Controls.Add(this.panel2);
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")));
@@ -21,6 +21,7 @@ using AllBase.Model.Param.TemuProductManage;
using System.Threading;
using TemuKJD.KJDForms.AdminForms;
using TemuKJD.KJDForms.ShopForms;
using System.Globalization;
namespace TemuKJD.KJDForms.ProductSelectForms
{
@@ -353,12 +354,14 @@ namespace TemuKJD.KJDForms.ProductSelectForms
{
var shop = GetShop(shopId);
string cookJs = "";
var keys = new string[] { "a42", "_bee", "_f77", "_nano_fp", "api_uid", "rckk", "ru1k", "ru2k", "SUB_PASS_ID" };
//var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "mallid", "njrpl", "seller_temp" };
var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "njrpl", "seller_temp" };
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k => cookie.StartsWith(k)))
continue;
//if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';";
}
foreach (var shopCook in shop.Cookies2.Split(';'))
@@ -369,7 +372,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.kuajingmaihuo.com;';";
@@ -380,12 +383,16 @@ namespace TemuKJD.KJDForms.ProductSelectForms
foreach (var shopCook in shop.Cookies2.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (cookie.StartsWith("mallid"))
cookie = "mallid=" + shop.ShopId;
if (!keys2.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("seller_temp") && !cookie.StartsWith("_nano_fp") && !cookie.StartsWith("mallid"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
else
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
}
cookJs += "\r\nwindow.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');";
cookJs += "\r\nwindow.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');";
@@ -35,7 +35,10 @@
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProductThirdSelectListManageForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.pbFissionSetting = new System.Windows.Forms.PictureBox();
this.chkShowDel = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.chkNoSubSa = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnReFission = new TemuKJD.UserControls.ButtonEx();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.label6 = new System.Windows.Forms.Label();
this.txtShopId = new System.Windows.Forms.TextBox();
@@ -55,7 +58,6 @@
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.txtProdName = new System.Windows.Forms.TextBox();
this.chkNoSubSa = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnSetSubSa = new TemuKJD.UserControls.ButtonEx();
this.btnAdd = new TemuKJD.UserControls.ButtonEx();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
@@ -91,6 +93,7 @@
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbFissionSetting)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
@@ -111,9 +114,11 @@
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.pbFissionSetting);
this.splitContainer1.Panel1.Controls.Add(this.chkShowDel);
this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel1);
this.splitContainer1.Panel1.Controls.Add(this.chkNoSubSa);
this.splitContainer1.Panel1.Controls.Add(this.btnReFission);
this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel1);
this.splitContainer1.Panel1.Controls.Add(this.btnSetSubSa);
this.splitContainer1.Panel1.Controls.Add(this.btnAdd);
//
@@ -124,11 +129,24 @@
this.splitContainer1.SplitterDistance = 53;
this.splitContainer1.TabIndex = 2;
//
// pbFissionSetting
//
this.pbFissionSetting.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.pbFissionSetting.Image = global::TemuKJD.Properties.Resources.齿轮;
this.pbFissionSetting.Location = new System.Drawing.Point(1129, 15);
this.pbFissionSetting.Name = "pbFissionSetting";
this.pbFissionSetting.Size = new System.Drawing.Size(24, 24);
this.pbFissionSetting.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbFissionSetting.TabIndex = 191;
this.pbFissionSetting.TabStop = false;
this.pbFissionSetting.Visible = false;
this.pbFissionSetting.Click += new System.EventHandler(this.pbFissionSetting_Click);
//
// chkShowDel
//
this.chkShowDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkShowDel.AutoSize = true;
this.chkShowDel.Location = new System.Drawing.Point(1044, 17);
this.chkShowDel.Location = new System.Drawing.Point(1024, 17);
this.chkShowDel.Name = "chkShowDel";
this.chkShowDel.Size = new System.Drawing.Size(99, 21);
this.chkShowDel.TabIndex = 471;
@@ -136,6 +154,35 @@
this.chkShowDel.UseVisualStyleBackColor = true;
this.chkShowDel.CheckedChanged += new System.EventHandler(this.chkShowDel_CheckedChanged);
//
// chkNoSubSa
//
this.chkNoSubSa.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkNoSubSa.AutoSize = true;
this.chkNoSubSa.Location = new System.Drawing.Point(930, 17);
this.chkNoSubSa.Name = "chkNoSubSa";
this.chkNoSubSa.Size = new System.Drawing.Size(99, 21);
this.chkNoSubSa.TabIndex = 470;
this.chkNoSubSa.Text = "仅未分配超管";
this.chkNoSubSa.UseVisualStyleBackColor = true;
//
// btnReFission
//
this.btnReFission.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnReFission.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnReFission.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnReFission.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnReFission.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnReFission.ForeColor = System.Drawing.Color.White;
this.btnReFission.Location = new System.Drawing.Point(1153, 14);
this.btnReFission.Margin = new System.Windows.Forms.Padding(2);
this.btnReFission.Name = "btnReFission";
this.btnReFission.Size = new System.Drawing.Size(90, 26);
this.btnReFission.TabIndex = 472;
this.btnReFission.Text = "批量重组标题";
this.btnReFission.UseVisualStyleBackColor = false;
this.btnReFission.Visible = false;
this.btnReFission.Click += new System.EventHandler(this.btnReFission_Click);
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
@@ -181,7 +228,7 @@
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(944, 28);
this.tableLayoutPanel1.Size = new System.Drawing.Size(929, 28);
this.tableLayoutPanel1.TabIndex = 469;
//
// label6
@@ -201,7 +248,7 @@
this.txtShopId.Location = new System.Drawing.Point(47, 2);
this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtShopId.Name = "txtShopId";
this.txtShopId.Size = new System.Drawing.Size(57, 23);
this.txtShopId.Size = new System.Drawing.Size(55, 23);
this.txtShopId.TabIndex = 448;
//
// cmbStatus
@@ -212,10 +259,10 @@
"待上传",
"已上传",
"全部"});
this.cmbStatus.Location = new System.Drawing.Point(758, 1);
this.cmbStatus.Location = new System.Drawing.Point(744, 1);
this.cmbStatus.Margin = new System.Windows.Forms.Padding(0, 1, 0, 1);
this.cmbStatus.Name = "cmbStatus";
this.cmbStatus.Size = new System.Drawing.Size(57, 25);
this.cmbStatus.Size = new System.Drawing.Size(55, 25);
this.cmbStatus.TabIndex = 459;
this.cmbStatus.Text = "待上传";
//
@@ -224,7 +271,7 @@
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(882, 3);
this.pnlEmpty.Location = new System.Drawing.Point(866, 3);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(56, 22);
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -247,7 +294,7 @@
//
this.label7.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(110, 5);
this.label7.Location = new System.Drawing.Point(108, 5);
this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(56, 17);
@@ -258,7 +305,7 @@
//
this.label8.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(702, 5);
this.label8.Location = new System.Drawing.Point(688, 5);
this.label8.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(56, 17);
@@ -268,17 +315,17 @@
// txtShopName
//
this.txtShopName.Dock = System.Windows.Forms.DockStyle.Top;
this.txtShopName.Location = new System.Drawing.Point(166, 2);
this.txtShopName.Location = new System.Drawing.Point(164, 2);
this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtShopName.Name = "txtShopName";
this.txtShopName.Size = new System.Drawing.Size(57, 23);
this.txtShopName.Size = new System.Drawing.Size(55, 23);
this.txtShopName.TabIndex = 451;
//
// label5
//
this.label5.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(229, 5);
this.label5.Location = new System.Drawing.Point(225, 5);
this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(31, 17);
@@ -292,7 +339,7 @@
this.btnSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearch.ForeColor = System.Drawing.Color.White;
this.btnSearch.Location = new System.Drawing.Point(821, 2);
this.btnSearch.Location = new System.Drawing.Point(805, 2);
this.btnSearch.Margin = new System.Windows.Forms.Padding(6, 2, 2, 2);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(56, 24);
@@ -304,26 +351,26 @@
// txtSKC
//
this.txtSKC.Dock = System.Windows.Forms.DockStyle.Top;
this.txtSKC.Location = new System.Drawing.Point(354, 2);
this.txtSKC.Location = new System.Drawing.Point(348, 2);
this.txtSKC.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtSKC.Name = "txtSKC";
this.txtSKC.Size = new System.Drawing.Size(57, 23);
this.txtSKC.Size = new System.Drawing.Size(55, 23);
this.txtSKC.TabIndex = 432;
//
// txtSPU
//
this.txtSPU.Dock = System.Windows.Forms.DockStyle.Top;
this.txtSPU.Location = new System.Drawing.Point(260, 2);
this.txtSPU.Location = new System.Drawing.Point(256, 2);
this.txtSPU.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtSPU.Name = "txtSPU";
this.txtSPU.Size = new System.Drawing.Size(57, 23);
this.txtSPU.Size = new System.Drawing.Size(55, 23);
this.txtSPU.TabIndex = 434;
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(323, 5);
this.label1.Location = new System.Drawing.Point(317, 5);
this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(31, 17);
@@ -334,7 +381,7 @@
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(417, 5);
this.label2.Location = new System.Drawing.Point(409, 5);
this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
@@ -344,26 +391,26 @@
// txtCat
//
this.txtCat.Dock = System.Windows.Forms.DockStyle.Top;
this.txtCat.Location = new System.Drawing.Point(449, 2);
this.txtCat.Location = new System.Drawing.Point(441, 2);
this.txtCat.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtCat.Name = "txtCat";
this.txtCat.Size = new System.Drawing.Size(57, 23);
this.txtCat.Size = new System.Drawing.Size(55, 23);
this.txtCat.TabIndex = 425;
//
// txtExtCode
//
this.txtExtCode.Dock = System.Windows.Forms.DockStyle.Top;
this.txtExtCode.Location = new System.Drawing.Point(639, 2);
this.txtExtCode.Location = new System.Drawing.Point(627, 2);
this.txtExtCode.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtExtCode.Name = "txtExtCode";
this.txtExtCode.Size = new System.Drawing.Size(57, 23);
this.txtExtCode.Size = new System.Drawing.Size(55, 23);
this.txtExtCode.TabIndex = 429;
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(512, 5);
this.label3.Location = new System.Drawing.Point(502, 5);
this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(32, 17);
@@ -374,7 +421,7 @@
//
this.label4.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(607, 5);
this.label4.Location = new System.Drawing.Point(595, 5);
this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(32, 17);
@@ -384,23 +431,12 @@
// txtProdName
//
this.txtProdName.Dock = System.Windows.Forms.DockStyle.Top;
this.txtProdName.Location = new System.Drawing.Point(544, 2);
this.txtProdName.Location = new System.Drawing.Point(534, 2);
this.txtProdName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtProdName.Name = "txtProdName";
this.txtProdName.Size = new System.Drawing.Size(57, 23);
this.txtProdName.Size = new System.Drawing.Size(55, 23);
this.txtProdName.TabIndex = 427;
//
// chkNoSubSa
//
this.chkNoSubSa.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkNoSubSa.AutoSize = true;
this.chkNoSubSa.Location = new System.Drawing.Point(950, 17);
this.chkNoSubSa.Name = "chkNoSubSa";
this.chkNoSubSa.Size = new System.Drawing.Size(99, 21);
this.chkNoSubSa.TabIndex = 470;
this.chkNoSubSa.Text = "仅未分配超管";
this.chkNoSubSa.UseVisualStyleBackColor = true;
//
// btnSetSubSa
//
this.btnSetSubSa.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -409,10 +445,10 @@
this.btnSetSubSa.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSetSubSa.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSetSubSa.ForeColor = System.Drawing.Color.White;
this.btnSetSubSa.Location = new System.Drawing.Point(1240, 14);
this.btnSetSubSa.Location = new System.Drawing.Point(1247, 14);
this.btnSetSubSa.Margin = new System.Windows.Forms.Padding(2);
this.btnSetSubSa.Name = "btnSetSubSa";
this.btnSetSubSa.Size = new System.Drawing.Size(91, 26);
this.btnSetSubSa.Size = new System.Drawing.Size(90, 26);
this.btnSetSubSa.TabIndex = 463;
this.btnSetSubSa.Text = "分配二级超管";
this.btnSetSubSa.UseVisualStyleBackColor = false;
@@ -429,7 +465,7 @@
this.btnAdd.Location = new System.Drawing.Point(1341, 14);
this.btnAdd.Margin = new System.Windows.Forms.Padding(2);
this.btnAdd.Name = "btnAdd";
this.btnAdd.Size = new System.Drawing.Size(91, 26);
this.btnAdd.Size = new System.Drawing.Size(90, 26);
this.btnAdd.TabIndex = 444;
this.btnAdd.Text = "一键上传草稿";
this.btnAdd.UseVisualStyleBackColor = false;
@@ -751,6 +787,7 @@
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbFissionSetting)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.splitContainer2.Panel1.ResumeLayout(false);
@@ -818,5 +855,7 @@
private System.Windows.Forms.DataGridViewLinkColumn colEditNotes;
private System.Windows.Forms.DataGridViewLinkColumn ColDelete;
private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult;
private UserControls.ButtonEx btnReFission;
private System.Windows.Forms.PictureBox pbFissionSetting;
}
}
@@ -23,6 +23,7 @@ using TemuKJD.KJDForms.AdminForms;
using TemuKJD.KJDForms.ShopForms;
using TemuKJD.KJDForms.ProductSelectForms;
using System.Text.RegularExpressions;
using System.Globalization;
namespace TemuKJD.KJDForms.ProductThirdSelectForms
{
@@ -46,6 +47,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
chkShowDel.Visible = false;
btnSetSubSa.Visible = false;
chkNoSubSa.Visible = false;
pbFissionSetting.Visible = false;
btnReFission.Visible = false;
if (BaseClass.SaLevel == 1)
{
@@ -53,6 +56,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
chkShowDel.Visible = true;
btnSetSubSa.Visible = true;
chkNoSubSa.Visible = true;
pbFissionSetting.Visible = true;
btnReFission.Visible = true;
}
}
@@ -133,7 +138,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
prodSelect.skc_id,
prodSelect.main_img.Replace("https:", "http:"),
defaultBitmap,//prod.main_img,
prodSelect.product_name,
prodSelect.fission_product_name,
prodSelect.cat_name,
prodSelect.ext_code,
prodSelect.status,
@@ -353,12 +358,14 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
{
var shop = GetShop(shopId);
string cookJs = "";
var keys = new string[] { "a42", "_bee", "_f77", "_nano_fp", "api_uid", "rckk", "ru1k", "ru2k", "SUB_PASS_ID" };
//var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "mallid", "njrpl", "seller_temp" };
var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "njrpl", "seller_temp" };
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k => cookie.StartsWith(k)))
continue;
//if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';";
}
foreach (var shopCook in shop.Cookies2.Split(';'))
@@ -369,7 +376,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.kuajingmaihuo.com;';";
@@ -380,12 +387,16 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
foreach (var shopCook in shop.Cookies2.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (cookie.StartsWith("mallid"))
cookie = "mallid=" + shop.ShopId;
if (!keys2.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("seller_temp") && !cookie.StartsWith("_nano_fp") && !cookie.StartsWith("mallid"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
else
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
}
cookJs += "\r\nwindow.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');";
cookJs += "\r\nwindow.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');";
@@ -587,7 +598,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
string pattern2 = @"([^\\,:""{\[])(""[^,:""}\]])";//希伯来文中的引号转义在数据库中有时候会丢失,回来发现了给配上\符号
var prodDetailJsonReplace2 = Regex.Replace(prodDetailJsonReplace, pattern2, "$1\\$2");
var productDetail = JsonHelper.DeserializeJsonToObject<TemuProductInfo>(prodDetailJsonReplace2);
result = UploadProduct(shop, productDetail, temuDBProd.size_json); //将商品上传至草稿箱
//result = UploadProduct(shop, productDetail, temuDBProd.size_json); //将商品上传至草稿箱
result = UploadProduct(shop, temuDBProd, prod); //将商品上传至草稿箱
if (result.Contains("登录过期"))
{
@@ -754,12 +766,14 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
}
}
string UploadProduct(ShopLoginInfo shop, TemuProductInfo prodInfo, string sTemuSizeSpec = null)
string UploadProduct(ShopLoginInfo shop, TemuDBProduct dbProd, TemuDBProductSelect selectProd)
{
if (shop == null || string.IsNullOrEmpty(shop.ShopId) || shop.LoginStatus != "登录成功" || shop.LoginStatus2 != "国际版在线")
{
return "店铺为空或未登录!";
}
var prodInfo = JsonHelper.DeserializeJsonToObject<TemuProductInfo>(dbProd.product_json);
var sTemuSizeSpec = dbProd.size_json;
TemuProductParam prodParam = new TemuProductParam();
prodParam.carouselImageI18nReqs = prodInfo.carouselImageI18nVOList;
@@ -823,7 +837,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
prodParam.productDraftId = 0;
prodParam.productGuideFileI18nReqs = prodInfo.productGuideFileI18nList;
prodParam.productGuideFileNewReqList = prodInfo.productGuideFileNewVOList;
prodParam.productName = prodInfo.productName;
//prodParam.productName = prodInfo.productName;
prodParam.productName = selectProd.fission_product_name;
prodParam.productNonAuditExtAttrReq = new ProductNonAuditExtAttrReq()
{
california65WarningInfoReq = new California65WarningInfoReq()
@@ -1186,5 +1201,174 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
{
dgvSelectProduct.Columns["colDelete"].Visible = this.chkShowDel.Checked;
}
private void btnReFission_Click(object sender, EventArgs e)
{
var lstProdId = dgvSelectProduct.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colSelectId"]?.Value.ToString()).ToList();
var prodList = this.lstAdminTemuDBProductSelect.Where(p => lstProdId.Contains(p.id.ParseToString())).ToArray();
if (prodList.Count() > 0)
{
this.btnAdd.Enabled = false;
Task.Run(() =>
{
ReFissionThirdProdSelect(prodList);
Invoke(new Action(() =>
{
this.btnAdd.Enabled = true;
}));
});
}
else
{
BaseMsgForm.ShowError("请选择要重组标题的商品!");
}
}
private void pbFissionSetting_Click(object sender, EventArgs e)
{
ProductThirdTitleForm titleForm = new ProductThirdTitleForm();
titleForm.ShowDialog();
}
void ReFissionThirdProdSelect(TemuDBProductSelect[] prodSelect)
{
if (prodSelect == null || prodSelect.Count() == 0)
{
BaseMsgForm.ShowError("标题重组的内容不能为空!");
return;
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在重组标题...";
this.statusBar.pgbTaskProgress.Maximum = prodSelect.Length;
this.statusBar.UpdateProgressBar(0);
}));
foreach (var prod in prodSelect)
{
Invoke(new Action(() =>
{
this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1);
}));
if (prod == null)
{
Invoke(new Action(() =>
{
BaseMsgForm.ShowError("商品为空,将为您跳过该商品!");
}));
continue;
}
var row = dgvSelectProduct.Rows.Cast<DataGridViewRow>().FirstOrDefault(r =>
r.Cells["colSelectId"]?.Value.ToString() == prod.id.ToString());
if (row == null)
{
Invoke(new Action(() =>
{
BaseMsgForm.ShowError("商品已被清除,跳过该商品!");
}));
continue;
}
var shop = shopLst.FirstOrDefault(s => s.ShopId == prod.shop_id);
var temuDBProd = GetProductDetail(prod.out_product_Id.ToString());
if (temuDBProd == null || temuDBProd.id == 0)
{
if (temuDBProd?.id == 0)
{
prod.status = "已清除";
var empty_url = BaseClass.BuildObjString("product_third/mdy_user_select_product_status");
var empty_data = UserLogin.GetSignaturex() +
"&db_id=" + prod.id +
"&status=已清除";
GetHtml.PostUtf8(empty_url, empty_data);
}
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "选品数据库商品已被清除";
if (temuDBProd?.id == 0)
row.Cells["colStatus"].Value = "已清除";
}));
continue;
}
var fissionProductName = GetFissionThirdProductName(temuDBProd);
prod.fission_product_name = fissionProductName;
var url = "";
url = BaseClass.BuildObjString("product_third/mdy_product_select_notes");
var data = UserLogin.GetSignaturex() +
"&db_id=" + prod.id;
data += "&fission_product_name=" + GetHtml.UrlEncodeUtf8(fissionProductName.Trim());
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"))
{
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "标题重组失败," + BaseRegex.GetStringJson(ref html, "msg");
}));
}
else
{
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "标题重组成功";
row.Cells["colProductName"].Value = fissionProductName;
}));
}
Thread.Sleep(50);
}
Invoke(new Action(() =>
{
BaseMsgForm.ShowInfo("标题重组完成!");
}));
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
this.statusBar.lblTaskStatus.Text = "标题重组完成";
this.statusBar.UpdateProgressBar(prodSelect.Length);
}));
}
public string GetFissionThirdProductName(TemuDBProduct prod)
{
string headWords = "";
if (!string.IsNullOrWhiteSpace(GlobalConfig.ProductWords.HeadWords))
{
var numbers = GlobalConfig.ProductWords.HeadWords.Split(new string[] { "-", "个" }, StringSplitOptions.RemoveEmptyEntries).Select(w => w.ParseToInt()).ToList();
int minNum = 5;
int maxNum = 19;
if (numbers.Count > 0 && numbers[0] > 0)
{
minNum = numbers[0];
}
if (numbers.Count > 1 && numbers[1] > 0)
{
maxNum = numbers[1];
}
if (maxNum < minNum)
{
maxNum = minNum;
}
headWords += Randomx.GetId(minNum, maxNum + 1) + "个";
}
string endWords = string.IsNullOrWhiteSpace(GlobalConfig.ProductWords.EndWords) ? "" : GlobalConfig.ProductWords.EndWords;
string centerWords = ",";
return (headWords + prod.product_name + centerWords + endWords).Trim(',');
}
}
}
@@ -0,0 +1,133 @@
namespace TemuKJD.KJDForms.ProductThirdSelectForms
{
partial class ProductThirdTitleForm
{
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProductThirdTitleForm));
this.panel2 = new System.Windows.Forms.Panel();
this.txtEndWords = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtHeadWords = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.btnOk = new TemuKJD.UserControls.ButtonEx();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.btnOk);
this.panel2.Controls.Add(this.txtEndWords);
this.panel2.Controls.Add(this.label6);
this.panel2.Controls.Add(this.txtHeadWords);
this.panel2.Controls.Add(this.label5);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(1, 33);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(464, 208);
this.panel2.TabIndex = 1;
//
// txtEndWords
//
this.txtEndWords.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtEndWords.Location = new System.Drawing.Point(93, 86);
this.txtEndWords.Name = "txtEndWords";
this.txtEndWords.Size = new System.Drawing.Size(338, 21);
this.txtEndWords.TabIndex = 412;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(34, 89);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(53, 12);
this.label6.TabIndex = 411;
this.label6.Text = "标题后缀";
//
// txtHeadWords
//
this.txtHeadWords.Location = new System.Drawing.Point(93, 49);
this.txtHeadWords.Name = "txtHeadWords";
this.txtHeadWords.Size = new System.Drawing.Size(338, 21);
this.txtHeadWords.TabIndex = 410;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(34, 52);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 12);
this.label5.TabIndex = 409;
this.label5.Text = "标题前缀";
//
// btnOk
//
this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOk.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnOk.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOk.ForeColor = System.Drawing.Color.White;
this.btnOk.Location = new System.Drawing.Point(366, 134);
this.btnOk.Margin = new System.Windows.Forms.Padding(2);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(66, 26);
this.btnOk.TabIndex = 413;
this.btnOk.Text = "确定";
this.btnOk.UseVisualStyleBackColor = false;
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
//
// ProductThirdTitleForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(466, 242);
this.Controls.Add(this.panel2);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "ProductThirdTitleForm";
this.Text = "设置标题前后缀";
this.TitleText = "设置标题前后缀";
this.Load += new System.EventHandler(this.ProductThirdTitleForm_Load);
this.Controls.SetChildIndex(this.panel2, 0);
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.TextBox txtEndWords;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtHeadWords;
private System.Windows.Forms.Label label5;
private UserControls.ButtonEx btnOk;
}
}
@@ -0,0 +1,36 @@
using AllBase.Helper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.KJDForms.BaseForms;
namespace TemuKJD.KJDForms.ProductThirdSelectForms
{
public partial class ProductThirdTitleForm : LRBaseForm
{
public ProductThirdTitleForm()
{
InitializeComponent();
}
private void ProductThirdTitleForm_Load(object sender, EventArgs e)
{
this.txtEndWords.Text = GlobalConfig.ProductWords.EndWords;
this.txtHeadWords.Text = GlobalConfig.ProductWords.HeadWords;
}
private void btnOk_Click(object sender, EventArgs e)
{
GlobalConfig.ProductWords.EndWords = this.txtEndWords.Text;
GlobalConfig.ProductWords.HeadWords = this.txtHeadWords.Text;
StartUp.SaveProductWords();
this.Close();
}
}
}
@@ -0,0 +1,298 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
//////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
//+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
//uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
//+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
/////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
//85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
//////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
//////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
/4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
/4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
</value>
</data>
</root>
+17 -7
View File
@@ -19,6 +19,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using Work;
using NaiBa.Util;
using System.Globalization;
namespace TemuKJD.KJDForms.ShopForms
{
@@ -688,9 +689,11 @@ namespace TemuKJD.KJDForms.ShopForms
loginResult = ShopListForm.GetShopStatus2(shop);
if (!loginResult.Contains("\"success\":true"))
{
shop.Cookies2 = "empty=true;";
foreach (var sc in campanys)
{
sc.LoginStatus2 = "国际版未登录";
sc.Cookies2 = "empty=true;";
}
}
else
@@ -698,6 +701,7 @@ namespace TemuKJD.KJDForms.ShopForms
foreach (var sc in campanys)
{
sc.LoginStatus2 = "国际版在线";
}
}
UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
@@ -896,13 +900,15 @@ namespace TemuKJD.KJDForms.ShopForms
//cookJs += "\r\nsetTimeout(() => { window.location.href='https://seller.kuajingmaihuo.com'; }, 200)";
string cookJs = "";
var keys = new string[] { "a42", "_bee", "_f77", "_nano_fp", "api_uid", "rckk", "ru1k", "ru2k", "SUB_PASS_ID" };
//var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "mallid", "njrpl", "seller_temp" };
var keys2 = new string[] { "_bee", "_nano_fp", "api_uid", "dilx", "hfsc", "njrpl", "seller_temp" };
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k=>cookie.StartsWith(k)))
continue;
//if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';";
cookJs += "\r\ndocument.cookie='" + cookie.Substring(0, Math.Max(0, cookie.IndexOf("="))) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';";
}
foreach (var shopCook in shop.Cookies2.Split(';'))
{
@@ -912,7 +918,7 @@ namespace TemuKJD.KJDForms.ShopForms
foreach (var shopCook in shop.Cookies.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (!keys.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("SUB_PASS_ID") && !cookie.StartsWith("_nano_fp"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.kuajingmaihuo.com;';";
@@ -923,12 +929,16 @@ namespace TemuKJD.KJDForms.ShopForms
foreach (var shopCook in shop.Cookies2.Split(';'))
{
var cookie = shopCook.Trim();
if (cookie.StartsWith("mc-pc-cookie-captcha-token="))
if (cookie.StartsWith("mallid"))
cookie = "mallid=" + shop.ShopId;
if (!keys2.Any(k => cookie.StartsWith(k)))
continue;
if (!cookie.StartsWith("seller_temp") && !cookie.StartsWith("_nano_fp") && !cookie.StartsWith("mallid"))
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
else
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" + DateTime.Now.AddDays(1).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "; path=/';";
cookJs += "\r\ndocument.cookie='" + cookie + "; domain=agentseller.temu.com; expires=" +
DateTime.Now.AddDays(1).ToUniversalTime().ToString("ddd, dd MMM yyyy HH:mm:ss 'UTC'", new DateTimeFormatInfo()) + "; path=/';";
}
cookJs += "\r\nwindow.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');";
cookJs += "\r\nwindow.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');";
+14 -11
View File
@@ -206,11 +206,15 @@ namespace TemuKJD.KJDForms.ShopForms
}
else
{
cefWebBrowser.Load("https://agentseller.temu.com");
//cefWebBrowser.Load("https://agentseller.temu.com");
BaseMsgForm.ShowInfo("获取国际版跳转链接失败,请手动跳转并等待Cookie获取结束!");
}
}
else
{
var cookie2 = shop.Cookies2;
var t = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
cefWebBrowser.Load("https://agentseller.temu.com");
}
}
@@ -232,14 +236,9 @@ namespace TemuKJD.KJDForms.ShopForms
List<Cookie> cookieList2 = CEFBrowser.GetCookieList(shopCookieHead2, cefWebBrowser.RequestContext.GetCookieManager(null));
if (cookieList2 != null && cookieList2.Count > 0)
{
foreach (var cookie in cookieList2)
for (int i = 0; i < cookieList2.Count; i++)
{
//SUB_PASS_ID同时出现两个,domain是seller.kuajingmaihuo.com才是能登录店铺后台的
//if (cookie.Name == "seller_temp" && cookie.Domain != "agentseller.temu.com")
// continue;
//if (cookie.Name == "mallid" && cookie.Domain != "agentseller.temu.com")
// continue;
var cookie = cookieList2[i];
cookies2 += cookie.Name + "=" + cookie.Value + "; ";
}
cookies2 = cookies2.Trim().TrimEnd(';');
@@ -411,14 +410,18 @@ namespace TemuKJD.KJDForms.ShopForms
if (isMultiLogin)
cookie = shop.DictMultiCookies.Keys.Contains(MultiLoginCookieName) ? shop.DictMultiCookies[MultiLoginCookieName] : "";
var cookie2 = shop.Cookies2;
Task.Run(() =>
{
var t = CEFBrowser.SetCookieAsync(shopCookieHead, cookie, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
t = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
if (this.openType != EnumOpenType.login)
{
var cookie2 = shop.Cookies2;
var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
t2.Wait(5000);
}
Invoke(new Action(() =>
{
@@ -119,7 +119,9 @@ namespace TemuKJD.KJDForms.ShopForms
var cookieShop = new ShopLoginInfo();
cookieShop.Cookies = cookie;
var data = ShopListForm.GetShopStatus(cookieShop);
var data = "";
data = ShopListForm.GetShopStatus(cookieShop);
if (!data.Contains("\"success\":true"))
{
BaseMsgForm.ShowError("cookie已失效!");
-124
View File
@@ -1,124 +0,0 @@
namespace TemuKJD.KJDForms.ToolForms
{
partial class DouUserLoginForm
{
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DouUserLoginForm));
this.panel2 = new System.Windows.Forms.Panel();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.textBox1 = new System.Windows.Forms.TextBox();
this.btnIsLogin = new TemuKJD.UserControls.ButtonEx();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.SuspendLayout();
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.White;
this.panel2.Controls.Add(this.splitContainer1);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(1, 33);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1438, 866);
this.panel2.TabIndex = 1;
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.btnIsLogin);
this.splitContainer1.Panel1.Controls.Add(this.textBox1);
this.splitContainer1.Panel1.Padding = new System.Windows.Forms.Padding(4);
this.splitContainer1.Size = new System.Drawing.Size(1438, 866);
this.splitContainer1.SplitterDistance = 28;
this.splitContainer1.TabIndex = 0;
//
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.Location = new System.Drawing.Point(4, 4);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(1360, 23);
this.textBox1.TabIndex = 0;
//
// btnIsLogin
//
this.btnIsLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnIsLogin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnIsLogin.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnIsLogin.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnIsLogin.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnIsLogin.ForeColor = System.Drawing.Color.White;
this.btnIsLogin.Location = new System.Drawing.Point(1369, 3);
this.btnIsLogin.Margin = new System.Windows.Forms.Padding(2);
this.btnIsLogin.Name = "btnIsLogin";
this.btnIsLogin.Size = new System.Drawing.Size(66, 26);
this.btnIsLogin.TabIndex = 374;
this.btnIsLogin.Text = "已登录";
this.btnIsLogin.UseVisualStyleBackColor = false;
this.btnIsLogin.Click += new System.EventHandler(this.btnIsLogin_Click);
//
// DouUserLoginForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1440, 900);
this.Controls.Add(this.panel2);
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.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "DouUserLoginForm";
this.Text = "登录抖音";
this.TitleText = "登录抖音";
this.Load += new System.EventHandler(this.DouUserLogin_Load);
this.Controls.SetChildIndex(this.panel2, 0);
this.panel2.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.TextBox textBox1;
private UserControls.ButtonEx btnIsLogin;
}
}
@@ -1,83 +0,0 @@
using CefSharp.WinForms;
using TemuKJD.KJDForms.BaseForms;
using NaiBa.CefHelper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TemuKJD.KJDForms.ToolForms
{
public partial class DouUserLoginForm : LRBaseForm
{
string url = "https://creator.douyin.com/";
ChromiumWebBrowser cefWebBrowser = null;
public DouUserLoginForm()
{
InitializeComponent();
}
public DouUserLoginForm(string _url)
{
InitializeComponent();
this.url = _url; //"https://buyin.jinritemai.com/mpa/account/login?log_out=1&type=24";
}
private void DouUserLogin_Load(object sender, EventArgs e)
{
InitCef();
}
private void InitCef()
{
this.cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(this.url, false);
this.cefWebBrowser.FrameLoadEnd += ChromiumWebBrowser_FrameLoadEnd;
this.cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
this.splitContainer1.Panel2.Controls.Clear();
this.splitContainer1.Panel2.Controls.Add(this.cefWebBrowser);
this.cefWebBrowser.Dock = DockStyle.Fill;
if (!string.IsNullOrEmpty(AllBase.Helper.GlobalConfig.DouUserCookies) && this.url.Contains("creator.douyin.com"))
{
var t = CEFBrowser.SetCookieAsync(AllBase.Helper.GlobalConfig.DouUserCookies, cefWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
}
this.btnIsLogin.BringToFront();
}
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
{
Invoke(new Action(() =>
{
this.textBox1.Text = e.Address;
}));
}
private void ChromiumWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
{
}
private void btnIsLogin_Click(object sender, EventArgs e)
{
if (this.url.Contains("creator.douyin.com"))
{
AllBase.Helper.GlobalConfig.DouUserCookies = CEFBrowser.GetCookie("", cefWebBrowser.RequestContext.GetCookieManager(null));
StartUp.SaveDouUserCookies();
}
else if (this.url.Contains("buyin.jinritemai.com"))
{
AllBase.Helper.GlobalConfig.DouBuyinCookies = CEFBrowser.GetCookie("", cefWebBrowser.RequestContext.GetCookieManager(null));
StartUp.SaveDouBuyinCookies();
}
this.Close();
}
}
}
@@ -1,298 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAgIAQagAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzM
zMzMzMzMzMx3d4iIiIiIiIh3fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM
zMzMzMzMzMzHeIiIiIj/////////iIiIiId8zMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM
zMzMzMzMzMzMzMeIiI/////////////////////4iIh8zMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAATMzM
zMzMzMzMzMzMzMzMzHiI////////////////////////////iIfMzMzMzMzMzMzMzMzMzMzMxAAAAAAA
AGzMzMzMzMzMzMzMzMzMx3iP///////////////////////////////4iHzMzMzMzMzMzMzMzMzMzMYA
AAAAAAbMzMzMzMzMzMzMzMzMx3iP//////////////////////////////////+IfMzMzMzMzMzMzMzM
zMzMYAAAAABMzMzMzMzMzMzMzMzMx3iP/////////////////////////////////////4h8zMzMzMzM
zMzMzMzMzMQAAAAAbMzMzMzMzMzMzMzMzHiP////////////////////////////////////////h3zM
zMzMzMzMzMzMzMzGAAAABMzMzMzMzMzMzMzMzHiP////////////////////////////////////////
//iHzMzMzMzMzMzMzMzMzEAAAAbMzMzMzMzMzMzMzMeI////////////////////////////////////
////////+IfMzMzMzMzMzMzMzMxgAABMzMzMzMzMzMzMzMx4////////////////////////////////
//////////////+IfMzMzMzMzMzMzMzMxAAAbMzMzMzMzMzMzMzHj///////////////////////////
/////////////////////4fMzMzMzMzMzMzMzMYAAMzMzMzMzMzMzMzMeP//////////////////////
///////////////////////////4fMzMzMzMzMzMzMzMAAbMzMzMzMzMzMzMx4//////////////////
/////////////////////////////////4fMzMzMzMzMzMzMzGAGzMzMzMzMzMzMzHj/////////////
///////////////////////////////////////4fMzMzMzMzMzMzMxgDMzMzMzMzMzMzMyI////////
/////////////////////////////////////////////4zMzMzMzMzMzMzMwEzMzMzMzMzMzMzHj///
//////////////////////////////////////////////////+HzMzMzMzMzMzMzMRszMzMzMzMzMzM
eP//////////////////////////////////////////////////////+HzMzMzMzMzMzMzGbMzMzMzM
zMzMzHj///////////////////////////////////////////////////////+MzMzMzMzMzMzMxmzM
zMzMzMzMzMyP////+IiP////////////////////////////////////////+I//////h8zMzMzMzMzM
zMZszMzMzMzMzMzHj////4iIiI//////////////////////////////////////+IiIj/////jMzMzM
zMzMzMzGbMzMzMzMzMzMyP////iIiIiI/////////////////////////////////////4iIiIj////4
fMzMzMzMzMzMxszMzMzMzMzMzHj////4iIiIiP////////////////////////////////////+IiIiI
j////4zMzMzMzMzMzMbMzMzMzMzMzMx4////iIiIiIj////////////////////////////////////4
iIiIiI////+HzMzMzMzMzMzMzMzMzMzMzMzMj////4iIiIiI//////////////+IiP//iI//////////
////+IiIiIiP////h8zMzMzMzMzMzMzMzMzMzMzMzI/////4iIiIiP/////////////4d3eIiIeIj///
//////////+IiIiIj/////jMzMzMzMzMzMzMzMzMzMzMzMyP////+IiIiIj/////////////iIiId3eI
iI//////////////iIiIiI/////4zMzMzMzMzMzMzMzMzMzMzMzHj/////+IiIiP/////////////4//
/4d4j/+P//////////////iIiIj/////+MzMzMzMzMzMzMzMzMzMzMzMx4//////+IiP////////////
///////4j///////////////////iIiP//////jMzMzMzMzMzMzMzMzMzMzMzMeP//////////+IiIj/
///////////////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzH//////////+H
fMx8eP//////////////////////////iId3iP//////////+HzMzMzMzMzMzMzMzMzMzMzMyP//////
///4fMzHh8eP////////////////////////+MzMzMd4//////////h8zMzMzMzMzMzMzMzMzMzMzMf/
////////+MzMePjMeP///////////////////////4zMzMeHx4/////////4fMzMzMzMzMzMzMzMzMzM
zMzH/////////4fMd3eHzMeP//////////////////////iMzMzIiHx4////////+HzMzMzMzMzMzMzM
zMzMzMzMx/////////+Hx4iIfMzMj//////////////////////4h3d8x4h8yP////////jMzMzMzMzM
zMzMzMzMzMzMzMeP////////+HiP+IfMzI//////////////////////+HiIiHd3zHj////////4zMzM
zMzMzMzMzMzMzMzMzMzHj/////////h4//+HzMeP//////////////////////h4//h8zMyP////////
+MzMzMzMzMzMzMzMzMzMzMzMzI/////////4iP//h8x4///////////////////////4j//4fMzHj///
//////jMzMzMzMzMzMzMzMzMzMzMzMyP///////4iIiP+IfHj///////////////////////+Ij/+HzM
eP/////////4zMzMzMzMzMzMzMzMzMzMzMzMj///////iIiIiIh3eP////////////////////////+I
j4h8x3iI////////h8zMzMzMzMzMzMzMzMzMzMzMzH//////+Hj///iIiI//////////////////////
/////4iId4iIiIj//////4zMzMzMzMzMzMzMzMzMzMzMzMx4//////iP////iP//////////////////
/////////////4iP//iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMyP//////////+I//////////////
///////////////////4eP//iP//////jMzMzMzMzMzMzMzMzMzMzMzMzMj///////////iP////////
/////////////////////////4j/////////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj///////////////
//////////////////////////////+I//////////jMzMzMzMzMzMzMzMzMzMzMzMzMzI//////////
//////////////////////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
eP///////////////////////////////////////////////////////4zMzMzMzMzMzMzMzMzMzMzM
zMzMzMj///////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzM
zMzMzMzMzMzHj//////////////////////////////////////////////////////4zMzMzMzMzMzM
zMzMzMzMzMzMzMzMzI//////////////////////////////////////////////////////h8zMzMzM
zMzMzMzMzMzMzMzMzMzMzMx4////////////////////////////////////////////////////+HzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMyI////+I////////////////////////////////////////////
//h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+Ij/////////////////////////////////////
//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+IiIiIj//////////////////////////4
////iI/////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMiP/////4iIiP//////////////////////
////+IiIiIj/////iHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////////////////
///////////4iIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP////////////////////
//////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////
//////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////
///////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////
////////////////////////////////////////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI
j/////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMeP//////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMx4////////+I//////////////////////////////////////jMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMeP///////4iIj///////////////////////////iP///////4fMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMx4////////iIiIiP///////////////////////4iIiP///////4zMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIj///////+HzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIj////////////////////4iIiIiIj///////
+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIiI//
//////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiP////////////////////iIiI
iIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiIj/////iIiIiIiIj/////
/4iIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiI/////4zMzMzMzM
j/////+IiIiIiIiP//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP//////+IiIiIiIj/////+MzM
zMzMzI//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iIiIiIiI////
//jMzMzMzMyP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP///////4iIiIiI
iP/////4zMzMzMzMj//////4iIiIiIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iI
iIiIiI//////+MzMzMzMzI//////+IiIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
///4iIiIiIiP//////fMzMzMzMyP//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzH
j///////+IiIiIiI//////+HzMzMzMzMeP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzM
zMzMyP////////iIiIiIiP//////jMzMzMzMzHj///////iIiIiIiI///////4fMzMzMzMzMzMzMzMzM
zMzMzMzMzMj///////+IiIiIiI///////4zMzMzMzMzI///////4iIiIiIiI///////3zMzMzMzMzMzM
zMzMzMzMzMzMzMzI////////iIiIiIiP//////+MzMzMzMzMyP//////+IiIiIiIiP//////+MzMzMzM
zMzMzMzMzMzMzMzMzMzMeP///////4iIiIiIj///////jMzMzMzMzMj///////+IiIiIiIj///////jM
zMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiIiP//////+HzMzMzMzMzHj///////iIiIiIiI////
///4zMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIiI////////jMzMzMzMzMzI///////4iIiIiI
iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMzMj////////4iIiIiP///////4zMzMzMzMzMyP///////4
iIiIiIiP//////jMzMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiI////////h8zMzMzMzMzMeP//
/////4iIiIiIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIj////////4fMzMzMzMzM
zHj///////+IiIiIiI//////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////iIiP////////+MzMzM
zMzMzMzI////////+IiIiIiP//////h8zMzMzMzMzMzMxmzMzMzMzMzMx4/////////4iP/////////4
fMzMzMzMzMzMx4////////+IiIiIj//////4fMzMzMzMzMzMzMZszMzMzMzMzMeP////////////////
////+MzMzMzMzMzMzMyP////////iIiIiP//////+HzMzMzMzMzMzMzGbMzMzMzMzMzH////////////
//////////fMzMzMzMzMzMzMeP////////iIiIj///////98zMzMzMzMzMzMxmzMzMzMzMzMyP//////
//////////////+HzMzMzMzMzMzMzHj/////////+IiP////////jMzMzMzMzMzMzMZszMzMzMzMzMj/
////////////////////jMzMzMzMzMzMzMzIj////////////////////4zMzMzMzMzMzMzGTMzMzMzM
zMzH////////////////////+HzMzMzMzMzMzMzMx4////////////////////+MzMzMzMzMzMzMxAzM
zMzMzMzMx/////////////////////jMzMzMzMzMzMzMzMyI///////////////////4fMzMzMzMzMzM
zMAGzMzMzMzMzMeP//////////////////+HzMzMzMzMzMzMzMzMeP//////////////////+HzMzMzM
zMzMzMxgBszMzMzMzMzHj//////////////////4fMzMzMzMzMzMzMzMzMeP//////////////////h8
zMzMzMzMzMzMYADMzMzMzMzMzI//////////////////+HzMzMzMzMzMzMzMzMzHj///////////////
///4zMzMzMzMzMzMzAAAbMzMzMzMzMyP/////////////////4fMzMzMzMzMzMzMzMzMzHj/////////
////////+MzMzMzMzMzMzMYAAEzMzMzMzMzMj/////////////////+MzMzMzMzMzMzMzMzMzMzIj///
/////////////4fMzMzMzMzMzMzEAAAGzMzMzMzMzHj////////////////4fMzMzMzMzMzMzMzMzMzM
x4////////////////+MzMzMzMzMzMzMYAAABMzMzMzMzMx4////////////////h8zMzMzMzMzMzMzM
zMzMzMx4///////////////4fMzMzMzMzMzMzEAAAABszMzMzMzMx4//////////////+HzMzMzMzMzM
zMzMzMzMzMzMx4//////////////+MzMzMzMzMzMzMYAAAAATMzMzMzMzMyP/////////////4fMzMzM
zMzMzMzMzMzMzMzMzMeI/////////////4fMzMzMzMzMzMzEAAAAAAbMzMzMzMzMeP////////////h8
zMzMzMzMzMzMzMzMzMzMzMzMeI////////////h8zMzMzMzMzMzMYAAAAAAAbMzMzMzMzMeP////////
//iHzMzMzMzMzMzMzMzMzMzMzMzMzMyI//////////+HzMzMzMzMzMzMxgAAAAAAAEzMzMzMzMzMeP//
//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMx4/////////4fMzMzMzMzMzMzMQAAAAAAAAGzMzMzMzM
zMeI//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4j//////4h8zMzMzMzMzMzMxgAAAAAAAAAGzM
zMzMzMzMx4iIiIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiIj/+Ih3zMzMzMzMzMzMzGAAAAAAAA
AAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx3iId8zMzMzMzMzMzMzMYAAA
AAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
xgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzGAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM
zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA
AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+
AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA
B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA
AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA
AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA
AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA
AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA
AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA
AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA
AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA
AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf/////
+AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w==
</value>
</data>
</root>
+4 -5
View File
@@ -29,7 +29,6 @@ using System.IO;
using CefSharp;
using System.IO.Compression;
using AllBase.Helper;
using TemuKJD.KJDForms.CollectForms;
using System.Drawing.Drawing2D;
using NaiBa.CefHelper;
using Newtonsoft.Json.Linq;
@@ -647,14 +646,14 @@ namespace TemuKJD
ShowMainPanel(uploadForm, sender as Panel);
}
private CollectForm collectForm;
//private CollectForm collectForm;
private void pnlCollect_Click(object sender, EventArgs e)
{
if (collectForm == null)
//if (collectForm == null)
{
collectForm = new CollectForm();
//collectForm = new CollectForm();
}
ShowMainPanel(collectForm, sender as Panel);
//ShowMainPanel(collectForm, sender as Panel);
}
private void max_Click(object sender, EventArgs e)
+10
View File
@@ -1012,5 +1012,15 @@ namespace TemuKJD.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap 齿轮 {
get {
object obj = ResourceManager.GetObject("齿轮", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}
+47 -44
View File
@@ -121,8 +121,8 @@
<data name="login_bg_agent" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\login_bg_agent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_商品上下架_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_商品上下架_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="main_form_top_right_bg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\main_form_top_right_bg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_default_icon_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_default_icon_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -166,6 +166,9 @@
<data name="_base" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\static\base.css;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="tree_子账号管理_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_子账号管理_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="min" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\min.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -178,15 +181,18 @@
<data name="choice_chat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\choice_chat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="system_pdd" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\system_pdd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="tree_用户管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_用户管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_collect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_collect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="SalesCenter_hover" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\salescenter.hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="choice_buyer_blast" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\choice_buyer_blast.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_子账号管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_子账号管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SalesCenter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\salescenter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -199,17 +205,17 @@
<data name="tree_店铺列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_店铺列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_sa" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_sa.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_sales_center_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\main_menu_sales_center_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_default_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_default_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_用户管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_用户管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="system_proxy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\system_proxy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="公告发布" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\公告发布.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="normal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\normal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -238,8 +244,8 @@
<data name="main_form_logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\main_form_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_清理无流量" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_清理无流量.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="max_hover" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\max.hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_运费模板" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_运费模板.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -247,8 +253,8 @@
<data name="main_menu_settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="max_hover" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\max.hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="tree_商品上下架_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_商品上下架_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="login_bg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\login_bg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -259,15 +265,15 @@
<data name="jquery_dad_min" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\static\js\jquery.dad.min.js;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="template" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\template.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="choice_order" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\choice_order.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="close_hover" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\close.hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_云违规排查_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_云违规排查_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_collect_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_collect_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -277,17 +283,20 @@
<data name="system_1688" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\system_1688.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="system_proxy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\system_proxy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_佣金设置_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_佣金设置_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BaseMsgErr" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\basemsgerr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_form_top_right_bg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\main_form_top_right_bg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="system_pdd" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\system_pdd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_产品数据库_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_产品数据库_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="tree_清理无流量" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_清理无流量.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="nopic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\static\nopic.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -298,17 +307,14 @@
<data name="banner_bg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\banner_bg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_解除限制_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_解除限制_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_sales_center" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\main_menu_sales_center.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_运费模板_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_运费模板_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="公告发布" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\公告发布.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="tree_产品数据库_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_产品数据库_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BaseMsgInfo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\basemsginfo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -331,8 +337,8 @@
<data name="close" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SalesCenter_hover" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\salescenter.hover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="main_menu_collect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_collect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_库存管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_库存管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -358,14 +364,20 @@
<data name="choice_upload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\choice_upload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="choice_extend" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\choice_extend.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_用户管理_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_用户管理_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="choice_extend" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\choice_extend.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="main_menu_sa_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_sa_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_解除限制_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_解除限制_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FullPaste" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\fullpaste.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -376,22 +388,13 @@
<data name="main_menu_upload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\main_menu_upload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_云违规排查_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\tree_云违规排查_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="template" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\template.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="qrcode" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\qrcode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_sa" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_sa.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="main_menu_sa_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\main_menu_sa_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_子账号管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_子账号管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tree_子账号管理_select" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tree_子账号管理_select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="齿轮" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\齿轮.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

+12 -1
View File
@@ -20,6 +20,7 @@ using System.Threading;
using System.Threading.Tasks;
using Work;
using Work.DouyinApiClass;
using AllBase.Model.Param.TemuProductManage;
namespace TemuKJD
{
@@ -30,8 +31,12 @@ namespace TemuKJD
{
InitOem();
InitProxy();
GlobalConfig.ProductWords = NaiBa.Util.Helper.ConfigHelper.LoadConfig<TemuProductWords>("product_words");
if (GlobalConfig.ProductWords == null)
GlobalConfig.ProductWords = new TemuProductWords();
// 抖音账号登录信息
#region 抖音账号登录信息
try { GlobalConfig.DouUserCookies = NaiBa.Util.Helper.FileHelper.ReadAllText("data\\config\\dou_user_cookies")?.Trim('\"'); } catch { }
if (GlobalConfig.DouUserCookies == null)
GlobalConfig.DouUserCookies = "";
@@ -43,6 +48,7 @@ namespace TemuKJD
GlobalConfig.dicLocalStorage = NaiBa.Util.Helper.ConfigHelper.LoadConfig<IDictionary<string, object>>("dou_local_Storage");
if (GlobalConfig.dicLocalStorage == null)
GlobalConfig.dicLocalStorage = new Dictionary<string, object>();
#endregion
#region 获取抖音类目
DyCategoryParam.DyCategorys = Properties.Resources.DyCategorys;
@@ -455,5 +461,10 @@ namespace TemuKJD
if (ViolateRuleParam.LstViolateRuleNameSelect != null)
NaiBa.Util.Helper.ConfigHelper.SaveConfig<List<string>>("violate_rule_name_select", ViolateRuleParam.LstViolateRuleNameSelect);
}
public static void SaveProductWords()
{
NaiBa.Util.Helper.ConfigHelper.SaveConfig("product_words", GlobalConfig.ProductWords);
}
}
}