广告直通车功能 2修复活动勾选问题 3加入发货台功能完成20%

This commit is contained in:
wule committed 2025-11-07 19:38:57 +08:00
1 parent a6b36c64b0
commit e2b37df00b
35 files changed
+6832 -236

No files matched your search

+2
View File
@@ -228,6 +228,8 @@
<Compile Include="Model\Result\TemuDetailProductInfo.cs" />
<Compile Include="Model\Param\TemuProductManage\TemuProductParam.cs" />
<Compile Include="Model\Result\KJDDBProduct.cs" />
<Compile Include="Model\Result\TemuResult\AdsDetailInfo.cs" />
<Compile Include="Model\Result\TemuResult\AdsMallGoodsInfo.cs" />
<Compile Include="Model\Result\TemuResult\AiSkuImgInfo.cs" />
<Compile Include="Model\Result\TemuResult\TemuSizeConfigResult\TemuSizeConfigInfo.cs" />
<Compile Include="Model\Result\TemuReturnPackageDetailInfo.cs" />
+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 661;
public static int VersionCount = 667;
//public static int VersionCount = 613;
/// <summary>
+17
View File
@@ -168,6 +168,23 @@ namespace AllBase.Model.Result
//在一次检测中是否已检测同一个账户下的不同店铺,如果已检测,使用相同cookie即可,不用多次检测
public bool isCheckLogin { get; set; }
/// <summary>
/// temu推广直通车用户Id
/// </summary>
public string ad_seller_unique_id { get; set; }
/// <summary>
/// temu推广直通车链接地址(含信息)
/// </summary>
public string ad_url { get; set; }
/// <summary>
/// temu推广直通车cookie
/// </summary>
public string ad_cookie { get; set; }
/// <summary>
/// temu推广直通车登录状态
/// </summary>
public string ad_login_status { get; set; }
}
public class AuthInfo
@@ -0,0 +1,150 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result.TemuResult
{
public class AdsDetailInfo
{
public string ad_id { get; set; } // "300000013263418354",
public string goods_id { get; set; } // "601100393886730",
public string goods_title { get; set; } // "女式白色拖鞋,带有花卉点缀 - 开口趾,平跟,人造盖,易于套穿的设计女士夏季坡跟凉鞋:时尚低跟凉鞋舒适行走,足弓支撑,休闲一脚蹬夏季鞋女士坡跟凉鞋镂空一脚蹬防水台坡跟凉鞋夏季休闲步行鞋女式凉鞋时尚夏季舒适拖鞋带花朵休闲防滑防水台轻质坡跟鞋",
public string goods_image_url { get; set; } // "https://img.kwcdn.com/product/fancy/4ad9b614-f0aa-482b-8064-801d0c22cb68.jpg",
public string goods_min_price { get; set; } // "¥26.71",
public string goods_max_price { get; set; } // "¥40.95",
public long? roas { get; set; } // 100000,
public string roas_str { get; set; } // "10",
/// <summary>
/// 广告投资回报率 (ROAS)
/// </summary>
public decimal? real_roas { get; set; } // 0,
/// <summary>
/// 广告费比(广告)
/// </summary>
public decimal? acos { get; set; } // 0,
public int? ad_show_status { get; set; } // 0,
public int? ad_phase { get; set; } // 0,
public int? budget { get; set; } // -1,
public string budget_str { get; set; } // "不限",
public int? used_budget { get; set; } // 0,
/// <summary>
/// 总花费
/// </summary>
public decimal? used_money { get; set; } // null,
/// <summary>
/// 订单量
/// </summary>
public int? order_num { get; set; } // 0,
/// <summary>
/// 曝光量
/// </summary>
public int? impr_num { get; set; } // 0,
/// <summary>
/// 申报价销售额
/// </summary>
public decimal? supply_price_sale { get; set; } // 0,
public reports_summary_dto_info reports_summary_dto { get; set; }
public object sku_encode { get; set; } // null,
public string spu_id { get; set; } // "1458392528",
public int? budget_remaining_modify_count { get; set; } // 5,
public int? budget_max_modify_count { get; set; } // 5,
public int? roas_remaining_modify_count { get; set; } // 0,
public int? roas_max_modify_count { get; set; } // 0,
public object forbid_reason { get; set; } // null,
public object remain_daily_budget_percent { get; set; } // null,
public ad_roas_info ad_roas_info { get; set; }
public List<int> ad_advice_types { get; set; } // [ 4 ]
public List<string> site_name_list { get; set; } // [ "泰国", "卡塔尔", "约旦", "巴西", ... ]
public object site_price_info_list { get; set; } // null,
public object site_status_info_list { get; set; } // null,
public object group { get; set; } // null
// 自定义参数
public string shopId { get; set; }
}
public class ad_roas_info
{
public int? real_order_cnt { get; set; } // 0,
public int? expected_order_cnt { get; set; } // 10,
public object limit_roas { get; set; } // null,
public int? ad_roas_advice_type { get; set; } // 4
}
public class reports_summary_dto_info
{
public reports_summary_dto_item_info impr_cnt_all { get; set; }
public reports_summary_dto_item_info cart_cnt_all { get; set; }
public reports_summary_dto_item_info clk_cnt_all { get; set; }
public reports_summary_dto_item_info ad_spend_all { get; set; }
public reports_summary_dto_item_info order_pay_amt_all { get; set; }
public reports_summary_dto_item_info order_pay_cnt_all { get; set; }
public reports_summary_dto_item_info roas_all { get; set; }
public reports_summary_dto_item_info ctr_all { get; set; }
public reports_summary_dto_item_info acos_all { get; set; }
/// <summary>
/// 每笔成交花费
/// </summary>
public reports_summary_dto_item_info transaction_cost { get; set; }
public object ad_cost_ratio { get; set; }
/// <summary>
/// 件数
/// </summary>
public reports_summary_dto_item_info goods_num { get; set; }
public object week_roas { get; set; }
public natural_week_roas_all_info natural_week_roas_all { get; set; }
public object month_roas { get; set; }
public reports_summary_dto_item_info cvr { get; set; }
public reports_summary_dto_item_info net_ad_spend { get; set; }
public reports_summary_dto_item_info net_goods_num { get; set; }
public reports_summary_dto_item_info net_order_pay_amt { get; set; }
public reports_summary_dto_item_info net_roas { get; set; }
public reports_summary_dto_item_info net_acos { get; set; }
public reports_summary_dto_item_info net_order_pay_cnt { get; set; }
/// <summary>
/// 每笔净成交花费
/// </summary>
public reports_summary_dto_item_info net_transaction_cost { get; set; }
public reports_summary_dto_item_info total_impr_cnt { get; set; }
public reports_summary_dto_item_info total_order_pay_amt { get; set; }
public reports_summary_dto_item_info total_order_pay_cnt { get; set; }
/// <summary>
/// 点击量
/// </summary>
public reports_summary_dto_item_info total_clk_cnt { get; set; }
public reports_summary_dto_item_info total_roas { get; set; }
/// <summary>
/// 点击率
/// </summary>
public reports_summary_dto_item_info total_ctr { get; set; }
/// <summary>
/// 转化率
/// </summary>
public reports_summary_dto_item_info total_cvr { get; set; }
public reports_summary_dto_item_info total_acos { get; set; }
public reports_summary_dto_item_info total_transaction_cost { get; set; }
public reports_summary_dto_item_info total_goods_num { get; set; }
}
public class natural_week_roas_all_info
{
public object real_roas { get; set; } // null,
public object real_roas_val { get; set; } // null,
public object incr_rate { get; set; } // null,
public object plan_roas { get; set; } // null,
public object plan_roas_val { get; set; } // null
}
public class reports_summary_dto_item_info
{
public int? val { get; set; } // 0,
public object incr_rate { get; set; } // null,
public string trans_val { get; set; } // "0"
}
}
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result.TemuResult
{
/// <summary>
/// 直通车查询商品结果
/// </summary>
public class AdsQueryMallGoodsInfo
{
public long? mall_id { get; set; } // "634418216147215",
public int? mall_type { get; set; } // "0",
public List<ads_goods_info> goods_info_list { get; set; }
public List<ads_optional_category_info> optional_category_list { get; set; }
public List<ads_site_info> site_info_list { get; set; }
}
public class ads_site_info
{
public int? site_id { get; set; } // 129,
public string site_name{ get; set; } // "泰国",
public string img_url { get; set; } // null
public object promotion_info { get; set; } // null
}
public class ads_optional_category_info
{
public long? category_id { get; set; } // 24389,
public string category_name { get; set; } // "庭院、草坪和园艺"
}
public class ads_goods_info
{
public long? goods_id { get; set; } // "601099667164131",
public string goods_name { get; set; } // "Whimsical Gecko Garden Statue - Resin Hanging Sculpture For Outdoor Decor, Cartoon Animal Theme, Perfect For Ages 14+",
public string thumb_url { get; set; } // "https://img.kwcdn.com/product/fancy/e758f971-5e1f-4630-a6fa-26823c6c69a8.jpg",
public object sku_encode { get; set; } // null,
public string spu_id { get; set; } // "402033440",
public string supply_price_min { get; set; } // "¥29.34",
public string supply_price_max { get; set; } // "¥29.34",
public List<string> category_name_list{ get; set; } // [ "庭院、草坪和园艺" ],
public long? create_timestamp { get; set; } // 1726500080000,
public int? sku_total_quantity { get; set; } // 1,
public int? sales { get; set; } // 7,
public List<int> site_list { get; set; } // [ 129, 130, 131, 132, 134, ... ]
public object gray_reason { get; set; } // null
public List<string> site_name_list { get; set; } // [ "泰国", "卡塔尔", "约旦", "巴西", "阿曼", ... ]
public object site_price_info_list { get; set; } // null,
public object coupon_discount { get; set; } // null,
public object coupon_expiration_time { get; set; } // null
// 自定义参数
public string shopId { get; set; }
}
}
@@ -309,7 +309,7 @@ namespace KJD_Web.BLL.BXX
login_status2 = row["login_status2"].ToString(),
add_product_remaining = row["add_product_remaining"].ParseToInt(),
add_product_month = row["add_product_month"].ParseToInt(),
operate_sub_sa_name = row["operate_sub_sa_name"] as string,
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
};
shopList.Add(shop);
+53 -13
View File
@@ -94,11 +94,7 @@ namespace KJD_Web.BLL
}
else
{
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.shop_id,s.shop_account,s.sub_user_name,s.user_name," +
"s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month,s.add_time,s.mdy_time," +
"s.add_sub_sa_time,s.operate_sub_sa_name";
//sql += " FROM kjd.shop s WHERE 1=1";
sql += " FROM kjd.shop s LEFT JOIN kjd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
sql = "SELECT s.* FROM kjd.shop s LEFT JOIN kjd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
sql += where; // where 子句
@@ -130,8 +126,11 @@ namespace KJD_Web.BLL
login_status2 = row["login_status2"].ToString(),
add_product_remaining = row["add_product_remaining"].ParseToInt(),
add_product_month = row["add_product_month"].ParseToInt(),
operate_sub_sa_name = row["operate_sub_sa_name"] as string,
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
ad_cookie = row["ad_cookie"].ParseToString(),
ad_login_status = row["ad_login_status"].ParseToString(),
ad_seller_unique_id = row["ad_seller_unique_id"].ParseToString(),
ad_url = row["ad_url"].ParseToString(),
};
shopList.Add(shop);
}
@@ -272,10 +271,7 @@ namespace KJD_Web.BLL
}
else
{
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.shop_id,s.shop_account,s.sub_user_name,s.user_name," +
"s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month,s.add_time,s.mdy_time," +
"s.add_sub_sa_time,s.operate_sub_sa_name";
sql += " FROM kjd.shop s LEFT JOIN kjd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
sql = "SELECT s.* FROM kjd.shop s LEFT JOIN kjd.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
sql += where; // where 子句
@@ -307,8 +303,11 @@ namespace KJD_Web.BLL
login_status2 = row["login_status2"].ToString(),
add_product_remaining = row["add_product_remaining"].ParseToInt(),
add_product_month = row["add_product_month"].ParseToInt(),
operate_sub_sa_name = row["operate_sub_sa_name"] as string,
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
ad_cookie = row["ad_cookie"].ParseToString(),
ad_login_status = row["ad_login_status"].ParseToString(),
ad_seller_unique_id = row["ad_seller_unique_id"].ParseToString(),
ad_url = row["ad_url"].ParseToString(),
};
shopList.Add(shop);
}
@@ -674,6 +673,47 @@ namespace KJD_Web.BLL
return "{\"code\":19999,\"msg\":\"未知错误\"}";
}
public string MdyAdsCookieAndLoginStatus(string inputData)
{
if (!string.IsNullOrEmpty(inputData))
{
string shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id");
string ad_url = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ad_url"));
string ad_seller_unique_id = RegexUtils.GetStringQuery(ref inputData, "ad_seller_unique_id");
string ad_login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ad_login_status"));
string ad_cookie = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ad_cookie"));
int r2 = 0;
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
if (string.IsNullOrEmpty(shop_id))
{
return "{\"code\":500,\"msg\":\"店铺没有登录名\"}";
}
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
string sql = "update kjd.shop set";
if (ad_url != null)
sql += " ad_url='" + ad_url + "',";
if (ad_seller_unique_id != null)
sql += " ad_seller_unique_id='" + ad_seller_unique_id + "',";
if (ad_login_status != null)
sql += " ad_login_status='" + ad_login_status + "',";
if (ad_cookie != null)
sql += " ad_cookie='" + ad_cookie + "',";
sql = sql.TrimEnd(',');
sql += " where shop_id='" + shop_id + "'";
var rst = mySql.ExecuteNonQuery(sql);
mySql.Close();
if (rst)
{
return "{\"code\":200,\"msg\":\"success\"}";
}
}
return "{\"code\":19999,\"msg\":\"未知错误\"}";
}
public string DelShop(string inputData, bool isAdmin=false)
{
@@ -12,7 +12,13 @@ namespace KJD_Web.Model.ShopModel
public string login_pass { get; set; }
public string cookie { get; set; }
public string cookie2 { get; set; }
/// <summary>
/// 拼多多AntiContents
/// </summary>
public string anti_contents { get; set; }
/// <summary>
/// 拼多多Id
/// </summary>
public string pddid { get; set; }
public string shop_id { get; set; }
public string shop_account { get; set; }
@@ -29,5 +35,22 @@ namespace KJD_Web.Model.ShopModel
public int add_product_month { get; set; }
public string operate_sub_sa_name { get; set; }
/// <summary>
/// temu推广直通车用户Id
/// </summary>
public string ad_seller_unique_id { get; set; }
/// <summary>
/// temu推广直通车链接地址(含信息)
/// </summary>
public string ad_url { get; set; }
/// <summary>
/// temu推广直通车cookie
/// </summary>
public string ad_cookie { get; set; }
/// <summary>
/// temu推广直通车登录状态
/// </summary>
public string ad_login_status { get; set; }
}
}
@@ -120,6 +120,19 @@ namespace KJD_Web
Context.Response.End();
}
[WebMethod]
public void mdy_shop_ads_cookie_and_login_status()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new ShopManage().MdyAdsCookieAndLoginStatus(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void admin_get_shop_list()
{
+86
View File
@@ -304,6 +304,92 @@ namespace TemuKJD.BLL
return result;
}
public static string PostResponseAds(ShopLoginInfo shop, string _url, string _data, string referer)
{
string cookies = "";
var cookiesArrAds = shop.ad_cookie.Replace("\\", "").Split(';').Select(s => s.Trim());
foreach (var cook in cookiesArrAds)
{
if (cook.StartsWith("mallid"))
cookies += "mallid=" + shop.ShopId + "; ";
else if (cook.StartsWith("MALL_ID"))
cookies += "MALL_ID=" + shop.ShopId + "; ";
else
cookies += cook + "; ";
}
cookies = cookies.Trim().TrimEnd(';');
//var cookiesArr = shop.Cookies2.Replace("\\", "").Split(';').Select(s => s.Trim());
//foreach (var cook in cookiesArr)
//{
// if (("; " + cookies).Contains("; " + cook))
// continue;
// if (cook.StartsWith("mallid"))
// cookies += "mallid=" + shop.ShopId + "; ";
// else if (cook.StartsWith("MALL_ID"))
// cookies += "MALL_ID=" + shop.ShopId + "; ";
// else
// cookies += cook + "; ";
//}
HttpWebResponse response = null;
string result;
try
{
string url = _url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//request.KeepAlive = true;
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
request.Headers.Add("x-phan-data", @"0aeJx7xMxiYAgkomMBESQC7A");
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
request.Headers.Add("sec-ch-ua-mobile", @"?0");
request.Headers.Add("X-Ad-Request-Id", @"6c0d8ba5-93f2-4083-b56d-8cb9e2362139");
//request.Headers.Add("x-document-referer", @"https://ads.temu.com/index.html?adAreaOverride=2&refer_page_name=login&refer_page_id=22942_1762243593932_o1u0yfk48r&refer_page_sn=22942&_x_sessn_id=rzrz06wgzk&is_back=1");
request.Headers.Add("x-document-referer", shop.ad_url);
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
request.Accept = "application/json, text/plain, */*";
request.ContentType = "application/json;charset=UTF-8";
request.Headers.Add("Origin", @"https://ads.temu.com");
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
request.Headers.Add("Sec-Fetch-Mode", @"cors");
request.Headers.Add("Sec-Fetch-Dest", @"empty");
request.Referer = referer;
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
string body = _data;
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
request.ContentLength = postBytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(postBytes, 0, postBytes.Length);
stream.Close();
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;
}
public static string PDDPostResponse(ShopLoginInfo shop, string _url, string _data, string referer, string AntiContent = null)
{
+6 -5
View File
@@ -231,17 +231,18 @@ namespace TemuKJD.BLL
shop.SubUserName = BaseRegex.GetStringJson(ref shopStr, "sub_user_name");
shop.GroupName = BaseRegex.GetStringJson(ref shopStr, "shop_group");
//shop.Cookies = BaseRegex.GetStringJson(ref shopStr, "cookie");
shop.Cookies = jObj["cookie"].IsNullOrEmpty() ? "[]" : jObj["cookie"].ToString();
shop.Cookies = shop.Cookies.Replace("&", "&").Replace("%", "%").Replace("+", "+");
//shop.Cookies2 = BaseRegex.GetStringJson(ref shopStr, "cookie2").ParseToString();
shop.Cookies2 = jObj["cookie2"].ToString();
shop.Cookies2 = shop.Cookies2.Replace("&", "&").Replace("%", "%").Replace("+", "+");
shop.Cookies = jObj["cookie"].ParseToString().Replace("&", "&").Replace("%", "%").Replace("+", "+").Replace(""", "\"");
shop.Cookies2 = jObj["cookie2"].ParseToString().Replace("&", "&").Replace("%", "%").Replace("+", "+").Replace(""", "\"");
shop.CompanyName = BaseRegex.GetStringJson(ref shopStr, "company_name");
shop.Notes = BaseRegex.GetStringJson(ref shopStr, "notes");
shop.LoginStatus = BaseRegex.GetStringJson(ref shopStr, "login_status");
shop.LoginStatus2 = BaseRegex.GetStringJson(ref shopStr, "login_status2");
shop.OperateSubSaName = BaseRegex.GetStringJson(ref shopStr, "operate_sub_sa_name");
shop.AddProductRemaining = BaseRegex.GetIntJson(ref shopStr, "add_product_remaining");
shop.ad_cookie = BaseRegex.GetStringJson(ref shopStr, "ad_cookie").ParseToString().Replace("&", "&").Replace("%", "%").Replace("+", "+").Replace(""", "\"");
shop.ad_login_status = BaseRegex.GetStringJson(ref shopStr, "ad_login_status");
shop.ad_seller_unique_id = BaseRegex.GetStringJson(ref shopStr, "ad_seller_unique_id");
shop.ad_url = BaseRegex.GetStringJson(ref shopStr, "ad_url");
shop.pddid = BaseRegex.GetStringJson(ref shopStr, "pddid");
if (BaseClass.MainPath == "binxixi")
+18
View File
@@ -171,6 +171,12 @@
<Compile Include="KJDForms\AdminForms\AdminProductPriceCheckForm.Designer.cs">
<DependentUpon>AdminProductPriceCheckForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\JoinDeliveryFrom.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\JoinDeliveryFrom.Designer.cs">
<DependentUpon>JoinDeliveryFrom.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\ProductChangePriceForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -183,6 +189,12 @@
<Compile Include="KJDForms\ProductForms\PurchasePriceForm.Designer.cs">
<DependentUpon>PurchasePriceForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\TemuAdsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\TemuAdsForm.Designer.cs">
<DependentUpon>TemuAdsForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductSelectForms\DbProductCategorySearch.cs">
<SubType>Form</SubType>
</Compile>
@@ -857,12 +869,18 @@
<EmbeddedResource Include="KJDForms\AdminForms\AdminProductPriceCheckForm.resx">
<DependentUpon>AdminProductPriceCheckForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\JoinDeliveryFrom.resx">
<DependentUpon>JoinDeliveryFrom.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\ProductChangePriceForm.resx">
<DependentUpon>ProductChangePriceForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\PurchasePriceForm.resx">
<DependentUpon>PurchasePriceForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\TemuAdsForm.resx">
<DependentUpon>TemuAdsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductSelectForms\DbProductCategorySearch.resx">
<DependentUpon>DbProductCategorySearch.cs</DependentUpon>
</EmbeddedResource>
+9 -5
View File
@@ -35,14 +35,16 @@
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("认领待上传");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("库存上传");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("商品核价");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] {
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("加入发货台");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4,
treeNode5,
treeNode6,
treeNode7});
treeNode7,
treeNode8});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -147,10 +149,12 @@
treeNode6.Text = "库存上传";
treeNode7.Name = "商品核价";
treeNode7.Text = "商品核价";
treeNode8.Name = "超级权限管理";
treeNode8.Text = "超级权限管理";
treeNode8.Name = "加入发货台";
treeNode8.Text = "加入发货台";
treeNode9.Name = "超级权限管理";
treeNode9.Text = "超级权限管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode8});
treeNode9});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 446);
this.tv.TabIndex = 1;
+14 -1
View File
@@ -13,6 +13,7 @@ using TemuKJD.KJDForms.AdminForms;
using TemuKJD.BaseForms;
using TemuKJD.KJDForms.ProductSelectForms;
using TemuKJD.KJDForms.ProductThirdSelectForms;
using TemuKJD.KJDForms.ProductForms;
namespace TemuKJD.KJDForms.AdminForms
{
@@ -25,6 +26,7 @@ namespace TemuKJD.KJDForms.AdminForms
public Lazy<DbProductSelectListManageForm> dbProductSelectListManageForm = new Lazy<DbProductSelectListManageForm>();
public Lazy<ProductThirdSelectListManageForm> productThirdSelectListManageForm = new Lazy<ProductThirdSelectListManageForm>();
public Lazy<AdminProductPriceCheckForm> adminProductPriceCheckForm = new Lazy<AdminProductPriceCheckForm>();
public Lazy<JoinDeliveryFrom> joinDeliveryFrom = new Lazy<JoinDeliveryFrom>();
public AdminForm()
{
@@ -35,7 +37,8 @@ namespace TemuKJD.KJDForms.AdminForms
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "超级用户管理", "超级店铺管理", "选品数据库", "选品加价管理", "认领待上传", "库存上传", "商品核价" };
List<string> hideName = new List<string>() { "超级用户管理", "超级店铺管理", "选品数据库", "选品加价管理", "认领待上传", "库存上传", "商品核价",
"加入发货台" };
if (BaseClass.GroupId == 3)
{
@@ -49,6 +52,9 @@ namespace TemuKJD.KJDForms.AdminForms
hideName.Remove("认领待上传");
hideName.Remove("库存上传");
hideName.Remove("商品核价");
#if DEBUG
hideName.Remove("加入发货台");
#endif
}
if (BaseClass.SaLevel==2)
{
@@ -56,6 +62,9 @@ namespace TemuKJD.KJDForms.AdminForms
hideName.Remove("认领待上传");
hideName.Remove("库存上传");
hideName.Remove("商品核价");
#if DEBUG
hideName.Remove("加入发货台");
#endif
}
}
@@ -103,6 +112,10 @@ namespace TemuKJD.KJDForms.AdminForms
case "商品核价":
SetForm(adminProductPriceCheckForm.Value);
break;
case "加入发货台":
joinDeliveryFrom.Value.IsAdmin = true;
SetForm(joinDeliveryFrom.Value);
break;
}
}));
}).Start();
@@ -104,7 +104,9 @@ namespace TemuKJD.KJDForms.AdminForms
public void SearchShop(int page)
{
List<string> shopIdSelectList = GetCheckedShopIdList();
List<string> userShopIdList = dgvShop.Rows.Cast<DataGridViewRow>()
.Where(r => r.Cells["colSelect"].Value.ParseToBool())
.Select(r => r.Cells["colShopId"].Value.ParseToString() + r.Cells["colUser"].Value.ParseToString()).ToList();
if (InvokeRequired)
{
Invoke(new Action(() =>
@@ -133,7 +135,7 @@ namespace TemuKJD.KJDForms.AdminForms
Invoke(new Action(() =>
{
int rowIndex = this.dgvShop.Rows.Add(
shopIdSelectList.Contains(shop.ShopId + shop.UserName),
userShopIdList.Contains(shop.ShopId + shop.UserName),
shop.UserName,
shop.LoginName,
shop.ShopId,
@@ -144,11 +146,6 @@ namespace TemuKJD.KJDForms.AdminForms
string.Empty
);
displayShopStatus(shop);
//var row = dgvShop.Rows[rowIndex];
//(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
//(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
//(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
//(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}));
}
@@ -159,21 +156,6 @@ namespace TemuKJD.KJDForms.AdminForms
});
}
private List<string> GetCheckedShopIdList()
{
List<string> shopNameList = new List<string>();
for (int i = 0; i < dgvShop.Rows.Count; i++)
{
if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
{
string shopName = dgvShop.Rows[i].Cells["colShopId"].Value.ParseToString();
shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString();
shopNameList.Add(shopName);
}
}
return shopNameList;
}
public List<ShopLoginInfo> AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50)
{
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
@@ -213,6 +195,21 @@ namespace TemuKJD.KJDForms.AdminForms
txtNotes.Text = txtShopId.Text = txtShopName.Text = "";
}
void displayShopStatus(ShopLoginInfo shop)
{
bool canUse = shop.LoginStatus2 == "国际版在线";
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName);
foreach (var row in rows)
{
row.Cells["colCanUse"].Value = canUse;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
@@ -248,21 +245,6 @@ namespace TemuKJD.KJDForms.AdminForms
displayShopStatus(shop);
}
void displayShopStatus(ShopLoginInfo shop)
{
bool canUse = shop.LoginStatus2 == "国际版在线";
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName);
foreach (var row in rows)
{
row.Cells["colCanUse"].Value = canUse;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
}
private void dgvCheckPrice_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
@@ -508,7 +508,7 @@ namespace TemuKJD.KJDForms.AdminForms
foreach (var sc in campanys)
{
sc.LoginStatus = "未登录";
shop.Cookies = "empty=true;";
sc.Cookies = "empty=true;";
}
}
else
@@ -32,6 +32,10 @@ namespace TemuKJD.KJDForms.AdminForms
public partial class AdminShopLoginForm : LRBaseForm
{
public int CloseAfterSecond { get; set; }
/// <summary>
/// 推广直通车登录
/// </summary>
public bool IsAdsLogin { get; set; } = false;
public EnumOpenType openType = EnumOpenType.manage;
public bool isMultiLogin = false;
public string MultiLoginCookieName = "";
@@ -234,7 +238,7 @@ namespace TemuKJD.KJDForms.AdminForms
List<Cookie> cookieList2 = CEFBrowser.GetCookieList(shopCookieHead2, cefWebBrowser.GetCookieManager(null)); // cef138
if (cookieList2 != null && cookieList2.Count > 0)
{
for(int i =0; i < cookieList2.Count; i++)
for(int i = 0; i < cookieList2.Count; i++)
{
var cookie = cookieList2[i];
cookies2 += cookie.Name + "=" + cookie.Value + "; ";
@@ -280,24 +284,104 @@ namespace TemuKJD.KJDForms.AdminForms
ShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
}
OnSaveComplete(shop);
if (this.Created && this.chkCloseAfterLogin.Checked)
if (!IsAdsLogin)
{
//Invoke(new Action(() => { this.Close(); }));
if (this.Created && this.chkCloseAfterLogin.Checked)
Invoke(new Action(() => { this.Close(); }));
else
break;
}
}
if (IsAdsLogin && !string.IsNullOrEmpty(shop.ad_seller_unique_id) && 1 == 2)
{
var obtainCodeRst = ShopListForm.GetObtainCode(shop);
var obtainCode = BaseRegex.GetStringJson(ref obtainCodeRst, "code");
//https://ads.temu.com/login.html?
//redirectUrl=https%3A%2F%2Fads.temu.com%2Findex.html%3FadAreaOverride%3D2&userType=1&mallType=0
//&ticket=Zjze2NHyZFaGP88ROyjN19a47ae59611391a296ae6403bbbfa39e9046ceba744aafe8227fd6
//&adSellerUniqueId=eyJ1IjoiTVF3NFRGVmN2ZUVyZG1USDdOQ2o5dz09IiwidiI6MX0%3D&source=2&seller_source=11&adAreaOverride=2
string url = "https://ads.temu.com/login.html?" +
"redirectUrl=https%3A%2F%2Fads.temu.com%2Findex.html%3FadAreaOverride%3D2&userType=1&mallType=0&ticket=" + obtainCode +
"&adSellerUniqueId=" + shop.ad_seller_unique_id + "&source=2&seller_source=11&adAreaOverride=2";
cefWebBrowser.Load(url);
}
else if (IsAdsLogin)
{
cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sGetElementWithText);
//点击商品推广按钮
var adsJsStr = "window.scrollTo(0, document.body.scrollHeight);";
var adsResponse = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(adsJsStr);
adsResponse.Wait(1000);
Thread.Sleep(Randomx.GetId(500, 1000));
adsJsStr = "var clickItem = getElementWithText('商品推广'); " +
"clickItem.click()";
adsResponse = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(adsJsStr);
adsResponse.Wait(1000);
Thread.Sleep(Randomx.GetId(500, 1000));
// 模拟人为点击一次,否则窗口不跳转
var host = cefWebBrowser.GetBrowser().GetHost();
int x = Randomx.GetId(50, 200);
int y = Randomx.GetId(1, 10);
// 按下鼠标左键
host.SendMouseClickEvent(x, y, MouseButtonType.Left, false, 1, CefEventFlags.None);
Thread.Sleep(50 + Randomx.GetId(200));
host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None);
Thread.Sleep(Randomx.GetId(100, 500));
//点击确认授权并前往按钮
adsJsStr = "var clickItem = getElementWithText('确认授权并前往'); " +
"clickItem.parentElement.click();";
adsResponse = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(adsJsStr);
adsResponse.Wait(1000);
Thread.Sleep(Randomx.GetId(300, 800));
}
}
if (1 == 1 && this.shop != null && currentUrl.StartsWith("https://ads.temu.com/index.html?adAreaOverride="))
{
if (!cefWebBrowser.GetBrowser().MainFrame.IsValid)
continue;
if (openType != EnumOpenType.login)
continue;
if (!lstShopCompany.Any(c => c.AccountId == shop.ShopId))
continue;
shop.ad_url = txtAddress.Text;
string cookiesAds = "";
List<Cookie> cookieAdsList = CEFBrowser.GetCookieList("ads.temu.com", cefWebBrowser.GetCookieManager(null));
if (cookieAdsList != null && cookieAdsList.Count > 0)
{
for (int i = 0; i < cookieAdsList.Count; i++)
{
var cookie = cookieAdsList[i];
cookiesAds += cookie.Name + "=" + cookie.Value + "; ";
}
cookiesAds = cookiesAds.Trim().TrimEnd(';');
}
if (!string.IsNullOrEmpty(cookiesAds))
{
shop.ad_login_status = "在线";
shop.ad_cookie = cookiesAds;
StartUp.SaveLocalShopLoginInfo(); // 店铺保存到本地
ShopListForm.UpdateServerShopAdsCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
OnSaveComplete(shop);
if (this.Created && this.chkCloseAfterLogin.Checked)
{
Invoke(new Action(() => { this.Close(); }));
}
else
{
break;
}
else
break;
}
var obtainCodeRst = ShopListForm.GetObtainCode(shop);
var obtainCode = BaseRegex.GetStringJson(ref obtainCodeRst, "code");
//https://ads.temu.com/login.html?
//redirectUrl=https%3A%2F%2Fads.temu.com%2Findex.html%3FadAreaOverride%3D2&userType=1&mallType=0
//&ticket=Zjze2NHyZFaGP88ROyjN19a47ae59611391a296ae6403bbbfa39e9046ceba744aafe8227fd6
//&adSellerUniqueId=eyJ1IjoiTVF3NFRGVmN2ZUVyZG1USDdOQ2o5dz09IiwidiI6MX0%3D&source=2&seller_source=11&adAreaOverride=2
string url = "https://ads.temu.com/login.html?" +
"redirectUrl=https%3A%2F%2Fads.temu.com%2Findex.html%3FadAreaOverride%3D2&userType=1&mallType=0&ticket=" + obtainCode +
"&source=2&seller_source=11&adAreaOverride=2";
cefWebBrowser.Load(url);
}
}
});
+968
View File
@@ -0,0 +1,968 @@
namespace TemuKJD.KJDForms.ProductForms
{
partial class JoinDeliveryFrom
{
/// <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();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.btnStart = new DevComponents.DotNetBar.PanelEx();
this.txtRetryInterval = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.btnStop = new DevComponents.DotNetBar.PanelEx();
this.btnSearch = new DevComponents.DotNetBar.PanelEx();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.btnEmpty = new DevComponents.DotNetBar.PanelEx();
this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx();
this.txtNotes = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.txtShopName = new System.Windows.Forms.TextBox();
this.txtShopId = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.chkSearchAllShop = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.pbShopLoading = new System.Windows.Forms.PictureBox();
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
this.pbLoading = new System.Windows.Forms.PictureBox();
this.dgvStock = new TemuKJD.UserComponent.DataGridViewEx();
this.colUpId = new System.Windows.Forms.DataGridViewLinkColumn();
this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colStockId = new System.Windows.Forms.DataGridViewLinkColumn();
this.colParentStockId = new System.Windows.Forms.DataGridViewLinkColumn();
this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn();
this.colProductId = new System.Windows.Forms.DataGridViewLinkColumn();
this.colProdSkc = new System.Windows.Forms.DataGridViewLinkColumn();
this.colProdName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPrcie = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFrom = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colFromFake = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colInCartNumber7d = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colTodaySaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLastSevenDaysSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSalesInventoryNum = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colWaitReceiveNum = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colQualityScore = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colQualityRate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colQualityCount = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colNeedStockUp = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.splitContainer4 = new System.Windows.Forms.SplitContainer();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.btnClear = new DevComponents.DotNetBar.PanelEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colUser = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.ucGroupBoxEx3.SuspendLayout();
this.ucGroupBoxEx1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
this.splitContainer3.Panel1.SuspendLayout();
this.splitContainer3.Panel2.SuspendLayout();
this.splitContainer3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbShopLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvStock)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit();
this.splitContainer4.Panel1.SuspendLayout();
this.splitContainer4.Panel2.SuspendLayout();
this.splitContainer4.SuspendLayout();
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.ucGroupBoxEx3);
this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer3);
this.splitContainer1.Size = new System.Drawing.Size(1314, 455);
this.splitContainer1.SplitterDistance = 120;
this.splitContainer1.TabIndex = 11;
//
// ucGroupBoxEx3
//
this.ucGroupBoxEx3.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.ucGroupBoxEx3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx3.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx3.Controls.Add(this.btnStart);
this.ucGroupBoxEx3.Controls.Add(this.txtRetryInterval);
this.ucGroupBoxEx3.Controls.Add(this.label1);
this.ucGroupBoxEx3.Controls.Add(this.btnStop);
this.ucGroupBoxEx3.Controls.Add(this.btnSearch);
this.ucGroupBoxEx3.Location = new System.Drawing.Point(282, 2);
this.ucGroupBoxEx3.Name = "ucGroupBoxEx3";
this.ucGroupBoxEx3.Size = new System.Drawing.Size(1030, 120);
this.ucGroupBoxEx3.TabIndex = 666;
this.ucGroupBoxEx3.TabStop = false;
this.ucGroupBoxEx3.Text = "待发货商品操作";
//
// btnStart
//
this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStart.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnStart.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnStart.DisabledBackColor = System.Drawing.Color.Empty;
this.btnStart.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnStart.Location = new System.Drawing.Point(760, 25);
this.btnStart.Name = "btnStart";
this.btnStart.Size = new System.Drawing.Size(117, 23);
this.btnStart.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnStart.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStart.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStart.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnStart.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnStart.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnStart.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnStart.Style.GradientAngle = 90;
this.btnStart.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnStart.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnStart.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnStart.TabIndex = 439;
this.btnStart.Text = "循环加入发货台";
//
// txtRetryInterval
//
this.txtRetryInterval.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.txtRetryInterval.Location = new System.Drawing.Point(685, 25);
this.txtRetryInterval.Name = "txtRetryInterval";
this.txtRetryInterval.Size = new System.Drawing.Size(69, 23);
this.txtRetryInterval.TabIndex = 431;
this.txtRetryInterval.Text = "5";
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(611, 28);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(76, 17);
this.label1.TabIndex = 432;
this.label1.Text = "重试间隔(秒)";
//
// btnStop
//
this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStop.CanvasColor = System.Drawing.SystemColors.Control;
this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnStop.DisabledBackColor = System.Drawing.Color.Empty;
this.btnStop.Location = new System.Drawing.Point(883, 25);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(117, 23);
this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnStop.Style.GradientAngle = 90;
this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnStop.TabIndex = 668;
this.btnStop.Text = "停止操作";
//
// btnSearch
//
this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearch.Location = new System.Drawing.Point(28, 25);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(91, 23);
this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnSearch.Style.GradientAngle = 90;
this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearch.TabIndex = 427;
this.btnSearch.Text = "读取待发货";
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
//
// ucGroupBoxEx1
//
this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
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.btnEmpty);
this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop);
this.ucGroupBoxEx1.Controls.Add(this.txtNotes);
this.ucGroupBoxEx1.Controls.Add(this.label4);
this.ucGroupBoxEx1.Controls.Add(this.txtShopName);
this.ucGroupBoxEx1.Controls.Add(this.txtShopId);
this.ucGroupBoxEx1.Controls.Add(this.label2);
this.ucGroupBoxEx1.Controls.Add(this.label3);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(2, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(280, 120);
this.ucGroupBoxEx1.TabIndex = 399;
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "基础";
//
// btnEmpty
//
this.btnEmpty.CanvasColor = System.Drawing.SystemColors.Control;
this.btnEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnEmpty.DisabledBackColor = System.Drawing.Color.Empty;
this.btnEmpty.Location = new System.Drawing.Point(227, 81);
this.btnEmpty.Name = "btnEmpty";
this.btnEmpty.Size = new System.Drawing.Size(40, 23);
this.btnEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
this.btnEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.btnEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.btnEmpty.Style.GradientAngle = 90;
this.btnEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
this.btnEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnEmpty.TabIndex = 701;
this.btnEmpty.Text = "重置";
this.btnEmpty.Click += new System.EventHandler(this.btnEmpty_Click);
//
// btnRefreshShop
//
this.btnRefreshShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty;
this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnRefreshShop.Location = new System.Drawing.Point(163, 81);
this.btnRefreshShop.Name = "btnRefreshShop";
this.btnRefreshShop.Size = new System.Drawing.Size(62, 23);
this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnRefreshShop.Style.GradientAngle = 90;
this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnRefreshShop.TabIndex = 431;
this.btnRefreshShop.Text = "刷新/查询";
this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click);
//
// txtNotes
//
this.txtNotes.Location = new System.Drawing.Point(53, 81);
this.txtNotes.Name = "txtNotes";
this.txtNotes.Size = new System.Drawing.Size(105, 23);
this.txtNotes.TabIndex = 388;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(19, 84);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(44, 17);
this.label4.TabIndex = 389;
this.label4.Text = "分组:";
//
// txtShopName
//
this.txtShopName.Location = new System.Drawing.Point(53, 53);
this.txtShopName.Name = "txtShopName";
this.txtShopName.Size = new System.Drawing.Size(214, 23);
this.txtShopName.TabIndex = 386;
//
// txtShopId
//
this.txtShopId.Location = new System.Drawing.Point(53, 25);
this.txtShopId.Name = "txtShopId";
this.txtShopId.Size = new System.Drawing.Size(214, 23);
this.txtShopId.TabIndex = 384;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(57, 17);
this.label2.TabIndex = 385;
this.label2.Text = "店铺ID:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(19, 56);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(44, 17);
this.label3.TabIndex = 387;
this.label3.Text = "名称:";
//
// splitContainer3
//
this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer3.Location = new System.Drawing.Point(0, 0);
this.splitContainer3.Name = "splitContainer3";
this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer3.Panel1
//
this.splitContainer3.Panel1.Controls.Add(this.splitContainer2);
//
// splitContainer3.Panel2
//
this.splitContainer3.Panel2.Controls.Add(this.splitContainer4);
this.splitContainer3.Size = new System.Drawing.Size(1314, 331);
this.splitContainer3.SplitterDistance = 301;
this.splitContainer3.TabIndex = 1;
//
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
this.splitContainer2.Name = "splitContainer2";
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.chkSearchAllShop);
this.splitContainer2.Panel1.Controls.Add(this.pbShopLoading);
this.splitContainer2.Panel1.Controls.Add(this.dgvShop);
this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.pbLoading);
this.splitContainer2.Panel2.Controls.Add(this.dgvStock);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
this.splitContainer2.Size = new System.Drawing.Size(1314, 301);
this.splitContainer2.SplitterDistance = 280;
this.splitContainer2.TabIndex = 0;
//
// chkSearchAllShop
//
this.chkSearchAllShop.AutoSize = true;
this.chkSearchAllShop.Checked = true;
this.chkSearchAllShop.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkSearchAllShop.Location = new System.Drawing.Point(24, 42);
this.chkSearchAllShop.Name = "chkSearchAllShop";
this.chkSearchAllShop.Size = new System.Drawing.Size(147, 21);
this.chkSearchAllShop.TabIndex = 711;
this.chkSearchAllShop.Text = "二级超管查询所有店铺";
this.chkSearchAllShop.UseVisualStyleBackColor = true;
this.chkSearchAllShop.Visible = false;
//
// pbShopLoading
//
this.pbShopLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbShopLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbShopLoading.Location = new System.Drawing.Point(115, 125);
this.pbShopLoading.Name = "pbShopLoading";
this.pbShopLoading.Size = new System.Drawing.Size(50, 50);
this.pbShopLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbShopLoading.TabIndex = 677;
this.pbShopLoading.TabStop = false;
this.pbShopLoading.Visible = false;
//
// dgvShop
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colUser,
this.colLoginName,
this.colShopId,
this.colShopName,
this.colShopNotes,
this.colLoginStatus,
this.colCanUse,
this.colMessage});
this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvShop.Location = new System.Drawing.Point(4, 0);
this.dgvShop.Name = "dgvShop";
this.dgvShop.ReadOnly = true;
this.dgvShop.RowHeadersWidth = 25;
this.dgvShop.RowTemplate.Height = 23;
this.dgvShop.Size = new System.Drawing.Size(276, 301);
this.dgvShop.TabIndex = 6;
//
// pbLoading
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(490, 125);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 188;
this.pbLoading.TabStop = false;
this.pbLoading.Visible = false;
//
// dgvStock
//
this.dgvStock.AllowUserToAddRows = false;
this.dgvStock.AllowUserToDeleteRows = false;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvStock.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvStock.BackgroundColor = System.Drawing.Color.White;
this.dgvStock.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvStock.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgvStock.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvStock.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colUpId,
this.colCheck,
this.colSupplierId,
this.colSupplierName,
this.colStockId,
this.colParentStockId,
this.colImgUrl,
this.colProductSkcPic,
this.colProductId,
this.colProdSkc,
this.colProdName,
this.colPrcie,
this.colFrom,
this.colFromFake,
this.colInCartNumber7d,
this.colTodaySaleVolume,
this.colLastSevenDaysSaleVolume,
this.colSalesInventoryNum,
this.colWaitReceiveNum,
this.colQualityScore,
this.colQualityRate,
this.colQualityCount,
this.colNeedStockUp,
this.colMsg});
this.dgvStock.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvStock.Location = new System.Drawing.Point(0, 0);
this.dgvStock.Name = "dgvStock";
this.dgvStock.ReadOnly = true;
this.dgvStock.RowTemplate.Height = 23;
this.dgvStock.Size = new System.Drawing.Size(1026, 301);
this.dgvStock.TabIndex = 189;
//
// colUpId
//
this.colUpId.HeaderText = "上家Id";
this.colUpId.Name = "colUpId";
this.colUpId.ReadOnly = true;
this.colUpId.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colUpId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colUpId.Visible = false;
this.colUpId.Width = 95;
//
// colCheck
//
this.colCheck.HeaderText = "选择";
this.colCheck.Name = "colCheck";
this.colCheck.ReadOnly = true;
this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colCheck.Width = 30;
//
// colSupplierId
//
this.colSupplierId.HeaderText = "店铺Id";
this.colSupplierId.Name = "colSupplierId";
this.colSupplierId.ReadOnly = true;
//
// colSupplierName
//
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
this.colSupplierName.ReadOnly = true;
this.colSupplierName.Width = 110;
//
// colStockId
//
this.colStockId.HeaderText = "备货单号";
this.colStockId.Name = "colStockId";
this.colStockId.ReadOnly = true;
this.colStockId.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colStockId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colStockId.Width = 120;
//
// colParentStockId
//
this.colParentStockId.HeaderText = "备货母单号";
this.colParentStockId.Name = "colParentStockId";
this.colParentStockId.ReadOnly = true;
this.colParentStockId.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colParentStockId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colParentStockId.Width = 120;
//
// colImgUrl
//
this.colImgUrl.HeaderText = "图片路径";
this.colImgUrl.Name = "colImgUrl";
this.colImgUrl.ReadOnly = true;
this.colImgUrl.Visible = false;
//
// colProductSkcPic
//
this.colProductSkcPic.HeaderText = "Skc图片";
this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
this.colProductSkcPic.Name = "colProductSkcPic";
this.colProductSkcPic.ReadOnly = true;
this.colProductSkcPic.Width = 60;
//
// colProductId
//
this.colProductId.HeaderText = "商品Id";
this.colProductId.Name = "colProductId";
this.colProductId.ReadOnly = true;
this.colProductId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colProductId.Width = 90;
//
// colProdSkc
//
this.colProdSkc.FillWeight = 150F;
this.colProdSkc.HeaderText = "商品SKC";
this.colProdSkc.Name = "colProdSkc";
this.colProdSkc.ReadOnly = true;
this.colProdSkc.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colProdSkc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colProdSkc.Width = 90;
//
// colProdName
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProdName.DefaultCellStyle = dataGridViewCellStyle5;
this.colProdName.HeaderText = "标题";
this.colProdName.Name = "colProdName";
this.colProdName.ReadOnly = true;
this.colProdName.Width = 180;
//
// colPrcie
//
this.colPrcie.HeaderText = "价格";
this.colPrcie.Name = "colPrcie";
this.colPrcie.ReadOnly = true;
this.colPrcie.Visible = false;
//
// colFrom
//
this.colFrom.HeaderText = "来源";
this.colFrom.Name = "colFrom";
this.colFrom.ReadOnly = true;
this.colFrom.Visible = false;
//
// colFromFake
//
this.colFromFake.HeaderText = "来源";
this.colFromFake.Name = "colFromFake";
this.colFromFake.ReadOnly = true;
this.colFromFake.Visible = false;
//
// colInCartNumber7d
//
this.colInCartNumber7d.HeaderText = "近七日加购";
this.colInCartNumber7d.Name = "colInCartNumber7d";
this.colInCartNumber7d.ReadOnly = true;
this.colInCartNumber7d.Visible = false;
this.colInCartNumber7d.Width = 75;
//
// colTodaySaleVolume
//
this.colTodaySaleVolume.HeaderText = "今日销量";
this.colTodaySaleVolume.Name = "colTodaySaleVolume";
this.colTodaySaleVolume.ReadOnly = true;
this.colTodaySaleVolume.Visible = false;
this.colTodaySaleVolume.Width = 70;
//
// colLastSevenDaysSaleVolume
//
this.colLastSevenDaysSaleVolume.HeaderText = "七日销量";
this.colLastSevenDaysSaleVolume.Name = "colLastSevenDaysSaleVolume";
this.colLastSevenDaysSaleVolume.ReadOnly = true;
this.colLastSevenDaysSaleVolume.Visible = false;
this.colLastSevenDaysSaleVolume.Width = 70;
//
// colSalesInventoryNum
//
this.colSalesInventoryNum.HeaderText = "仓库可用库存";
this.colSalesInventoryNum.Name = "colSalesInventoryNum";
this.colSalesInventoryNum.ReadOnly = true;
this.colSalesInventoryNum.Visible = false;
this.colSalesInventoryNum.Width = 90;
//
// colWaitReceiveNum
//
this.colWaitReceiveNum.HeaderText = "已发货库存";
this.colWaitReceiveNum.Name = "colWaitReceiveNum";
this.colWaitReceiveNum.ReadOnly = true;
this.colWaitReceiveNum.Visible = false;
this.colWaitReceiveNum.Width = 75;
//
// colQualityScore
//
this.colQualityScore.HeaderText = "品质分";
this.colQualityScore.Name = "colQualityScore";
this.colQualityScore.ReadOnly = true;
this.colQualityScore.Width = 50;
//
// colQualityRate
//
this.colQualityRate.HeaderText = "售后率";
this.colQualityRate.Name = "colQualityRate";
this.colQualityRate.ReadOnly = true;
this.colQualityRate.Width = 50;
//
// colQualityCount
//
this.colQualityCount.HeaderText = "售后数";
this.colQualityCount.Name = "colQualityCount";
this.colQualityCount.ReadOnly = true;
this.colQualityCount.Width = 50;
//
// colNeedStockUp
//
this.colNeedStockUp.HeaderText = "是否需备货";
this.colNeedStockUp.Name = "colNeedStockUp";
this.colNeedStockUp.ReadOnly = true;
this.colNeedStockUp.Visible = false;
this.colNeedStockUp.Width = 75;
//
// colMsg
//
this.colMsg.HeaderText = "状态";
this.colMsg.Name = "colMsg";
this.colMsg.ReadOnly = true;
this.colMsg.Width = 400;
//
// splitContainer4
//
this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer4.Location = new System.Drawing.Point(0, 0);
this.splitContainer4.Name = "splitContainer4";
//
// splitContainer4.Panel1
//
this.splitContainer4.Panel1.Controls.Add(this.statusBar);
this.splitContainer4.Panel1.Controls.Add(this.ucSplitPage1);
//
// splitContainer4.Panel2
//
this.splitContainer4.Panel2.Controls.Add(this.btnClear);
this.splitContainer4.Size = new System.Drawing.Size(1314, 26);
this.splitContainer4.SplitterDistance = 1036;
this.splitContainer4.TabIndex = 3;
//
// statusBar
//
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Left;
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(282, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
this.statusBar.Size = new System.Drawing.Size(600, 26);
this.statusBar.TabIndex = 2;
//
// ucSplitPage1
//
this.ucSplitPage1.CurrentPage = 1;
this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Left;
this.ucSplitPage1.IsShowPageSize = false;
this.ucSplitPage1.Location = new System.Drawing.Point(0, 0);
this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0);
this.ucSplitPage1.Name = "ucSplitPage1";
this.ucSplitPage1.PageSize = 50;
this.ucSplitPage1.Size = new System.Drawing.Size(282, 26);
this.ucSplitPage1.TabIndex = 6;
this.ucSplitPage1.TotalPage = 1;
this.ucSplitPage1.PageChange += new System.Action<object>(this.ucSplitPage1_PageChange);
//
// btnClear
//
this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnClear.DisabledBackColor = System.Drawing.Color.Empty;
this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClear.Location = new System.Drawing.Point(180, 1);
this.btnClear.Name = "btnClear";
this.btnClear.Size = new System.Drawing.Size(90, 21);
this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnClear.Style.GradientAngle = 90;
this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
this.btnClear.TabIndex = 440;
this.btnClear.Text = "清空结果";
this.btnClear.Visible = false;
//
// colSelect
//
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.Width = 28;
//
// colUser
//
this.colUser.HeaderText = "用户账户";
this.colUser.Name = "colUser";
this.colUser.ReadOnly = true;
this.colUser.Visible = false;
//
// colLoginName
//
this.colLoginName.HeaderText = "店铺登录名";
this.colLoginName.Name = "colLoginName";
this.colLoginName.ReadOnly = true;
this.colLoginName.Visible = false;
//
// colShopId
//
this.colShopId.HeaderText = "店铺Id";
this.colShopId.Name = "colShopId";
this.colShopId.ReadOnly = true;
this.colShopId.Visible = false;
this.colShopId.Width = 55;
//
// colShopName
//
this.colShopName.HeaderText = "店铺名称";
this.colShopName.Name = "colShopName";
this.colShopName.ReadOnly = true;
this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colShopName.Width = 70;
//
// colShopNotes
//
this.colShopNotes.HeaderText = "分组";
this.colShopNotes.Name = "colShopNotes";
this.colShopNotes.ReadOnly = true;
this.colShopNotes.Width = 70;
//
// colLoginStatus
//
this.colLoginStatus.HeaderText = "状态";
this.colLoginStatus.Name = "colLoginStatus";
this.colLoginStatus.ReadOnly = true;
this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colLoginStatus.Width = 38;
//
// colCanUse
//
this.colCanUse.HeaderText = "可用";
this.colCanUse.Name = "colCanUse";
this.colCanUse.ReadOnly = true;
this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colCanUse.Visible = false;
this.colCanUse.Width = 28;
//
// colMessage
//
this.colMessage.HeaderText = "消息";
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
//
// JoinDeliveryFrom
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(1314, 455);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Name = "JoinDeliveryFrom";
this.Text = "JoinDeliveryFrom";
this.Load += new System.EventHandler(this.JoinDeliveryFrom_Load);
this.VisibleChanged += new System.EventHandler(this.JoinDeliveryFrom_VisibleChanged);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.ucGroupBoxEx3.ResumeLayout(false);
this.ucGroupBoxEx3.PerformLayout();
this.ucGroupBoxEx1.ResumeLayout(false);
this.ucGroupBoxEx1.PerformLayout();
this.splitContainer3.Panel1.ResumeLayout(false);
this.splitContainer3.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
this.splitContainer3.ResumeLayout(false);
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel1.PerformLayout();
this.splitContainer2.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbShopLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvStock)).EndInit();
this.splitContainer4.Panel1.ResumeLayout(false);
this.splitContainer4.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit();
this.splitContainer4.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.SplitContainer splitContainer1;
private UserComponent.UcGroupBoxEx ucGroupBoxEx3;
private DevComponents.DotNetBar.PanelEx btnSearch;
private UserComponent.UcGroupBoxEx ucGroupBoxEx1;
private DevComponents.DotNetBar.PanelEx btnRefreshShop;
private System.Windows.Forms.SplitContainer splitContainer3;
private System.Windows.Forms.SplitContainer splitContainer2;
private UserComponent.DataGridViewEx dgvShop;
private System.Windows.Forms.PictureBox pbLoading;
private System.Windows.Forms.SplitContainer splitContainer4;
private UserControls.StatusBarUserControl statusBar;
private DevComponents.DotNetBar.PanelEx btnClear;
private UserControls.UcSplitPage ucSplitPage1;
private System.Windows.Forms.PictureBox pbShopLoading;
private System.Windows.Forms.TextBox txtNotes;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtShopName;
private System.Windows.Forms.TextBox txtShopId;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private DevComponents.DotNetBar.PanelEx btnEmpty;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtRetryInterval;
private UserComponent.UcCheckBox chkSearchAllShop;
private DevComponents.DotNetBar.PanelEx btnStart;
private DevComponents.DotNetBar.PanelEx btnStop;
private UserComponent.DataGridViewEx dgvStock;
private System.Windows.Forms.DataGridViewLinkColumn colUpId;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck;
private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId;
private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName;
private System.Windows.Forms.DataGridViewLinkColumn colStockId;
private System.Windows.Forms.DataGridViewLinkColumn colParentStockId;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl;
private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic;
private System.Windows.Forms.DataGridViewLinkColumn colProductId;
private System.Windows.Forms.DataGridViewLinkColumn colProdSkc;
private System.Windows.Forms.DataGridViewTextBoxColumn colProdName;
private System.Windows.Forms.DataGridViewTextBoxColumn colPrcie;
private System.Windows.Forms.DataGridViewTextBoxColumn colFrom;
private System.Windows.Forms.DataGridViewTextBoxColumn colFromFake;
private System.Windows.Forms.DataGridViewTextBoxColumn colInCartNumber7d;
private System.Windows.Forms.DataGridViewTextBoxColumn colTodaySaleVolume;
private System.Windows.Forms.DataGridViewTextBoxColumn colLastSevenDaysSaleVolume;
private System.Windows.Forms.DataGridViewTextBoxColumn colSalesInventoryNum;
private System.Windows.Forms.DataGridViewTextBoxColumn colWaitReceiveNum;
private System.Windows.Forms.DataGridViewTextBoxColumn colQualityScore;
private System.Windows.Forms.DataGridViewTextBoxColumn colQualityRate;
private System.Windows.Forms.DataGridViewTextBoxColumn colQualityCount;
private System.Windows.Forms.DataGridViewTextBoxColumn colNeedStockUp;
private System.Windows.Forms.DataGridViewTextBoxColumn colMsg;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colUser;
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
}
}
@@ -0,0 +1,455 @@
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.BLL;
using TemuKJD.Extension;
using TemuKJD.KJDForms.AdminForms;
using TemuKJD.KJDForms.ShopForms;
using Work;
namespace TemuKJD.KJDForms.ProductForms
{
public partial class JoinDeliveryFrom : Form
{
JoinDeliveryConfig joinDeliveryConfig = null;
public bool IsAdmin = false;
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
public List<ShopLoginInfo> lstAdminShopInfo { get; set; } = new List<ShopLoginInfo>();
/// <summary>
/// 备货单列表
/// </summary>
List<TemuStockInfo> lstStockInfo = new List<TemuStockInfo>();
public JoinDeliveryFrom()
{
InitializeComponent();
}
private void JoinDeliveryFrom_Load(object sender, EventArgs e)
{
ucSplitPage1.Visible = IsAdmin;
dgvShop.AddSelectorColumn("colSelect");
dgvStock.AddSelectorColumn("colCheck");
dgvStock.AddImgColumn("colProductSkcPic", "colImgUrl");
joinDeliveryConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig<JoinDeliveryConfig>("join_delivery_config");
if (joinDeliveryConfig == null)
joinDeliveryConfig = new JoinDeliveryConfig();
this.txtNotes.Text = joinDeliveryConfig.SearchNotes;
this.txtShopId.Text = joinDeliveryConfig.SearchShopId;
this.txtShopName.Text = joinDeliveryConfig.SearchShopName;
this.txtRetryInterval.Text = Math.Max(1, joinDeliveryConfig.RetryInterval).ParseToString();
this.chkSearchAllShop.Checked = joinDeliveryConfig.SearchAllShop;
this.txtNotes.TextChanged += Txt_TextChanged;
this.txtShopId.TextChanged += Txt_TextChanged;
this.txtShopName.TextChanged += Txt_TextChanged;
this.txtRetryInterval.TextChanged += Txt_TextChanged;
this.chkSearchAllShop.CheckedChanged += Txt_TextChanged;
}
private void Txt_TextChanged(object sender, EventArgs e)
{
joinDeliveryConfig.SearchNotes = this.txtNotes.Text.Trim();
joinDeliveryConfig.SearchShopId = this.txtShopId.Text.Trim();
joinDeliveryConfig.SearchShopName = this.txtShopName.Text.Trim();
joinDeliveryConfig.RetryInterval = Math.Max(1, this.txtRetryInterval.Text.Trim().ParseToInt());
joinDeliveryConfig.SearchAllShop = this.chkSearchAllShop.Checked;
NaiBa.Util.Helper.ConfigHelper.SaveConfig("join_delivery_config", joinDeliveryConfig);
}
private void JoinDeliveryFrom_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible)
{
if (IsAdmin)
{
SearchShop(this.ucSplitPage1.CurrentPage);
}
}
}
private void ucSplitPage1_PageChange(object obj)
{
if (IsAdmin)
{
if (this.ucSplitPage1.CurrentPage != 1)
this.ucSplitPage1.CurrentPage = 1;
else
SearchShop(1);
}
}
public void SearchShop(int page)
{
List<string> userShopIdList = dgvShop.Rows.Cast<DataGridViewRow>()
.Where(r => r.Cells["colSelect"].Value.ParseToBool())
.Select(r => r.Cells["colShopId"].Value.ParseToString() + r.Cells["colUser"].Value.ParseToString()).ToList();
Invoke(new Action(() =>
{
this.pbShopLoading.Visible = true;
this.dgvShop.Rows.Clear();
lstAdminShopInfo.Clear();
}));
Task.Run(() =>
{
int pageCount;
var list = AdminGetServerShopLst(out pageCount, page);
lstAdminShopInfo.AddRange(list);
this.ucSplitPage1.TotalPage = pageCount;
foreach (var shop in lstAdminShopInfo)
{
bool canUse = shop.LoginStatus2 == "国际版在线";
Invoke(new Action(() =>
{
int rowIndex = this.dgvShop.Rows.Add(
userShopIdList.Contains(shop.ShopId + shop.UserName),
shop.UserName,
shop.LoginName,
shop.ShopId,
shop.ShopAccount,
shop.Notes,
canUse ? "在线" : "掉线",
canUse,
string.Empty
);
displayShopStatus(shop);
}));
}
Invoke(new Action(() =>
{
this.pbShopLoading.Visible = false;
}));
});
}
void displayShopStatus(ShopLoginInfo shop)
{
bool canUse = shop.LoginStatus2 == "国际版在线";
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName);
foreach (var row in rows)
{
row.Cells["colCanUse"].Value = canUse;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
}
public List<ShopLoginInfo> AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50)
{
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
pageCount = 1;
var url = BaseClass.BuildObjString("shop/admin_get_shop_list");
//if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
// url = BaseClass.BuildObjString("shop/sub_sa_get_select_prod_shop");
var data = UserLogin.GetSignaturex() +
"&page=" + page +
"&page_size=" + pageSize +
"&shop_ids=" + txtShopId.Text.Trim().Trim(',') +
"&shop_names=" + txtShopName.Text.Trim().Trim(',') +
"&search_notes=" + txtNotes.Text.Trim().Trim(',');
//if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
// data += "&operate_sub_sa_name=" + BaseClass.UserName;
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("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
{
return list;
}
int count = BaseRegex.GetIntJson(ref html, "count");
pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
pageCount = Math.Max(pageCount, 1);
return ShopBLL.DeserializationShop(html);
}
private void btnRefreshShop_Click(object sender, EventArgs e)
{
if (this.ucSplitPage1.CurrentPage != 1)
this.ucSplitPage1.CurrentPage = 1;
else
SearchShop(1);
}
private void btnEmpty_Click(object sender, EventArgs e)
{
txtNotes.Text = txtShopId.Text = txtShopName.Text = "";
}
private void btnSearch_Click(object sender, EventArgs e)
{
var lstShopId = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
if (lstShopId.Count == 0)
{
BaseMsgForm.ShowInfo("请选择店铺!");
return;
}
var columns = this.dgvStock.Columns.Cast<DataGridViewColumn>();
foreach (var col in columns)
{
if (col.Name == "colParentStockId" || col.Name == "colStockId")
{
col.Visible = true;
}
if (col.Name == "colTodaySaleVolume" || col.Name == "colLastSevenDaysSaleVolume" || col.Name == "colInCartNumber7d" || col.Name == "colSalesInventoryNum"
|| col.Name == "colWaitReceiveNum" || col.Name == "colNeedStockUp" || col.Name == "colQualityScore")
{
col.Visible = false;
}
}
lstStockInfo.Clear();
dgvStock.Rows.Clear();
var dgvRows = this.dgvShop.Rows.Cast<DataGridViewRow>();//.Where(r => lstShopId.Contains(r.Cells["colShopId"].Value.ParseToString()));
foreach (var row in dgvRows)
{
row.Cells["colMessage"].Value = "";
}
ucGroupBoxEx3.Enabled = false;
cancellationTokenSource = new CancellationTokenSource();
Task.Run(() =>
{
var lstShopIdTemp = new List<string>();
lstShopIdTemp.AddRange(lstShopId);
int i = 0;
foreach (var shopId in lstShopIdTemp)
{
this.Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在查询...";
this.statusBar.pgbTaskProgress.Maximum = lstShopIdTemp.Count;
this.statusBar.UpdateProgressBar(i + 1);
i++;
}));
if (cancellationTokenSource.IsCancellationRequested)
break;
ShopLoginInfo shop = null;
if (IsAdmin)
{
shop = this.lstAdminShopInfo.FirstOrDefault(s => s.ShopId == shopId);
}
else
{
shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
}
if (shop == null)
continue;
#region 检测登录
if (shop.LoginStatus != "登录成功")
{
continue;
}
if(IsAdmin)
{
AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
}
else
{
ShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
}
if (shop.LoginStatus != "登录成功")
{
Invoke(new Action(() =>
{
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colShopLoginName"].Value.ToString() == shop.LoginName);
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "店铺掉线";
row.Cells["colLoginStatus"].Value = "未登录";
row.Cells["colCanUse"].Value = false;
}
}));
continue;
}
#endregion
Invoke(new Action(() =>
{
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId);
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "正在查询";
}
}));
int page = 1;
int totalPage = 1;
int pageSize = 20;
bool isError = false;
while (page <= totalPage)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
Thread.Sleep(100 + Randomx.GetId(200));
string jsonStr = GetShopStockList2(shop, page, pageSize);
if (jsonStr.Contains("指定的值含有无效的控制字符"))
{
BaseMsgForm.ShowError("店铺" + shop.LoginName + " " + shop.ShopId + "已掉线");
isError = true;
break;
}
if (!jsonStr.Contains("\"success\":true"))
jsonStr = GetShopStockList2(shop, page, pageSize);
if (!jsonStr.Contains("\"success\":true"))
{
isError = true;
}
if (jsonStr.Contains("\"success\":true"))
{
var jArr = new JArray();
try
{
var jObj = JObject.Parse(jsonStr);
jArr = jObj["result"]?["subOrderForSupplierList"] as JArray;
if (jArr == null)
jArr = new JArray();
}
catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); }
foreach (var item in jArr)
{
string sItem = item.ToString();
TemuStockInfo sInfo = JsonHelper.DeserializeJsonToObject<TemuStockInfo>(sItem); // 反序列化得到类
if (sInfo != null)
{
lstStockInfo.Add(sInfo);
Invoke(new Action(() =>
{
int rowId = this.dgvStock.Rows.Add(
"",
true,
sInfo.supplierId,
sInfo.supplierName,
sInfo.subPurchaseOrderSn,
sInfo.originalPurchaseOrderSn,
sInfo.productSkcPicture.Replace("https", "http"),
DataGridViewExtension.defaultBitmap,
sInfo.productId,
sInfo.productSkcId,
sInfo.productName,
"",
"",
"",
"",
"",
"",
0.0,
"",
""
);
dgvStock.Rows[rowId].Height = 60;
}));
}
}
int total = BaseRegex.GetStringJson(ref jsonStr, "total").ParseToInt();
totalPage = Math.Ceiling(1.0m * total / pageSize).ParseToInt();
}
page++;
}
Invoke(new Action(() =>
{
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId);
if (!isError)
{
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "已查询";
}
}
else
{
foreach (var row in rows)
{
row.Cells["colMessage"].Value = "查询失败";
}
}
}));
}
Invoke(new Action(() =>
{
ucGroupBoxEx3.Enabled = true;
string sRst = "查询结束!";
if (cancellationTokenSource.IsCancellationRequested)
sRst = "已取消查询!";
BaseMsgForm.ShowInfo(sRst);
this.statusBar.lblTaskStatus.Text = sRst;
}));
}, cancellationTokenSource.Token);
}
/// <summary>
/// 读取待加入发货台
/// </summary>
/// <param name="shop"></param>
/// <param name="page"></param>
/// <returns></returns>
private string GetShopStockList2(ShopLoginInfo shop, int page = 1, int pageSize = 20)
{
page = Math.Max(page, 1);
string url = "https://agentseller.temu.com/mms/venom/api/supplier/purchase/manager/querySubOrderList";
string body;
body = @"{""pageNo"":" + page + @",""pageSize"":" + pageSize + @",""urgencyType"":0,""isCustomGoods"":false,""statusList"":[1]," +
@"""oneDimensionSort"":{""firstOrderByParam"":""expectLatestDeliverTime"",""firstOrderByDesc"":0}}";
string refere = "https://agentseller.temu.com/stock/fully-mgt/order-manage";
return HttpResponseBLL.PostResponse2(shop, url, body, refere);
}
}
public class JoinDeliveryConfig
{
public string SearchShopId { get; set; } = "";
public string SearchShopName { get; set; } = "";
public string SearchNotes { get; set; } = "";
/// <summary>
/// 重试加入发货台的时间间隔
/// </summary>
public int RetryInterval { get; set; } = 1;
public bool SearchAllShop { get; set; } = true;
}
}
@@ -0,0 +1,213 @@
<?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="colUser.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginName.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="colShopNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCanUse.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMessage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colUpId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colStockId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colParentStockId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductSkcPic.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="colProdName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrcie.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colFrom.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colFromFake.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colInCartNumber7d.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colTodaySaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLastSevenDaysSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSalesInventoryNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colWaitReceiveNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colQualityScore.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colQualityRate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colQualityCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colNeedStockUp.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMsg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
+111 -94
View File
@@ -30,10 +30,10 @@ namespace TemuKJD.KJDForms.ProductForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.txtScale1 = new System.Windows.Forms.TextBox();
@@ -47,6 +47,14 @@ namespace TemuKJD.KJDForms.ProductForms
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dgvAdjust = new TemuKJD.UserComponent.DataGridViewEx();
this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -69,14 +77,7 @@ namespace TemuKJD.KJDForms.ProductForms
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.btnClear = new DevComponents.DotNetBar.PanelEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn();
this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.pbLoading = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -98,6 +99,7 @@ namespace TemuKJD.KJDForms.ProductForms
this.splitContainer4.Panel1.SuspendLayout();
this.splitContainer4.Panel2.SuspendLayout();
this.splitContainer4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
this.SuspendLayout();
//
// splitContainer1
@@ -301,6 +303,7 @@ namespace TemuKJD.KJDForms.ProductForms
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.pbLoading);
this.splitContainer2.Panel2.Controls.Add(this.dgvAdjust);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
this.splitContainer2.Size = new System.Drawing.Size(1110, 443);
@@ -311,18 +314,18 @@ namespace TemuKJD.KJDForms.ProductForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle5.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -344,22 +347,86 @@ namespace TemuKJD.KJDForms.ProductForms
this.dgvShop.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellClick);
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
// colSelect
//
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.Width = 28;
//
// colShopLoginName
//
this.colShopLoginName.HeaderText = "店铺登录名";
this.colShopLoginName.Name = "colShopLoginName";
this.colShopLoginName.ReadOnly = true;
this.colShopLoginName.Visible = false;
//
// colShopId
//
this.colShopId.HeaderText = "店铺Id";
this.colShopId.Name = "colShopId";
this.colShopId.ReadOnly = true;
this.colShopId.Visible = false;
this.colShopId.Width = 55;
//
// colShopName
//
this.colShopName.HeaderText = "店铺名称";
this.colShopName.Name = "colShopName";
this.colShopName.ReadOnly = true;
this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colShopName.Width = 70;
//
// colShopNotes
//
this.colShopNotes.HeaderText = "分组";
this.colShopNotes.Name = "colShopNotes";
this.colShopNotes.ReadOnly = true;
this.colShopNotes.Width = 70;
//
// colLoginStatus
//
this.colLoginStatus.HeaderText = "状态";
this.colLoginStatus.Name = "colLoginStatus";
this.colLoginStatus.ReadOnly = true;
this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colLoginStatus.Width = 38;
//
// colCanUse
//
this.colCanUse.HeaderText = "可用";
this.colCanUse.Name = "colCanUse";
this.colCanUse.ReadOnly = true;
this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colCanUse.Visible = false;
this.colCanUse.Width = 28;
//
// colMessage
//
this.colMessage.HeaderText = "消息";
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
//
// dgvAdjust
//
this.dgvAdjust.AllowUserToAddRows = false;
this.dgvAdjust.AllowUserToDeleteRows = false;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvAdjust.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvAdjust.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7;
this.dgvAdjust.BackgroundColor = System.Drawing.Color.White;
this.dgvAdjust.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvAdjust.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvAdjust.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8;
this.dgvAdjust.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvAdjust.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -597,69 +664,17 @@ namespace TemuKJD.KJDForms.ProductForms
this.btnClear.Text = "清空结果";
this.btnClear.Visible = false;
//
// colSelect
// pbLoading
//
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.Width = 28;
//
// colShopLoginName
//
this.colShopLoginName.HeaderText = "店铺登录名";
this.colShopLoginName.Name = "colShopLoginName";
this.colShopLoginName.ReadOnly = true;
this.colShopLoginName.Visible = false;
//
// colShopId
//
this.colShopId.HeaderText = "店铺Id";
this.colShopId.Name = "colShopId";
this.colShopId.ReadOnly = true;
this.colShopId.Visible = false;
this.colShopId.Width = 55;
//
// colShopName
//
this.colShopName.HeaderText = "店铺名称";
this.colShopName.Name = "colShopName";
this.colShopName.ReadOnly = true;
this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colShopName.Width = 70;
//
// colShopNotes
//
this.colShopNotes.HeaderText = "分组";
this.colShopNotes.Name = "colShopNotes";
this.colShopNotes.ReadOnly = true;
this.colShopNotes.Width = 70;
//
// colLoginStatus
//
this.colLoginStatus.HeaderText = "状态";
this.colLoginStatus.Name = "colLoginStatus";
this.colLoginStatus.ReadOnly = true;
this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colLoginStatus.Width = 38;
//
// colCanUse
//
this.colCanUse.HeaderText = "可用";
this.colCanUse.Name = "colCanUse";
this.colCanUse.ReadOnly = true;
this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colCanUse.Visible = false;
this.colCanUse.Width = 28;
//
// colMessage
//
this.colMessage.HeaderText = "消息";
this.colMessage.Name = "colMessage";
this.colMessage.ReadOnly = true;
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(388, 196);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbLoading.TabIndex = 188;
this.pbLoading.TabStop = false;
this.pbLoading.Visible = false;
//
// PriceManageForm
//
@@ -695,6 +710,7 @@ namespace TemuKJD.KJDForms.ProductForms
this.splitContainer4.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit();
this.splitContainer4.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
this.ResumeLayout(false);
}
@@ -744,5 +760,6 @@ namespace TemuKJD.KJDForms.ProductForms
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private System.Windows.Forms.PictureBox pbLoading;
}
}
+18 -14
View File
@@ -31,16 +31,18 @@
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("库存上传");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("商品管理", 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("商品认领");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("库存上传");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4,
treeNode5,
treeNode6});
treeNode6,
treeNode7});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -137,16 +139,18 @@
treeNode2.Text = "调价管理";
treeNode3.Name = "活动报名";
treeNode3.Text = "活动报名";
treeNode4.Name = "设置进货价";
treeNode4.Text = "设置进货价";
treeNode5.Name = "商品认领";
treeNode5.Text = "商品认领";
treeNode6.Name = "库存上传";
treeNode6.Text = "库存上传";
treeNode7.Name = "商品管理";
treeNode7.Text = "商品管理";
treeNode4.Name = "推广直通车";
treeNode4.Text = "推广直通车";
treeNode5.Name = "设置进货价";
treeNode5.Text = "设置进货价";
treeNode6.Name = "商品认领";
treeNode6.Text = "商品认领";
treeNode7.Name = "库存上传";
treeNode7.Text = "库存上传";
treeNode8.Name = "商品管理";
treeNode8.Text = "商品管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode7});
treeNode8});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 521);
this.tv.TabIndex = 1;
@@ -26,6 +26,7 @@ namespace TemuKJD.KJDForms.ProductForms
public Lazy<ProductThirdUserSelectForm> userSelectThirdProductForm = new Lazy<ProductThirdUserSelectForm>();
public Lazy<MarketingActivityForm> marketingActivityForm = new Lazy<MarketingActivityForm>();
public Lazy<PurchasePriceForm> purchasePriceForm = new Lazy<PurchasePriceForm>();
public Lazy<TemuAdsForm> temuAdsForm = new Lazy<TemuAdsForm>();
public ProductForm()
{
@@ -37,6 +38,10 @@ namespace TemuKJD.KJDForms.ProductForms
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "设置进货价" };
#if DEBUG
#else
//hideName.Add("推广直通车");
#endif
if (BaseClass.GroupId == 3)
{
@@ -84,6 +89,9 @@ namespace TemuKJD.KJDForms.ProductForms
case "活动报名":
SetForm(marketingActivityForm.Value);
break;
case "推广直通车":
SetForm(temuAdsForm.Value);
break;
case "设置进货价":
SetForm(purchasePriceForm.Value);
break;
@@ -461,7 +461,7 @@ namespace TemuKJD.KJDForms.ProductForms
ShowDgvImg(this.dgvProduct);
}
List<TemuDBProductPurchasePriceInfo> GetPurchasePrice(List<string> productIdList)
public static List<TemuDBProductPurchasePriceInfo> GetPurchasePrice(List<string> productIdList)
{
List<TemuDBProductPurchasePriceInfo> list = new List<TemuDBProductPurchasePriceInfo>();
@@ -491,7 +491,19 @@ namespace TemuKJD.KJDForms.ProductForms
if (jArr.Count() == 0)
return list;
return JsonHelper.DeserializeJsonToList<TemuDBProductPurchasePriceInfo>(jArr.ToString());
list = JsonHelper.DeserializeJsonToList<TemuDBProductPurchasePriceInfo>(jArr.ToString());
foreach (var pPrice in list)
{
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
if (pPrice.dbSkuPurchasePriceList == null)
pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
else
{
pPrice.price_text = "¥" + (pPrice.dbSkuPurchasePriceList.Min(s => s.purchasePriceValue) * 0.01).ParseToDecimal().ToString("0.00") + "~"
+ "¥" + (pPrice.dbSkuPurchasePriceList.Max(s => s.purchasePriceValue) * 0.01).ParseToDecimal().ToString("0.00");
}
}
return list;
}
}
}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,237 @@
<?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="colShopLoginName.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="colShopNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAdsLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCanUse.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMessage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colGoodsId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProdName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSite.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrcie.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCreateTime.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="colSetCost.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSetDiscount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAdStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colBudget.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colWantROAS.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colChangeROAS.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colTotalCost.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colROAS.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="colPerSaleCost.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colExposureCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colClickCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colOrderCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colGoodsNum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCTR.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCVR.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colInCart.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMsg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
@@ -1305,7 +1305,7 @@
//
this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel2.Controls.Add(this.dataGridViewEx1);
this.panel2.Location = new System.Drawing.Point(501, 75);
this.panel2.Location = new System.Drawing.Point(489, 75);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(557, 342);
this.panel2.TabIndex = 191;
@@ -102,6 +102,11 @@ namespace TemuKJD.KJDForms.SalesCenterForms
{
try
{
var activityThematicName = row.Cells["colActivityThematicName"].Value.ToString();
if (activityThematicName == "官方大促")
{
}
if (row.Cells["colDiscountTenth"].Value.ParseToInt() > 0)
{
int discount = this.GetNearDiscount(row.Cells["colDiscountTenth"].Value.ParseToInt());
@@ -753,6 +758,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms
actInfo.discount += "0"; // 补0
Invoke(new Action(() =>
{
actRow.Cells["colDiscountTenth"].Value = actInfo.discount;
actRow.Cells["colDiscount"].Value = string.IsNullOrEmpty(actInfo.discount) ? "-" : actInfo.discount.TrimEnd('0') + "折";
actRow.Cells["colActivityMsg"].Value = "折扣查询成功";
shopRow.Cells["colMessage"].Value = "";
+47 -32
View File
@@ -28,12 +28,14 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
this.label1 = new System.Windows.Forms.Label();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.panel5 = new System.Windows.Forms.Panel();
this.chkLoginAds = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnRefreshShop = new TemuKJD.UserControls.ButtonEx();
this.btnLoginSelect = new TemuKJD.UserControls.ButtonEx();
this.btnCheck = new TemuKJD.UserControls.ButtonEx();
@@ -139,14 +141,25 @@
//
// panel5
//
this.panel5.Controls.Add(this.chkLoginAds);
this.panel5.Controls.Add(this.btnRefreshShop);
this.panel5.Controls.Add(this.btnLoginSelect);
this.panel5.Controls.Add(this.btnCheck);
this.panel5.Location = new System.Drawing.Point(1032, 3);
this.panel5.Location = new System.Drawing.Point(901, 3);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(229, 40);
this.panel5.Size = new System.Drawing.Size(360, 40);
this.panel5.TabIndex = 1;
//
// chkLoginAds
//
this.chkLoginAds.AutoSize = true;
this.chkLoginAds.Location = new System.Drawing.Point(254, 11);
this.chkLoginAds.Name = "chkLoginAds";
this.chkLoginAds.Size = new System.Drawing.Size(111, 21);
this.chkLoginAds.TabIndex = 376;
this.chkLoginAds.Text = "同时登录直通车";
this.chkLoginAds.UseVisualStyleBackColor = true;
//
// btnRefreshShop
//
this.btnRefreshShop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
@@ -154,7 +167,7 @@
this.btnRefreshShop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnRefreshShop.ForeColor = System.Drawing.Color.White;
this.btnRefreshShop.Location = new System.Drawing.Point(21, 9);
this.btnRefreshShop.Location = new System.Drawing.Point(43, 8);
this.btnRefreshShop.Margin = new System.Windows.Forms.Padding(2);
this.btnRefreshShop.Name = "btnRefreshShop";
this.btnRefreshShop.Size = new System.Drawing.Size(66, 26);
@@ -170,7 +183,7 @@
this.btnLoginSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLoginSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLoginSelect.ForeColor = System.Drawing.Color.White;
this.btnLoginSelect.Location = new System.Drawing.Point(162, 9);
this.btnLoginSelect.Location = new System.Drawing.Point(184, 8);
this.btnLoginSelect.Margin = new System.Windows.Forms.Padding(2);
this.btnLoginSelect.Name = "btnLoginSelect";
this.btnLoginSelect.Size = new System.Drawing.Size(66, 26);
@@ -186,7 +199,7 @@
this.btnCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCheck.ForeColor = System.Drawing.Color.White;
this.btnCheck.Location = new System.Drawing.Point(92, 9);
this.btnCheck.Location = new System.Drawing.Point(114, 8);
this.btnCheck.Margin = new System.Windows.Forms.Padding(2);
this.btnCheck.Name = "btnCheck";
this.btnCheck.Size = new System.Drawing.Size(66, 26);
@@ -210,13 +223,13 @@
this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel4.Location = new System.Drawing.Point(3, 3);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(1023, 40);
this.panel4.Size = new System.Drawing.Size(892, 40);
this.panel4.TabIndex = 0;
//
// cmbNotes
//
this.cmbNotes.FormattingEnabled = true;
this.cmbNotes.Location = new System.Drawing.Point(597, 10);
this.cmbNotes.Location = new System.Drawing.Point(597, 9);
this.cmbNotes.Name = "cmbNotes";
this.cmbNotes.Size = new System.Drawing.Size(120, 25);
this.cmbNotes.TabIndex = 413;
@@ -227,7 +240,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(799, 9);
this.pnlEmpty.Location = new System.Drawing.Point(799, 8);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(66, 26);
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -253,7 +266,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(728, 9);
this.btnSearch.Location = new System.Drawing.Point(728, 8);
this.btnSearch.Margin = new System.Windows.Forms.Padding(2);
this.btnSearch.Name = "btnSearch";
this.btnSearch.Size = new System.Drawing.Size(66, 26);
@@ -265,7 +278,7 @@
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(538, 14);
this.label4.Location = new System.Drawing.Point(538, 13);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(68, 17);
this.label4.TabIndex = 377;
@@ -273,7 +286,7 @@
//
// txtShopName
//
this.txtShopName.Location = new System.Drawing.Point(415, 11);
this.txtShopName.Location = new System.Drawing.Point(415, 10);
this.txtShopName.Name = "txtShopName";
this.txtShopName.Size = new System.Drawing.Size(110, 23);
this.txtShopName.TabIndex = 374;
@@ -281,7 +294,7 @@
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(367, 14);
this.label3.Location = new System.Drawing.Point(367, 13);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(56, 17);
this.label3.TabIndex = 375;
@@ -289,7 +302,7 @@
//
// txtShopId
//
this.txtShopId.Location = new System.Drawing.Point(245, 11);
this.txtShopId.Location = new System.Drawing.Point(245, 10);
this.txtShopId.Name = "txtShopId";
this.txtShopId.Size = new System.Drawing.Size(110, 23);
this.txtShopId.TabIndex = 372;
@@ -297,7 +310,7 @@
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(197, 14);
this.label2.Location = new System.Drawing.Point(197, 13);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(55, 17);
this.label2.TabIndex = 373;
@@ -310,7 +323,7 @@
this.btnImport.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnImport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnImport.ForeColor = System.Drawing.Color.White;
this.btnImport.Location = new System.Drawing.Point(71, 9);
this.btnImport.Location = new System.Drawing.Point(71, 8);
this.btnImport.Margin = new System.Windows.Forms.Padding(2);
this.btnImport.Name = "btnImport";
this.btnImport.Size = new System.Drawing.Size(66, 26);
@@ -326,7 +339,7 @@
this.btnAddShop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnAddShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnAddShop.ForeColor = System.Drawing.Color.White;
this.btnAddShop.Location = new System.Drawing.Point(1, 9);
this.btnAddShop.Location = new System.Drawing.Point(1, 8);
this.btnAddShop.Margin = new System.Windows.Forms.Padding(2);
this.btnAddShop.Name = "btnAddShop";
this.btnAddShop.Size = new System.Drawing.Size(66, 26);
@@ -356,7 +369,7 @@
this.splitContainer2.Panel2.Controls.Add(this.chkAutoDrag);
this.splitContainer2.Panel2.Controls.Add(this.statusBar);
this.splitContainer2.Size = new System.Drawing.Size(1264, 572);
this.splitContainer2.SplitterDistance = 540;
this.splitContainer2.SplitterDistance = 539;
this.splitContainer2.TabIndex = 0;
//
// btnRefreshAuth
@@ -380,7 +393,7 @@
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
this.pbLoading.Location = new System.Drawing.Point(607, 245);
this.pbLoading.Location = new System.Drawing.Point(607, 244);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -391,19 +404,19 @@
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle5.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5;
this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -434,7 +447,7 @@
this.dgvShop.Name = "dgvShop";
this.dgvShop.ReadOnly = true;
this.dgvShop.RowTemplate.Height = 23;
this.dgvShop.Size = new System.Drawing.Size(1256, 540);
this.dgvShop.Size = new System.Drawing.Size(1256, 539);
this.dgvShop.TabIndex = 5;
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
@@ -644,7 +657,7 @@
this.statusBar.BackColor = System.Drawing.Color.White;
this.statusBar.Dock = System.Windows.Forms.DockStyle.Bottom;
this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.statusBar.Location = new System.Drawing.Point(0, -1);
this.statusBar.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(1264, 29);
@@ -669,6 +682,7 @@
this.splitContainer1.ResumeLayout(false);
this.tableLayoutPanel2.ResumeLayout(false);
this.panel5.ResumeLayout(false);
this.panel5.PerformLayout();
this.panel4.ResumeLayout(false);
this.panel4.PerformLayout();
this.splitContainer2.Panel1.ResumeLayout(false);
@@ -732,5 +746,6 @@
private System.Windows.Forms.DataGridViewLinkColumn colEdit;
private System.Windows.Forms.DataGridViewLinkColumn colDelete;
private System.Windows.Forms.ComboBox cmbNotes;
private UserComponent.UcCheckBox chkLoginAds;
}
}
+138 -4
View File
@@ -22,6 +22,7 @@ using NaiBa.Util;
using System.Globalization;
using TemuKJD.KJDForms.AdminForms;
using TemuKJD.BLL;
using TemuKJD.UserControls;
namespace TemuKJD.KJDForms.ShopForms
{
@@ -209,7 +210,7 @@ namespace TemuKJD.KJDForms.ShopForms
#region 服务端店铺Cookie管理
/// <summary>
/// 添加京东店铺Cookies
/// 添加店铺Cookies
/// </summary>
/// <param name="shopName">店铺名称</param>
/// <param name="shopCookies">cookies</param>
@@ -234,6 +235,34 @@ namespace TemuKJD.KJDForms.ShopForms
BaseMsgForm.ShowError("服务端登录状态保存失败!请检查网络连接。");
}
}
/// <summary>
/// 添加店铺直通车Cookies
/// </summary>
/// <param name="shopCookies">cookies</param>
/// <param name="fromTool">工具名称(可不填写)</param>
public static void UpdateServerShopAdsCookies(ShopLoginInfo shop, string fromTool = null)
{
var fTool = string.IsNullOrEmpty(fromTool) ? "" : "&from_tool=" + fromTool;
var url = BaseClass.BuildObjString("shop/mdy_shop_ads_cookie_and_login_status");
var data = UserLogin.GetSignaturex()
//+ "&login_name=" + shop.LoginName
//直通车相同账户的不同店铺之间是隔离的,所以只能填店铺id更新一个店铺
+ "&shop_id=" + shop.ShopId
+ "&ad_url=" + GetHtml.UrlEncodeUtf8(shop.ad_url)
+ "&ad_seller_unique_id=" + shop.ad_seller_unique_id
+ "&ad_login_status=" + shop.ad_login_status
+ "&ad_cookie=" + shop.ad_cookie.Replace("&", "&").Replace("%", "%").Replace("+", "+").Replace("\"", """)
+ fTool;
var result = GetHtml.PostUtf8(url, data);
if (!result.Contains("\"code\":200"))
result = GetHtml.PostUtf8(url, data);
if (!result.Contains("\"code\":200"))
{
BaseMsgForm.ShowError("直通车登录状态保存失败!请检查网络连接。");
}
}
///// <summary>
///// 获取店铺Cookies
///// </summary>
@@ -563,7 +592,7 @@ namespace TemuKJD.KJDForms.ShopForms
{
this.Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.pbLoading.Visible = false;
this.statusBar.lblTaskStatus.Text = "检测完毕";
}));
}
@@ -571,7 +600,6 @@ namespace TemuKJD.KJDForms.ShopForms
public void CheckShopLogin(string[] shopNames, bool isShowProgress = true)
{
for (int i = 0; i < shopNames.Length; i++)
{
var campanys = GlobalConfig.ShopLoginList.Where(v => v.LoginName == shopNames[i]).ToList();
@@ -601,7 +629,7 @@ namespace TemuKJD.KJDForms.ShopForms
foreach (var sc in campanys)
{
sc.LoginStatus = "未登录";
shop.Cookies = "empty=true;";
sc.Cookies = "empty=true;";
}
}
else
@@ -609,6 +637,7 @@ namespace TemuKJD.KJDForms.ShopForms
foreach(var sc in campanys)
{
sc.LoginStatus = "登录成功";
sc.Cookies = shop.Cookies;
sc.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
}
}
@@ -627,6 +656,7 @@ namespace TemuKJD.KJDForms.ShopForms
foreach (var sc in campanys)
{
sc.LoginStatus2 = "国际版在线";
sc.Cookies2 = shop.Cookies2;
sc.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
}
}
@@ -647,6 +677,95 @@ namespace TemuKJD.KJDForms.ShopForms
}
}
public void CheckShopAdsLogin(ShopLoginInfo shop)
{
if (shop == null)
return;
CheckShopAdsLogin(new List<string> { shop.ShopId });
}
public void CheckShopAdsLogin(List<string> shopIdLst, PictureBox _pbLoading = null, StatusBarUserControl _statusBar = null)
{
if (_pbLoading != null)
{
MainForm.instance.Invoke(new Action(() =>
{
_pbLoading.Visible = true;
}));
}
if (_statusBar != null)
{
MainForm.instance.Invoke(new Action(() =>
{
_statusBar.lblTaskStatus.Text = "正在检测...";
_statusBar.pgbTaskProgress.Value = 0;
_statusBar.pgbTaskProgress.Maximum = shopIdLst.Count;
_statusBar.pgbTaskProgress.Text = "0" + "/" + shopIdLst.Count;
}));
}
Task.Run(() =>
{
for (int i = 0; i < shopIdLst.Count; i++)
{
var shopId = shopIdLst[i];
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopId == shopId);
// 先从服务端取最新直通车cookie
var serverCampanys = ShopBLL.AdminGetServerShopLstByIds(new List<string>() { shop.ShopId });
var serverShop = serverCampanys.FirstOrDefault();
if (shop != null && serverShop != null)
{
shop.ad_cookie = serverShop.ad_cookie;
}
if (shop != null)
{
var loginResult = getSellerCenter(shop);
if (!loginResult.Contains("\"success\":true"))
{
shop.ad_cookie = "empty=true;";
shop.ad_login_status = "离线";
}
else
{
shop.ad_login_status = "在线";
shop.ad_cookie = serverShop.ad_cookie;
}
StartUp.SaveLocalShopLoginInfo();
ShopListForm.UpdateServerShopAdsCookies(shop); // 店铺cookie写入服务端
}
if (_statusBar != null)
{
MainForm.instance.Invoke(new Action(() =>
{
_statusBar.lblTaskStatus.Text = "正在检测...";
_statusBar.pgbTaskProgress.Value = (i + 1);
_statusBar.pgbTaskProgress.Text = (i + 1) + "/" + shopIdLst.Count;
}));
}
}
if (_pbLoading != null)
{
MainForm.instance.Invoke(new Action(() =>
{
_pbLoading.Visible = false;
}));
}
if (_statusBar != null)
{
MainForm.instance.Invoke(new Action(() =>
{
_statusBar.lblTaskStatus.Text = "检测完毕";
}));
}
});
}
public static string GetShopStatus(ShopLoginInfo shop)
{
string url = "https://seller.kuajingmaihuo.com/bg/quiet/api/mms/userInfo";
@@ -684,6 +803,20 @@ namespace TemuKJD.KJDForms.ShopForms
return HttpResponseBLL.PostResponse2(shop, url, body, refere);
}
/// <summary>
/// 获取直通车登录状态
/// </summary>
/// <param name="shop"></param>
/// <returns></returns>
public static string getSellerCenter(ShopLoginInfo shop)
{
string url = "https://ads.temu.com/api/v1/coconut/account/get_seller_center";
string body = "{}";
string refere = shop.ad_url;
return HttpResponseBLL.PostResponseAds(shop, url, body, refere);
}
private void ShopListForm_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible == true)
@@ -846,6 +979,7 @@ namespace TemuKJD.KJDForms.ShopForms
{
ShopLoginForm shopLoginForm = new ShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.IsAdsLogin = this.chkLoginAds.Checked;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
btnRefreshCookie_Click(null, null);
+2 -1
View File
@@ -83,7 +83,7 @@
this.splitContainer1.Panel2.Controls.Add(this.btnReload);
this.splitContainer1.Panel2.Controls.Add(this.chkCloseAfterLogin);
this.splitContainer1.Size = new System.Drawing.Size(1438, 736);
this.splitContainer1.SplitterDistance = 674;
this.splitContainer1.SplitterDistance = 675;
this.splitContainer1.SplitterWidth = 3;
this.splitContainer1.TabIndex = 4;
//
@@ -345,6 +345,7 @@
this.txtAddress.Name = "txtAddress";
this.txtAddress.Size = new System.Drawing.Size(1432, 23);
this.txtAddress.TabIndex = 7;
this.txtAddress.TextChanged += new System.EventHandler(this.txtAddress_TextChanged);
this.txtAddress.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtAddress_KeyDown);
//
// ShopLoginForm
+136
View File
@@ -33,18 +33,24 @@ namespace TemuKJD.KJDForms.ShopForms
{
login,
manage,
ads, // 广告登录
}
public partial class ShopLoginForm : LRBaseForm
{
public static ShopLoginForm shopLoginInstance { get; set; } = null;
public int CloseAfterSecond { get; set; }
/// <summary>
/// 推广直通车登录
/// </summary>
public bool IsAdsLogin { get; set; } = false;
public EnumOpenType openType = EnumOpenType.manage;
public bool isMultiLogin = false;
public string MultiLoginCookieName = "";
public string InitUrl = "";
private string shopCookieHead = "kuajingmaihuo.com";
private string shopCookieHead2 = "temu.com";
private string shopCookieHead3 = "ads.temu.com";
private string shopLoginUrl = "http://seller.kuajingmaihuo.com/login";
private string shopMainUrl = "https://seller.kuajingmaihuo.com";
private string shopMainUrl2 = "https://agentseller.temu.com";
@@ -222,10 +228,29 @@ namespace TemuKJD.KJDForms.ShopForms
else
{
var cookie2 = shop.Cookies2;
//var cookie2Lst = cookie2.Split(new string[] { ";", " " }, StringSplitOptions.RemoveEmptyEntries);
//cookie2 = "";
//foreach (var item in cookie2Lst)
//{
// if (item.StartsWith("mallid="))
// cookie2 += "mallid=" + shop.ShopId + ";";
// else
// cookie2 += item + ";";
//}
var t = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.GetCookieManager(null));
t.Wait(5000);
cefWebBrowser.Load("https://agentseller.temu.com");
}
Thread.Sleep(500);
if (!string.IsNullOrEmpty(shop.ShopId))
{
var storageJsCode = "window.localStorage.setItem('" + "mall-info-id" + "', '" + shop.ShopId + "');\r\n";
storageJsCode += "window.localStorage.setItem('" + "agentseller-mall-info-id" + "', '" + shop.ShopId + "');\r\n";
while (!cefWebBrowser.IsBrowserInitialized || !cefWebBrowser.GetBrowser().MainFrame.IsValid || cefWebBrowser.IsLoading)
Thread.Sleep(20);
cefWebBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync(storageJsCode);
}
}
@@ -299,14 +324,106 @@ namespace TemuKJD.KJDForms.ShopForms
}
StartUp.SaveLocalShopLoginInfo(); // 店铺保存到本地
ShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
if (!IsAdsLogin)
{
OnSaveComplete(shop);
if (this.Created && this.chkCloseAfterLogin.Checked)
Invoke(new Action(() => { this.Close(); }));
else
break;
}
}
if (IsAdsLogin && !string.IsNullOrEmpty(shop.ad_seller_unique_id) && 1==2)
{
var obtainCodeRst = ShopListForm.GetObtainCode(shop);
var obtainCode = BaseRegex.GetStringJson(ref obtainCodeRst, "code");
//https://ads.temu.com/login.html?
//redirectUrl=https%3A%2F%2Fads.temu.com%2Findex.html%3FadAreaOverride%3D2&userType=1&mallType=0
//&ticket=Zjze2NHyZFaGP88ROyjN19a47ae59611391a296ae6403bbbfa39e9046ceba744aafe8227fd6
//&adSellerUniqueId=eyJ1IjoiTVF3NFRGVmN2ZUVyZG1USDdOQ2o5dz09IiwidiI6MX0%3D&source=2&seller_source=11&adAreaOverride=2
string url = "https://ads.temu.com/login.html?" +
"redirectUrl=https%3A%2F%2Fads.temu.com%2Findex.html%3FadAreaOverride%3D2&userType=1&mallType=0&ticket=" + obtainCode +
"&adSellerUniqueId=" + shop.ad_seller_unique_id + "&source=2&seller_source=11&adAreaOverride=2";
cefWebBrowser.Load(url);
}
else if (IsAdsLogin)
{
cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sGetElementWithText);
//点击商品推广按钮
var adsJsStr = "window.scrollTo(0, document.body.scrollHeight);";
var adsResponse = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(adsJsStr);
adsResponse.Wait(1000);
Thread.Sleep(Randomx.GetId(500, 1000));
adsJsStr = "var clickItem = getElementWithText('商品推广'); " +
"clickItem.click()";
adsResponse = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(adsJsStr);
adsResponse.Wait(1000);
Thread.Sleep(Randomx.GetId(500, 1000));
// 模拟人为点击一次,否则窗口不跳转
var host = cefWebBrowser.GetBrowser().GetHost();
int x = Randomx.GetId(50, 200);
int y = Randomx.GetId(1, 10);
// 按下鼠标左键
host.SendMouseClickEvent(x, y, MouseButtonType.Left, false, 1, CefEventFlags.None);
Thread.Sleep(50 + Randomx.GetId(200));
host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None);
Thread.Sleep(Randomx.GetId(100, 500));
//点击确认授权并前往按钮
adsJsStr = "var clickItem = getElementWithText('确认授权并前往'); " +
"clickItem.parentElement.click();";
adsResponse = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(adsJsStr);
adsResponse.Wait(1000);
Thread.Sleep(Randomx.GetId(300, 800));
}
}
if (1 == 1 && this.shop != null && currentUrl.StartsWith("https://ads.temu.com/index.html?adAreaOverride="))
{
if (!cefWebBrowser.GetBrowser().MainFrame.IsValid)
continue;
if (openType != EnumOpenType.login)
continue;
if (!lstShopCompany.Any(c => c.AccountId == shop.ShopId))
continue;
shop.ad_url = txtAddress.Text;
string cookiesAds = "";
List<Cookie> cookieAdsList = CEFBrowser.GetCookieList("ads.temu.com", cefWebBrowser.GetCookieManager(null));
if (cookieAdsList != null && cookieAdsList.Count > 0)
{
for (int i = 0; i < cookieAdsList.Count; i++)
{
var cookie = cookieAdsList[i];
cookiesAds += cookie.Name + "=" + cookie.Value + "; ";
}
cookiesAds = cookiesAds.Trim().TrimEnd(';');
}
if (!string.IsNullOrEmpty(cookiesAds))
{
shop.ad_login_status = "在线";
shop.ad_cookie = cookiesAds;
StartUp.SaveLocalShopLoginInfo(); // 店铺保存到本地
ShopListForm.UpdateServerShopAdsCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
OnSaveComplete(shop);
if (this.Created && this.chkCloseAfterLogin.Checked)
{
Invoke(new Action(() => { this.Close(); }));
}
else
{
break;
}
}
}
}
});
@@ -443,6 +560,14 @@ namespace TemuKJD.KJDForms.ShopForms
t2.Wait(5000);
}
if (this.openType == EnumOpenType.ads)
{
var cookieAds = shop.ad_cookie;
var t2 = CEFBrowser.SetCookieAsync(shopCookieHead3, cookieAds, cefWebBrowser.GetCookieManager(null));
t2.Wait(5000);
cefWebBrowser.Load(InitUrl);
}
//根据登录的具体店铺设置local storage
if (!string.IsNullOrEmpty(shop.ShopId))
{
@@ -510,11 +635,13 @@ namespace TemuKJD.KJDForms.ShopForms
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
{
if (this.Created)
{
Invoke(new Action(() =>
{
currentUrl = e.Address;
txtAddress.Text = e.Address;
}));
}
}
private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
@@ -1102,5 +1229,14 @@ function getElementWithText(sText)
ReturnPackageDetailForm form = new ReturnPackageDetailForm(this.shop);
form.ShowDialog();
}
private void txtAddress_TextChanged(object sender, EventArgs e)
{
if (txtAddress.Text.Contains("&adSellerUniqueId="))
{
string address = txtAddress.Text.Trim();
shop.ad_seller_unique_id = BaseRegex.GetStringQuery(ref address, "adSellerUniqueId");
}
}
}
}
@@ -627,13 +627,14 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics
}
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
//kjd库,获取商品进货价
var purchasePriceList = GetPurchasePrice(subOrderInfoLstTmp.Select(o => o.productId.ParseToString()).ToList());
foreach (var pPrice in purchasePriceList)
{
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
if (pPrice.dbSkuPurchasePriceList == null)
pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
}
//foreach (var pPrice in purchasePriceList)
//{
// pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
// if (pPrice.dbSkuPurchasePriceList == null)
// pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
//}
foreach (var purchasePrice in purchasePriceList)
{
var order = subOrderInfoLstTmp.FirstOrDefault(o => o.productId.ParseToString() == purchasePrice.spu_id);
@@ -874,7 +875,19 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics
if (jArr.Count() == 0)
return list;
return JsonHelper.DeserializeJsonToList<TemuDBProductPurchasePriceInfo>(jArr.ToString());
list = JsonHelper.DeserializeJsonToList<TemuDBProductPurchasePriceInfo>(jArr.ToString());
foreach (var pPrice in list)
{
pPrice.dbSkuPurchasePriceList = JsonHelper.DeserializeJsonToList<TemuDBSkuPurchasePriceInfo>(pPrice.sku_purchase_price_json);
if (pPrice.dbSkuPurchasePriceList == null)
pPrice.dbSkuPurchasePriceList = new List<TemuDBSkuPurchasePriceInfo>();
else
{
pPrice.price_text = "¥" + (pPrice.dbSkuPurchasePriceList.Min(s => s.purchasePriceValue) * 0.01).ParseToDecimal().ToString("0.00") + "~"
+ "¥" + (pPrice.dbSkuPurchasePriceList.Max(s => s.purchasePriceValue) * 0.01).ParseToDecimal().ToString("0.00");
}
}
return list;
}
private void btnSetColumn_Click(object sender, EventArgs e)
+2 -2
View File
@@ -137,9 +137,9 @@ namespace TemuKJD
}
#endif
#if DEBUG
for (int i = 0; i < 3600; i++)
for (int i = 0; i < 360; i++)
{
Thread.Sleep(1000);
Thread.Sleep(10000);
}
#else
Thread.Sleep(1000 * 3600);