diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index 3b55db2..ed308f3 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -200,6 +200,7 @@ + diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 117168e..9b7a8ec 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 862; + public static int VersionCount = 868; //public static int VersionCount = 613; /// diff --git a/AllBase/Model/Result/JSTDownProdSkuInfo.cs b/AllBase/Model/Result/JSTDownProdSkuInfo.cs new file mode 100644 index 0000000..467b076 --- /dev/null +++ b/AllBase/Model/Result/JSTDownProdSkuInfo.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result +{ + public class JSTDownProdSkuInfo + { + public int id { get; set; } + public List itemMainImage { get; set; } // Array[5], + public string itemName { get; set; } // "光流沙咕卡麻将砖块转砖带灯创意礼物男孩女孩网红", + public string styleCode { get; set; } // "725068475481", + public string itemCode { get; set; } // "ysk00407C_3R", + public string colourSpec { get; set; } // "方形带灯翠绿色;无规格", + public decimal? supplyPrice { get; set; } // 2.93, + public object oldSupplyPrice { get; set; } // null, + public object priceDate { get; set; } // null, + public List perfectPlatformList { get; set; } // Array[19], + public string shelvesType { get; set; } // "DISTRIBUTION", + public string supplierName { get; set; } // "努正供应链", + public List itemShelvesInfos { get; set; } // [], + public string shelvesTime { get; set; } // "2026-01-30 18:50:50", + public string itemSource { get; set; } // "GYL", + public string itemSourceText { get; set; } // "供应链", + public string supplierCoId { get; set; } // "14204696", + public string spuId { get; set; } // "BEC902FFA8B542A6A9F16BF5964DEA4F", + public string coId { get; set; } // "14791477", + public string partnerSkuId { get; set; } // "21B50E4CA5264A078933C956F0250FD9", + public string partnerSpuId { get; set; } // "9573273974C1472E9CEC10D227218E89", + public bool? deleted { get; set; } // false, + public bool? isPartner { get; set; } // true, + public bool? partnerCanSee { get; set; } // false, + public bool? haveBaseData { get; set; } // false, + public object baseDataId { get; set; } // null, + public string itemStatus { get; set; } // "distribution", + public bool? privateStatus { get; set; } // false, + public string categoryId { get; set; } // "", + public string categoryName { get; set; } // "", + public object regulatePriceMin { get; set; } // null, + public object regulatePriceMax { get; set; } // null, + public object lastRegulatePriceMin { get; set; } // null, + public object lastRegulatePriceMax { get; set; } // null, + public object regulatePriceChangeTime { get; set; } // null, + public bool? showLastRegulatePrice { get; set; } // false, + public string supplierId { get; set; } // "8323D6C2837B42AF8CB37F2A262DCA98", + /// + /// sku状态 FOR_SHELVED:该商品已被供应商设置成不可分销 + /// + public string drpItemStatus { get; set; } // "FOR_SHELVED", + public string lastOperator { get; set; } // "老马", + public string itemSpuIdMd5 { get; set; } // "BEC902FFA8B542A6A9F16BF5964DEA4F" + public string secret_spu_id { get; set; } + public string secret_sku_id { get; set; } + /// + /// 产品库中是否存在 + /// + public int is_in_product_db { get; set; } + public DateTime? add_time { get; set; } + } +} diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index aa56497..c24f555 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -4,6 +4,7 @@ using KJD_Web.Utils; using MySql.Data.MySqlClient; using NaiBa.Util.Extension; using NaiBa.Util.Helper; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -242,6 +243,76 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + public string GetProductSpuIdLst(string inputData) + { + var timeCalc = DateTime.Now; + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var version = RegexUtils.GetStringQuery(ref inputData, "version").ParseToInt(); + if (version < (System.Configuration.ConfigurationManager.ConnectionStrings["LimitVersion"]?.ConnectionString).ParseToInt()) + return "{\"code\":1,\"msg\":\"当前版本过于陈旧,请立即升级新版\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + var search_secret_spu_ids = RegexUtils.GetStringQuery(ref inputData, "search_secret_spu_ids")?.Replace("'", "\\'"); + var search_spu_ids = RegexUtils.GetStringQuery(ref inputData, "search_spu_ids")?.Replace("'", "\\'"); + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "select id,spu_id,secret_spu_id from bxx.product p where p.is_del=0"; + if (search_secret_spu_ids != null) + { + sql += " and p.secret_spu_id in ('" + string.Join("','", search_secret_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } + if (search_spu_ids != null) + { + sql += " and p.spu_id in ('" + string.Join("','", search_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } + var dt = mySql.ExecuteDataTable(sql); + + mySql.Close(); + if (dt != null) + { + try + { + List productLst = new List(); + foreach (DataRow row in dt.Rows) + { + DBProductResultParamLite prod = new DBProductResultParamLite + { + id = Convert.ToInt32(row["id"]), + spu_id = row["spu_id"].ToString(), + secret_spu_id = row["secret_spu_id"].IsNullOrEmpty() ? null : row["secret_spu_id"].ParseToString(), + }; + productLst.Add(prod); + } + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializerObjectToString(productLst, jsonSetting); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + productLst.Count + ",\"seconds\":" + seconds + "}"; + } + catch (Exception ex) + { + return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + else + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + public string GetProductList(string inputData, bool isDetail = false) { var timeCalc = DateTime.Now; @@ -500,7 +571,8 @@ namespace KJD_Web.BLL.BXX } productLst.Add(prod); } - var data = JsonUtils.SerializerObjectToString(productLst); + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializerObjectToString(productLst, jsonSetting); var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; } @@ -517,6 +589,158 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + public string AddProdDownSku(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + + var itemMainImage = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "itemMainImage")).ParseToString().Replace("'", "\\'"); + var itemName = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "itemName")).ParseToString().Replace("'", "\\'"); + var styleCode = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "styleCode")).ParseToString().Replace("'", "\\'"); + var itemCode = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "itemCode")).ParseToString().Replace("'", "\\'"); + var colourSpec = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "colourSpec")).ParseToString().Replace("'", "\\'"); + var supplyPrice = RegexUtils.GetStringQuery(ref inputData, "supplyPrice").ParseToString().Replace("'", "\\'"); + var supplierName = RegexUtils.GetStringQuery(ref inputData, "supplierName").ParseToString().Replace("'", "\\'"); + var shelvesTime = RegexUtils.GetStringQuery(ref inputData, "shelvesTime").ParseToString().Replace("'", "\\'"); + var supplierCoId = RegexUtils.GetStringQuery(ref inputData, "supplierCoId").ParseToString().Replace("'", "\\'"); + var coId = RegexUtils.GetStringQuery(ref inputData, "coId").ParseToString().Replace("'", "\\'"); + var spuId = RegexUtils.GetStringQuery(ref inputData, "spuId").ParseToString().Replace("'", "\\'"); + var partnerSkuId = RegexUtils.GetStringQuery(ref inputData, "partnerSkuId").ParseToString().Replace("'", "\\'"); + var partnerSpuId = RegexUtils.GetStringQuery(ref inputData, "partnerSpuId").ParseToString().Replace("'", "\\'"); + var supplierId = RegexUtils.GetStringQuery(ref inputData, "supplierId").ParseToString().Replace("'", "\\'"); + var drpItemStatus = RegexUtils.GetStringQuery(ref inputData, "drpItemStatus").ParseToString().Replace("'", "\\'"); + var lastOperator = RegexUtils.GetStringQuery(ref inputData, "lastOperator").ParseToString().Replace("'", "\\'"); + var itemSpuIdMd5 = RegexUtils.GetStringQuery(ref inputData, "itemSpuIdMd5").ParseToString().Replace("'", "\\'"); + var secret_spu_id = RegexUtils.GetStringQuery(ref inputData, "secret_spu_id").ParseToString().Replace("'", "\\'"); + var secret_sku_id = RegexUtils.GetStringQuery(ref inputData, "secret_sku_id").ParseToString().Replace("'", "\\'"); + var is_in_product_db = RegexUtils.GetStringQuery(ref inputData, "is_in_product_db").ParseToInt(); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = ""; + sql = "select styleCode,itemCode,colourSpec from bxx.product_jst_update where styleCode='" + styleCode + + "' and itemCode='" + itemCode + "' and colourSpec='" + colourSpec + "'"; + var dt = mySql.ExecuteDataTable(sql); + if (!string.IsNullOrEmpty(mySql.Message)) + { + mySql.Close(); + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + if (dt.Rows.Count > 0) + { + mySql.Close(); + return "{\"code\":500,\"msg\":\"数据已存在\"}"; + } + + sql = "insert into bxx.product_jst_update " + + " (itemMainImage,itemName,styleCode,itemCode,colourSpec,supplyPrice,supplierName,shelvesTime,supplierCoId,coId,spuId," + + " partnerSkuId,partnerSpuId,supplierId,drpItemStatus,lastOperator,itemSpuIdMd5,secret_spu_id,secret_sku_id,is_in_product_db)" + + " values('" + itemMainImage + "','" + itemName + "','" + styleCode + "','" + itemCode + "','" + colourSpec + "','" + supplyPrice + "','" + + supplierName + "','" + shelvesTime + "','" + supplierCoId + "','" + coId + "','" + spuId + "','" + partnerSkuId + "','" + + partnerSpuId + "','" + supplierId + "','" + drpItemStatus + "','" + lastOperator + "','" + itemSpuIdMd5 + "','" + secret_spu_id + "','" + + secret_sku_id + "'," + is_in_product_db + ")"; + + //var rst = mySql.ExecuteNonQuery(sql, paramLst.ToArray()); + var rst = mySql.ExecuteNonQuery(sql); + mySql.Close(); + if (rst) + { + return "{\"code\":200,\"msg\":\"success\"}"; + } + else + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string GetProdDownSkuLstBySkuCodes(string inputData) + { + var timeCalc = DateTime.Now; + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + //var version = RegexUtils.GetStringQuery(ref inputData, "version").ParseToInt(); + //if (version < (System.Configuration.ConfigurationManager.ConnectionStrings["LimitVersion"]?.ConnectionString).ParseToInt()) + // return "{\"code\":1,\"msg\":\"当前版本过于陈旧,请立即升级新版\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + var search_spu_ids = RegexUtils.GetStringQuery(ref inputData, "search_spu_ids")?.Replace("'", "\\'"); + var search_sku_codes = RegexUtils.GetStringQuery(ref inputData, "search_sku_codes")?.Replace("'", "\\'"); + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "select id,spuId,itemName,styleCode,itemCode,colourSpec,supplierCoId,supplierName,is_in_product_db,add_time from bxx.product_jst_update p where 1=1"; + if (search_spu_ids != null) + { + sql += " and p.spuId in ('" + string.Join("','", search_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } + if (search_sku_codes != null) + { + sql += " and p.itemCode in ('" + string.Join("','", search_sku_codes.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } + var dt = mySql.ExecuteDataTable(sql); + + mySql.Close(); + if (dt != null) + { + try + { + List productLst = new List(); + foreach (DataRow row in dt.Rows) + { + JSTDownProdSkuInfo prod = new JSTDownProdSkuInfo + { + id = Convert.ToInt32(row["id"]), + spuId = row["spuId"].ToString(), + itemName = row["itemName"].ToString(), + styleCode = row["styleCode"].ToString(), + itemCode = row["itemCode"].ToString(), + colourSpec = row["colourSpec"].ToString(), + supplierCoId = row["supplierCoId"].ToString(), + supplierName = row["supplierName"].ToString(), + add_time = Convert.ToDateTime(row["add_time"]), + is_in_product_db = row["is_in_product_db"].ParseToInt(), + }; + productLst.Add(prod); + } + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializerObjectToString(productLst, jsonSetting); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + productLst.Count + ",\"seconds\":" + seconds + "}"; + } + catch (Exception ex) + { + return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + else + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string GetProductGroups(string inputData) { if (!string.IsNullOrEmpty(inputData)) @@ -738,6 +962,7 @@ namespace KJD_Web.BLL.BXX var in_spu_ids = RegexUtils.GetStringQuery(ref inputData, "in_spu_ids")?.Replace("'", "\\'"); var in_skc_ids = RegexUtils.GetStringQuery(ref inputData, "in_skc_ids")?.Replace("'", "\\'"); var in_groups = RegexUtils.GetStringQuery(ref inputData, "in_groups")?.Replace("'", "\\'"); + var product_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "product_name"))?.Replace("'", "\\'"); var in_cates = RegexUtils.GetStringQuery(ref inputData, "in_cates")?.Replace("'", "\\'"); var wx_cat_1 = RegexUtils.GetStringQuery(ref inputData, "wx_cat_1")?.Replace("'", "\\'"); var wx_cat_2 = RegexUtils.GetStringQuery(ref inputData, "wx_cat_2")?.Replace("'", "\\'"); @@ -755,7 +980,7 @@ namespace KJD_Web.BLL.BXX string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select count(*) from bxx.product p where p.is_del=0"; + string sql = "select count(*) from bxx.product p FORCE INDEX (index_wx_safe_status) where p.is_del=0"; string where = ""; if (!string.IsNullOrEmpty(in_ext_codes)) @@ -783,6 +1008,10 @@ namespace KJD_Web.BLL.BXX in_cates = "'" + string.Join("','", in_cates.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; where += " and (p.cat_name in (" + in_cates + ") or p.main_cat_name in (" + in_cates + "))"; } + if (!string.IsNullOrEmpty(product_name)) + { + where += " and p.product_name='" + product_name + "'"; + } if (!string.IsNullOrEmpty(wx_cat_1)) { where += " and p.wx_cat_1=" + wx_cat_1 + ""; @@ -833,14 +1062,14 @@ namespace KJD_Web.BLL.BXX //sql += " ORDER BY RAND()"; //sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; - var limit = RandomUtils.GetId(count - page_size); + var limit = RandomUtils.GetId(Math.Max(1, count - page_size)); sql += " limit " + limit + "," + page_size; dt = mySql.ExecuteDataTable(sql); + Thread.Sleep(100); if (!string.IsNullOrEmpty(mySql.Message) || dt == null) { mySql.Close(); - Thread.Sleep(1000); return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; } diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs index 220e6b4..4fb8864 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXProductManage.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Linq; +using System.Threading; using System.Web; using System.Web.Security; @@ -450,7 +451,7 @@ namespace KJD_Web.BLL.WXXD string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); string sql = "select id from wxxd_product_shop_map.product_shop_map_" + index.ParseToString().PadLeft(4, '0') + - " where up_secret_spu_id='" + up_secret_spu_id + "'and shop_id='" + shop_id + "'"; + " where up_secret_spu_id='" + up_secret_spu_id + "' and shop_id='" + shop_id + "';"; DataTable dt = mySql.ExecuteDataTable(sql); if (!string.IsNullOrEmpty(mySql.Message) || dt == null || dt.Rows == null) @@ -481,6 +482,104 @@ namespace KJD_Web.BLL.WXXD return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + public string WXGetSecretSpuIdShopIdMapList(string inputData) + { + var timeCalc = DateTime.Now; + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var up_secret_spu_id = RegexUtils.GetStringQuery(ref inputData, "up_secret_spu_id")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(up_secret_spu_id)) + { + return "{\"code\":500,\"msg\":\"缺少商品编号1\"}"; + } + var index = RegexUtils.GetStringQuery(ref inputData, "index").ParseToNullableLong(); + if (index == null) + index = up_secret_spu_id.ParseToLong() % 1024; + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); + var shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id")?.Replace("'", "\\'"); + var is_not_count = (RegexUtils.GetStringQuery(ref inputData, "is_not_count")?.Replace("'", "\\'")).ParseToBool(); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + int count = 0; + string sql = ""; + if (!is_not_count) + { + sql = "select count(*) from wxxd_product_shop_map.product_shop_map_" + index.ParseToString().PadLeft(4, '0') + + " where up_secret_spu_id='" + up_secret_spu_id; + if (!shop_id.IsNullOrEmpty()) + sql += "' and shop_id='" + shop_id + "'"; + sql += ";"; + + count = mySql.ExecuteRowCount(sql); + Thread.Sleep(100); + } + + DataTable dt; + if (count == 0 && !is_not_count) + { + dt = new DataTable(); + } + else + { + sql = "select * from wxxd_product_shop_map.product_shop_map_" + index.ParseToString().PadLeft(4, '0') + + " where up_secret_spu_id='" + up_secret_spu_id; + if (!shop_id.IsNullOrEmpty()) + sql += "' and shop_id='" + shop_id + "'"; + sql += " order by add_time desc"; + sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; + + dt = mySql.ExecuteDataTable(sql); + mySql.Close(); + if (!string.IsNullOrEmpty(mySql.Message) || dt == null) + { + Thread.Sleep(1000); + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + + if (dt != null) + { + try + { + List prodSecretIdMapLst = new List(); + foreach (DataRow row in dt.Rows) + { + WxProdSecretSpuIdShopIdMapParam idMap = new WxProdSecretSpuIdShopIdMapParam + { + id = Convert.ToInt32(row["id"]), + up_secret_spu_id = row["up_secret_spu_id"].ToString(), + up_spu_id = row["up_spu_id"].ToString(), + shop_id = row["shop_id"].ToString(), + add_time = Convert.ToDateTime(row["add_time"]), + //mdy_time = Convert.ToDateTime(row["mdy_time"]), + }; + prodSecretIdMapLst.Add(idMap); + } + var data = JsonUtils.SerializerObjectToString(prodSecretIdMapLst); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; + } + catch (Exception ex) + { + return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + else + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + public string WXAddMdyAfterSale(string inputData) { if (!string.IsNullOrEmpty(inputData)) diff --git a/KJDService/KJD_WebService/BXXProductService.asmx.cs b/KJDService/KJD_WebService/BXXProductService.asmx.cs index 0212d4d..80e293d 100644 --- a/KJDService/KJD_WebService/BXXProductService.asmx.cs +++ b/KJDService/KJD_WebService/BXXProductService.asmx.cs @@ -49,6 +49,43 @@ namespace KJD_Web } } + [WebMethod] + public void get_product_spu_id_list() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().GetProductSpuIdLst(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + //AddProdDownSku + [WebMethod] + public void add_prod_down_sku() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().AddProdDownSku(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void get_prod_down_sku_lst_by_sku_codes() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().GetProdDownSkuLstBySkuCodes(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] public void get_product_list() { diff --git a/KJDService/KJD_WebService/BXXShopService.asmx.cs b/KJDService/KJD_WebService/BXXShopService.asmx.cs index 3166fd9..d5abb6d 100644 --- a/KJDService/KJD_WebService/BXXShopService.asmx.cs +++ b/KJDService/KJD_WebService/BXXShopService.asmx.cs @@ -1,4 +1,5 @@ using KJD_Web.BLL.BXX; +using KJD_Web.BLL.WXXD; using KJD_Web.Utils; using System; using System.Collections.Generic; @@ -215,5 +216,17 @@ namespace KJD_Web Context.Response.Write(result); Context.Response.End(); } + + [WebMethod] + public void e57_get_wx_tokens() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXShopManage().E57GetWxTokens(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } } } diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj b/KJDService/KJD_WebService/KJD_WebService.csproj index 56716f8..0579ef0 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj +++ b/KJDService/KJD_WebService/KJD_WebService.csproj @@ -115,6 +115,8 @@ + + diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj.user b/KJDService/KJD_WebService/KJD_WebService.csproj.user index 1b87364..4bcdc04 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj.user +++ b/KJDService/KJD_WebService/KJD_WebService.csproj.user @@ -8,7 +8,7 @@ - Debug|Any CPU + Release|Any CPU ShowAllFiles diff --git a/KJDService/KJD_WebService/Model/DBProductResultParam.cs b/KJDService/KJD_WebService/Model/DBProductResultParam.cs index 3e2495c..ff33342 100644 --- a/KJDService/KJD_WebService/Model/DBProductResultParam.cs +++ b/KJDService/KJD_WebService/Model/DBProductResultParam.cs @@ -5,6 +5,13 @@ using System.Web; namespace KJD_Web.Model { + public class DBProductResultParamLite + { + public int id { get; set; } + public string spu_id { get; set; } + public string secret_spu_id { get; set; } + } + /// /// 选品数据库商品 /// diff --git a/KJDService/KJD_WebService/Model/JSTDownProdSkuInfo.cs b/KJDService/KJD_WebService/Model/JSTDownProdSkuInfo.cs new file mode 100644 index 0000000..e961abf --- /dev/null +++ b/KJDService/KJD_WebService/Model/JSTDownProdSkuInfo.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace KJD_Web.Model +{ + public class JSTDownProdSkuInfo + { + public int id { get; set; } + public List itemMainImage { get; set; } // Array[5], + public string itemName { get; set; } // "光流沙咕卡麻将砖块转砖带灯创意礼物男孩女孩网红", + public string styleCode { get; set; } // "725068475481", + public string itemCode { get; set; } // "ysk00407C_3R", + public string colourSpec { get; set; } // "方形带灯翠绿色;无规格", + public decimal? supplyPrice { get; set; } // 2.93, + public object oldSupplyPrice { get; set; } // null, + public object priceDate { get; set; } // null, + public List perfectPlatformList { get; set; } // Array[19], + public string shelvesType { get; set; } // "DISTRIBUTION", + public string supplierName { get; set; } // "努正供应链", + public List itemShelvesInfos { get; set; } // [], + public string shelvesTime { get; set; } // "2026-01-30 18:50:50", + public string itemSource { get; set; } // "GYL", + public string itemSourceText { get; set; } // "供应链", + public string supplierCoId { get; set; } // "14204696", + public string spuId { get; set; } // "BEC902FFA8B542A6A9F16BF5964DEA4F", + public string coId { get; set; } // "14791477", + public string partnerSkuId { get; set; } // "21B50E4CA5264A078933C956F0250FD9", + public string partnerSpuId { get; set; } // "9573273974C1472E9CEC10D227218E89", + public bool? deleted { get; set; } // false, + public bool? isPartner { get; set; } // true, + public bool? partnerCanSee { get; set; } // false, + public bool? haveBaseData { get; set; } // false, + public object baseDataId { get; set; } // null, + public string itemStatus { get; set; } // "distribution", + public bool? privateStatus { get; set; } // false, + public string categoryId { get; set; } // "", + public string categoryName { get; set; } // "", + public object regulatePriceMin { get; set; } // null, + public object regulatePriceMax { get; set; } // null, + public object lastRegulatePriceMin { get; set; } // null, + public object lastRegulatePriceMax { get; set; } // null, + public object regulatePriceChangeTime { get; set; } // null, + public bool? showLastRegulatePrice { get; set; } // false, + public string supplierId { get; set; } // "8323D6C2837B42AF8CB37F2A262DCA98", + /// + /// sku状态 FOR_SHELVED:该商品已被供应商设置成不可分销 + /// + public string drpItemStatus { get; set; } // "FOR_SHELVED", + public string lastOperator { get; set; } // "老马", + public string itemSpuIdMd5 { get; set; } // "BEC902FFA8B542A6A9F16BF5964DEA4F" + public string secret_spu_id { get; set; } + public string secret_sku_id { get; set; } + /// + /// 产品库中是否存在 + /// + public int is_in_product_db { get; set; } + public DateTime? add_time { get; set; } + } +} \ No newline at end of file diff --git a/KJDService/KJD_WebService/Model/WxProdSecretSpuIdShopIdMapParam.cs b/KJDService/KJD_WebService/Model/WxProdSecretSpuIdShopIdMapParam.cs new file mode 100644 index 0000000..11c22b3 --- /dev/null +++ b/KJDService/KJD_WebService/Model/WxProdSecretSpuIdShopIdMapParam.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace KJD_Web.Model +{ + public class WxProdSecretSpuIdShopIdMapParam + { + public int id { get; set; } + public string up_secret_spu_id { get; set; } + public string up_spu_id { get; set; } + public string shop_id { get; set; } + public DateTime add_time { get; set; } + } +} \ No newline at end of file diff --git a/KJDService/KJD_WebService/Utils/JsonUtils.cs b/KJDService/KJD_WebService/Utils/JsonUtils.cs index 83ebf78..076fd3e 100644 --- a/KJDService/KJD_WebService/Utils/JsonUtils.cs +++ b/KJDService/KJD_WebService/Utils/JsonUtils.cs @@ -31,11 +31,15 @@ namespace KJD_Web.Utils } } - public static string SerializerObjectToString(object obj) + public static string SerializerObjectToString(object obj, JsonSerializerSettings jsonsetting = null) { try { - string str = JsonConvert.SerializeObject(obj, Formatting.None); + string str = ""; + if (jsonsetting != null) + str = JsonConvert.SerializeObject(obj, Formatting.None, jsonsetting); + else + str = JsonConvert.SerializeObject(obj, Formatting.None); return str; } catch diff --git a/KJDService/KJD_WebService/WXProductService.asmx.cs b/KJDService/KJD_WebService/WXProductService.asmx.cs index 43e5664..18ded60 100644 --- a/KJDService/KJD_WebService/WXProductService.asmx.cs +++ b/KJDService/KJD_WebService/WXProductService.asmx.cs @@ -134,7 +134,21 @@ namespace KJD_Web Context.Response.End(); } - //WXAddMdyAfterSale + /// + /// 根据聚水潭加密商品编号(货号)查询所有上传过的店铺id 260224 未测试 + /// + [WebMethod] + public void get_secret_spu_id_shop_id_map_List() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new WXProductManage().WXGetSecretSpuIdShopIdMapList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] public void wx_add_mdy_after_sale() { diff --git a/TEMUKJD/BLL/PDDProdFormConverter.cs b/TEMUKJD/BLL/PDDProdFormConverter.cs index 96e0fb5..7bd1dd5 100644 --- a/TEMUKJD/BLL/PDDProdFormConverter.cs +++ b/TEMUKJD/BLL/PDDProdFormConverter.cs @@ -615,7 +615,7 @@ namespace TemuKJD.BLL multi_price_in_yuan = null, price = (int)(jSku["supplyPrice"].ParseToDecimal() * 100 + 100), price_in_yuan = null, - quantity = 0, + quantity = jSku["quantity"].ParseToInt(), reserve_quantity = 0, weight = (int)(jSku["weight"].ParseToDecimal() * 1000), thumb_url = jSku["pic"].ParseToString(), diff --git a/TEMUKJD/Extension/DataGridViewExtension.cs b/TEMUKJD/Extension/DataGridViewExtension.cs index b3da420..18b3d8a 100644 --- a/TEMUKJD/Extension/DataGridViewExtension.cs +++ b/TEMUKJD/Extension/DataGridViewExtension.cs @@ -737,17 +737,20 @@ namespace TemuKJD.Extension public static void AddImgColumn(this DataGridView dgv, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true) { bool isScroll = false; + CancellationTokenSource cancelToken = new CancellationTokenSource(); dgv.Scroll += (s, e) => { + cancelToken.Cancel(); + cancelToken = new CancellationTokenSource(); Task.Run(() => { - while (isScroll && 1 == 1) - Thread.Sleep(1); - isScroll = true; - ShowDgvImg(dgv, dgv.Rows.Cast().ToList(), imgColumn, imgPathColumn, isSetHttpsHttp); - isScroll = false; - }); + //while (isScroll && 1 == 1) + // Thread.Sleep(1); + //isScroll = true; + ShowDgvImg(cancelToken, dgv, dgv.Rows.Cast().ToList(), imgColumn, imgPathColumn, isSetHttpsHttp); + //isScroll = false; + }, cancelToken.Token); }; //dgv.Resize += (s, e) => //{ @@ -755,44 +758,55 @@ namespace TemuKJD.Extension //}; dgv.Sorted += (s, e) => { + cancelToken.Cancel(); + cancelToken = new CancellationTokenSource(); Task.Run(() => { - while (isScroll && 1 == 1) - Thread.Sleep(1); - isScroll = true; - ShowDgvImg(dgv, dgv.Rows.Cast().ToList(), imgColumn, imgPathColumn, isSetHttpsHttp); - isScroll = false; - }); + //while (isScroll && 1 == 1) + // Thread.Sleep(1); + //isScroll = true; + ShowDgvImg(cancelToken, dgv, dgv.Rows.Cast().ToList(), imgColumn, imgPathColumn, isSetHttpsHttp); + //isScroll = false; + }, cancelToken.Token); }; //dgv.RowsRemoved += (s, e) => //{ // ShowDgvImg(dgv, null, imgColumn, imgPathColumn, isSetHttpsHttp); //}; - //dgv.RowsAdded += (s, e) => - //{ - // ShowDgvImg(dgv, new List { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp); - //}; + dgv.RowsAdded += (s, e) => + { + cancelToken.Cancel(); + cancelToken = new CancellationTokenSource(); + Task.Run(() => + { + //while (isScroll && 1 == 1) + // Thread.Sleep(1); + //isScroll = true; + ShowDgvImg(cancelToken, dgv, new List { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp); + //isScroll = false; + }, cancelToken.Token); + }; dgv.RowPostPaint += (s, e) => { - if (e.RowIndex >= 0 && e.RowIndex < 25) - { - Task.Run(() => - { - while (isScroll && 1 == 1) - Thread.Sleep(1); - isScroll = true; - try - { - if (dgv.Rows.Count > e.RowIndex) - ShowDgvImg(dgv, new List { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp); - } - catch - { + //if (e.RowIndex >= 0 && e.RowIndex < 25) + //{ + // Task.Run(() => + // { + // while (isScroll && 1 == 1) + // Thread.Sleep(1); + // isScroll = true; + // try + // { + // if (dgv.Rows.Count > e.RowIndex) + // ShowDgvImg(dgv, new List { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp); + // } + // catch + // { - } - isScroll = false; - }); - } + // } + // isScroll = false; + // }); + //} }; dgv.CellValueChanged += (s, e) => { @@ -802,13 +816,16 @@ namespace TemuKJD.Extension if (row.Cells[imgColumn].Value != null && row.Cells[imgColumn].Value != defaultBitmap) { row.Cells[imgColumn].Value = defaultBitmap; + + cancelToken.Cancel(); + cancelToken = new CancellationTokenSource(); Task.Run(() => { - while (isScroll && 1 == 1) - Thread.Sleep(1); - isScroll = true; - ShowDgvImg(dgv, new List { row }, imgColumn, imgPathColumn, isSetHttpsHttp); - isScroll = false; + //while (isScroll && 1 == 1) + // Thread.Sleep(1); + //isScroll = true; + ShowDgvImg(cancelToken, dgv, new List { row }, imgColumn, imgPathColumn, isSetHttpsHttp); + //isScroll = false; }); } } @@ -816,7 +833,7 @@ namespace TemuKJD.Extension } public static Bitmap defaultBitmap = new Bitmap(1, 1); - static void ShowDgvImg(DataGridView dgv, List rowLst, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true) + static void ShowDgvImg(CancellationTokenSource cancelToken, DataGridView dgv, List rowLst, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true) { if (rowLst == null) { @@ -825,9 +842,12 @@ namespace TemuKJD.Extension } foreach (DataGridViewRow row in rowLst) { + if (cancelToken.IsCancellationRequested) + break; + //if (row.Index <= 1) // continue; - if (row.Displayed == false) + if (row.Displayed == false && row.Index > 0) // 不设置大于0 第一行始终不显示图片 { dgv.Invoke(new Action(() => { diff --git a/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs b/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs index d691e61..be24ef7 100644 --- a/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs +++ b/TEMUKJD/KJDForms/ShopForms/ShopListForm.cs @@ -219,7 +219,15 @@ namespace TemuKJD.KJDForms.ShopForms + fTool; var result = GetHtml.PostUtf8(url, data); if (!result.Contains("\"code\":200")) + { + Thread.Sleep(50); result = GetHtml.PostUtf8(url, data); + } + if (!result.Contains("\"code\":200")) + { + Thread.Sleep(1000); + result = GetHtml.PostUtf8(url, data); + } if (!result.Contains("\"code\":200")) { BaseMsgForm.ShowError("服务端登录状态保存失败!请检查网络连接。"); diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs index c90b267..176cf36 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs @@ -35,6 +35,11 @@ namespace TemuKJD.ToolForms System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.btnNext = new System.Windows.Forms.Button(); this.btnPrev = new System.Windows.Forms.Button(); @@ -56,6 +61,36 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1 = new PinBaoBao.UserControls.UcTabControlMetro(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabPage2 = new System.Windows.Forms.TabPage(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + this.btnStopGetDownSku = new DevComponents.DotNetBar.PanelEx(); + this.btnResetCache = new DevComponents.DotNetBar.PanelEx(); + this.label6 = new System.Windows.Forms.Label(); + this.txtBeforeDay = new System.Windows.Forms.TextBox(); + this.chkSkipDownSearch = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.label5 = new System.Windows.Forms.Label(); + this.txtBeforeHour = new System.Windows.Forms.TextBox(); + this.statusBarUserControl1 = new TemuKJD.UserControls.StatusBarUserControl(); + this.dtpEndTime = new System.Windows.Forms.DateTimePicker(); + this.dtpStartTime = new System.Windows.Forms.DateTimePicker(); + this.btnGetDownSku = new DevComponents.DotNetBar.PanelEx(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.dgvDownSku = new TemuKJD.UserComponent.DataGridViewEx(); + this.colDownSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colDownSpuId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownStyleCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colDownItemName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.skuDownItemCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownColourSpec = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownSupplyPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownShelvesTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownLastOperator = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colDownDrpItemStatus = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewLinkColumn1 = new System.Windows.Forms.DataGridViewLinkColumn(); + this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.pnlMultiLogin = new System.Windows.Forms.Panel(); this.cmbMultiCookieName = new DevComponents.DotNetBar.Controls.ComboBoxEx(); this.btnMultiLogin = new DevComponents.DotNetBar.PanelEx(); @@ -97,6 +132,13 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); + this.splitContainer3.Panel1.SuspendLayout(); + this.splitContainer3.Panel2.SuspendLayout(); + this.splitContainer3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvDownSku)).BeginInit(); this.pnlMultiLogin.SuspendLayout(); this.SuspendLayout(); // @@ -114,7 +156,7 @@ namespace TemuKJD.ToolForms this.splitContainer2.Panel1.Controls.Add(this.btnNext); this.splitContainer2.Panel1.Controls.Add(this.btnPrev); this.splitContainer2.Panel1.Controls.Add(this.txtAddress); - this.splitContainer2.Size = new System.Drawing.Size(1390, 434); + this.splitContainer2.Size = new System.Drawing.Size(1390, 442); this.splitContainer2.SplitterDistance = 26; this.splitContainer2.TabIndex = 6; // @@ -153,7 +195,7 @@ namespace TemuKJD.ToolForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(673, 195); + this.pbLoading.Location = new System.Drawing.Point(673, 197); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -197,7 +239,7 @@ namespace TemuKJD.ToolForms this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; - this.dgvProduct.Size = new System.Drawing.Size(1390, 434); + this.dgvProduct.Size = new System.Drawing.Size(1390, 441); this.dgvProduct.TabIndex = 7; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // @@ -333,7 +375,7 @@ namespace TemuKJD.ToolForms this.splitContainer1.Panel2.Controls.Add(this.btnImportCookie); this.splitContainer1.Panel2.Controls.Add(this.label2); this.splitContainer1.Size = new System.Drawing.Size(1404, 561); - this.splitContainer1.SplitterDistance = 470; + this.splitContainer1.SplitterDistance = 478; this.splitContainer1.SplitterWidth = 3; this.splitContainer1.TabIndex = 4; // @@ -343,12 +385,13 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(174)))), ((int)(((byte)(157))))); this.ucTabControlMetro1.Controls.Add(this.tabPage1); this.ucTabControlMetro1.Controls.Add(this.tabPage2); + this.ucTabControlMetro1.Controls.Add(this.tabPage3); this.ucTabControlMetro1.Dock = System.Windows.Forms.DockStyle.Fill; this.ucTabControlMetro1.Location = new System.Drawing.Point(0, 0); this.ucTabControlMetro1.Name = "ucTabControlMetro1"; this.ucTabControlMetro1.SelectedIndex = 0; this.ucTabControlMetro1.ShowCloseButton = false; - this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 470); + this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 478); this.ucTabControlMetro1.TabIndex = 462; this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; @@ -360,7 +403,7 @@ namespace TemuKJD.ToolForms this.tabPage1.Location = new System.Drawing.Point(4, 26); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1396, 440); + this.tabPage1.Size = new System.Drawing.Size(1396, 448); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "商品页面"; this.tabPage1.UseVisualStyleBackColor = true; @@ -372,11 +415,373 @@ namespace TemuKJD.ToolForms this.tabPage2.Location = new System.Drawing.Point(4, 26); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(1396, 440); + this.tabPage2.Size = new System.Drawing.Size(1396, 447); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "采集列表"; this.tabPage2.UseVisualStyleBackColor = true; // + // tabPage3 + // + this.tabPage3.Controls.Add(this.splitContainer3); + this.tabPage3.Location = new System.Drawing.Point(4, 26); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(1396, 448); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "下架SKU查询"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // splitContainer3 + // + this.splitContainer3.BackColor = System.Drawing.Color.White; + this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + 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.btnStopGetDownSku); + this.splitContainer3.Panel1.Controls.Add(this.btnResetCache); + this.splitContainer3.Panel1.Controls.Add(this.label6); + this.splitContainer3.Panel1.Controls.Add(this.txtBeforeDay); + this.splitContainer3.Panel1.Controls.Add(this.chkSkipDownSearch); + this.splitContainer3.Panel1.Controls.Add(this.label5); + this.splitContainer3.Panel1.Controls.Add(this.txtBeforeHour); + this.splitContainer3.Panel1.Controls.Add(this.statusBarUserControl1); + this.splitContainer3.Panel1.Controls.Add(this.dtpEndTime); + this.splitContainer3.Panel1.Controls.Add(this.dtpStartTime); + this.splitContainer3.Panel1.Controls.Add(this.btnGetDownSku); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.Controls.Add(this.pictureBox1); + this.splitContainer3.Panel2.Controls.Add(this.dgvDownSku); + this.splitContainer3.Size = new System.Drawing.Size(1396, 448); + this.splitContainer3.SplitterDistance = 82; + this.splitContainer3.TabIndex = 0; + // + // btnStopGetDownSku + // + this.btnStopGetDownSku.CanvasColor = System.Drawing.SystemColors.Control; + this.btnStopGetDownSku.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnStopGetDownSku.DisabledBackColor = System.Drawing.Color.Empty; + this.btnStopGetDownSku.Location = new System.Drawing.Point(462, 14); + this.btnStopGetDownSku.Name = "btnStopGetDownSku"; + this.btnStopGetDownSku.Size = new System.Drawing.Size(72, 23); + this.btnStopGetDownSku.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnStopGetDownSku.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStopGetDownSku.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStopGetDownSku.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnStopGetDownSku.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStopGetDownSku.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnStopGetDownSku.Style.GradientAngle = 90; + this.btnStopGetDownSku.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnStopGetDownSku.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnStopGetDownSku.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStopGetDownSku.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStopGetDownSku.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnStopGetDownSku.TabIndex = 964; + this.btnStopGetDownSku.Text = "停止采集"; + this.btnStopGetDownSku.Click += new System.EventHandler(this.btnStopGetDownSku_Click); + // + // btnResetCache + // + this.btnResetCache.CanvasColor = System.Drawing.SystemColors.Control; + this.btnResetCache.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnResetCache.DisabledBackColor = System.Drawing.Color.Empty; + this.btnResetCache.Location = new System.Drawing.Point(1017, 14); + this.btnResetCache.Name = "btnResetCache"; + this.btnResetCache.Size = new System.Drawing.Size(110, 23); + this.btnResetCache.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnResetCache.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnResetCache.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnResetCache.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnResetCache.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnResetCache.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnResetCache.Style.GradientAngle = 90; + this.btnResetCache.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnResetCache.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnResetCache.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnResetCache.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnResetCache.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnResetCache.TabIndex = 954; + this.btnResetCache.Text = "清除采集緩存"; + this.btnResetCache.Click += new System.EventHandler(this.btnResetCache_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(883, 17); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(128, 17); + this.label6.TabIndex = 944; + this.label6.Text = "小时之前时,结束采集"; + // + // txtBeforeDay + // + this.txtBeforeDay.Location = new System.Drawing.Point(776, 14); + this.txtBeforeDay.Name = "txtBeforeDay"; + this.txtBeforeDay.Size = new System.Drawing.Size(43, 23); + this.txtBeforeDay.TabIndex = 829; + this.txtBeforeDay.Text = "1"; + this.txtBeforeDay.TextChanged += new System.EventHandler(this.txtBeforeDay_TextChanged); + // + // chkSkipDownSearch + // + this.chkSkipDownSearch.AutoSize = true; + this.chkSkipDownSearch.Checked = true; + this.chkSkipDownSearch.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkSkipDownSearch.Location = new System.Drawing.Point(540, 15); + this.chkSkipDownSearch.Name = "chkSkipDownSearch"; + this.chkSkipDownSearch.Size = new System.Drawing.Size(243, 21); + this.chkSkipDownSearch.TabIndex = 943; + this.chkSkipDownSearch.Text = "SKU下架库中存在当前采集且采集时间在"; + this.chkSkipDownSearch.UseVisualStyleBackColor = true; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(820, 17); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(20, 17); + this.label5.TabIndex = 831; + this.label5.Text = "天"; + // + // txtBeforeHour + // + this.txtBeforeHour.Location = new System.Drawing.Point(840, 14); + this.txtBeforeHour.Name = "txtBeforeHour"; + this.txtBeforeHour.Size = new System.Drawing.Size(43, 23); + this.txtBeforeHour.TabIndex = 830; + this.txtBeforeHour.Text = "0"; + this.txtBeforeHour.TextChanged += new System.EventHandler(this.txtBeforeDay_TextChanged); + // + // statusBarUserControl1 + // + this.statusBarUserControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.statusBarUserControl1.BackColor = System.Drawing.Color.White; + this.statusBarUserControl1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBarUserControl1.Location = new System.Drawing.Point(5, 49); + this.statusBarUserControl1.Margin = new System.Windows.Forms.Padding(0); + this.statusBarUserControl1.Name = "statusBarUserControl1"; + this.statusBarUserControl1.Size = new System.Drawing.Size(1388, 25); + this.statusBarUserControl1.TabIndex = 824; + // + // dtpEndTime + // + this.dtpEndTime.Location = new System.Drawing.Point(165, 14); + this.dtpEndTime.Name = "dtpEndTime"; + this.dtpEndTime.Size = new System.Drawing.Size(149, 23); + this.dtpEndTime.TabIndex = 800; + this.dtpEndTime.Value = new System.DateTime(2026, 1, 28, 0, 0, 0, 0); + this.dtpEndTime.ValueChanged += new System.EventHandler(this.dtpEndTime_ValueChanged); + // + // dtpStartTime + // + this.dtpStartTime.Location = new System.Drawing.Point(10, 14); + this.dtpStartTime.Name = "dtpStartTime"; + this.dtpStartTime.Size = new System.Drawing.Size(149, 23); + this.dtpStartTime.TabIndex = 799; + this.dtpStartTime.Value = new System.DateTime(2026, 1, 28, 0, 0, 0, 0); + this.dtpStartTime.ValueChanged += new System.EventHandler(this.dtpStartTime_ValueChanged); + // + // btnGetDownSku + // + this.btnGetDownSku.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetDownSku.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetDownSku.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetDownSku.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetDownSku.Location = new System.Drawing.Point(320, 14); + this.btnGetDownSku.Name = "btnGetDownSku"; + this.btnGetDownSku.Size = new System.Drawing.Size(136, 23); + this.btnGetDownSku.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetDownSku.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetDownSku.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetDownSku.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetDownSku.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetDownSku.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetDownSku.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetDownSku.Style.GradientAngle = 90; + this.btnGetDownSku.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetDownSku.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetDownSku.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetDownSku.TabIndex = 798; + this.btnGetDownSku.Text = "采集下架SKU列表"; + this.btnGetDownSku.Click += new System.EventHandler(this.btnGetDownSku_Click); + // + // pictureBox1 + // + this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pictureBox1.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pictureBox1.Location = new System.Drawing.Point(673, 156); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(50, 50); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 9; + this.pictureBox1.TabStop = false; + this.pictureBox1.Visible = false; + // + // dgvDownSku + // + this.dgvDownSku.AllowUserToAddRows = false; + this.dgvDownSku.AllowUserToDeleteRows = false; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvDownSku.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6; + this.dgvDownSku.AutoRowNumber = true; + this.dgvDownSku.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvDownSku.BackgroundColor = System.Drawing.Color.White; + this.dgvDownSku.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvDownSku.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + this.dgvDownSku.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvDownSku.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colDownSelect, + this.colDownSpuId, + this.colDownStyleCode, + this.colDownImgUrl, + this.colDownImg, + this.colDownItemName, + this.skuDownItemCode, + this.colDownColourSpec, + this.colDownSupplierName, + this.colDownSupplyPrice, + this.colDownShelvesTime, + this.colDownLastOperator, + this.colDownDrpItemStatus, + this.dataGridViewLinkColumn1, + this.dataGridViewTextBoxColumn8}); + this.dgvDownSku.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvDownSku.Location = new System.Drawing.Point(0, 0); + this.dgvDownSku.Name = "dgvDownSku"; + this.dgvDownSku.ReadOnly = true; + this.dgvDownSku.RowTemplate.Height = 23; + this.dgvDownSku.Size = new System.Drawing.Size(1396, 362); + this.dgvDownSku.TabIndex = 8; + // + // colDownSelect + // + this.colDownSelect.FillWeight = 26F; + this.colDownSelect.HeaderText = "选"; + this.colDownSelect.Name = "colDownSelect"; + this.colDownSelect.ReadOnly = true; + this.colDownSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colDownSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colDownSpuId + // + this.colDownSpuId.FillWeight = 50F; + this.colDownSpuId.HeaderText = "商品Id"; + this.colDownSpuId.Name = "colDownSpuId"; + this.colDownSpuId.ReadOnly = true; + // + // colDownStyleCode + // + this.colDownStyleCode.FillWeight = 50F; + this.colDownStyleCode.HeaderText = "资料编码"; + this.colDownStyleCode.Name = "colDownStyleCode"; + this.colDownStyleCode.ReadOnly = true; + // + // colDownImgUrl + // + this.colDownImgUrl.FillWeight = 300F; + this.colDownImgUrl.HeaderText = "图片路径"; + this.colDownImgUrl.Name = "colDownImgUrl"; + this.colDownImgUrl.ReadOnly = true; + this.colDownImgUrl.Visible = false; + // + // colDownImg + // + this.colDownImg.FillWeight = 40F; + this.colDownImg.HeaderText = "图片"; + this.colDownImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colDownImg.Name = "colDownImg"; + this.colDownImg.ReadOnly = true; + this.colDownImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colDownImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colDownItemName + // + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colDownItemName.DefaultCellStyle = dataGridViewCellStyle8; + this.colDownItemName.FillWeight = 120F; + this.colDownItemName.HeaderText = "商品名称"; + this.colDownItemName.Name = "colDownItemName"; + this.colDownItemName.ReadOnly = true; + // + // skuDownItemCode + // + this.skuDownItemCode.FillWeight = 60F; + this.skuDownItemCode.HeaderText = "Sku编码"; + this.skuDownItemCode.Name = "skuDownItemCode"; + this.skuDownItemCode.ReadOnly = true; + // + // colDownColourSpec + // + this.colDownColourSpec.FillWeight = 60F; + this.colDownColourSpec.HeaderText = "Sku规格"; + this.colDownColourSpec.Name = "colDownColourSpec"; + this.colDownColourSpec.ReadOnly = true; + // + // colDownSupplierName + // + this.colDownSupplierName.HeaderText = "供应商名称"; + this.colDownSupplierName.Name = "colDownSupplierName"; + this.colDownSupplierName.ReadOnly = true; + // + // colDownSupplyPrice + // + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colDownSupplyPrice.DefaultCellStyle = dataGridViewCellStyle9; + this.colDownSupplyPrice.FillWeight = 70F; + this.colDownSupplyPrice.HeaderText = "供货价"; + this.colDownSupplyPrice.Name = "colDownSupplyPrice"; + this.colDownSupplyPrice.ReadOnly = true; + // + // colDownShelvesTime + // + this.colDownShelvesTime.FillWeight = 80F; + this.colDownShelvesTime.HeaderText = "供应商加入时间"; + this.colDownShelvesTime.Name = "colDownShelvesTime"; + this.colDownShelvesTime.ReadOnly = true; + // + // colDownLastOperator + // + this.colDownLastOperator.FillWeight = 50F; + this.colDownLastOperator.HeaderText = "操作人"; + this.colDownLastOperator.Name = "colDownLastOperator"; + this.colDownLastOperator.ReadOnly = true; + // + // colDownDrpItemStatus + // + this.colDownDrpItemStatus.FillWeight = 50F; + this.colDownDrpItemStatus.HeaderText = "状态"; + this.colDownDrpItemStatus.Name = "colDownDrpItemStatus"; + this.colDownDrpItemStatus.ReadOnly = true; + // + // dataGridViewLinkColumn1 + // + this.dataGridViewLinkColumn1.FillWeight = 35F; + this.dataGridViewLinkColumn1.HeaderText = "删除"; + this.dataGridViewLinkColumn1.Name = "dataGridViewLinkColumn1"; + this.dataGridViewLinkColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn8 + // + dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle10; + this.dataGridViewTextBoxColumn8.FillWeight = 160F; + this.dataGridViewTextBoxColumn8.HeaderText = "操作结果"; + this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; + this.dataGridViewTextBoxColumn8.ReadOnly = true; + // // pnlMultiLogin // this.pnlMultiLogin.Controls.Add(this.cmbMultiCookieName); @@ -796,7 +1201,7 @@ namespace TemuKJD.ToolForms this.btnSaveCookie.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnSaveCookie.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSaveCookie.DisabledBackColor = System.Drawing.Color.Empty; - this.btnSaveCookie.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSaveCookie.Font = new System.Drawing.Font("微软雅黑", 8F); this.btnSaveCookie.Location = new System.Drawing.Point(171, 30); this.btnSaveCookie.Name = "btnSaveCookie"; this.btnSaveCookie.Size = new System.Drawing.Size(125, 25); @@ -812,7 +1217,7 @@ namespace TemuKJD.ToolForms this.btnSaveCookie.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); this.btnSaveCookie.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); this.btnSaveCookie.TabIndex = 765; - this.btnSaveCookie.Text = "保存网页cookie"; + this.btnSaveCookie.Text = "保存网页cookie到服务"; this.btnSaveCookie.Click += new System.EventHandler(this.btnSaveCookie_Click); // // btnImportCookie @@ -873,6 +1278,14 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage2.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.splitContainer3.Panel1.ResumeLayout(false); + this.splitContainer3.Panel1.PerformLayout(); + this.splitContainer3.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); + this.splitContainer3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvDownSku)).EndInit(); this.pnlMultiLogin.ResumeLayout(false); this.ResumeLayout(false); @@ -929,5 +1342,35 @@ namespace TemuKJD.ToolForms private System.Windows.Forms.TextBox txtTitle; private DevComponents.DotNetBar.PanelEx btnSearchTitle; private DevComponents.DotNetBar.PanelEx btnCancelSelect; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.SplitContainer splitContainer3; + private UserComponent.DataGridViewEx dgvDownSku; + private System.Windows.Forms.DateTimePicker dtpEndTime; + private System.Windows.Forms.DateTimePicker dtpStartTime; + private DevComponents.DotNetBar.PanelEx btnGetDownSku; + private UserControls.StatusBarUserControl statusBarUserControl1; + private System.Windows.Forms.DataGridViewCheckBoxColumn colDownSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownSpuId; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownStyleCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colDownImg; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownItemName; + private System.Windows.Forms.DataGridViewTextBoxColumn skuDownItemCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownColourSpec; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownSupplierName; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownSupplyPrice; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownShelvesTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownLastOperator; + private System.Windows.Forms.DataGridViewTextBoxColumn colDownDrpItemStatus; + private System.Windows.Forms.DataGridViewLinkColumn dataGridViewLinkColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox txtBeforeDay; + private UserComponent.UcCheckBox chkSkipDownSearch; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox txtBeforeHour; + private DevComponents.DotNetBar.PanelEx btnResetCache; + private DevComponents.DotNetBar.PanelEx btnStopGetDownSku; + private System.Windows.Forms.PictureBox pictureBox1; } } \ No newline at end of file diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs index 323c232..9f8cc49 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs @@ -22,6 +22,8 @@ using TemuKJD.BaseForms; using TemuKJD.BLL; using TemuKJD.Extension; using TemuKJD.Helper; +using TemuKJD.PDDForms.ProductSelectForms; +using TemuKJD.WXForms.ProductForms; using Work; namespace TemuKJD.ToolForms @@ -29,6 +31,7 @@ namespace TemuKJD.ToolForms public partial class GetJuShuitanProdForm : BaseForms.BaseForm { public CancellationTokenSource cancellationTokenSource { get; set; } = null; + public CancellationTokenSource CancelGetDown { get; set; } = null; string InitUrl = "https://sc.scm121.com/suppliersManage/suppliersList/onlineSuppliers"; public ChromiumWebBrowser cefWebBrowser = null; private string currentUrl = ""; @@ -42,7 +45,14 @@ namespace TemuKJD.ToolForms int filterSaleCount = 100; string platformType = "Pinduoduo"; string jstPddShopId = ""; + int downBeforeDays = 1; + int downBeforeHours = 0; ConcurrentList lstJSTListProductInfo = new ConcurrentList(); + /// + /// 聚水潭已下架sku + /// + ConcurrentList lstJSTDownProdSkuInfo = new ConcurrentList(); + JstDownSkuGetInfo jstDownSkuGetInfo = new JstDownSkuGetInfo(); public GetJuShuitanProdForm() { @@ -51,15 +61,32 @@ namespace TemuKJD.ToolForms private void GetJuShuitanProdForm_Load(object sender, EventArgs e) { + //this.ucTabControlMetro1.TabPages.Remove(tabPage3); + this.splitContainer1.SplitterDistance = 472; this.dgvProduct.AddSelectorColumn("colCheck"); this.dgvProduct.AddImgColumn("colImg", "colImgUrl"); - var tmpProductLst = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("supplier_product_list_" + MainForm.ProcessCount); - if (tmpProductLst == null) - tmpProductLst = new List(); - lstJSTListProductInfo.AddRange(tmpProductLst); + this.dgvDownSku.AddSelectorColumn("colDownSelect"); + this.dgvDownSku.AddImgColumn("colDownImg", "colDownImgUrl"); + + downBeforeDays = txtBeforeDay.Text.ParseToInt(); + downBeforeHours = txtBeforeHour.Text.ParseToInt(); + + dtpEndTime.Value = DateTime.Now; + + lstJSTListProductInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("supplier_product_list_" + MainForm.ProcessCount); + if (lstJSTListProductInfo == null) + lstJSTListProductInfo = new ConcurrentList(); + lstJSTDownProdSkuInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("jst_down_sku_list"); + if (lstJSTDownProdSkuInfo == null) + lstJSTDownProdSkuInfo = new ConcurrentList(); + jstDownSkuGetInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig("jst_down_sku_get_info"); + if (jstDownSkuGetInfo == null) + jstDownSkuGetInfo = new JstDownSkuGetInfo(); + pbLoading.Visible = true; + pictureBox1.Visible = true; Task.Run(() => { int id = 0; @@ -99,6 +126,40 @@ namespace TemuKJD.ToolForms { pbLoading.Visible = false; })); + + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "上次采集 " + jstDownSkuGetInfo.readPage + "/" + jstDownSkuGetInfo.totalPage + " 页,每页 " + 100; + })); + foreach (var downSku in lstJSTDownProdSkuInfo) + { + Invoke(new Action(() => + { + var rowIndex = dgvDownSku.Rows.Add( + true, + downSku.spuId, + downSku.styleCode, + downSku.itemMainImage.FirstOrDefault().ParseToString(), + DataGridViewExtension.defaultBitmap, + downSku.itemName, + downSku.itemCode, + downSku.colourSpec, + downSku.supplierName, + downSku.supplyPrice, + downSku.shelvesTime, + downSku.lastOperator, + downSku.drpItemStatus, + "删除", + downSku.is_in_product_db == 1 ? "" : "产品库不存在,跳过" + ); + dgvDownSku.Rows[rowIndex].Height = 60; + })); + } + + Invoke(new Action(() => + { + pictureBox1.Visible = false; + })); }); InitCef(); @@ -219,6 +280,12 @@ namespace TemuKJD.ToolForms private void btnImportCookie_Click(object sender, EventArgs e) { + if (!txtCookie.Text.Contains("DISTRYBUTION_TOKEN")) + { + BaseMsgForm.ShowError("导入的cookie无效,请重新输入"); + return; + } + Task.Run(() => { var t = CEFBrowser.SetCookieAsync("scm121.com", txtCookie.Text, cefWebBrowser.GetCookieManager(null)); @@ -1111,6 +1178,27 @@ namespace TemuKJD.ToolForms return response; } + + public string GetDownSkuLst(ShopLoginInfo shop, DateTime startTime, DateTime endTime, int pageNum, int pageSize) + { + string url = "https://sc.scm121.com/api/goods/goChannelPartnerSku/queryChannelPartnerSkuList"; + string referer = "https://sc.scm121.com/manage/goods/distributionGoodsManage/sku?skuDrpItemStatus=true"; + //string body = @"{""startTime"":""2026-01-30 00:00:00"",""endTime"":""2026-02-24 23:59:59"",""pageSize"":20,""pageNum"":1,""isAllChangePriceItemCode"":false,""skuDrpItemStatus"":""FOR_SHELVED"",""allRegulatePriceChangeSku"":false,""checkHasData"":false}"; + string body = + @"{""startTime"":""" + startTime.ToString("yyyy-MM-dd HH:mm:ss") + + @""",""endTime"":""" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + + @""",""pageSize"":" + pageSize + @",""pageNum"":" + Math.Max(1, pageNum) + @",""isAllChangePriceItemCode"":false," + + @"""skuDrpItemStatus"":""FOR_SHELVED"",""allRegulatePriceChangeSku"":false,""checkHasData"":false}"; + var lstRst = ""; + for (int i = 0; i < 3 && !lstRst.Contains("\"success\":true"); i++) + { + if (i > 0) + Thread.Sleep(Randomx.GetId(1000, 2000)); + lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, body, referer, appVersion); + } + return lstRst; + } + private void btnSearchTitle_Click(object sender, EventArgs e) { pbLoading.Visible = true; @@ -1150,5 +1238,416 @@ namespace TemuKJD.ToolForms } }); } + + private void btnGetDownSku_Click(object sender, EventArgs e) + { + if (!cefWebBrowser.Address.StartsWith("https://sc.scm121.com/manage/goods/distributionGoodsManage/") && + !cefWebBrowser.Address.StartsWith("https://sc.scm121.com/suppliersManage/suppliersList/onlineSuppliers")) + { + BaseMsgForm.ShowError("请将网页切换到分销页面!"); + return; + } + + if (CancelGetDown != null) + CancelGetDown.Cancel(); + CancelGetDown = new CancellationTokenSource(); + pictureBox1.Visible = true; + Task.Run(() => + { + GetDownSku(CancelGetDown); + + Invoke(new Action(() => + { + if (jstDownSkuGetInfo.status != "done") + BaseMsgForm.ShowError("采集并同步产品中断!"); + else + BaseMsgForm.ShowError("采集并同步产品完成!"); + pictureBox1.Visible = false; + })); + }, CancelGetDown.Token); + } + + DateTime startTime = new DateTime(2026,1,28); + DateTime endTime; + void GetDownSku(CancellationTokenSource cancelGetDown) + { + List cookieList = CEFBrowser.GetCookieList(".scm121.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + + + int total, page, totalPage = jstDownSkuGetInfo.totalPage; + int startPage = jstDownSkuGetInfo.readPage; + int pageSize = 100; +#if DEBUG + pageSize = 100; +#endif + for (page = startPage; page < 999999; page++) + { + if (cancelGetDown.IsCancellationRequested) + { + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "采集终止 " + page + "/" + totalPage + " 页,每页 " + pageSize; + })); + return; + } + + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "正在采集 " + page + "/" + totalPage + " 页,每页 " + pageSize; + })); + + var rst = GetDownSkuLst(shop, startTime, endTime, page, pageSize); + Thread.Sleep(5000); + if (!rst.Contains("\"success\":true")) + { + Thread.Sleep(5000); + rst = GetDownSkuLst(shop, startTime, endTime, page, pageSize); + } + if (!rst.Contains("\"success\":true")) + { + var errMsg = BaseRegex.GetStringJson(ref rst, "message"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = rst; + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "查询下架列表失败:" + errMsg; + })); + return; + } + + total = BaseRegex.GetIntJson(ref rst, "total"); + totalPage = Math.Ceiling(1.0m * total / pageSize).ParseToInt(); + try + { + var jsonStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(rst)["data"]); + List jstDownProdSkuLst = JsonHelper.DeserializeJsonToList(jsonStr); + List jstDownProdSkuGetExistLst = JsonHelper.DeserializeJsonToList(jsonStr); + jstDownProdSkuLst = jstDownProdSkuLst.Where(sku => !lstJSTDownProdSkuInfo.Any(s => s.itemCode == sku.itemCode)).ToList(); + + var url = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + var data = UserLogin.GetSignaturex(); + data += "&search_spu_ids=" + string.Join(",", jstDownProdSkuLst.Select(s => s.spuId).Distinct()); + var result = GetHtml.PostUtf8(url, data); + if (!result.Contains("\"code\":200")) + result = GetHtml.PostUtf8(url, data); + if (!result.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref rst, "message"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = rst; + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "查询错误:" + errMsg; + })); + return; + } + List dbProdLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + + // 查询下架库有没有 + url = BaseClass.BuildPDDObjString("product/get_prod_down_sku_lst_by_sku_codes"); + data = UserLogin.GetSignaturex(); + data += "&search_spu_ids=" + string.Join(",", jstDownProdSkuGetExistLst.Select(s => s.spuId).Distinct()); + data += "&search_sku_codes=" + string.Join(",", jstDownProdSkuGetExistLst.Select(s => s.itemCode).Distinct()); + result = GetHtml.PostUtf8(url, data); + if (!result.Contains("\"code\":200")) + result = GetHtml.PostUtf8(url, data); + if (!result.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref rst, "message"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = rst; + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "查询下架库错误:" + errMsg; + })); + return; + } + List downSkuExistLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + if (chkSkipDownSearch.Checked && downSkuExistLst.Count > 0 && downSkuExistLst.All(se => se.add_time < DateTime.Now.AddDays(-downBeforeDays).AddHours(-downBeforeHours))) + { + // 存在之前采集的数据,说明已查询完最新数据,跳出 + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "增量采集完成 " + page + "/" + totalPage + " 页,每页 " + pageSize; + })); + goto endDownSearch; + } + + foreach (var dbProdLite in dbProdLst) + { + string errMsg; + var dbProd = WXDBProdUploadForm.GetProductDetail(dbProdLite.id.ParseToString(), out errMsg); + if (!string.IsNullOrEmpty(errMsg) || dbProd == null) + { + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "商品详情读取失败 " + errMsg; + })); + return; + } + var secretSkuLst = dbProd.sku_secret_json; + + JObject jstSecretCodeLst = new JObject(); + try + { + jstSecretCodeLst = JsonHelper.JObjectParse(dbProd.sku_secret_json.TrimStart('[').TrimEnd(']')); + } + catch + { + } + var secret_spu_id = dbProd.secret_spu_id; + if (secret_spu_id.IsNullOrEmpty() && jstSecretCodeLst !=null) + { + secret_spu_id = jstSecretCodeLst["goodsId"].ParseToString(); + } + + JObject prodJObj = new JObject(); + try + { + prodJObj = JObject.Parse(dbProd.product_json); + foreach (var skuObj in prodJObj["pddData"]["skuInfo"]["goodsSkuDetail"]) + { + var itemNo = skuObj["itemNo"].ParseToString(); + foreach (var downSku in jstDownProdSkuLst) + { + if (downSku.colourSpec == "圆形黄色小号") + { + + } + if (downSku.itemCode == itemNo && downSku.spuId == dbProd.spu_id) + { + skuObj["quantity"] = 0; + downSku.secret_spu_id = secret_spu_id; + + try + { + var secret_sku_id = jstSecretCodeLst?["skus"]?.FirstOrDefault(s => s["skuCode"].ParseToString() == downSku.itemCode)?["skuId"].ParseToString(); + downSku.secret_sku_id = secret_sku_id; + } + catch + { + } + } + } + } + + dbProd.product_json = JsonHelper.SerializeObject(prodJObj); + url = BaseClass.BuildPDDObjString("product/mdy_product"); + var prodNewData = Work.UserLogin.GetSignaturex() + + "&product_json=" + HttpUtility.UrlEncode(dbProd.product_json, Encoding.UTF8) + "&spu_id=" + dbProd.spu_id; + var html = ""; + for (int i = 0; i< 3 && !html.Contains("\"code\":200"); i++ ) + { + html = GetHtml.PostUtf8(url, prodNewData); + } + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + errMsg = BaseRegex.GetStringJson(ref html, "msg"); + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "商品详情转换/更新保存失败 " + errMsg; + })); + return; + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "商品详情转换/更新失败 " + ex.Message; + })); + return; + } + } + + foreach (var downSku in jstDownProdSkuLst) + { + if (dbProdLst.Any(p => p.spu_id == downSku.spuId)) + downSku.is_in_product_db = 1; + + // 1.先显示下架sku + lstJSTDownProdSkuInfo.Add(downSku); + Invoke(new Action(() => + { + var rowIndex = dgvDownSku.Rows.Add( + true, + downSku.spuId, + downSku.styleCode, + downSku.itemMainImage.FirstOrDefault().ParseToString(), + DataGridViewExtension.defaultBitmap, + downSku.itemName, + downSku.itemCode, + downSku.colourSpec, + downSku.supplierName, + downSku.supplyPrice, + downSku.shelvesTime, + downSku.lastOperator, + downSku.drpItemStatus, + "删除", + downSku.is_in_product_db == 1 ? "已更新库存产品" : "产品库不存在,跳过" + ); + dgvDownSku.Rows[rowIndex].Height = 60; + })); + + // 2.再入下架sku库 + // 产品库没有这个商品,直接跳过 + if (downSku.is_in_product_db != 1) + continue; + // 产品库有这个商品,继续判断下架库是否有 + var downSkuExist = downSkuExistLst.FirstOrDefault(p => p.spuId == downSku.spuId && p.itemCode == downSku.itemCode); + if (downSkuExist != null) + { + if (chkSkipDownSearch.Checked && downSkuExist.add_time < DateTime.Now.AddDays(-downBeforeDays).AddHours(-downBeforeHours)) + { + // 存在之前采集的数据,说明已查询完最新数据,跳出 + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "增量采集完成 " + page + "/" + totalPage + " 页,每页 " + pageSize; + })); + goto endDownSearch; + } + + // 下架库里已存在,就跳过。 + //if (downSku.is_in_product_db == 1) + continue; + } + else + { + // 入下架库 + url = BaseClass.BuildPDDObjString("product/add_prod_down_sku"); + var prodNewData = Work.UserLogin.GetSignaturex() + + "&itemMainImage=" + HttpUtility.UrlEncode(string.Join(",", downSku.itemMainImage), Encoding.UTF8) + + "&itemName=" + HttpUtility.UrlEncode(downSku.itemName, Encoding.UTF8) + + "&styleCode=" + HttpUtility.UrlEncode(downSku.styleCode, Encoding.UTF8) + + "&itemCode=" + HttpUtility.UrlEncode(downSku.itemCode, Encoding.UTF8) + + "&colourSpec=" + HttpUtility.UrlEncode(downSku.colourSpec, Encoding.UTF8) + + "&supplyPrice=" + downSku.supplyPrice.ParseToString() + + "&supplierName=" + downSku.supplierName + + "&shelvesTime=" + downSku.shelvesTime + + "&supplierCoId=" + downSku.supplierCoId + + "&coId=" + downSku.coId + + "&spuId=" + downSku.spuId + + "&partnerSkuId=" + downSku.partnerSkuId + + "&partnerSpuId=" + downSku.partnerSpuId + + "&supplierId=" + downSku.supplierId + + "&drpItemStatus=" + downSku.drpItemStatus + + "&lastOperator=" + downSku.lastOperator + + "&itemSpuIdMd5=" + downSku.itemSpuIdMd5 + + "&secret_spu_id=" + downSku.secret_spu_id + + "&secret_sku_id=" + downSku.secret_sku_id + + "&is_in_product_db=" + downSku.is_in_product_db; + var html = ""; + for (int i = 0; i < 5 && (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")); i++) + { + html = GetHtml.PostUtf8(url, prodNewData); + if (html.Contains("数据已存在")) + break; + } + if (html.Contains("数据已存在")) + { + // 数据已存在的暂时跳过不处理 + } + else if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + // 入库失败终止 + string errMsg = BaseRegex.GetStringJson(ref html, "msg"); + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "下架商品Sku入库失败 " + errMsg; + })); + return; + } + } + } + + if (page % 5 == 4 || !rst.Contains("\"hasNext\":true")) + { + NaiBa.Util.Helper.ConfigHelper.SaveConfig("jst_down_sku_list", lstJSTDownProdSkuInfo); + jstDownSkuGetInfo.readPage = page; + jstDownSkuGetInfo.totalPage = totalPage; + jstDownSkuGetInfo.status = "reading"; + jstDownSkuGetInfo.lastReadDate = DateTime.Now.Date; + jstDownSkuGetInfo.totalCount = total; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("jst_down_sku_get_info", jstDownSkuGetInfo); + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "采集失败 " + ex.Message; + })); + return; + } + + if (!rst.Contains("\"hasNext\":true")) + { + Invoke(new Action(() => + { + this.statusBarUserControl1.lblTaskStatus.Text = "采集完成 " + page + "/" + totalPage + " 页,每页 " + pageSize; + })); + goto endDownSearch; + } + } + + endDownSearch: + NaiBa.Util.Helper.ConfigHelper.SaveConfig("jst_down_sku_list", lstJSTDownProdSkuInfo); + jstDownSkuGetInfo.readPage = 0; + jstDownSkuGetInfo.status = "done"; + jstDownSkuGetInfo.lastReadDate = DateTime.Now.Date; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("jst_down_sku_get_info", jstDownSkuGetInfo); + } + + private void dtpStartTime_ValueChanged(object sender, EventArgs e) + { + startTime = dtpStartTime.Value; + } + + private void dtpEndTime_ValueChanged(object sender, EventArgs e) + { + endTime = dtpEndTime.Value; + } + + private void txtBeforeDay_TextChanged(object sender, EventArgs e) + { + downBeforeDays = txtBeforeDay.Text.ParseToInt(); + downBeforeHours = txtBeforeHour.Text.ParseToInt(); + } + + private void btnResetCache_Click(object sender, EventArgs e) + { + if (BaseMsgForm.ShowConfirm("确定清除采集缓存吗?再次采集将从第一页开始!").DialogResult == DialogResult.OK) + { + dgvDownSku.Rows.Clear(); + lstJSTDownProdSkuInfo = new ConcurrentList(); + jstDownSkuGetInfo = new JstDownSkuGetInfo(); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("jst_down_sku_list", lstJSTDownProdSkuInfo); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("jst_down_sku_get_info", jstDownSkuGetInfo); + this.statusBarUserControl1.lblTaskStatus.Text = "准备就绪"; + } + } + + private void btnStopGetDownSku_Click(object sender, EventArgs e) + { + if (CancelGetDown != null) + CancelGetDown.Cancel(); + } + } + + /// + /// 记录获取聚水潭下架sku的信息 + /// + public class JstDownSkuGetInfo + { + public int readPage { get; set; } = 1; + public int totalPage { get; set; } = 1; + /// + /// done reading + /// + public string status { get; set; } = "done"; + public int totalCount { get; set; } = 999999; + public DateTime lastReadDate { get; set; } = DateTime.MinValue; } } diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx b/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx index a48c2b0..04baba3 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx @@ -150,4 +150,49 @@ True + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index 4554e62..fa00e47 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -32,17 +32,26 @@ namespace TemuKJD.WXForms.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(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.txtFilterBoundMax = new System.Windows.Forms.TextBox(); + this.label23 = new System.Windows.Forms.Label(); + this.txtFilterBoundMin = new System.Windows.Forms.TextBox(); + this.txtTitleHeadWord = new System.Windows.Forms.TextBox(); this.chkImgRandomBlock = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnFilterBound = new DevComponents.DotNetBar.PanelEx(); + this.label22 = new System.Windows.Forms.Label(); this.txtShippingPriceTimes = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); this.label13 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); this.label18 = new System.Windows.Forms.Label(); this.txtPreDays = new System.Windows.Forms.TextBox(); this.chkPreSale = new TemuKJD.UserComponent.UcCheckBox(this.components); @@ -78,22 +87,20 @@ namespace TemuKJD.WXForms.ProductForms this.label9 = new System.Windows.Forms.Label(); this.chkStepAddPrice = new TemuKJD.UserComponent.UcCheckBox(this.components); this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); - this.pbSelectProd = new System.Windows.Forms.PictureBox(); - this.btnFilterBound = new DevComponents.DotNetBar.PanelEx(); - this.label12 = new System.Windows.Forms.Label(); - this.txtFilterBound = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.cmbCateFilter3 = new System.Windows.Forms.ComboBox(); + this.txtSearchGoodsName = new System.Windows.Forms.TextBox(); + this.label20 = new System.Windows.Forms.Label(); this.txtExtCodeFilter = new System.Windows.Forms.TextBox(); + this.pbSelectProd = new System.Windows.Forms.PictureBox(); + this.cmbCateFilter3 = new System.Windows.Forms.ComboBox(); this.label21 = new System.Windows.Forms.Label(); this.cmbGroupFilter = new System.Windows.Forms.ComboBox(); this.txtIdFilter = new System.Windows.Forms.TextBox(); this.cmbJstInitSet = new System.Windows.Forms.ComboBox(); + this.lblExtCodeFilter = new System.Windows.Forms.Label(); + this.lblGroupFilter = new System.Windows.Forms.Label(); this.lblIdFilter = new System.Windows.Forms.Label(); this.cmbCateFilter2 = new System.Windows.Forms.ComboBox(); - this.lblExtCodeFilter = new System.Windows.Forms.Label(); this.lblJstInitSet = new System.Windows.Forms.Label(); - this.lblGroupFilter = new System.Windows.Forms.Label(); this.label19 = new System.Windows.Forms.Label(); this.cmbSourceType = new System.Windows.Forms.ComboBox(); this.lblSourceType = new System.Windows.Forms.Label(); @@ -145,6 +152,11 @@ namespace TemuKJD.WXForms.ProductForms this.txtSinglePriceAdd = new System.Windows.Forms.TextBox(); this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.panel1 = new System.Windows.Forms.Panel(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -167,11 +179,6 @@ namespace TemuKJD.WXForms.ProductForms this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.panel1 = new System.Windows.Forms.Panel(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -217,7 +224,7 @@ namespace TemuKJD.WXForms.ProductForms // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); - this.splitContainer1.Size = new System.Drawing.Size(1523, 546); + this.splitContainer1.Size = new System.Drawing.Size(1542, 546); this.splitContainer1.SplitterDistance = 165; this.splitContainer1.TabIndex = 11; // @@ -229,9 +236,17 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx2.Controls.Add(this.txtFilterBoundMax); + this.ucGroupBoxEx2.Controls.Add(this.label23); + this.ucGroupBoxEx2.Controls.Add(this.txtFilterBoundMin); + this.ucGroupBoxEx2.Controls.Add(this.txtTitleHeadWord); this.ucGroupBoxEx2.Controls.Add(this.chkImgRandomBlock); + this.ucGroupBoxEx2.Controls.Add(this.btnFilterBound); + this.ucGroupBoxEx2.Controls.Add(this.label22); this.ucGroupBoxEx2.Controls.Add(this.txtShippingPriceTimes); + this.ucGroupBoxEx2.Controls.Add(this.label12); this.ucGroupBoxEx2.Controls.Add(this.label13); + this.ucGroupBoxEx2.Controls.Add(this.label1); this.ucGroupBoxEx2.Controls.Add(this.label18); this.ucGroupBoxEx2.Controls.Add(this.txtPreDays); this.ucGroupBoxEx2.Controls.Add(this.chkPreSale); @@ -264,11 +279,51 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.Controls.Add(this.chkStepAddPrice); this.ucGroupBoxEx2.Location = new System.Drawing.Point(571, 2); this.ucGroupBoxEx2.Name = "ucGroupBoxEx2"; - this.ucGroupBoxEx2.Size = new System.Drawing.Size(950, 165); + this.ucGroupBoxEx2.Size = new System.Drawing.Size(969, 165); this.ucGroupBoxEx2.TabIndex = 667; this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品上传"; // + // txtFilterBoundMax + // + this.txtFilterBoundMax.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtFilterBoundMax.Location = new System.Drawing.Point(647, 131); + this.txtFilterBoundMax.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtFilterBoundMax.Name = "txtFilterBoundMax"; + this.txtFilterBoundMax.Size = new System.Drawing.Size(49, 25); + this.txtFilterBoundMax.TabIndex = 721; + this.txtFilterBoundMax.Text = "1000"; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(620, 136); + this.label23.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(29, 17); + this.label23.TabIndex = 849; + this.label23.Text = "或>"; + // + // txtFilterBoundMin + // + this.txtFilterBoundMin.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtFilterBoundMin.Location = new System.Drawing.Point(570, 131); + this.txtFilterBoundMin.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtFilterBoundMin.Name = "txtFilterBoundMin"; + this.txtFilterBoundMin.Size = new System.Drawing.Size(49, 25); + this.txtFilterBoundMin.TabIndex = 848; + this.txtFilterBoundMin.Text = "1000"; + // + // txtTitleHeadWord + // + this.txtTitleHeadWord.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtTitleHeadWord.Location = new System.Drawing.Point(864, 131); + this.txtTitleHeadWord.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtTitleHeadWord.Name = "txtTitleHeadWord"; + this.txtTitleHeadWord.Size = new System.Drawing.Size(124, 25); + this.txtTitleHeadWord.TabIndex = 835; + this.txtTitleHeadWord.TextChanged += new System.EventHandler(this.txtTitleHeadWord_TextChanged); + // // chkImgRandomBlock // this.chkImgRandomBlock.AutoSize = true; @@ -280,6 +335,42 @@ namespace TemuKJD.WXForms.ProductForms this.chkImgRandomBlock.UseVisualStyleBackColor = true; this.chkImgRandomBlock.Visible = false; // + // btnFilterBound + // + this.btnFilterBound.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFilterBound.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFilterBound.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFilterBound.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFilterBound.Location = new System.Drawing.Point(741, 132); + this.btnFilterBound.Name = "btnFilterBound"; + this.btnFilterBound.Size = new System.Drawing.Size(58, 23); + this.btnFilterBound.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterBound.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterBound.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterBound.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFilterBound.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFilterBound.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFilterBound.Style.CornerDiameter = 3; + this.btnFilterBound.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; + this.btnFilterBound.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFilterBound.Style.GradientAngle = 90; + this.btnFilterBound.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterBound.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilterBound.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilterBound.TabIndex = 726; + this.btnFilterBound.Text = "立即过滤"; + this.btnFilterBound.Click += new System.EventHandler(this.btnFilterBound_Click); + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(806, 135); + this.label22.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(68, 17); + this.label22.TabIndex = 834; + this.label22.Text = "标题前缀:"; + // // txtShippingPriceTimes // this.txtShippingPriceTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -290,6 +381,16 @@ namespace TemuKJD.WXForms.ProductForms this.txtShippingPriceTimes.TabIndex = 810; this.txtShippingPriceTimes.Text = "1.5"; // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(696, 135); + this.label12.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(44, 17); + this.label12.TabIndex = 722; + this.label12.Text = "元商品"; + // // label13 // this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -301,10 +402,20 @@ namespace TemuKJD.WXForms.ProductForms this.label13.TabIndex = 811; this.label13.Text = "运费×"; // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(447, 135); + this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(125, 17); + this.label1.TabIndex = 720; + this.label1.Text = "过滤待传类目保证金<"; + // // label18 // this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(576, 131); + this.label18.Location = new System.Drawing.Point(819, 109); this.label18.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(54, 17); @@ -313,7 +424,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtPreDays // - this.txtPreDays.Location = new System.Drawing.Point(543, 128); + this.txtPreDays.Location = new System.Drawing.Point(786, 106); this.txtPreDays.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtPreDays.Name = "txtPreDays"; this.txtPreDays.Size = new System.Drawing.Size(33, 23); @@ -324,7 +435,7 @@ namespace TemuKJD.WXForms.ProductForms // chkPreSale // this.chkPreSale.AutoSize = true; - this.chkPreSale.Location = new System.Drawing.Point(451, 129); + this.chkPreSale.Location = new System.Drawing.Point(694, 107); this.chkPreSale.Name = "chkPreSale"; this.chkPreSale.Size = new System.Drawing.Size(99, 21); this.chkPreSale.TabIndex = 789; @@ -337,7 +448,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSkipUploaded.AutoSize = true; this.chkSkipUploaded.Checked = true; this.chkSkipUploaded.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkSkipUploaded.Location = new System.Drawing.Point(451, 105); + this.chkSkipUploaded.Location = new System.Drawing.Point(451, 107); this.chkSkipUploaded.Name = "chkSkipUploaded"; this.chkSkipUploaded.Size = new System.Drawing.Size(135, 21); this.chkSkipUploaded.TabIndex = 755; @@ -396,7 +507,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtReplaceText.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtReplaceText.Multiline = true; this.txtReplaceText.Name = "txtReplaceText"; - this.txtReplaceText.Size = new System.Drawing.Size(306, 40); + this.txtReplaceText.Size = new System.Drawing.Size(325, 40); this.txtReplaceText.TabIndex = 740; this.txtReplaceText.Text = "真丝,蚕丝,香云纱,羊绒,羊毛,羊羔绒,羊羔毛,羽绒,皮草"; this.txtReplaceText.TextChanged += new System.EventHandler(this.txtReplaceText_TextChanged); @@ -414,7 +525,7 @@ namespace TemuKJD.WXForms.ProductForms // chkUpDraft // this.chkUpDraft.AutoSize = true; - this.chkUpDraft.Location = new System.Drawing.Point(590, 105); + this.chkUpDraft.Location = new System.Drawing.Point(590, 107); this.chkUpDraft.Name = "chkUpDraft"; this.chkUpDraft.Size = new System.Drawing.Size(99, 21); this.chkUpDraft.TabIndex = 769; @@ -439,7 +550,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(823, 34); + this.label7.Location = new System.Drawing.Point(842, 34); this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(20, 17); @@ -449,7 +560,7 @@ namespace TemuKJD.WXForms.ProductForms // txtWaitSeconds // this.txtWaitSeconds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtWaitSeconds.Location = new System.Drawing.Point(791, 31); + this.txtWaitSeconds.Location = new System.Drawing.Point(810, 31); this.txtWaitSeconds.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtWaitSeconds.Name = "txtWaitSeconds"; this.txtWaitSeconds.Size = new System.Drawing.Size(32, 23); @@ -461,7 +572,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(737, 34); + this.label6.Location = new System.Drawing.Point(756, 34); this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(56, 17); @@ -474,7 +585,7 @@ namespace TemuKJD.WXForms.ProductForms 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(844, 59); + this.btnStop.Location = new System.Drawing.Point(863, 59); this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnStop.Name = "btnStop"; this.btnStop.Size = new System.Drawing.Size(84, 23); @@ -512,7 +623,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearDgv.Location = new System.Drawing.Point(844, 87); + this.btnClearDgv.Location = new System.Drawing.Point(863, 87); this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearDgv.Name = "btnClearDgv"; this.btnClearDgv.Size = new System.Drawing.Size(84, 23); @@ -718,7 +829,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand; this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty; this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnUpload.Location = new System.Drawing.Point(844, 31); + this.btnUpload.Location = new System.Drawing.Point(863, 31); this.btnUpload.Name = "btnUpload"; this.btnUpload.Size = new System.Drawing.Size(84, 23); this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -786,22 +897,20 @@ namespace TemuKJD.WXForms.ProductForms | System.Windows.Forms.AnchorStyles.Left))); this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; - this.ucGroupBoxEx4.Controls.Add(this.pbSelectProd); - this.ucGroupBoxEx4.Controls.Add(this.btnFilterBound); - this.ucGroupBoxEx4.Controls.Add(this.label12); - this.ucGroupBoxEx4.Controls.Add(this.txtFilterBound); - this.ucGroupBoxEx4.Controls.Add(this.label1); - this.ucGroupBoxEx4.Controls.Add(this.cmbCateFilter3); + this.ucGroupBoxEx4.Controls.Add(this.txtSearchGoodsName); + this.ucGroupBoxEx4.Controls.Add(this.label20); this.ucGroupBoxEx4.Controls.Add(this.txtExtCodeFilter); + this.ucGroupBoxEx4.Controls.Add(this.pbSelectProd); + this.ucGroupBoxEx4.Controls.Add(this.cmbCateFilter3); this.ucGroupBoxEx4.Controls.Add(this.label21); this.ucGroupBoxEx4.Controls.Add(this.cmbGroupFilter); this.ucGroupBoxEx4.Controls.Add(this.txtIdFilter); this.ucGroupBoxEx4.Controls.Add(this.cmbJstInitSet); + this.ucGroupBoxEx4.Controls.Add(this.lblExtCodeFilter); + this.ucGroupBoxEx4.Controls.Add(this.lblGroupFilter); this.ucGroupBoxEx4.Controls.Add(this.lblIdFilter); this.ucGroupBoxEx4.Controls.Add(this.cmbCateFilter2); - this.ucGroupBoxEx4.Controls.Add(this.lblExtCodeFilter); this.ucGroupBoxEx4.Controls.Add(this.lblJstInitSet); - this.ucGroupBoxEx4.Controls.Add(this.lblGroupFilter); this.ucGroupBoxEx4.Controls.Add(this.label19); this.ucGroupBoxEx4.Controls.Add(this.cmbSourceType); this.ucGroupBoxEx4.Controls.Add(this.lblSourceType); @@ -822,6 +931,35 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.TabStop = false; this.ucGroupBoxEx4.Text = "待传商品"; // + // txtSearchGoodsName + // + this.txtSearchGoodsName.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtSearchGoodsName.Location = new System.Drawing.Point(47, 74); + this.txtSearchGoodsName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtSearchGoodsName.Name = "txtSearchGoodsName"; + this.txtSearchGoodsName.Size = new System.Drawing.Size(223, 25); + this.txtSearchGoodsName.TabIndex = 795; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(4, 78); + this.label20.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(44, 17); + this.label20.TabIndex = 794; + this.label20.Text = "商品名"; + // + // txtExtCodeFilter + // + this.txtExtCodeFilter.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtExtCodeFilter.Location = new System.Drawing.Point(178, 101); + this.txtExtCodeFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtExtCodeFilter.Name = "txtExtCodeFilter"; + this.txtExtCodeFilter.Size = new System.Drawing.Size(92, 25); + this.txtExtCodeFilter.TabIndex = 555; + this.txtExtCodeFilter.Visible = false; + // // pbSelectProd // this.pbSelectProd.Image = global::TemuKJD.Properties.Resources.loading_blue; @@ -833,62 +971,6 @@ namespace TemuKJD.WXForms.ProductForms this.pbSelectProd.TabStop = false; this.pbSelectProd.Visible = false; // - // btnFilterBound - // - this.btnFilterBound.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnFilterBound.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnFilterBound.DisabledBackColor = System.Drawing.Color.Empty; - this.btnFilterBound.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnFilterBound.Location = new System.Drawing.Point(264, 102); - this.btnFilterBound.Name = "btnFilterBound"; - this.btnFilterBound.Size = new System.Drawing.Size(58, 23); - this.btnFilterBound.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnFilterBound.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnFilterBound.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnFilterBound.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnFilterBound.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnFilterBound.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnFilterBound.Style.CornerDiameter = 3; - this.btnFilterBound.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.btnFilterBound.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnFilterBound.Style.GradientAngle = 90; - this.btnFilterBound.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnFilterBound.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnFilterBound.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnFilterBound.TabIndex = 726; - this.btnFilterBound.Text = "立即过滤"; - this.btnFilterBound.Click += new System.EventHandler(this.btnFilterBound_Click); - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(221, 105); - this.label12.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(44, 17); - this.label12.TabIndex = 722; - this.label12.Text = "元商品"; - // - // txtFilterBound - // - this.txtFilterBound.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtFilterBound.Location = new System.Drawing.Point(178, 101); - this.txtFilterBound.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtFilterBound.Name = "txtFilterBound"; - this.txtFilterBound.Size = new System.Drawing.Size(43, 25); - this.txtFilterBound.TabIndex = 721; - this.txtFilterBound.Text = "1000"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(4, 105); - this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(176, 17); - this.label1.TabIndex = 720; - this.label1.Text = "过滤待上传列表类目保证金超过"; - // // cmbCateFilter3 // this.cmbCateFilter3.FormattingEnabled = true; @@ -898,16 +980,6 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter3.TabIndex = 710; this.cmbCateFilter3.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter3_SelectedIndexChanged); // - // txtExtCodeFilter - // - this.txtExtCodeFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtExtCodeFilter.Location = new System.Drawing.Point(309, 74); - this.txtExtCodeFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtExtCodeFilter.Name = "txtExtCodeFilter"; - this.txtExtCodeFilter.Size = new System.Drawing.Size(92, 25); - this.txtExtCodeFilter.TabIndex = 555; - this.txtExtCodeFilter.Visible = false; - // // label21 // this.label21.AutoSize = true; @@ -921,7 +993,7 @@ namespace TemuKJD.WXForms.ProductForms // cmbGroupFilter // this.cmbGroupFilter.FormattingEnabled = true; - this.cmbGroupFilter.Location = new System.Drawing.Point(47, 74); + this.cmbGroupFilter.Location = new System.Drawing.Point(309, 74); this.cmbGroupFilter.Name = "cmbGroupFilter"; this.cmbGroupFilter.Size = new System.Drawing.Size(92, 25); this.cmbGroupFilter.TabIndex = 641; @@ -930,7 +1002,7 @@ namespace TemuKJD.WXForms.ProductForms // txtIdFilter // this.txtIdFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtIdFilter.Location = new System.Drawing.Point(178, 74); + this.txtIdFilter.Location = new System.Drawing.Point(47, 101); this.txtIdFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtIdFilter.Name = "txtIdFilter"; this.txtIdFilter.Size = new System.Drawing.Size(92, 25); @@ -950,10 +1022,32 @@ namespace TemuKJD.WXForms.ProductForms this.cmbJstInitSet.TabIndex = 697; this.cmbJstInitSet.Text = "已设置"; // + // lblExtCodeFilter + // + this.lblExtCodeFilter.AutoSize = true; + this.lblExtCodeFilter.Location = new System.Drawing.Point(147, 105); + this.lblExtCodeFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblExtCodeFilter.Name = "lblExtCodeFilter"; + this.lblExtCodeFilter.Size = new System.Drawing.Size(32, 17); + this.lblExtCodeFilter.TabIndex = 560; + this.lblExtCodeFilter.Text = "货号"; + this.lblExtCodeFilter.Visible = false; + // + // lblGroupFilter + // + this.lblGroupFilter.AutoSize = true; + this.lblGroupFilter.Location = new System.Drawing.Point(278, 78); + this.lblGroupFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblGroupFilter.Name = "lblGroupFilter"; + this.lblGroupFilter.Size = new System.Drawing.Size(32, 17); + this.lblGroupFilter.TabIndex = 570; + this.lblGroupFilter.Text = "分组"; + this.lblGroupFilter.Visible = false; + // // lblIdFilter // this.lblIdFilter.AutoSize = true; - this.lblIdFilter.Location = new System.Drawing.Point(158, 78); + this.lblIdFilter.Location = new System.Drawing.Point(27, 105); this.lblIdFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblIdFilter.Name = "lblIdFilter"; this.lblIdFilter.Size = new System.Drawing.Size(21, 17); @@ -970,17 +1064,6 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter2.TabIndex = 708; this.cmbCateFilter2.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter2_SelectedIndexChanged); // - // lblExtCodeFilter - // - this.lblExtCodeFilter.AutoSize = true; - this.lblExtCodeFilter.Location = new System.Drawing.Point(278, 78); - this.lblExtCodeFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.lblExtCodeFilter.Name = "lblExtCodeFilter"; - this.lblExtCodeFilter.Size = new System.Drawing.Size(32, 17); - this.lblExtCodeFilter.TabIndex = 560; - this.lblExtCodeFilter.Text = "货号"; - this.lblExtCodeFilter.Visible = false; - // // lblJstInitSet // this.lblJstInitSet.AutoSize = true; @@ -991,17 +1074,6 @@ namespace TemuKJD.WXForms.ProductForms this.lblJstInitSet.TabIndex = 696; this.lblJstInitSet.Text = "分销"; // - // lblGroupFilter - // - this.lblGroupFilter.AutoSize = true; - this.lblGroupFilter.Location = new System.Drawing.Point(16, 78); - this.lblGroupFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.lblGroupFilter.Name = "lblGroupFilter"; - this.lblGroupFilter.Size = new System.Drawing.Size(32, 17); - this.lblGroupFilter.TabIndex = 570; - this.lblGroupFilter.Text = "分组"; - this.lblGroupFilter.Visible = false; - // // label19 // this.label19.AutoSize = true; @@ -1495,7 +1567,7 @@ namespace TemuKJD.WXForms.ProductForms // splitContainer3.Panel2 // this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); - this.splitContainer3.Size = new System.Drawing.Size(1523, 377); + this.splitContainer3.Size = new System.Drawing.Size(1542, 377); this.splitContainer3.SplitterDistance = 347; this.splitContainer3.TabIndex = 1; // @@ -1522,7 +1594,7 @@ namespace TemuKJD.WXForms.ProductForms this.splitContainer2.Panel2.Controls.Add(this.chkTestNoAuditUpload); this.splitContainer2.Panel2.Controls.Add(this.dgvSelectProduct); this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); - this.splitContainer2.Size = new System.Drawing.Size(1523, 347); + this.splitContainer2.Size = new System.Drawing.Size(1542, 347); this.splitContainer2.SplitterDistance = 350; this.splitContainer2.TabIndex = 0; // @@ -1568,19 +1640,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - 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.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8; + 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, @@ -1715,7 +1787,7 @@ namespace TemuKJD.WXForms.ProductForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(559, 148); + this.pbLoading.Location = new System.Drawing.Point(569, 148); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -1730,7 +1802,7 @@ namespace TemuKJD.WXForms.ProductForms this.并发上传.Cursor = System.Windows.Forms.Cursors.Hand; this.并发上传.DisabledBackColor = System.Drawing.Color.Empty; this.并发上传.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.并发上传.Location = new System.Drawing.Point(1043, 30); + this.并发上传.Location = new System.Drawing.Point(1062, 30); this.并发上传.Name = "并发上传"; this.并发上传.Size = new System.Drawing.Size(118, 23); this.并发上传.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1788,19 +1860,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvSelectProduct.AutoRowNumber = true; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1830,10 +1902,100 @@ namespace TemuKJD.WXForms.ProductForms this.dgvSelectProduct.Name = "dgvSelectProduct"; this.dgvSelectProduct.ReadOnly = true; this.dgvSelectProduct.RowTemplate.Height = 23; - this.dgvSelectProduct.Size = new System.Drawing.Size(1165, 347); + this.dgvSelectProduct.Size = new System.Drawing.Size(1184, 347); this.dgvSelectProduct.TabIndex = 187; this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); // + // 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); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Size = new System.Drawing.Size(1542, 26); + this.splitContainer4.SplitterDistance = 851; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(851, 26); + this.statusBar.TabIndex = 2; + // + // 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(475, 2); + 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; + // + // panelEx1 + // + this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Location = new System.Drawing.Point(568, 2); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(115, 21); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.TabIndex = 668; + this.panelEx1.Text = "停止当前操作"; + this.panelEx1.Visible = false; + // + // panel1 + // + this.panel1.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.panel1.Location = new System.Drawing.Point(699, 552); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(881, 86); + this.panel1.TabIndex = 189; + // // colCheck // this.colCheck.Frozen = true; @@ -1860,8 +2022,8 @@ namespace TemuKJD.WXForms.ProductForms // // colSupplierName // - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle11; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; this.colSupplierName.Frozen = true; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; @@ -1939,8 +2101,8 @@ namespace TemuKJD.WXForms.ProductForms // // colProductName // - dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -2000,107 +2162,19 @@ namespace TemuKJD.WXForms.ProductForms // // colAddTime // - this.colAddTime.FillWeight = 110F; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle7; this.colAddTime.HeaderText = "上传时间"; this.colAddTime.Name = "colAddTime"; this.colAddTime.ReadOnly = true; + this.colAddTime.Width = 80; // // colOpResult // this.colOpResult.HeaderText = "操作结果"; this.colOpResult.Name = "colOpResult"; this.colOpResult.ReadOnly = true; - this.colOpResult.Width = 260; - // - // 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); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.btnClear); - this.splitContainer4.Panel2.Controls.Add(this.panelEx1); - this.splitContainer4.Size = new System.Drawing.Size(1523, 26); - this.splitContainer4.SplitterDistance = 832; - this.splitContainer4.TabIndex = 3; - // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(0, 0); - this.statusBar.Margin = new System.Windows.Forms.Padding(0); - this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(832, 26); - this.statusBar.TabIndex = 2; - // - // 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(475, 2); - 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; - // - // panelEx1 - // - this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; - this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx1.Location = new System.Drawing.Point(568, 2); - this.panelEx1.Name = "panelEx1"; - this.panelEx1.Size = new System.Drawing.Size(115, 21); - this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.panelEx1.Style.GradientAngle = 90; - this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.panelEx1.TabIndex = 668; - this.panelEx1.Text = "停止当前操作"; - this.panelEx1.Visible = false; - // - // panel1 - // - this.panel1.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.panel1.Location = new System.Drawing.Point(699, 552); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(881, 86); - this.panel1.TabIndex = 189; + this.colOpResult.Width = 290; // // WXDBProdUploadForm // @@ -2202,28 +2276,6 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.ComboBox cmbCateFilter1; private System.Windows.Forms.Label label2; public System.Windows.Forms.Label lblWaitToUp; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; - private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; - private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; - private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; - private System.Windows.Forms.DataGridViewLinkColumn colLogin; - private System.Windows.Forms.DataGridViewLinkColumn colInShop; - private System.Windows.Forms.DataGridViewLinkColumn colSpuId; - private System.Windows.Forms.DataGridViewLinkColumn colSkcId; - private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; - private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; - private System.Windows.Forms.DataGridViewTextBoxColumn colSkuFakeImgUrl; - private System.Windows.Forms.DataGridViewImageColumn colSkuFakeImg; - private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; - private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat; - private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; - private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; - private System.Windows.Forms.DataGridViewTextBoxColumn colDraftId; - private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; - private System.Windows.Forms.DataGridViewLinkColumn colUserNotes; - private System.Windows.Forms.DataGridViewLinkColumn ColDelete; - private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; - private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox txtWaitSeconds; private System.Windows.Forms.Label label6; @@ -2256,7 +2308,7 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.PictureBox pbLoading; private DevComponents.DotNetBar.PanelEx btnFilterBound; private System.Windows.Forms.Label label12; - private System.Windows.Forms.TextBox txtFilterBound; + private System.Windows.Forms.TextBox txtFilterBoundMax; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtShippingPriceTimes; private System.Windows.Forms.Label label13; @@ -2287,5 +2339,33 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbSelectProd; + private System.Windows.Forms.TextBox txtSearchGoodsName; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.TextBox txtTitleHeadWord; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox txtFilterBoundMin; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewLinkColumn colLogin; + private System.Windows.Forms.DataGridViewLinkColumn colInShop; + private System.Windows.Forms.DataGridViewLinkColumn colSpuId; + private System.Windows.Forms.DataGridViewLinkColumn colSkcId; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewTextBoxColumn colSkuFakeImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colSkuFakeImg; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat; + private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; + private System.Windows.Forms.DataGridViewTextBoxColumn colDraftId; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewLinkColumn colUserNotes; + private System.Windows.Forms.DataGridViewLinkColumn ColDelete; + private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index 7ec8123..18904af 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -163,6 +163,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSkipUploaded.CheckedChanged -= chkSkipUploaded_CheckedChanged; this.chkUpDraft.CheckedChanged -= chkUpDraft_CheckedChanged; this.chkPreSale.CheckedChanged -= chkPreSale_CheckedChanged; + this.txtTitleHeadWord.TextChanged -= txtTitleHeadWord_TextChanged; this.txtPreDays.Text = wxUploadRule.PreSaleDays.ParseToString(); this.txtReplaceText.Text = wxUploadRule.FilterWords.ParseToString(); @@ -173,6 +174,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSkipUploaded.Checked = wxUploadRule.SkipUploaded.ParseToBool(); this.chkUpDraft.Checked = wxUploadRule.UpDraft.ParseToBool(); this.chkPreSale.Checked = wxUploadRule.IsPreSale.ParseToBool(); + this.txtTitleHeadWord.Text = wxUploadRule.TitleHeadWords.ParseToString(); this.txtPreDays.TextChanged += txtPreDays_TextChanged; this.txtReplaceText.TextChanged += txtReplaceText_TextChanged; @@ -183,6 +185,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSkipUploaded.CheckedChanged += chkSkipUploaded_CheckedChanged; this.chkUpDraft.CheckedChanged += chkUpDraft_CheckedChanged; this.chkPreSale.CheckedChanged += chkPreSale_CheckedChanged; + this.txtTitleHeadWord.TextChanged += txtTitleHeadWord_TextChanged; this.lblWaitToUp.Text = "待上传 " + lstTemuDBProductSelect.Count + " 件"; @@ -963,8 +966,9 @@ namespace TemuKJD.WXForms.ProductForms } KJDDBProduct kjdDbProd = selectProd.kjdDbProduct; + string errStr = ""; if (kjdDbProd == null) - kjdDbProd = GetProductDetail(selectProd.out_product_Id.ToString()); + kjdDbProd = GetProductDetail(selectProd.out_product_Id.ToString(), out errStr); if (kjdDbProd == null || kjdDbProd.id == 0) { if (kjdDbProd?.id == 0) @@ -1135,10 +1139,15 @@ namespace TemuKJD.WXForms.ProductForms })); } - public static KJDDBProduct GetProductDetail(string prodDbId) + public static KJDDBProduct GetProductDetail(string prodDbId, out string errMsg) { + errMsg = ""; + if (string.IsNullOrEmpty(prodDbId)) + { + errMsg = "产品编号为空"; return new KJDDBProduct(); + } List list = new List(); @@ -1148,6 +1157,8 @@ namespace TemuKJD.WXForms.ProductForms data = UserLogin.GetSignaturex() + "&search_db_ids=" + prodDbId; var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -1556,8 +1567,13 @@ namespace TemuKJD.WXForms.ProductForms token = new WxApiBLL().GetRandomWxToken(); #region 设置标题 - upProdInitParam.product.info.title = dbProd.product_name.IsNullOrEmpty() ? prodInfo.detail.goods_name : dbProd.product_name; - upProdParam.product.info.title = dbProd.product_name.IsNullOrEmpty() ? prodInfo.detail.goods_name : dbProd.product_name; + string prodTitle = dbProd.product_name.IsNullOrEmpty() ? prodInfo.detail.goods_name : dbProd.product_name; + upProdInitParam.product.info.title = prodTitle; + //标题前缀 + if (!string.IsNullOrEmpty(wxUploadRule.TitleHeadWords)) + upProdInitParam.product.info.title = wxUploadRule.TitleHeadWords + upProdInitParam.product.info.title; + upProdParam.product.info.title = upProdInitParam.product.info.title; + upProdParam.sessionInfo.sessionId = upProdInitParam.product.sessionId; #endregion @@ -1928,8 +1944,10 @@ namespace TemuKJD.WXForms.ProductForms var bound = GlobalConfig.WxCatBoundList.FirstOrDefault(b => b.leaf_id == leafCatId); if (bound == null) return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"获取类目保证金失败\"}"; - if (bound.cat_bound > txtFilterBound.Text.Trim().ParseToInt()) - return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"类目保证金(" + bound.cat_bound + ")超过过滤限制(" + txtFilterBound.Text.Trim().ParseToInt() + ")\"}"; + var maxBount = txtFilterBoundMax.Text.Trim().ParseToInt(); + var minBount = txtFilterBoundMin.Text.Trim().ParseToInt(); + if (bound.cat_bound < minBount || bound.cat_bound > maxBount ) + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"类目保证金(" + bound.cat_bound + ")超过过滤限制(" + minBount + "-" + maxBount + ")\"}"; // 检测是否有类目上传权限 var cateUpCheckRst = WXUpload.batchCheckCategoryRelation(shop, leafCatId); @@ -2611,7 +2629,7 @@ namespace TemuKJD.WXForms.ProductForms //if (attr.name == "ISBN版号/CN刊号") // attrValue = "9787922575016"; if (attr.name == "书名") - attrValue = upProdParam.product.info.title; + attrValue = prodTitle; if (attr.name == "是否为单一书号丛书") attrValue = "是"; if (attr.name == "图书册数") @@ -2626,7 +2644,7 @@ namespace TemuKJD.WXForms.ProductForms if (upProdParam.product.info.category.FirstOrDefault()?.name == "食品饮料" || prodInfo.detail.cats.FirstOrDefault() == "食品饮料") { if (attr.name == "食品名称") - attrValue = upProdParam.product.info.title; + attrValue = prodTitle; if (attr.name == "生产企业名称") attrValue = "见包装"; if (attr.name == "食品生产许可证编号") @@ -2981,6 +2999,8 @@ namespace TemuKJD.WXForms.ProductForms skuParam.skuKey.productKey.outProductId = upProdParam.product.info.spuCode; // 库存 skuParam.productSkuInfo.stockInfo = new stockInfoParam() { stockNum = defaultAddPriceRule.StockNum }; + if (skuInfo.quantity.ParseToInt() == 0) + skuParam.productSkuInfo.stockInfo.stockNum = 0; skuParam.productSkuInfo.saleParam = new List(); foreach (var specInfo in skuInfo.spec) { @@ -3016,6 +3036,8 @@ namespace TemuKJD.WXForms.ProductForms } skuParam.productSkuInfo.skuDeliverInfo = new skuDeliverInfoParam(); skuParam.productSkuInfo.stockDiff = new stockDiffParam() { diffType = 1, num = defaultAddPriceRule.StockNum }; + if (skuInfo.quantity.ParseToInt() == 0) + skuParam.productSkuInfo.stockDiff.num = 0; skuParam.status = 5; } #endregion @@ -3122,8 +3144,8 @@ namespace TemuKJD.WXForms.ProductForms } - string foodName = "食品名称:"; - string companyName = "生产企业名称:见包装"; + string foodName = "食品名称:" + prodTitle; + string companyName = "生产商名称:中国地区食品厂"; string SCID = "食品生产许可证编号:SC10241162100670"; string GBID = "产品标准号:GB 2726"; string ExpDate = "保质期:30天"; @@ -3139,11 +3161,11 @@ namespace TemuKJD.WXForms.ProductForms { if (propParam.categorys[0].name.Contains("食品名称")) foodName = "食品名称:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("生产企业名称")) - companyName = "生产企业名称:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("食品生产许可证编号") && propParam.categorys[1].name != "见包装") + else if (propParam.categorys[0].name.Contains("生产企业名称") && !propParam.categorys[1].name.Contains("见包装") && !propParam.categorys[1].name.Contains("见外包装")) + companyName = "生产商名称:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("食品生产许可证编号") && !propParam.categorys[1].name.Contains("见包装") && !propParam.categorys[1].name.Contains("见外包装")) SCID = "食品生产许可证编号:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("产品标准号") && propParam.categorys[1].name != "见包装") + else if (propParam.categorys[0].name.Contains("产品标准号") && !propParam.categorys[1].name.Contains("见包装") && !propParam.categorys[1].name.Contains("见外包装")) GBID = "产品标准号:" + propParam.categorys[1].name; else if (propParam.categorys[0].name.Contains("保质期")) ExpDate = "保质期:" + propParam.categorys[1].name; @@ -3704,6 +3726,7 @@ namespace TemuKJD.WXForms.ProductForms data += "&product_get_type=" + cmbSourceType.Text.Trim(); data += "&wx_safe_status=" + cmbWxSafe.Text.Trim().Replace("安全+未校验", "安全商品,未校验"); data += "&is_supplier_prod_ok=" + cmbJstInitSet.Text.Trim(); + data += "&product_name=" + txtSearchGoodsName.Text.Trim(); })); var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -3855,6 +3878,7 @@ namespace TemuKJD.WXForms.ProductForms { txtIdFilter.Text = ""; txtExtCodeFilter.Text = ""; + txtSearchGoodsName.Text = ""; cmbGroupFilter.Text = ""; cmbCateFilter1.Text = ""; cmbWxSafe.Text = "安全+未校验"; @@ -4088,8 +4112,9 @@ namespace TemuKJD.WXForms.ProductForms private void btnFilterBound_Click(object sender, EventArgs e) { - var bound = txtFilterBound.Text.Trim().ParseToInt(); - var cates = GlobalConfig.WxCatBoundList.Where(b => b.cat_bound <= bound); + var boundMax = txtFilterBoundMax.Text.Trim().ParseToInt(); + var boundMin = txtFilterBoundMin.Text.Trim().ParseToInt(); + var cates = GlobalConfig.WxCatBoundList.Where(b => b.cat_bound <= boundMax && b.cat_bound >= boundMin); lstTemuDBProductSelect.RemoveAll(p => !cates.Any(c => c.leaf_id.ParseToString() == p.wx_cat_leaf)); NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_db_prod_upload_list", this.lstTemuDBProductSelect); @@ -4213,6 +4238,10 @@ namespace TemuKJD.WXForms.ProductForms } } + private void txtTitleHeadWord_TextChanged(object sender, EventArgs e) + { + wxUploadRule.TitleHeadWords = txtTitleHeadWord.Text.Trim(); + } } public class WXUpload @@ -4597,5 +4626,6 @@ Content-Type: application/octet-stream public bool SkipUploaded { get; set; } = true; public bool UpDraft { get; set; } = false; public bool IsPreSale { get; set; } = false; + public string TitleHeadWords { get; set; } = ""; } } diff --git a/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.Designer.cs index 8bd80d3..aacba9c 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.Designer.cs @@ -32,14 +32,14 @@ namespace TemuKJD.WXForms.ProductForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle 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.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnClearCoupon = new DevComponents.DotNetBar.PanelEx(); @@ -127,10 +127,6 @@ namespace TemuKJD.WXForms.ProductForms this.pbLoading = new System.Windows.Forms.PictureBox(); this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -156,6 +152,11 @@ namespace TemuKJD.WXForms.ProductForms this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colCouponNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.chkSkipSet = new TemuKJD.UserComponent.UcCheckBox(this.components); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -212,6 +213,7 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx2.Controls.Add(this.chkSkipSet); this.ucGroupBoxEx2.Controls.Add(this.btnClearCoupon); this.ucGroupBoxEx2.Controls.Add(this.label15); this.ucGroupBoxEx2.Controls.Add(this.dtpEndTime); @@ -1357,19 +1359,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.AutoRowNumber = true; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10; + 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, @@ -1529,19 +1531,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvSelectProduct.AutoRowNumber = true; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle12.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1578,86 +1580,6 @@ namespace TemuKJD.WXForms.ProductForms this.dgvSelectProduct.TabIndex = 187; this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); // - // 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); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.btnClear); - this.splitContainer4.Panel2.Controls.Add(this.panelEx1); - this.splitContainer4.Size = new System.Drawing.Size(1424, 26); - this.splitContainer4.SplitterDistance = 733; - this.splitContainer4.TabIndex = 3; - // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(0, 0); - this.statusBar.Margin = new System.Windows.Forms.Padding(0); - this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(733, 26); - this.statusBar.TabIndex = 2; - // - // 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(475, 2); - 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; - // - // panelEx1 - // - this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; - this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx1.Location = new System.Drawing.Point(568, 2); - this.panelEx1.Name = "panelEx1"; - this.panelEx1.Size = new System.Drawing.Size(115, 21); - this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.panelEx1.Style.GradientAngle = 90; - this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.panelEx1.TabIndex = 668; - this.panelEx1.Text = "停止当前操作"; - this.panelEx1.Visible = false; - // // colCheck // this.colCheck.Frozen = true; @@ -1684,8 +1606,8 @@ namespace TemuKJD.WXForms.ProductForms // // colSupplierName // - dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; this.colSupplierName.Frozen = true; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; @@ -1773,8 +1695,8 @@ namespace TemuKJD.WXForms.ProductForms // // colProductName // - dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle14; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -1782,8 +1704,8 @@ namespace TemuKJD.WXForms.ProductForms // // colProductCat // - dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductCat.DefaultCellStyle = dataGridViewCellStyle15; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7; this.colProductCat.HeaderText = "商品类目"; this.colProductCat.Name = "colProductCat"; this.colProductCat.ReadOnly = true; @@ -1842,8 +1764,8 @@ namespace TemuKJD.WXForms.ProductForms // // colAddTime // - dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colAddTime.DefaultCellStyle = dataGridViewCellStyle16; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle8; this.colAddTime.HeaderText = "上架时间"; this.colAddTime.Name = "colAddTime"; this.colAddTime.ReadOnly = true; @@ -1864,6 +1786,98 @@ namespace TemuKJD.WXForms.ProductForms this.colOpResult.ReadOnly = true; this.colOpResult.Width = 260; // + // 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); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Size = new System.Drawing.Size(1424, 26); + this.splitContainer4.SplitterDistance = 733; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(733, 26); + this.statusBar.TabIndex = 2; + // + // 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(475, 2); + 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; + // + // panelEx1 + // + this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Location = new System.Drawing.Point(568, 2); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(115, 21); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.TabIndex = 668; + this.panelEx1.Text = "停止当前操作"; + this.panelEx1.Visible = false; + // + // chkSkipSet + // + this.chkSkipSet.AutoSize = true; + this.chkSkipSet.Checked = true; + this.chkSkipSet.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkSkipSet.Location = new System.Drawing.Point(16, 130); + this.chkSkipSet.Name = "chkSkipSet"; + this.chkSkipSet.Size = new System.Drawing.Size(171, 21); + this.chkSkipSet.TabIndex = 864; + this.chkSkipSet.Text = "跳过已设置专属优惠券商品"; + this.chkSkipSet.UseVisualStyleBackColor = true; + // // WXProdCouponOrderBoomForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -2029,5 +2043,6 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; private System.Windows.Forms.DataGridViewTextBoxColumn colCouponNum; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private UserComponent.UcCheckBox chkSkipSet; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs index 60ae482..ee7138f 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs @@ -514,6 +514,7 @@ namespace TemuKJD.WXForms.ProductForms } + Task tskPreSale = null; private void btnSetPreSale_Click(object sender, EventArgs e) { var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); @@ -579,9 +580,9 @@ namespace TemuKJD.WXForms.ProductForms this.btnSetPreSale.Enabled = false; cancellationTokenSource = new CancellationTokenSource(); dgvSelectProduct.Columns["colCouponNum"].Visible = false; - Task.Run(() => + tskPreSale = Task.Run(() => { - SetProdCoupon(rowLst); + SetProdCoupon(rowLst.Select(r => r.Cells["colDraftId"].Value.ParseToString()).Distinct().ToList()); Invoke(new Action(() => { this.statusBar.lblTaskStatus.Text = "商品设置完毕"; @@ -592,18 +593,19 @@ namespace TemuKJD.WXForms.ProductForms }, cancellationTokenSource.Token); } - void SetProdCoupon(List rowLst) + void SetProdCoupon(List prodIdLst) { Invoke(new Action(() => { this.pbLoading.Visible = true; this.statusBar.lblTaskStatus.Text = "正在设置" + "...".Substring(0, DateTime.Now.Second % 4); - this.statusBar.pgbTaskProgress.Maximum = rowLst.Count; + this.statusBar.pgbTaskProgress.Maximum = prodIdLst.Count; this.statusBar.UpdateProgressBar(0); })); - - foreach (var row in rowLst) + + foreach (var prodId in prodIdLst) { + var row = dgvSelectProduct.Rows.Cast().FirstOrDefault(r => r.Cells["colDraftId"].Value.ParseToString() == prodId); Invoke(new Action(() => { this.statusBar.lblTaskStatus.Text = "正在设置" + "...".Substring(0, DateTime.Now.Second % 4); @@ -614,7 +616,6 @@ namespace TemuKJD.WXForms.ProductForms if (cancellationTokenSource.IsCancellationRequested) break; - var prodId = row.Cells["colDraftId"].Value.ParseToString(); var shopId = row.Cells["colSupplierId"].Value.ParseToString(); var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); if (shop == null) @@ -634,7 +635,7 @@ namespace TemuKJD.WXForms.ProductForms continue; } WXCouponParamBase wxCouponParam = new WXCouponParamBase(); - Thread.Sleep(Randomx.GetId(300, 800)); + Thread.Sleep(Randomx.GetId(200, 500)); //wxCouponParam.check = true; wxCouponParam.coupon.couponInfo.name = prodId; wxCouponParam.coupon.couponInfo.discountInfo.discountCondition.productIds.Add(prodId.ParseToLong()); @@ -675,6 +676,44 @@ namespace TemuKJD.WXForms.ProductForms wxCouponParam.coupon.couponInfo.discountInfo.discountNum = discountNum.ToString("0.##"); } + Thread.Sleep(Randomx.GetId(200, 500)); + if (chkSkipSet.Checked) + { + var searchCouponRst = WxCoupon.WxSearchCoupon(shop, prodId); + if (searchCouponRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + } + if (!searchCouponRst.Contains("\"success\":true") && !searchCouponRst.Contains("\"code\":0")) + { + var errmsg = BaseRegex.GetStringJson(ref searchCouponRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = searchCouponRst; + + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = errmsg; + })); + continue; + } + + if (searchCouponRst.Contains("\"code\":0")) + { + var totalNum = BaseRegex.GetStringJson(ref searchCouponRst, "totalNum"); + Invoke(new Action(() => + { + row.Cells["colCouponNum"].Value = totalNum; + })); + if (totalNum.ParseToInt() > 0) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品已设置专属优惠券,跳过"; + })); + continue; + } + } + } var addCouponRst = WxCoupon.WxSetCoupon(shop, wxCouponParam); Thread.Sleep(Randomx.GetId(50, 100)); @@ -706,7 +745,7 @@ namespace TemuKJD.WXForms.ProductForms } private void btnStop_Click(object sender, EventArgs e) - { + { if (this.cancellationTokenSource != null) this.cancellationTokenSource.Cancel(); } @@ -794,12 +833,12 @@ namespace TemuKJD.WXForms.ProductForms try { var prodObjs = JsonHelper.JObjectParse(getProdOnSaleRst); - if (page == 1) + if (page == 1 || 1 == 1) { var totalNum = prodObjs["totalNum"].ParseToInt(); totalPage = Math.Ceiling(1m * totalNum / pageSize).ParseToInt(); - nextKey = prodObjs["nextKey"].ParseToString(); } + nextKey = prodObjs["nextKey"].ParseToString(); Invoke(new Action(() => { this.pbLoading.Visible = true; @@ -1350,7 +1389,7 @@ namespace TemuKJD.WXForms.ProductForms { Invoke(new Action(() => { - row.Cells["colOpResult"].Value = "商品无优惠券,跳过"; + row.Cells["colOpResult"].Value = "商品无专属优惠券,跳过"; })); continue; } diff --git a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs index efe836d..106552d 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs @@ -825,12 +825,12 @@ namespace TemuKJD.WXForms.ProductForms try { var prodObjs = JsonHelper.JObjectParse(getProdOnSaleRst); - if (page == 1) + if (page == 1 || 1 == 1) { var totalNum = prodObjs["totalNum"].ParseToInt(); totalPage = Math.Ceiling(1m * totalNum / pageSize).ParseToInt(); - nextKey = prodObjs["nextKey"].ParseToString(); } + nextKey = prodObjs["nextKey"].ParseToString(); Invoke(new Action(() => { this.pbLoading.Visible = true;