diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index 95c28a4..6d0045d 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -197,6 +197,7 @@ + diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index c35f197..9f8c483 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 880; + public static int VersionCount = 883; //public static int VersionCount = 613; /// @@ -304,6 +304,7 @@ namespace AllBase public static string UserName = ""; //public static bool IsSa; public static int SaLevel = 0; + public static string UserAuthority = ""; public static decimal? AuthorizedAmount = null; /// /// 注册昵称 diff --git a/AllBase/Model/Param/WXParam/WXUploadProductParam.cs b/AllBase/Model/Param/WXParam/WXUploadProductParam.cs index 65020c2..5475825 100644 --- a/AllBase/Model/Param/WXParam/WXUploadProductParam.cs +++ b/AllBase/Model/Param/WXParam/WXUploadProductParam.cs @@ -274,7 +274,7 @@ namespace AllBase.Model.Param.WXParam { public List headImg { get; set; } = new List(); // [ "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695c7f5f000d23e709f79176079a1715000000a000004f50" ...], public List category { get; set; } = new List(); - public List param { get; set; } = new List(); + public List param { get; set; } = new List(); public List productSaleAttrs { get; set; } = new List(); public List shopcatId { get; set; } = new List(); public List qualificationUrl { get; set; } = new List(); @@ -668,7 +668,7 @@ namespace AllBase.Model.Param.WXParam } - public class propParam + public class wxPropParam { public List categorys { get; set; } = new List(); } diff --git a/AllBase/Model/Result/KJDDBProduct.cs b/AllBase/Model/Result/KJDDBProduct.cs index 9036ecf..ff61253 100644 --- a/AllBase/Model/Result/KJDDBProduct.cs +++ b/AllBase/Model/Result/KJDDBProduct.cs @@ -93,5 +93,10 @@ namespace AllBase.Model.Result public string special_prod_type { get; set; } public int? distribution_set { get; set; } public int? send_to_out_server { get; set; } + + /// + /// 是否有完善后的微信回采商品数据(详情存在微信回采数据表内) + /// + public string has_wx_format { get; set; } } } diff --git a/AllBase/Model/Result/ShopLoginInfo.cs b/AllBase/Model/Result/ShopLoginInfo.cs index 4a48c9b..86c92de 100644 --- a/AllBase/Model/Result/ShopLoginInfo.cs +++ b/AllBase/Model/Result/ShopLoginInfo.cs @@ -248,6 +248,10 @@ namespace AllBase.Model.Result } } /// + /// 用户的功能操作权限 + /// + public string authority { get; set; } + /// /// 用户(JIT推单)授权金额 /// public decimal? authorized_amount { get; set; } diff --git a/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs b/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs new file mode 100644 index 0000000..c9cb333 --- /dev/null +++ b/AllBase/Model/Result/WXResult/WXGetEditProductInfoLite.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result.WXResult +{ + public class WXGetEditProductInfoLite + { + public WXProductInfo product { get; set; } + } + + public class WXProductInfo + { + public WXProductKeyInfo productKey { get; set; } + public WXProductInfoInfo info { get; set; } + public int? status { get; set; } // 5 + public string createTime { get; set; } // "1772529740", + public string updateTime { get; set; } // "1772533190", + public int? version { get; set; } // 8, + public int? editStatus { get; set; } // 4, + public string editTime { get; set; } // "1772533189", + public int source { get; set; } // 1 + } + + public class WXProductKeyInfo + { + public string productId { get; set; } // "10000538778988" + } + + public class WXProductInfoInfo + { + // 主图 + public List headImg { get; set; } = new List(); + public List category { get; set; } = new List(); + public List param { get; set; } = new List(); + public List qualificationList { get; set; } + public List productHeadimgInfo { get; set; } + public List headImgInfos { get; set; } + public string title { get; set; } // "歪歪马震动棒 成人情趣用品" + public string subTitle { get; set; } // "", + public string brand { get; set; } // "", + public string model { get; set; } // "", + public WXProductDetailInfo detail { get; set; } + public string brandId { get; set; } // "10655917" + public string listingTime { get; set; } // "1772533190" + public string spuCode { get; set; } // "2028756820870602753" + public string lastEditDraftTime { get; set; } // "1772532559" + public string shortTitle { get; set; } // "歪歪马脉冲震动成人情趣棒" + public string aiGenShortTitle { get; set; } // "歪歪马脉冲震动成人情趣棒" + public string uniqueId { get; set; } // "4411405439658180613" + } + + public class WXProductDetailInfo + { + public List detailImg { get; set; } = new List(); // [ "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69a6a8460000683300254e4c8c4fab15000000a100004f50", ... ], + public List detailVideos { get; set; } = new List(); + public List detailVideoInfo { get; set; } = new List(); + public List carouselImg { get; set; } = new List(); + public string desc { get; set; } = ""; + } + + public class WXHeadImgInfo + { + public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69a6a8420006d56e0003583092a31715000000a100004f50", + public int? imgWidth { get; set; } // 800, + public int? imgHeight { get; set; } // 800 + } + + public class WXProductHeadimgInfo + { + public List colors { get; set; } = new List(); // [] + public string imgUrl { get; set; } // "https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69a6a8420006d56e0003583092a31715000000a100004f50" + public WXMainColors mainColors { get; set; } + } + + public class WXMainColors + { + public int? red { get; set; } // 255, + public int? green { get; set; } // 255, + public int? blue { get; set; } // 255 + } + + public class WXQualificationInfo + { + public List qualificationUrl { get; set; } // ["https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69a6a84a0008442e2a4a8f7179bc1715000000a000004f50"] + public string qualificationId { get; set; } // "50000115" + public int? showCertType { get; set; } // 0 + } + + public class WXProductParamInfo + { + public List categorys { get; set; } = new List(); + } + + public class WXProductParamCategoryInfo + { + public string name { get; set; } // [0] "name": "长度" [1] "name": "20 cm", + public int? catType { get; set; } = 0; + public WXProductParamCategoryCatInfo catInfo { get; set; } + } + + public class WXProductParamCategoryCatInfo + { + public int? isRequired { get; set; } // 1, + public int? isCustomize { get; set; } // 0, + public int? inputType { get; set; } // 1-单选 2-文本 + public long? catGroup { get; set; } // 4294967295, + } + + public class WXProductCategoryInfo + { + public string catId { get; set; } // "10000577" + public string name { get; set; } // "情趣用品" // 可能为空或没有此字段 + public string fCatId { get; set; } // "10000575" + public WXProductInfoInfo catInfo { get; set; } + public bool? leaf { get; set; } // false + } + + public class WXProductCategoryInfoInfo + { + public int? catLevel { get; set; } // 2 + public long? catGroup { get; set; } // 4294967295 + } +} diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index bc0746f..8050875 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -265,6 +265,7 @@ namespace KJD_Web.BLL.BXX 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("'", "\\'"); + var wx_safe_status = RegexUtils.GetStringQuery(ref inputData, "wx_safe_status")?.Replace("'", "\\'"); int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500); @@ -281,6 +282,10 @@ namespace KJD_Web.BLL.BXX { sql += " and p.spu_id in ('" + string.Join("','", search_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; } + if (wx_safe_status != null) + { + sql += " and p.wx_safe_status in ('" + string.Join("','", wx_safe_status.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } var dt = mySql.ExecuteDataTable(sql); mySql.Close(); @@ -549,11 +554,12 @@ namespace KJD_Web.BLL.BXX prod.size_json = row["size_json"].ToString(); prod.sku_edit_json = row["sku_edit_json"].ToString(); prod.sku_secret_json = row["sku_secret_json"].ToString(); + prod.has_wx_format = row["has_wx_format"].ParseToNullableString(); prod.sku_img_replace_base64 = row["img_base64"].ToString(); //prod.sku_img_replace_url = row["img_url"].ToString(); prod.wx_img_map_json = row["wx_img_map_json"].ToString(); - if(!prod.sku_secret_json.IsNullOrEmpty() && prod.secret_spu_id.IsNullOrEmpty()) + if (!prod.sku_secret_json.IsNullOrEmpty() && prod.secret_spu_id.IsNullOrEmpty()) { var secret_json = prod.sku_secret_json; var goodsId = RegexUtils.GetStringJson(ref secret_json, "goodsId"); @@ -595,6 +601,153 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + /// + /// 回采微信小店属性等商品数据入库 + /// + /// + /// + public string AddProdWXComplate(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var timeCalc = DateTime.Now; + 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("'", "\\'"); + if (user_name.IsNullOrEmpty()) + { + return "{\"code\":500,\"msg\":\"用户信息不能为空\"}"; + } + + var spu_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_id")).ParseToString().Replace("'", "\\'"); + var coid = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "coid")).ParseToString().Replace("'", "\\'"); + var secret_spu_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "secret_spu_id")).ParseToString().Replace("'", "\\'"); + var wx_edit_prod_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "wx_edit_prod_json")).ParseToString().Replace("'", "\\'"); + if (secret_spu_id.IsNullOrEmpty() || wx_edit_prod_json.IsNullOrEmpty()) + { + return "{\"code\":500,\"msg\":\"商品回采数据不能为空\"}"; + } + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = ""; + sql = "INSERT INTO bxx.product_wx_complate (spu_id,coid,secret_spu_id,wx_edit_prod_json) VALUES " + + " ('" + spu_id + "','" + coid + "','" + secret_spu_id + "','" + wx_edit_prod_json + "')" + + " ON DUPLICATE KEY UPDATE spu_id=VALUES(spu_id),coid=VALUES(coid),wx_edit_prod_json=VALUES(wx_edit_prod_json);"; + + var rst = mySql.ExecuteNonQuery(sql); + if (!rst || !string.IsNullOrEmpty(mySql.Message)) + { + mySql.Close(); + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + + sql = "UPDATE bxx.product set has_wx_format='1' where secret_spu_id='" + secret_spu_id + "'"; + rst = mySql.ExecuteNonQuery(sql); + mySql.Close(); + if (!rst || !string.IsNullOrEmpty(mySql.Message)) + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + else + { + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"seconds\":" + seconds + "}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + /// + /// 查询回采微信小店属性等商品数据 + /// + /// + /// + public string GetProdWXComplateList(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var timeCalc = DateTime.Now; + 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("'", "\\'"); + if (user_name.IsNullOrEmpty()) + { + return "{\"code\":500,\"msg\":\"用户信息不能为空\"}"; + } + + var spu_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "spu_id")).ParseToString().Replace("'", "\\'"); + var coid = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "coid")).ParseToString().Replace("'", "\\'"); + var search_secret_spu_ids = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "search_secret_spu_ids")).ParseToString().Replace("'", "\\'"); + if (search_secret_spu_ids.IsNullOrEmpty()) + { + return "{\"code\":500,\"msg\":\"商品回采数据编号不能为空\"}"; + } + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(1000); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "select id,spu_id,coid,secret_spu_id,wx_edit_prod_json,add_time" + + " from bxx.product_wx_complate p where 1=1"; + if (search_secret_spu_ids != null) + { + sql += " and p.secret_spu_id in ('" + string.Join("','", search_secret_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } + sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; + var dt = mySql.ExecuteDataTable(sql); + + mySql.Close(); + if (dt != null) + { + try + { + JArray wxProdComplateArr = new JArray(); + foreach (DataRow row in dt.Rows) + { + JObject wxProdComplateObj = new JObject(); + wxProdComplateObj["id"] = Convert.ToInt32(row["id"]); + wxProdComplateObj["spu_id"] = row["spu_id"].ToString(); + wxProdComplateObj["coid"] = row["coid"].ToString(); + wxProdComplateObj["secret_spu_id"] = row["secret_spu_id"].ToString(); + wxProdComplateObj["wx_edit_prod_json"] = row["wx_edit_prod_json"].ToString(); + wxProdComplateObj["add_time"] = Convert.ToDateTime(row["add_time"]); + wxProdComplateArr.Add(wxProdComplateObj); + } + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var data = JsonUtils.SerializerObjectToString(wxProdComplateArr, jsonSetting); + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + wxProdComplateArr.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\":\"输入为空\"}"; + } + + /// + /// 新增下架sku + /// + /// + /// public string AddProdDownSku(string inputData) { if (!string.IsNullOrEmpty(inputData)) @@ -669,6 +822,11 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + /// + /// 查询下架sku + /// + /// + /// public string GetProdDownSkuLstBySkuCodes(string inputData) { var timeCalc = DateTime.Now; @@ -989,6 +1147,7 @@ namespace KJD_Web.BLL.BXX var is_not_count = (RegexUtils.GetStringQuery(ref inputData, "is_not_count")?.Replace("'", "\\'")).ParseToBool(); var prod_count = (RegexUtils.GetStringQuery(ref inputData, "prod_count")?.Replace("'", "\\'")).ParseToInt(); var add_days_less = RegexUtils.GetStringQuery(ref inputData, "add_days_less")?.Replace("'", "\\'").ParseToNullableInt(); + var has_wx_format = RegexUtils.GetStringQuery(ref inputData, "has_wx_format")?.Replace("'", "\\'").ParseToString(); int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); @@ -1058,9 +1217,15 @@ namespace KJD_Web.BLL.BXX { where += " and add_time > '" + DateTime.Now.AddDays(-add_days_less.ParseToInt()).ToString("yyyy-MM-dd") + "'"; } + if (!has_wx_format.IsNullOrEmpty()) + { + where += " and has_wx_format = '" + has_wx_format + "'"; + } sql += where; - int count = prod_count; + int count = prod_count; + if (product_get_type == "厂商直采" && count > 1500) + count /= 3; if (!is_not_count) { count = mySql.ExecuteRowCount(sql); diff --git a/KJDService/KJD_WebService/BLL/KJD/UserManage.cs b/KJDService/KJD_WebService/BLL/KJD/UserManage.cs index df1d385..3e20e3d 100644 --- a/KJDService/KJD_WebService/BLL/KJD/UserManage.cs +++ b/KJDService/KJD_WebService/BLL/KJD/UserManage.cs @@ -47,6 +47,7 @@ namespace KJD_Web.BLL is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0, sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0, authorized_amount = row.Table.Columns.Contains("authorized_amount") ? row["authorized_amount"].ParseToInt() : 0, + authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "", }; if (string.IsNullOrEmpty(user.company_name)) @@ -75,6 +76,7 @@ namespace KJD_Web.BLL var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "company"))?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -89,9 +91,9 @@ namespace KJD_Web.BLL return "{\"code\":500,\"msg\":\"用户名已存在\"}"; } - sql = "insert into kjd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,parent_user_name,add_time,mdy_time) " + + sql = "insert into kjd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,parent_user_name,authority,add_time,mdy_time) " + "values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" + - group_id + "','" + company_name + "','" + notes + "','" + parent_user_name + "','" + + group_id + "','" + company_name + "','" + notes + "','" + parent_user_name + "','" + authority + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); @@ -139,6 +141,7 @@ namespace KJD_Web.BLL parent_user_name = row["parent_user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), + authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "", }; if (string.IsNullOrEmpty(user.mobile)) { @@ -166,6 +169,7 @@ namespace KJD_Web.BLL var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -189,6 +193,8 @@ namespace KJD_Web.BLL sql += " card_id='" + card_id + "',"; if (!string.IsNullOrEmpty(notes)) sql += " notes='" + notes + "',"; + if (!string.IsNullOrEmpty(authority)) + sql += " authority='" + authority + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ""; @@ -281,6 +287,7 @@ namespace KJD_Web.BLL is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0, sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0, authorized_amount = row.Table.Columns.Contains("authorized_amount") ? row["authorized_amount"].ParseToInt() : 0, + authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "", }; if (string.IsNullOrEmpty(user.mobile)) { @@ -308,7 +315,8 @@ namespace KJD_Web.BLL var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); - var authorized_amount = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); + var authorized_amount = RegexUtils.GetStringQuery(ref inputData, "authorized_amount")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -324,9 +332,9 @@ namespace KJD_Web.BLL } sql = "insert into kjd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,sa_level," + - "authorized_amount,add_time,mdy_time) " + + "authorized_amount,authority,add_time,mdy_time) " + "values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" + - group_id + "','" + company_name + "','" + notes + "'," + sa_level + "," + authorized_amount + ",'" + + group_id + "','" + company_name + "','" + notes + "'," + sa_level + "," + authorized_amount + ",'" + authority + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); @@ -354,6 +362,7 @@ namespace KJD_Web.BLL var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); var authorized_amount = RegexUtils.GetStringQuery(ref inputData, "authorized_amount")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -383,6 +392,8 @@ namespace KJD_Web.BLL sql += " sa_level=" + sa_level + ","; if (!string.IsNullOrEmpty(authorized_amount)) sql += " authorized_amount=" + authorized_amount + ","; + if (authority != null) + sql += " authority='" + authority + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ""; diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs index 9ef171a..4c53702 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs @@ -20,6 +20,7 @@ namespace KJD_Web.BLL.WXXD { if (!string.IsNullOrEmpty(inputData)) { + var timeCalc = DateTime.Now; var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); var password = RegexUtils.GetStringQuery(ref inputData, "password"); var search_id = RegexUtils.GetStringQuery(ref inputData, "search_id"); @@ -188,10 +189,10 @@ namespace KJD_Web.BLL.WXXD // } //} var data = JsonUtils.SerializerObjectToString(shopList); - + var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); //return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"c\":\"" + EncrypUtil.Encryption(r2) + "\"}"; - return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}"; + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; } } return "{\"code\":19999,\"msg\":\"未知错误\"}"; diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs index cfce73c..a2a6c68 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs @@ -51,6 +51,7 @@ namespace KJD_Web.BLL.WXXD company_name = row["company_name"].ToString(), is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0, sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0, + authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "", }; if (string.IsNullOrEmpty(user.company_name)) @@ -79,6 +80,7 @@ namespace KJD_Web.BLL.WXXD var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var company_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "company"))?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -93,9 +95,9 @@ namespace KJD_Web.BLL.WXXD return "{\"code\":500,\"msg\":\"用户名已存在\"}"; } - sql = "insert into wxxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,parent_user_name,add_time,mdy_time) " + + sql = "insert into wxxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,parent_user_name,authority,add_time,mdy_time) " + "values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" + - group_id + "','" + company_name + "','" + notes + "','" + parent_user_name + "','" + + group_id + "','" + company_name + "','" + notes + "','" + parent_user_name + "','" + authority + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); @@ -143,6 +145,7 @@ namespace KJD_Web.BLL.WXXD parent_user_name = row["parent_user_name"].ToString(), company_name = row["company_name"].ToString(), notes = row["notes"].ToString(), + authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "", }; if (string.IsNullOrEmpty(user.mobile)) { @@ -170,6 +173,7 @@ namespace KJD_Web.BLL.WXXD var group_id = RegexUtils.GetStringQuery(ref inputData, "group_id")?.Replace("'", "\\'"); var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -193,6 +197,8 @@ namespace KJD_Web.BLL.WXXD sql += " card_id='" + card_id + "',"; if (!string.IsNullOrEmpty(notes)) sql += " notes='" + notes + "',"; + if (authority != null) + sql += " authority='" + authority + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ""; @@ -281,6 +287,7 @@ namespace KJD_Web.BLL.WXXD notes = row["notes"].ToString(), is_sa = row.Table.Columns.Contains("is_sa") ? row["is_sa"].ParseToInt() : 0, sa_level = row.Table.Columns.Contains("sa_level") ? row["sa_level"].ParseToInt() : 0, + authority = row.Table.Columns.Contains("authority") ? row["authority"].ParseToString() : "", }; if (string.IsNullOrEmpty(user.mobile)) { @@ -308,6 +315,7 @@ namespace KJD_Web.BLL.WXXD var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -322,9 +330,9 @@ namespace KJD_Web.BLL.WXXD return "{\"code\":500,\"msg\":\"用户名已存在\"}"; } - sql = "insert into wxxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,sa_level,add_time,mdy_time) " + + sql = "insert into wxxd.user (nick_name,user_name,mobile,password,card_id,group_id,company_name,notes,sa_level,authority,add_time,mdy_time) " + "values ('" + nick_name + "','" + user_name + "','" + mobile + "','" + password + "','" + card_id + "','" + - group_id + "','" + company_name + "','" + notes + "'," + sa_level + ",'" + + group_id + "','" + company_name + "','" + notes + "'," + sa_level + ",'" + authority + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); @@ -351,6 +359,7 @@ namespace KJD_Web.BLL.WXXD var card_id = RegexUtils.GetStringQuery(ref inputData, "card_id")?.Replace("'", "\\'"); var notes = RegexUtils.GetStringQuery(ref inputData, "notes")?.Replace("'", "\\'"); var sa_level = RegexUtils.GetStringQuery(ref inputData, "sa_level")?.Replace("'", "\\'"); + var authority = RegexUtils.GetStringQuery(ref inputData, "authority")?.Replace("'", "\\'"); int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); @@ -378,6 +387,8 @@ namespace KJD_Web.BLL.WXXD sql += " notes='" + notes + "',"; if (!string.IsNullOrEmpty(sa_level)) sql += " sa_level=" + sa_level + ","; + if (authority != null) + sql += " authority='" + authority + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ""; diff --git a/KJDService/KJD_WebService/BXXProductService.asmx.cs b/KJDService/KJD_WebService/BXXProductService.asmx.cs index 80e293d..a92bfc8 100644 --- a/KJDService/KJD_WebService/BXXProductService.asmx.cs +++ b/KJDService/KJD_WebService/BXXProductService.asmx.cs @@ -122,6 +122,30 @@ namespace KJD_Web Context.Response.End(); } + [WebMethod] + public void add_prod_wx_complate() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().AddProdWXComplate(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void get_prod_wx_complate_list() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().GetProdWXComplateList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] public void get_sku_replace_img_list_random() { diff --git a/KJDService/KJD_WebService/Model/DBProductResultParam.cs b/KJDService/KJD_WebService/Model/DBProductResultParam.cs index 1b85243..ce8e625 100644 --- a/KJDService/KJD_WebService/Model/DBProductResultParam.cs +++ b/KJDService/KJD_WebService/Model/DBProductResultParam.cs @@ -100,5 +100,6 @@ namespace KJD_Web.Model public int send_to_out_server { get; set; } public string real_coid { get; set; } public string real_spu_id { get; set; } + public string has_wx_format { get; set; } } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/Model/UserLoginResultParam.cs b/KJDService/KJD_WebService/Model/UserLoginResultParam.cs index c743fa2..3986339 100644 --- a/KJDService/KJD_WebService/Model/UserLoginResultParam.cs +++ b/KJDService/KJD_WebService/Model/UserLoginResultParam.cs @@ -57,5 +57,10 @@ namespace KJD_Web.Model /// 备注 /// public string notes { get; set; } + + /// + /// 用户的功能操作权限 + /// + public string authority { get; set; } } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/Utils/Extension/Extension.Convert.cs b/KJDService/KJD_WebService/Utils/Extension/Extension.Convert.cs index 0d7a9cb..b47e916 100644 --- a/KJDService/KJD_WebService/Utils/Extension/Extension.Convert.cs +++ b/KJDService/KJD_WebService/Utils/Extension/Extension.Convert.cs @@ -494,6 +494,25 @@ namespace NaiBa.Util.Extension } } + public static string ParseToNullableString(this object obj) + { + try + { + if (obj == null) + { + return null; + } + else + { + return obj.ToString(); + } + } + catch + { + return null; + } + } + public static string ParseToStrings(this object obj, string split = ",") { try diff --git a/KJDService/KJD_WebService/WXProductService.asmx.cs b/KJDService/KJD_WebService/WXProductService.asmx.cs index 18ded60..a2c8906 100644 --- a/KJDService/KJD_WebService/WXProductService.asmx.cs +++ b/KJDService/KJD_WebService/WXProductService.asmx.cs @@ -83,9 +83,21 @@ namespace KJD_Web Context.Response.Write(result); Context.Response.End(); - } - - + } + + [WebMethod] + public void get_pdd_prod_wx_complate_list() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().GetProdWXComplateList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] public void get_pdd_product_groups() { diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index af7c2d0..d3cef0a 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -161,6 +161,7 @@ ImgToolForm.cs + Form @@ -191,6 +192,12 @@ WXAdminShopLoginForm.cs + + Form + + + WXProdComplateForm.cs + Form @@ -275,7 +282,6 @@ WXSubAccountShopEditForm.cs - UserControl @@ -1096,6 +1102,9 @@ ImgToolForm.cs + + DataGridViewEx.cs + WXAdminShopListForm.cs @@ -1111,6 +1120,9 @@ WXAdminShopLoginForm.cs + + WXProdComplateForm.cs + WXDBProdUploadCacheForm.cs diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs index 8951689..f496c40 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs @@ -63,24 +63,22 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.label8 = new System.Windows.Forms.Label(); this.txtReplaceText = new System.Windows.Forms.TextBox(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label16 = new System.Windows.Forms.Label(); this.txtSecretStyleCode = new System.Windows.Forms.TextBox(); this.label15 = new System.Windows.Forms.Label(); - this.cmbCat1 = new System.Windows.Forms.ComboBox(); this.label13 = new System.Windows.Forms.Label(); this.cmbSourceType = new System.Windows.Forms.ComboBox(); this.label10 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.txtSPU = new System.Windows.Forms.TextBox(); this.cmbWxCat = new System.Windows.Forms.ComboBox(); - this.label2 = new System.Windows.Forms.Label(); + this.txtSKC = new System.Windows.Forms.TextBox(); this.cmbSort = new System.Windows.Forms.ComboBox(); this.label6 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); this.txtExtCode = new System.Windows.Forms.TextBox(); this.btnSearch = new DevComponents.DotNetBar.PanelEx(); - this.lblNotes = new System.Windows.Forms.Label(); - this.txtNotes = new System.Windows.Forms.TextBox(); this.lblGroup = new System.Windows.Forms.Label(); this.cmbGroupFilter = new System.Windows.Forms.ComboBox(); this.pnlEmpty = new DevComponents.DotNetBar.PanelEx(); @@ -89,6 +87,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.txtProdName = new System.Windows.Forms.TextBox(); this.cmbWxSafe = new System.Windows.Forms.ComboBox(); this.lblWxSafe = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.cmbCat1 = new System.Windows.Forms.ComboBox(); + this.lblNotes = new System.Windows.Forms.Label(); + this.txtNotes = new System.Windows.Forms.TextBox(); this.btnExportTxt = new DevComponents.DotNetBar.PanelEx(); this.btnDelSelect = new DevComponents.DotNetBar.PanelEx(); this.cmbGroup = new System.Windows.Forms.ComboBox(); @@ -108,8 +110,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnEditExtCodePriceOK = new DevComponents.DotNetBar.PanelEx(); this.lblExtCodePrice = new System.Windows.Forms.Label(); this.pbLoading = new System.Windows.Forms.PictureBox(); - this.txtSKC = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); this.btnSelect = new DevComponents.DotNetBar.PanelEx(); this.label11 = new System.Windows.Forms.Label(); this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx(); @@ -199,7 +199,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); this.splitContainer1.Size = new System.Drawing.Size(1438, 686); - this.splitContainer1.SplitterDistance = 76; + this.splitContainer1.SplitterDistance = 110; this.splitContainer1.TabIndex = 1; // // btnStopStop @@ -208,7 +208,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnStopStop.CanvasColor = System.Drawing.SystemColors.Control; this.btnStopStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnStopStop.DisabledBackColor = System.Drawing.Color.Empty; - this.btnStopStop.Location = new System.Drawing.Point(668, 9); + this.btnStopStop.Location = new System.Drawing.Point(672, 23); this.btnStopStop.Name = "btnStopStop"; this.btnStopStop.Size = new System.Drawing.Size(76, 25); this.btnStopStop.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -234,7 +234,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnPull.Cursor = System.Windows.Forms.Cursors.Hand; this.btnPull.DisabledBackColor = System.Drawing.Color.Empty; this.btnPull.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnPull.Location = new System.Drawing.Point(806, 43); + this.btnPull.Location = new System.Drawing.Point(810, 57); this.btnPull.Name = "btnPull"; this.btnPull.Size = new System.Drawing.Size(34, 25); this.btnPull.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -259,7 +259,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnPushToOutServer.Cursor = System.Windows.Forms.Cursors.Hand; this.btnPushToOutServer.DisabledBackColor = System.Drawing.Color.Empty; this.btnPushToOutServer.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnPushToOutServer.Location = new System.Drawing.Point(746, 43); + this.btnPushToOutServer.Location = new System.Drawing.Point(750, 57); this.btnPushToOutServer.Name = "btnPushToOutServer"; this.btnPushToOutServer.Size = new System.Drawing.Size(58, 25); this.btnPushToOutServer.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -284,7 +284,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnGetProdWxCate.Cursor = System.Windows.Forms.Cursors.Hand; this.btnGetProdWxCate.DisabledBackColor = System.Drawing.Color.Empty; this.btnGetProdWxCate.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnGetProdWxCate.Location = new System.Drawing.Point(746, 9); + this.btnGetProdWxCate.Location = new System.Drawing.Point(750, 23); this.btnGetProdWxCate.Name = "btnGetProdWxCate"; this.btnGetProdWxCate.Size = new System.Drawing.Size(94, 25); this.btnGetProdWxCate.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -311,7 +311,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms "安全商品", "违规商品", "未校验"}); - this.cmbSetWxSafe.Location = new System.Drawing.Point(861, 43); + this.cmbSetWxSafe.Location = new System.Drawing.Point(865, 57); this.cmbSetWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSetWxSafe.Name = "cmbSetWxSafe"; this.cmbSetWxSafe.Size = new System.Drawing.Size(85, 25); @@ -324,7 +324,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnSetWxSafe.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSetWxSafe.DisabledBackColor = System.Drawing.Color.Empty; this.btnSetWxSafe.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSetWxSafe.Location = new System.Drawing.Point(948, 43); + this.btnSetWxSafe.Location = new System.Drawing.Point(952, 57); this.btnSetWxSafe.Name = "btnSetWxSafe"; this.btnSetWxSafe.Size = new System.Drawing.Size(84, 25); this.btnSetWxSafe.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -349,7 +349,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnImport.Cursor = System.Windows.Forms.Cursors.Hand; this.btnImport.DisabledBackColor = System.Drawing.Color.Empty; this.btnImport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnImport.Location = new System.Drawing.Point(1048, 43); + this.btnImport.Location = new System.Drawing.Point(1058, 57); this.btnImport.Name = "btnImport"; this.btnImport.Size = new System.Drawing.Size(84, 25); this.btnImport.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -373,7 +373,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.chkHighestPriceSku.AutoSize = true; this.chkHighestPriceSku.Checked = true; this.chkHighestPriceSku.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkHighestPriceSku.Location = new System.Drawing.Point(1235, 53); + this.chkHighestPriceSku.Location = new System.Drawing.Point(1258, 73); this.chkHighestPriceSku.Name = "chkHighestPriceSku"; this.chkHighestPriceSku.Size = new System.Drawing.Size(119, 21); this.chkHighestPriceSku.TabIndex = 728; @@ -386,7 +386,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.chkSameSpecPrice.AutoSize = true; this.chkSameSpecPrice.Checked = true; this.chkSameSpecPrice.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkSameSpecPrice.Location = new System.Drawing.Point(1141, 53); + this.chkSameSpecPrice.Location = new System.Drawing.Point(1163, 73); this.chkSameSpecPrice.Name = "chkSameSpecPrice"; this.chkSameSpecPrice.Size = new System.Drawing.Size(99, 21); this.chkSameSpecPrice.TabIndex = 718; @@ -397,7 +397,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(1268, 32); + this.label9.Location = new System.Drawing.Point(1290, 48); this.label9.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(76, 17); @@ -407,7 +407,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtMinPrice // this.txtMinPrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtMinPrice.Location = new System.Drawing.Point(1235, 29); + this.txtMinPrice.Location = new System.Drawing.Point(1257, 45); this.txtMinPrice.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtMinPrice.Name = "txtMinPrice"; this.txtMinPrice.Size = new System.Drawing.Size(33, 23); @@ -418,7 +418,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(1138, 32); + this.label8.Location = new System.Drawing.Point(1160, 48); this.label8.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(104, 17); @@ -428,7 +428,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtReplaceText // this.txtReplaceText.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtReplaceText.Location = new System.Drawing.Point(1235, 5); + this.txtReplaceText.Location = new System.Drawing.Point(1257, 16); this.txtReplaceText.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtReplaceText.Name = "txtReplaceText"; this.txtReplaceText.Size = new System.Drawing.Size(104, 23); @@ -454,24 +454,22 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66666F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.label16, 0, 1); this.tableLayoutPanel1.Controls.Add(this.txtSecretStyleCode, 5, 0); this.tableLayoutPanel1.Controls.Add(this.label15, 4, 0); - this.tableLayoutPanel1.Controls.Add(this.cmbCat1, 3, 0); this.tableLayoutPanel1.Controls.Add(this.label13, 10, 1); this.tableLayoutPanel1.Controls.Add(this.cmbSourceType, 5, 1); this.tableLayoutPanel1.Controls.Add(this.label10, 4, 1); this.tableLayoutPanel1.Controls.Add(this.label5, 0, 0); this.tableLayoutPanel1.Controls.Add(this.txtSPU, 1, 0); this.tableLayoutPanel1.Controls.Add(this.cmbWxCat, 11, 0); - this.tableLayoutPanel1.Controls.Add(this.label2, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.txtSKC, 1, 1); this.tableLayoutPanel1.Controls.Add(this.cmbSort, 7, 1); this.tableLayoutPanel1.Controls.Add(this.label6, 6, 1); this.tableLayoutPanel1.Controls.Add(this.label4, 6, 0); this.tableLayoutPanel1.Controls.Add(this.label12, 10, 0); this.tableLayoutPanel1.Controls.Add(this.txtExtCode, 7, 0); this.tableLayoutPanel1.Controls.Add(this.btnSearch, 12, 0); - this.tableLayoutPanel1.Controls.Add(this.lblNotes, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.txtNotes, 1, 1); this.tableLayoutPanel1.Controls.Add(this.lblGroup, 2, 1); this.tableLayoutPanel1.Controls.Add(this.cmbGroupFilter, 3, 1); this.tableLayoutPanel1.Controls.Add(this.pnlEmpty, 12, 1); @@ -480,44 +478,50 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.tableLayoutPanel1.Controls.Add(this.txtProdName, 9, 0); this.tableLayoutPanel1.Controls.Add(this.cmbWxSafe, 9, 1); this.tableLayoutPanel1.Controls.Add(this.lblWxSafe, 8, 1); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.cmbCat1, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.lblNotes, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.txtNotes, 3, 0); this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 4); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(650, 71); + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33444F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33445F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33112F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(650, 105); this.tableLayoutPanel1.TabIndex = 679; // + // label16 + // + this.label16.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(3, 44); + this.label16.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(69, 17); + this.label16.TabIndex = 812; + this.label16.Text = "coid/skc:"; + // // txtSecretStyleCode // this.txtSecretStyleCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.txtSecretStyleCode.Location = new System.Drawing.Point(243, 6); + this.txtSecretStyleCode.Location = new System.Drawing.Point(246, 6); this.txtSecretStyleCode.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtSecretStyleCode.Name = "txtSecretStyleCode"; - this.txtSecretStyleCode.Size = new System.Drawing.Size(38, 23); + this.txtSecretStyleCode.Size = new System.Drawing.Size(37, 23); this.txtSecretStyleCode.TabIndex = 812; // // label15 // this.label15.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(199, 9); + this.label15.Location = new System.Drawing.Point(202, 9); this.label15.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(44, 17); this.label15.TabIndex = 811; this.label15.Text = "编码:"; // - // cmbCat1 - // - this.cmbCat1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.cmbCat1.FormattingEnabled = true; - this.cmbCat1.Location = new System.Drawing.Point(155, 7); - this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.cmbCat1.Name = "cmbCat1"; - this.cmbCat1.Size = new System.Drawing.Size(38, 25); - this.cmbCat1.TabIndex = 805; - // // label13 // this.label13.Anchor = System.Windows.Forms.AnchorStyles.Right; @@ -540,17 +544,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms "机会商品", "以图搜品", "外部数据"}); - this.cmbSourceType.Location = new System.Drawing.Point(243, 43); + this.cmbSourceType.Location = new System.Drawing.Point(246, 42); this.cmbSourceType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSourceType.Name = "cmbSourceType"; - this.cmbSourceType.Size = new System.Drawing.Size(38, 25); + this.cmbSourceType.Size = new System.Drawing.Size(37, 25); this.cmbSourceType.TabIndex = 654; // // label10 // this.label10.Anchor = System.Windows.Forms.AnchorStyles.Left; this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(199, 44); + this.label10.Location = new System.Drawing.Point(202, 44); this.label10.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(44, 17); @@ -571,10 +575,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtSPU // this.txtSPU.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.txtSPU.Location = new System.Drawing.Point(60, 6); + this.txtSPU.Location = new System.Drawing.Point(72, 6); this.txtSPU.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtSPU.Name = "txtSPU"; - this.txtSPU.Size = new System.Drawing.Size(38, 23); + this.txtSPU.Size = new System.Drawing.Size(37, 23); this.txtSPU.TabIndex = 434; // // cmbWxCat @@ -588,19 +592,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbWxCat.Location = new System.Drawing.Point(555, 7); this.cmbWxCat.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbWxCat.Name = "cmbWxCat"; - this.cmbWxCat.Size = new System.Drawing.Size(38, 25); + this.cmbWxCat.Size = new System.Drawing.Size(37, 25); this.cmbWxCat.TabIndex = 802; // - // label2 + // txtSKC // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(104, 9); - this.label2.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(51, 17); - this.label2.TabIndex = 426; - this.label2.Text = "类目1:"; + this.txtSKC.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txtSKC.Location = new System.Drawing.Point(72, 41); + this.txtSKC.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtSKC.Name = "txtSKC"; + this.txtSKC.Size = new System.Drawing.Size(37, 23); + this.txtSKC.TabIndex = 432; // // cmbSort // @@ -609,10 +611,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbSort.Items.AddRange(new object[] { "入库时间", "认领总数"}); - this.cmbSort.Location = new System.Drawing.Point(331, 43); + this.cmbSort.Location = new System.Drawing.Point(333, 42); this.cmbSort.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSort.Name = "cmbSort"; - this.cmbSort.Size = new System.Drawing.Size(38, 25); + this.cmbSort.Size = new System.Drawing.Size(37, 25); this.cmbSort.TabIndex = 448; this.cmbSort.Text = "入库时间"; // @@ -620,7 +622,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label6.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(287, 44); + this.label6.Location = new System.Drawing.Point(289, 44); this.label6.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(44, 17); @@ -631,7 +633,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label4.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(287, 9); + this.label4.Location = new System.Drawing.Point(289, 9); this.label4.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(44, 17); @@ -652,10 +654,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtExtCode // this.txtExtCode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.txtExtCode.Location = new System.Drawing.Point(331, 6); + this.txtExtCode.Location = new System.Drawing.Point(333, 6); this.txtExtCode.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtExtCode.Name = "txtExtCode"; - this.txtExtCode.Size = new System.Drawing.Size(38, 23); + this.txtExtCode.Size = new System.Drawing.Size(37, 23); this.txtExtCode.TabIndex = 429; // // btnSearch @@ -665,7 +667,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty; this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSearch.Location = new System.Drawing.Point(599, 5); + this.btnSearch.Location = new System.Drawing.Point(598, 5); this.btnSearch.Name = "btnSearch"; this.btnSearch.Size = new System.Drawing.Size(46, 25); this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -683,31 +685,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnSearch.Text = "搜索"; this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); // - // lblNotes - // - this.lblNotes.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.lblNotes.AutoSize = true; - this.lblNotes.Location = new System.Drawing.Point(16, 44); - this.lblNotes.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.lblNotes.Name = "lblNotes"; - this.lblNotes.Size = new System.Drawing.Size(44, 17); - this.lblNotes.TabIndex = 440; - this.lblNotes.Text = "备注:"; - // - // txtNotes - // - this.txtNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.txtNotes.Location = new System.Drawing.Point(60, 41); - this.txtNotes.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.txtNotes.Name = "txtNotes"; - this.txtNotes.Size = new System.Drawing.Size(38, 23); - this.txtNotes.TabIndex = 439; - // // lblGroup // this.lblGroup.Anchor = System.Windows.Forms.AnchorStyles.Right; this.lblGroup.AutoSize = true; - this.lblGroup.Location = new System.Drawing.Point(111, 44); + this.lblGroup.Location = new System.Drawing.Point(115, 44); this.lblGroup.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.lblGroup.Name = "lblGroup"; this.lblGroup.Size = new System.Drawing.Size(44, 17); @@ -718,10 +700,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbGroupFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.cmbGroupFilter.FormattingEnabled = true; - this.cmbGroupFilter.Location = new System.Drawing.Point(155, 43); + this.cmbGroupFilter.Location = new System.Drawing.Point(159, 42); this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbGroupFilter.Name = "cmbGroupFilter"; - this.cmbGroupFilter.Size = new System.Drawing.Size(38, 25); + this.cmbGroupFilter.Size = new System.Drawing.Size(37, 25); this.cmbGroupFilter.TabIndex = 653; // // pnlEmpty @@ -730,7 +712,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control; this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty; - this.pnlEmpty.Location = new System.Drawing.Point(599, 40); + this.pnlEmpty.Location = new System.Drawing.Point(598, 40); this.pnlEmpty.Name = "pnlEmpty"; this.pnlEmpty.Size = new System.Drawing.Size(46, 25); this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -758,17 +740,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms "是", "否", "导出未拉回"}); - this.cmbExportToOutServer.Location = new System.Drawing.Point(555, 43); + this.cmbExportToOutServer.Location = new System.Drawing.Point(555, 42); this.cmbExportToOutServer.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbExportToOutServer.Name = "cmbExportToOutServer"; - this.cmbExportToOutServer.Size = new System.Drawing.Size(38, 25); + this.cmbExportToOutServer.Size = new System.Drawing.Size(37, 25); this.cmbExportToOutServer.TabIndex = 803; // // label3 // this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left; this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(375, 9); + this.label3.Location = new System.Drawing.Point(376, 9); this.label3.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(68, 17); @@ -778,10 +760,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms // txtProdName // this.txtProdName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.txtProdName.Location = new System.Drawing.Point(443, 6); + this.txtProdName.Location = new System.Drawing.Point(444, 6); this.txtProdName.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtProdName.Name = "txtProdName"; - this.txtProdName.Size = new System.Drawing.Size(38, 23); + this.txtProdName.Size = new System.Drawing.Size(37, 23); this.txtProdName.TabIndex = 427; // // cmbWxSafe @@ -794,10 +776,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms "安全商品", "违规商品", "未校验"}); - this.cmbWxSafe.Location = new System.Drawing.Point(443, 43); + this.cmbWxSafe.Location = new System.Drawing.Point(444, 42); this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbWxSafe.Name = "cmbWxSafe"; - this.cmbWxSafe.Size = new System.Drawing.Size(38, 25); + this.cmbWxSafe.Size = new System.Drawing.Size(37, 25); this.cmbWxSafe.TabIndex = 676; this.cmbWxSafe.Text = "安全+未校验"; // @@ -805,13 +787,54 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.lblWxSafe.Anchor = System.Windows.Forms.AnchorStyles.Left; this.lblWxSafe.AutoSize = true; - this.lblWxSafe.Location = new System.Drawing.Point(375, 44); + this.lblWxSafe.Location = new System.Drawing.Point(376, 44); this.lblWxSafe.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.lblWxSafe.Name = "lblWxSafe"; this.lblWxSafe.Size = new System.Drawing.Size(68, 17); this.lblWxSafe.TabIndex = 651; this.lblWxSafe.Text = "微信安检:"; // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(3, 79); + this.label2.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(51, 17); + this.label2.TabIndex = 426; + this.label2.Text = "类目1:"; + // + // cmbCat1 + // + this.cmbCat1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.cmbCat1.FormattingEnabled = true; + this.cmbCat1.Location = new System.Drawing.Point(72, 77); + this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.cmbCat1.Name = "cmbCat1"; + this.cmbCat1.Size = new System.Drawing.Size(37, 25); + this.cmbCat1.TabIndex = 805; + // + // lblNotes + // + this.lblNotes.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.lblNotes.AutoSize = true; + this.lblNotes.Location = new System.Drawing.Point(115, 9); + this.lblNotes.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.lblNotes.Name = "lblNotes"; + this.lblNotes.Size = new System.Drawing.Size(44, 17); + this.lblNotes.TabIndex = 440; + this.lblNotes.Text = "备注:"; + // + // txtNotes + // + this.txtNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txtNotes.Location = new System.Drawing.Point(159, 6); + this.txtNotes.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtNotes.Name = "txtNotes"; + this.txtNotes.Size = new System.Drawing.Size(37, 23); + this.txtNotes.TabIndex = 439; + // // btnExportTxt // this.btnExportTxt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -819,9 +842,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnExportTxt.Cursor = System.Windows.Forms.Cursors.Hand; this.btnExportTxt.DisabledBackColor = System.Drawing.Color.Empty; this.btnExportTxt.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnExportTxt.Location = new System.Drawing.Point(1344, 26); + this.btnExportTxt.Location = new System.Drawing.Point(1366, 43); this.btnExportTxt.Name = "btnExportTxt"; - this.btnExportTxt.Size = new System.Drawing.Size(89, 25); + this.btnExportTxt.Size = new System.Drawing.Size(67, 25); this.btnExportTxt.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnExportTxt.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnExportTxt.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -844,7 +867,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnDelSelect.Cursor = System.Windows.Forms.Cursors.Hand; this.btnDelSelect.DisabledBackColor = System.Drawing.Color.Empty; this.btnDelSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnDelSelect.Location = new System.Drawing.Point(1048, 9); + this.btnDelSelect.Location = new System.Drawing.Point(1058, 23); this.btnDelSelect.Name = "btnDelSelect"; this.btnDelSelect.Size = new System.Drawing.Size(84, 25); this.btnDelSelect.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -866,7 +889,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbGroup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.cmbGroup.FormattingEnabled = true; - this.cmbGroup.Location = new System.Drawing.Point(861, 9); + this.cmbGroup.Location = new System.Drawing.Point(865, 23); this.cmbGroup.Name = "cmbGroup"; this.cmbGroup.Size = new System.Drawing.Size(85, 25); this.cmbGroup.TabIndex = 640; @@ -878,7 +901,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnSetGroup.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSetGroup.DisabledBackColor = System.Drawing.Color.Empty; this.btnSetGroup.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSetGroup.Location = new System.Drawing.Point(948, 9); + this.btnSetGroup.Location = new System.Drawing.Point(952, 23); this.btnSetGroup.Name = "btnSetGroup"; this.btnSetGroup.Size = new System.Drawing.Size(84, 25); this.btnSetGroup.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -900,7 +923,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // 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(1138, 8); + this.label7.Location = new System.Drawing.Point(1160, 19); this.label7.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(104, 17); @@ -913,7 +936,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.chkPullAfterPush.AutoSize = true; this.chkPullAfterPush.Checked = true; this.chkPullAfterPush.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkPullAfterPush.Location = new System.Drawing.Point(668, 45); + this.chkPullAfterPush.Location = new System.Drawing.Point(672, 59); this.chkPullAfterPush.Name = "chkPullAfterPush"; this.chkPullAfterPush.Size = new System.Drawing.Size(87, 21); this.chkPullAfterPush.TabIndex = 874; @@ -936,8 +959,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.splitContainer2.Panel1.Controls.Add(this.label14); this.splitContainer2.Panel1.Controls.Add(this.pnlEditExtCodePrice); this.splitContainer2.Panel1.Controls.Add(this.pbLoading); - this.splitContainer2.Panel1.Controls.Add(this.txtSKC); - this.splitContainer2.Panel1.Controls.Add(this.label1); this.splitContainer2.Panel1.Controls.Add(this.btnSelect); this.splitContainer2.Panel1.Controls.Add(this.label11); this.splitContainer2.Panel1.Controls.Add(this.dgvDbProduct); @@ -947,8 +968,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1); this.splitContainer2.Panel2.Controls.Add(this.statusBar); - this.splitContainer2.Size = new System.Drawing.Size(1438, 606); - this.splitContainer2.SplitterDistance = 577; + this.splitContainer2.Size = new System.Drawing.Size(1438, 572); + this.splitContainer2.SplitterDistance = 543; this.splitContainer2.TabIndex = 0; // // cmbSpProdType @@ -959,10 +980,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms "", "普通商品", "书籍"}); - this.cmbSpProdType.Location = new System.Drawing.Point(87, 134); + this.cmbSpProdType.Location = new System.Drawing.Point(82, 75); this.cmbSpProdType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbSpProdType.Name = "cmbSpProdType"; - this.cmbSpProdType.Size = new System.Drawing.Size(27, 25); + this.cmbSpProdType.Size = new System.Drawing.Size(37, 25); this.cmbSpProdType.TabIndex = 677; this.cmbSpProdType.Visible = false; // @@ -970,7 +991,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.cmbCat2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.cmbCat2.FormattingEnabled = true; - this.cmbCat2.Location = new System.Drawing.Point(82, 173); + this.cmbCat2.Location = new System.Drawing.Point(82, 114); this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.cmbCat2.Name = "cmbCat2"; this.cmbCat2.Size = new System.Drawing.Size(37, 25); @@ -1006,7 +1027,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label14.Anchor = System.Windows.Forms.AnchorStyles.Left; this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(31, 177); + this.label14.Location = new System.Drawing.Point(31, 118); this.label14.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(51, 17); @@ -1021,7 +1042,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.pnlEditExtCodePrice.Controls.Add(this.lblExtCode); this.pnlEditExtCodePrice.Controls.Add(this.panel2); this.pnlEditExtCodePrice.Controls.Add(this.lblExtCodePrice); - this.pnlEditExtCodePrice.Location = new System.Drawing.Point(482, 84); + this.pnlEditExtCodePrice.Location = new System.Drawing.Point(482, 73); this.pnlEditExtCodePrice.Name = "pnlEditExtCodePrice"; this.pnlEditExtCodePrice.Size = new System.Drawing.Size(474, 146); this.pnlEditExtCodePrice.TabIndex = 434; @@ -1116,31 +1137,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(694, 263); + this.pbLoading.Location = new System.Drawing.Point(694, 246); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pbLoading.TabIndex = 7; this.pbLoading.TabStop = false; // - // txtSKC - // - this.txtSKC.Location = new System.Drawing.Point(48, 64); - this.txtSKC.Name = "txtSKC"; - this.txtSKC.Size = new System.Drawing.Size(90, 23); - this.txtSKC.TabIndex = 432; - this.txtSKC.Visible = false; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(15, 67); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(43, 17); - this.label1.TabIndex = 433; - this.label1.Text = "SKC:"; - this.label1.Visible = false; - // // btnSelect // this.btnSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; @@ -1169,7 +1172,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.label11.Anchor = System.Windows.Forms.AnchorStyles.Right; this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(26, 138); + this.label11.Location = new System.Drawing.Point(14, 79); this.label11.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(68, 17); @@ -1235,7 +1238,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvDbProduct.Name = "dgvDbProduct"; this.dgvDbProduct.ReadOnly = true; this.dgvDbProduct.RowTemplate.Height = 23; - this.dgvDbProduct.Size = new System.Drawing.Size(1430, 577); + this.dgvDbProduct.Size = new System.Drawing.Size(1430, 543); this.dgvDbProduct.TabIndex = 6; this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick); this.dgvDbProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvDbProduct_Scroll); @@ -1548,11 +1551,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.Controls.Add(this.splitContainer1); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; this.Name = "PDDDBProdListForm"; this.Text = "产品数据库"; this.TitleText = "产品数据库"; this.Load += new System.EventHandler(this.ProductListForm_Load); this.VisibleChanged += new System.EventHandler(this.ProductListForm_VisibleChanged); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.PDDDBProdListForm_KeyDown); + this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.PDDDBProdListForm_KeyUp); this.Controls.SetChildIndex(this.splitContainer1, 0); this.splitContainer1.Panel1.ResumeLayout(false); this.splitContainer1.Panel1.PerformLayout(); @@ -1585,7 +1591,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.TextBox txtSPU; private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox txtSKC; - private System.Windows.Forms.Label label1; private DevComponents.DotNetBar.PanelEx pnlEmpty; private System.Windows.Forms.TextBox txtExtCode; private System.Windows.Forms.Label label4; @@ -1678,5 +1683,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.DataGridViewLinkColumn col_edit; private System.Windows.Forms.DataGridViewLinkColumn col_delete; private System.Windows.Forms.DataGridViewLinkColumn col_select_product; + private System.Windows.Forms.Label label16; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs index 249cf33..5d54121 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs @@ -491,6 +491,36 @@ namespace TemuKJD.PDDForms.ProductSelectForms break; case "": dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value; + rowIndex1 = rowIndex2; + rowIndex2 = e.RowIndex; + if (IsShiftDown) + { + if (rowIndex1 > -1 && rowIndex2 > -1) + { + try + { + if (rowIndex1 > rowIndex2) + { + for (int i = rowIndex2; i <= rowIndex1; i++) + { + dgvDbProduct.Rows[i].Cells["colSelect"].Value = dgvDbProduct.Rows[rowIndex1].Cells["colSelect"].Value; + } + } + else + { + for (int i = rowIndex1; i <= rowIndex2; i++) + { + dgvDbProduct.Rows[i].Cells["colSelect"].Value = dgvDbProduct.Rows[rowIndex1].Cells["colSelect"].Value; + } + } + } + catch + { + } + //rowIndex1 = -1; + //rowIndex2 = -1; + } + } break; default: break; @@ -1642,5 +1672,36 @@ namespace TemuKJD.PDDForms.ProductSelectForms })); }); } + + int rowIndex1 = -1; + int rowIndex2 = -1; + bool IsShiftDown = false; + private void PDDDBProdListForm_KeyDown(object sender, KeyEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Shift: + case Keys.ShiftKey: + case Keys.LShiftKey: + case Keys.RShiftKey: + IsShiftDown = true; + break; + } + } + + private void PDDDBProdListForm_KeyUp(object sender, KeyEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Shift: + case Keys.ShiftKey: + case Keys.LShiftKey: + case Keys.RShiftKey: + IsShiftDown = false; + rowIndex1 = -1; + rowIndex2 = -1; + break; + } + } } } diff --git a/TEMUKJD/UserComponent/DataGridViewEx.resx b/TEMUKJD/UserComponent/DataGridViewEx.resx new file mode 100644 index 0000000..e5858cc --- /dev/null +++ b/TEMUKJD/UserComponent/DataGridViewEx.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.Designer.cs index 3d2d6f9..524255c 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.Designer.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.Designer.cs @@ -29,10 +29,13 @@ namespace TemuKJD.WXForms.AdminForms /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer5 = new System.Windows.Forms.SplitContainer(); + this.label7 = new System.Windows.Forms.Label(); + this.chkWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components); this.cmbSaLevel = new System.Windows.Forms.ComboBox(); this.label6 = new System.Windows.Forms.Label(); this.lblWatermark = new System.Windows.Forms.Label(); @@ -74,6 +77,7 @@ namespace TemuKJD.WXForms.AdminForms this.shopCountColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSaLevel = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSaLevelName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAuthority = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.editColumn = new System.Windows.Forms.DataGridViewLinkColumn(); this.deleteColumn = new System.Windows.Forms.DataGridViewLinkColumn(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer5)).BeginInit(); @@ -96,6 +100,9 @@ namespace TemuKJD.WXForms.AdminForms // // splitContainer5.Panel1 // + this.splitContainer5.Panel1.BackColor = System.Drawing.Color.WhiteSmoke; + this.splitContainer5.Panel1.Controls.Add(this.label7); + this.splitContainer5.Panel1.Controls.Add(this.chkWXComplateProd); this.splitContainer5.Panel1.Controls.Add(this.cmbSaLevel); this.splitContainer5.Panel1.Controls.Add(this.label6); this.splitContainer5.Panel1.Controls.Add(this.lblWatermark); @@ -131,11 +138,30 @@ namespace TemuKJD.WXForms.AdminForms // this.splitContainer5.Panel2.Controls.Add(this.splitContainer1); this.splitContainer5.Panel2.Padding = new System.Windows.Forms.Padding(0, 5, 5, 5); - this.splitContainer5.Size = new System.Drawing.Size(800, 527); + this.splitContainer5.Size = new System.Drawing.Size(1376, 527); this.splitContainer5.SplitterDistance = 357; this.splitContainer5.SplitterWidth = 1; this.splitContainer5.TabIndex = 3; // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label7.Location = new System.Drawing.Point(55, 395); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(51, 20); + this.label7.TabIndex = 809; + this.label7.Text = "权限:"; + // + // chkWXComplateProd + // + this.chkWXComplateProd.Location = new System.Drawing.Point(112, 395); + this.chkWXComplateProd.Name = "chkWXComplateProd"; + this.chkWXComplateProd.Size = new System.Drawing.Size(87, 21); + this.chkWXComplateProd.TabIndex = 808; + this.chkWXComplateProd.Text = "微信回采"; + this.chkWXComplateProd.UseVisualStyleBackColor = true; + // // cmbSaLevel // this.cmbSaLevel.FormattingEnabled = true; @@ -143,7 +169,7 @@ namespace TemuKJD.WXForms.AdminForms "普通用户", "一级超管", "二级超管"}); - this.cmbSaLevel.Location = new System.Drawing.Point(112, 388); + this.cmbSaLevel.Location = new System.Drawing.Point(112, 356); this.cmbSaLevel.Name = "cmbSaLevel"; this.cmbSaLevel.Size = new System.Drawing.Size(148, 25); this.cmbSaLevel.TabIndex = 48; @@ -153,7 +179,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label6.AutoSize = true; this.label6.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label6.Location = new System.Drawing.Point(27, 390); + this.label6.Location = new System.Drawing.Point(27, 358); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(79, 20); this.label6.TabIndex = 47; @@ -217,7 +243,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label3.AutoSize = true; this.label3.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label3.Location = new System.Drawing.Point(55, 348); + this.label3.Location = new System.Drawing.Point(55, 320); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(51, 20); this.label3.TabIndex = 40; @@ -225,7 +251,7 @@ namespace TemuKJD.WXForms.AdminForms // // txtCompany // - this.txtCompany.Location = new System.Drawing.Point(112, 347); + this.txtCompany.Location = new System.Drawing.Point(112, 319); this.txtCompany.Name = "txtCompany"; this.txtCompany.Size = new System.Drawing.Size(148, 23); this.txtCompany.TabIndex = 39; @@ -274,7 +300,7 @@ namespace TemuKJD.WXForms.AdminForms this.btnCancel.Cursor = System.Windows.Forms.Cursors.Hand; this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnCancel.ForeColor = System.Drawing.Color.White; - this.btnCancel.Location = new System.Drawing.Point(59, 431); + this.btnCancel.Location = new System.Drawing.Point(59, 430); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(86, 25); this.btnCancel.TabIndex = 35; @@ -290,7 +316,7 @@ namespace TemuKJD.WXForms.AdminForms this.btnOpUser.Cursor = System.Windows.Forms.Cursors.Hand; this.btnOpUser.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnOpUser.ForeColor = System.Drawing.Color.White; - this.btnOpUser.Location = new System.Drawing.Point(174, 431); + this.btnOpUser.Location = new System.Drawing.Point(174, 430); this.btnOpUser.Name = "btnOpUser"; this.btnOpUser.Size = new System.Drawing.Size(86, 25); this.btnOpUser.TabIndex = 34; @@ -302,7 +328,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label30.AutoSize = true; this.label30.ForeColor = System.Drawing.SystemColors.ButtonShadow; - this.label30.Location = new System.Drawing.Point(282, 180); + this.label30.Location = new System.Drawing.Point(282, 172); this.label30.Name = "label30"; this.label30.Size = new System.Drawing.Size(56, 17); this.label30.TabIndex = 33; @@ -312,7 +338,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label31.AutoSize = true; this.label31.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.label31.Location = new System.Drawing.Point(266, 264); + this.label31.Location = new System.Drawing.Point(266, 246); this.label31.Name = "label31"; this.label31.Size = new System.Drawing.Size(13, 17); this.label31.TabIndex = 32; @@ -320,7 +346,7 @@ namespace TemuKJD.WXForms.AdminForms // // txtRePass // - this.txtRePass.Location = new System.Drawing.Point(112, 261); + this.txtRePass.Location = new System.Drawing.Point(112, 243); this.txtRePass.Name = "txtRePass"; this.txtRePass.PasswordChar = '*'; this.txtRePass.Size = new System.Drawing.Size(148, 23); @@ -330,7 +356,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label32.AutoSize = true; this.label32.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label32.Location = new System.Drawing.Point(27, 262); + this.label32.Location = new System.Drawing.Point(27, 244); this.label32.Name = "label32"; this.label32.Size = new System.Drawing.Size(79, 20); this.label32.TabIndex = 31; @@ -340,7 +366,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label33.AutoSize = true; this.label33.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.label33.Location = new System.Drawing.Point(266, 306); + this.label33.Location = new System.Drawing.Point(266, 284); this.label33.Name = "label33"; this.label33.Size = new System.Drawing.Size(13, 17); this.label33.TabIndex = 30; @@ -350,7 +376,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label34.AutoSize = true; this.label34.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.label34.Location = new System.Drawing.Point(266, 222); + this.label34.Location = new System.Drawing.Point(266, 209); this.label34.Name = "label34"; this.label34.Size = new System.Drawing.Size(13, 17); this.label34.TabIndex = 29; @@ -360,7 +386,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label35.AutoSize = true; this.label35.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.label35.Location = new System.Drawing.Point(266, 180); + this.label35.Location = new System.Drawing.Point(266, 172); this.label35.Name = "label35"; this.label35.Size = new System.Drawing.Size(13, 17); this.label35.TabIndex = 28; @@ -370,7 +396,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label36.AutoSize = true; this.label36.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.label36.Location = new System.Drawing.Point(266, 138); + this.label36.Location = new System.Drawing.Point(266, 135); this.label36.Name = "label36"; this.label36.Size = new System.Drawing.Size(13, 17); this.label36.TabIndex = 27; @@ -385,7 +411,7 @@ namespace TemuKJD.WXForms.AdminForms "上货", "数据", "登录"}); - this.cmbGroup.Location = new System.Drawing.Point(112, 303); + this.cmbGroup.Location = new System.Drawing.Point(112, 280); this.cmbGroup.Name = "cmbGroup"; this.cmbGroup.Size = new System.Drawing.Size(148, 25); this.cmbGroup.TabIndex = 26; @@ -395,7 +421,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label37.AutoSize = true; this.label37.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label37.Location = new System.Drawing.Point(55, 304); + this.label37.Location = new System.Drawing.Point(55, 282); this.label37.Name = "label37"; this.label37.Size = new System.Drawing.Size(51, 20); this.label37.TabIndex = 25; @@ -403,7 +429,7 @@ namespace TemuKJD.WXForms.AdminForms // // txtPassword // - this.txtPassword.Location = new System.Drawing.Point(112, 219); + this.txtPassword.Location = new System.Drawing.Point(112, 206); this.txtPassword.Name = "txtPassword"; this.txtPassword.PasswordChar = '*'; this.txtPassword.Size = new System.Drawing.Size(148, 23); @@ -413,7 +439,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label38.AutoSize = true; this.label38.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label38.Location = new System.Drawing.Point(55, 220); + this.label38.Location = new System.Drawing.Point(55, 207); this.label38.Name = "label38"; this.label38.Size = new System.Drawing.Size(51, 20); this.label38.TabIndex = 22; @@ -421,7 +447,7 @@ namespace TemuKJD.WXForms.AdminForms // // txtMobile // - this.txtMobile.Location = new System.Drawing.Point(112, 177); + this.txtMobile.Location = new System.Drawing.Point(112, 169); this.txtMobile.Name = "txtMobile"; this.txtMobile.Size = new System.Drawing.Size(148, 23); this.txtMobile.TabIndex = 21; @@ -430,7 +456,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label39.AutoSize = true; this.label39.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label39.Location = new System.Drawing.Point(41, 178); + this.label39.Location = new System.Drawing.Point(41, 170); this.label39.Name = "label39"; this.label39.Size = new System.Drawing.Size(65, 20); this.label39.TabIndex = 20; @@ -438,7 +464,7 @@ namespace TemuKJD.WXForms.AdminForms // // txtNickName // - this.txtNickName.Location = new System.Drawing.Point(112, 135); + this.txtNickName.Location = new System.Drawing.Point(112, 132); this.txtNickName.Name = "txtNickName"; this.txtNickName.Size = new System.Drawing.Size(148, 23); this.txtNickName.TabIndex = 19; @@ -447,7 +473,7 @@ namespace TemuKJD.WXForms.AdminForms // this.label40.AutoSize = true; this.label40.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label40.Location = new System.Drawing.Point(55, 136); + this.label40.Location = new System.Drawing.Point(55, 133); this.label40.Name = "label40"; this.label40.Size = new System.Drawing.Size(51, 20); this.label40.TabIndex = 18; @@ -464,7 +490,7 @@ namespace TemuKJD.WXForms.AdminForms // splitContainer1.Panel1 // this.splitContainer1.Panel1.Controls.Add(this.dgvUser); - this.splitContainer1.Size = new System.Drawing.Size(437, 517); + this.splitContainer1.Size = new System.Drawing.Size(1013, 517); this.splitContainer1.SplitterDistance = 486; this.splitContainer1.TabIndex = 2; // @@ -472,19 +498,20 @@ namespace TemuKJD.WXForms.AdminForms // this.dgvUser.AllowUserToAddRows = false; this.dgvUser.AllowUserToDeleteRows = false; - dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249))))); - this.dgvUser.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249))))); + this.dgvUser.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle4; + this.dgvUser.AutoRowNumber = true; this.dgvUser.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dgvUser.BackgroundColor = System.Drawing.Color.White; this.dgvUser.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvUser.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvUser.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5; this.dgvUser.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvUser.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.UserIdColumn, @@ -496,23 +523,24 @@ namespace TemuKJD.WXForms.AdminForms this.shopCountColumn, this.colSaLevel, this.colSaLevelName, + this.colAuthority, this.editColumn, this.deleteColumn}); - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvUser.DefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvUser.DefaultCellStyle = dataGridViewCellStyle6; this.dgvUser.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvUser.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229))))); this.dgvUser.Location = new System.Drawing.Point(0, 0); this.dgvUser.Name = "dgvUser"; this.dgvUser.ReadOnly = true; this.dgvUser.RowTemplate.Height = 23; - this.dgvUser.Size = new System.Drawing.Size(437, 486); + this.dgvUser.Size = new System.Drawing.Size(1013, 486); this.dgvUser.TabIndex = 1; this.dgvUser.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvUser_CellContentClick); // @@ -574,8 +602,15 @@ namespace TemuKJD.WXForms.AdminForms this.colSaLevelName.Name = "colSaLevelName"; this.colSaLevelName.ReadOnly = true; // + // colAuthority + // + this.colAuthority.HeaderText = "功能权限"; + this.colAuthority.Name = "colAuthority"; + this.colAuthority.ReadOnly = true; + // // editColumn // + this.editColumn.FillWeight = 50F; this.editColumn.HeaderText = "编辑"; this.editColumn.Name = "editColumn"; this.editColumn.ReadOnly = true; @@ -584,17 +619,18 @@ namespace TemuKJD.WXForms.AdminForms // // deleteColumn // + this.deleteColumn.FillWeight = 50F; this.deleteColumn.HeaderText = "删除"; this.deleteColumn.Name = "deleteColumn"; this.deleteColumn.ReadOnly = true; // - // AdminAccountForm + // WXAdminAccountForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.ClientSize = new System.Drawing.Size(800, 527); + this.ClientSize = new System.Drawing.Size(1376, 527); this.Controls.Add(this.splitContainer5); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.Name = "AdminAccountForm"; + this.Name = "WXAdminAccountForm"; this.Text = "AccountForm"; this.Load += new System.EventHandler(this.MainAccountForm_Load); this.VisibleChanged += new System.EventHandler(this.MainAccountForm_VisibleChanged); @@ -646,6 +682,8 @@ namespace TemuKJD.WXForms.AdminForms private System.Windows.Forms.Label lblWatermark; private System.Windows.Forms.Label label6; private System.Windows.Forms.ComboBox cmbSaLevel; + private System.Windows.Forms.Label label7; + private UserComponent.UcCheckBox chkWXComplateProd; private System.Windows.Forms.DataGridViewTextBoxColumn UserIdColumn; private System.Windows.Forms.DataGridViewTextBoxColumn UserNickNameColumn; private System.Windows.Forms.DataGridViewTextBoxColumn mobileColumn; @@ -655,6 +693,7 @@ namespace TemuKJD.WXForms.AdminForms private System.Windows.Forms.DataGridViewTextBoxColumn shopCountColumn; private System.Windows.Forms.DataGridViewTextBoxColumn colSaLevel; private System.Windows.Forms.DataGridViewTextBoxColumn colSaLevelName; + private System.Windows.Forms.DataGridViewTextBoxColumn colAuthority; private System.Windows.Forms.DataGridViewLinkColumn editColumn; private System.Windows.Forms.DataGridViewLinkColumn deleteColumn; } diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.cs index 3a6d184..40fd9fa 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.cs @@ -1,5 +1,6 @@ using AllBase; using AllBase.Model.Result; +using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.ComponentModel; @@ -73,6 +74,12 @@ namespace TemuKJD.WXForms.AdminForms data.Append("&sa_level=2"); else data.Append("&sa_level=0"); + string authority = ""; + if (chkWXComplateProd.Checked) + authority += "微信回采"; + //if (!string.IsNullOrEmpty(authority)) + data.Append("&authority=" + authority); + string url = BaseClass.BuildObjString("user/add_user"); if (btnOpUser.Text != "添加用户" && !string.IsNullOrEmpty(Uid)) { @@ -135,6 +142,7 @@ namespace TemuKJD.WXForms.AdminForms user.shop_count = BaseRegex.GetIntJson(ref oStr, "shop_count"); user.company_name = BaseRegex.GetStringJson(ref oStr, "company_name"); user.sa_level = BaseRegex.GetIntJson(ref oStr, "sa_level"); + user.authority = BaseRegex.GetStringJson(ref oStr, "authority"); AllUsers.Add(user); dgvUser.Rows.Add( @@ -147,6 +155,7 @@ namespace TemuKJD.WXForms.AdminForms user.shop_count, user.sa_level, user.sa_level_name, + user.authority, "编辑", "删除"); } @@ -170,6 +179,7 @@ namespace TemuKJD.WXForms.AdminForms txtCompany.Clear(); cmbGroup.Text = "主账户"; cmbSaLevel.Text = "普通用户"; + chkWXComplateProd.Checked = false; } private void btnRefresh_Click(object sender, EventArgs e) @@ -188,6 +198,7 @@ namespace TemuKJD.WXForms.AdminForms string groupName = dgvUser.Rows[e.RowIndex].Cells["groupNameColumn"].Value.ToString(); string company = dgvUser.Rows[e.RowIndex].Cells["colCompany"].Value.ToString(); string saLevelName = dgvUser.Rows[e.RowIndex].Cells["colSaLevelName"].Value.ToString(); + string authority = dgvUser.Rows[e.RowIndex].Cells["colAuthority"].Value.ParseToString(); if (columname == "编辑") { Uid = uid; @@ -200,6 +211,7 @@ namespace TemuKJD.WXForms.AdminForms btnOpUser.Text = "保存用户"; btnCancel.Visible = true; cmbSaLevel.Text = saLevelName; + chkWXComplateProd.Checked = authority.Contains(chkWXComplateProd.Text); } if (columname == "删除") { diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.resx b/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.resx index c3a4499..67bc4a6 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.resx +++ b/TEMUKJD/WXForms/AdminForms/WXAdminAccountForm.resx @@ -144,6 +144,9 @@ True + + True + True diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs index ec979a7..895f38c 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminShopListForm.cs @@ -100,7 +100,8 @@ namespace TemuKJD.WXForms.AdminForms Task.Run(() => { int pageCount; - var list = AdminGetServerShopLst(out pageCount, page); + decimal seconds = 0; + var list = AdminGetServerShopLst(out pageCount, out seconds, page); lstAdminShopInfo.AddRange(list); this.ucSplitPage1.TotalPage = pageCount; @@ -146,6 +147,10 @@ namespace TemuKJD.WXForms.AdminForms Invoke(new Action(() => { this.pbLoading.Visible = false; + this.statusBar.lblTaskStatus.Text = "店铺查询完毕"; +#if DEBUG + this.statusBar.lblTaskStatus.Text += ",耗时:" + seconds; +#endif })); }); } @@ -386,10 +391,11 @@ namespace TemuKJD.WXForms.AdminForms return shopNameList; } - public List AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50) + public List AdminGetServerShopLst(out int pageCount, out decimal seconds, int page = 1, int pageSize = 50) { List list = new List(); pageCount = 1; + seconds = 0; var url = BaseClass.BuildObjString("shop/admin_get_shop_list"); var data = UserLogin.GetSignaturex() + @@ -416,6 +422,7 @@ namespace TemuKJD.WXForms.AdminForms int count = BaseRegex.GetIntJson(ref html, "count"); pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt(); pageCount = Math.Max(pageCount, 1); + seconds = BaseRegex.GetDecimalJson(ref html, "seconds"); return ShopBLL.DeserializationShop(html); } diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminShopLoginForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminShopLoginForm.cs index e9f32d9..dcf6bd9 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminShopLoginForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminShopLoginForm.cs @@ -379,8 +379,8 @@ namespace TemuKJD.WXForms.AdminForms private void ShopObj_OnInfoReceived(string information) { //BaseMsgForm.ShowInfo(information); - if (!string.IsNullOrEmpty(information)) - cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync("alert('" + information + "');"); + //if (!string.IsNullOrEmpty(information)) + // cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync("alert('" + information + "');"); } private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e) @@ -399,12 +399,13 @@ namespace TemuKJD.WXForms.AdminForms private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) { - //js绑定C#对象 html页面内声明绑定的C#对象 + // js绑定C#对象 html页面内声明绑定的C#对象 + // 新版cef需要在页面加载后动态绑定 StringBuilder sb = new StringBuilder(); sb.Append("(function(){"); sb.Append("CefSharp.BindObjectAsync('shopObj');"); sb.Append("})();"); - //cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString()); + cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString()); } //public Func BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行) @@ -456,6 +457,58 @@ namespace TemuKJD.WXForms.AdminForms this.lstShopCompany.Add(sc); }); } + + if (currentUrl.StartsWith("https://store.weixin.qq.com/shop/goods/list")) + { + //Task.Run(() => { + string sAddInputJs = @" + document.addEventListener('wheel', function(event) { + // 检查滚动方向 + //if (event.deltaY < 0) { + // console.log('向上滚动'); + //} else { + // console.log('向下滚动'); + //} + // 或者使用 event.deltaX 来检查水平滚动 + //if (event.deltaX < 0) { + // console.log('向左滚动'); + //} else if (event.deltaX > 0) { + // console.log('向右滚动'); + //} + + // 阻止默认的滚动行为(如果有需要) + //event.preventDefault(); + + addGetProdButton(); + }); + addGetProdButton(); + + function addGetProdButton() { + const element = document.getElementsByName('goods')[0]; + const shadowRoot = element.shadowRoot; + var productLst = shadowRoot.querySelector('micro-app-body').getElementsByClassName('goods_info') + for ( i= 0; i < productLst.length; i++) { + var addBtnItem = productLst[i]; //.parentElement.parentElement.parentElement; + var pos = addBtnItem.innerHTML.indexOf('ID:') + if (addBtnItem.innerHTML.indexOf('回采') < 0 && pos >= 0) { + var sSpuId = addBtnItem.innerHTML.substring(pos + 3); + sSpuId = sSpuId.substring(0, sSpuId.indexOf('"" + //addBtnItem.innerHTML += """" + //addBtnItem.innerHTML = addBtnItem.innerHTML.replace(""分享 "", ""分享 ""); + var newDiv = document.createElement(""div""); + newDiv.innerHTML = ""回采<\a>""; + addBtnItem.lastChild.appendChild(newDiv); + } + } + }"; + cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sAddInputJs); + //}); + + //const element = document.getElementsByName('goods')[0] + //const shadowRoot = element.shadowRoot; + //shadowRoot.querySelector('micro-app-body').getElementsByClassName('goods_info') + } } /// diff --git a/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.Designer.cs new file mode 100644 index 0000000..a57692a --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.Designer.cs @@ -0,0 +1,1548 @@ + +using TemuKJD.PDDForms.ProductSelectForms; + +namespace TemuKJD.WXForms.AdminForms +{ + partial class WXProdComplateForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.cmbSaleSort = new System.Windows.Forms.ComboBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.panelEx6 = new DevComponents.DotNetBar.PanelEx(); + this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); + this.txtPageEnd = new System.Windows.Forms.TextBox(); + this.txtFiltSaleNumLessThan = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.btnFiltSelectLessThan = new DevComponents.DotNetBar.PanelEx(); + this.txtFiltSaleNumMoreThan = new System.Windows.Forms.TextBox(); + this.btnSearchProd = new DevComponents.DotNetBar.PanelEx(); + this.cmbPreType = new System.Windows.Forms.ComboBox(); + this.btnFiltSelectMoreThan = new DevComponents.DotNetBar.PanelEx(); + this.btnClearFilter = new DevComponents.DotNetBar.PanelEx(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.chkFailDownProd = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnPromotion = new DevComponents.DotNetBar.PanelEx(); + this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); + this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.btnSelectOffline = new DevComponents.DotNetBar.PanelEx(); + this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); + this.btnSelectOnline = new DevComponents.DotNetBar.PanelEx(); + this.btnAddUnSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnReverse = new DevComponents.DotNetBar.PanelEx(); + this.btnAddSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnEmptyShop = new DevComponents.DotNetBar.PanelEx(); + this.label16 = new System.Windows.Forms.Label(); + this.txtFilterShopName = new System.Windows.Forms.TextBox(); + this.label17 = new System.Windows.Forms.Label(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.btnRefreshAuthor = new DevComponents.DotNetBar.PanelEx(); + this.pbLoadingShop = new System.Windows.Forms.PictureBox(); + this.btnFilterShop = new DevComponents.DotNetBar.PanelEx(); + this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colApi = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colUploadCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOnSaleNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLogin = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colInShop = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colSkcId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colDraftId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn(); + this.colSkuFakeImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSkuFakeImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductCat = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colExtCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSoldNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colUserNotes = new System.Windows.Forms.DataGridViewLinkColumn(); + this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); + 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(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.ucGroupBoxEx3.SuspendLayout(); + this.ucGroupBoxEx4.SuspendLayout(); + this.ucGroupBoxEx1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); + this.splitContainer3.Panel1.SuspendLayout(); + this.splitContainer3.Panel2.SuspendLayout(); + this.splitContainer3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoadingShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit(); + this.splitContainer4.Panel1.SuspendLayout(); + this.splitContainer4.Panel2.SuspendLayout(); + this.splitContainer4.SuspendLayout(); + this.SuspendLayout(); + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx3); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx4); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); + this.splitContainer1.Size = new System.Drawing.Size(1424, 641); + this.splitContainer1.SplitterDistance = 165; + this.splitContainer1.TabIndex = 11; + // + // ucGroupBoxEx3 + // + this.ucGroupBoxEx3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.ucGroupBoxEx3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ucGroupBoxEx3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx3.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx3.Controls.Add(this.cmbSaleSort); + this.ucGroupBoxEx3.Controls.Add(this.label6); + this.ucGroupBoxEx3.Controls.Add(this.label5); + this.ucGroupBoxEx3.Controls.Add(this.panelEx6); + this.ucGroupBoxEx3.Controls.Add(this.btnClearDgv); + this.ucGroupBoxEx3.Controls.Add(this.txtPageEnd); + this.ucGroupBoxEx3.Controls.Add(this.txtFiltSaleNumLessThan); + this.ucGroupBoxEx3.Controls.Add(this.label4); + this.ucGroupBoxEx3.Controls.Add(this.btnFiltSelectLessThan); + this.ucGroupBoxEx3.Controls.Add(this.txtFiltSaleNumMoreThan); + this.ucGroupBoxEx3.Controls.Add(this.btnSearchProd); + this.ucGroupBoxEx3.Controls.Add(this.cmbPreType); + this.ucGroupBoxEx3.Controls.Add(this.btnFiltSelectMoreThan); + this.ucGroupBoxEx3.Controls.Add(this.btnClearFilter); + this.ucGroupBoxEx3.Controls.Add(this.label3); + this.ucGroupBoxEx3.Controls.Add(this.label2); + this.ucGroupBoxEx3.Location = new System.Drawing.Point(162, 2); + this.ucGroupBoxEx3.Name = "ucGroupBoxEx3"; + this.ucGroupBoxEx3.Size = new System.Drawing.Size(357, 165); + this.ucGroupBoxEx3.TabIndex = 668; + this.ucGroupBoxEx3.TabStop = false; + this.ucGroupBoxEx3.Text = "商品查询"; + // + // cmbSaleSort + // + this.cmbSaleSort.FormattingEnabled = true; + this.cmbSaleSort.Items.AddRange(new object[] { + "", + "降序", + "升序"}); + this.cmbSaleSort.Location = new System.Drawing.Point(64, 60); + this.cmbSaleSort.Name = "cmbSaleSort"; + this.cmbSaleSort.Size = new System.Drawing.Size(112, 25); + this.cmbSaleSort.TabIndex = 869; + this.cmbSaleSort.TextChanged += new System.EventHandler(this.cmbSaleSort_TextChanged); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(9, 64); + this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label6.Name = "label6"; + this.label6.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label6.Size = new System.Drawing.Size(56, 17); + this.label6.TabIndex = 868; + this.label6.Text = "销量排序"; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(256, 28); + this.label5.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(56, 17); + this.label5.TabIndex = 844; + this.label5.Text = "销量小于"; + // + // panelEx6 + // + this.panelEx6.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx6.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx6.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx6.Location = new System.Drawing.Point(288, 127); + this.panelEx6.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.panelEx6.Name = "panelEx6"; + this.panelEx6.Size = new System.Drawing.Size(58, 25); + this.panelEx6.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx6.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx6.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx6.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx6.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx6.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx6.Style.GradientAngle = 90; + this.panelEx6.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx6.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx6.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx6.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx6.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx6.TabIndex = 848; + this.panelEx6.Text = "停止查询"; + this.panelEx6.Click += new System.EventHandler(this.btnStop_Click); + // + // btnClearDgv + // + this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + 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(12, 127); + this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearDgv.Name = "btnClearDgv"; + this.btnClearDgv.Size = new System.Drawing.Size(85, 25); + this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearDgv.Style.GradientAngle = 90; + this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearDgv.TabIndex = 612; + this.btnClearDgv.Text = "清空列表选中"; + this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click); + // + // txtPageEnd + // + this.txtPageEnd.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtPageEnd.Location = new System.Drawing.Point(64, 24); + this.txtPageEnd.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtPageEnd.Name = "txtPageEnd"; + this.txtPageEnd.Size = new System.Drawing.Size(112, 25); + this.txtPageEnd.TabIndex = 792; + this.txtPageEnd.Text = "999"; + this.txtPageEnd.TextChanged += new System.EventHandler(this.txtPageEnd_TextChanged); + // + // txtFiltSaleNumLessThan + // + this.txtFiltSaleNumLessThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtFiltSaleNumLessThan.Location = new System.Drawing.Point(312, 25); + this.txtFiltSaleNumLessThan.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtFiltSaleNumLessThan.Name = "txtFiltSaleNumLessThan"; + this.txtFiltSaleNumLessThan.Size = new System.Drawing.Size(33, 23); + this.txtFiltSaleNumLessThan.TabIndex = 843; + this.txtFiltSaleNumLessThan.Text = "1"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(256, 64); + this.label4.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(56, 17); + this.label4.TabIndex = 801; + this.label4.Text = "销量大于"; + // + // btnFiltSelectLessThan + // + this.btnFiltSelectLessThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnFiltSelectLessThan.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFiltSelectLessThan.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFiltSelectLessThan.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFiltSelectLessThan.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFiltSelectLessThan.Location = new System.Drawing.Point(192, 24); + this.btnFiltSelectLessThan.Name = "btnFiltSelectLessThan"; + this.btnFiltSelectLessThan.Size = new System.Drawing.Size(62, 25); + this.btnFiltSelectLessThan.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectLessThan.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFiltSelectLessThan.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFiltSelectLessThan.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFiltSelectLessThan.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFiltSelectLessThan.Style.GradientAngle = 90; + this.btnFiltSelectLessThan.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectLessThan.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.TabIndex = 842; + this.btnFiltSelectLessThan.Text = "批量选择"; + this.btnFiltSelectLessThan.Click += new System.EventHandler(this.btnFiltSelectLessThan_Click); + // + // txtFiltSaleNumMoreThan + // + this.txtFiltSaleNumMoreThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtFiltSaleNumMoreThan.Location = new System.Drawing.Point(312, 61); + this.txtFiltSaleNumMoreThan.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtFiltSaleNumMoreThan.Name = "txtFiltSaleNumMoreThan"; + this.txtFiltSaleNumMoreThan.Size = new System.Drawing.Size(33, 23); + this.txtFiltSaleNumMoreThan.TabIndex = 795; + this.txtFiltSaleNumMoreThan.Text = "0"; + // + // btnSearchProd + // + this.btnSearchProd.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSearchProd.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSearchProd.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSearchProd.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearchProd.Location = new System.Drawing.Point(164, 127); + this.btnSearchProd.Name = "btnSearchProd"; + this.btnSearchProd.Size = new System.Drawing.Size(58, 25); + this.btnSearchProd.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchProd.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchProd.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchProd.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearchProd.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearchProd.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearchProd.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearchProd.Style.GradientAngle = 90; + this.btnSearchProd.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchProd.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchProd.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchProd.TabIndex = 431; + this.btnSearchProd.Text = "商品查询"; + this.btnSearchProd.Click += new System.EventHandler(this.btnSearchProd_Click); + // + // cmbPreType + // + this.cmbPreType.FormattingEnabled = true; + this.cmbPreType.Items.AddRange(new object[] { + "", + "预售", + "非预售"}); + this.cmbPreType.Location = new System.Drawing.Point(64, 95); + this.cmbPreType.Name = "cmbPreType"; + this.cmbPreType.Size = new System.Drawing.Size(112, 25); + this.cmbPreType.TabIndex = 807; + this.cmbPreType.Visible = false; + this.cmbPreType.SelectedIndexChanged += new System.EventHandler(this.cmbPreType_SelectedIndexChanged); + // + // btnFiltSelectMoreThan + // + this.btnFiltSelectMoreThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnFiltSelectMoreThan.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFiltSelectMoreThan.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFiltSelectMoreThan.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFiltSelectMoreThan.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFiltSelectMoreThan.Location = new System.Drawing.Point(192, 60); + this.btnFiltSelectMoreThan.Name = "btnFiltSelectMoreThan"; + this.btnFiltSelectMoreThan.Size = new System.Drawing.Size(62, 25); + this.btnFiltSelectMoreThan.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectMoreThan.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFiltSelectMoreThan.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFiltSelectMoreThan.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFiltSelectMoreThan.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFiltSelectMoreThan.Style.GradientAngle = 90; + this.btnFiltSelectMoreThan.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectMoreThan.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.TabIndex = 794; + this.btnFiltSelectMoreThan.Text = "批量选择"; + this.btnFiltSelectMoreThan.Click += new System.EventHandler(this.btnFiltSelectMoreThan_Click); + // + // btnClearFilter + // + this.btnClearFilter.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearFilter.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearFilter.Location = new System.Drawing.Point(226, 127); + this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearFilter.Name = "btnClearFilter"; + this.btnClearFilter.Size = new System.Drawing.Size(58, 25); + this.btnClearFilter.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearFilter.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearFilter.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearFilter.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearFilter.Style.GradientAngle = 90; + this.btnClearFilter.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearFilter.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearFilter.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearFilter.TabIndex = 548; + this.btnClearFilter.Text = "清空条件"; + this.btnClearFilter.Click += new System.EventHandler(this.btnClearFilter_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(9, 99); + this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label3.Name = "label3"; + this.label3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label3.Size = new System.Drawing.Size(56, 17); + this.label3.TabIndex = 806; + this.label3.Text = "预售状态"; + this.label3.Visible = false; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(9, 28); + this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label2.Name = "label2"; + this.label2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label2.Size = new System.Drawing.Size(56, 17); + this.label2.TabIndex = 793; + this.label2.Text = "查询页数"; + // + // ucGroupBoxEx4 + // + this.ucGroupBoxEx4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.chkFailDownProd); + this.ucGroupBoxEx4.Controls.Add(this.btnPromotion); + this.ucGroupBoxEx4.Controls.Add(this.panelEx2); + this.ucGroupBoxEx4.Location = new System.Drawing.Point(518, 2); + this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; + this.ucGroupBoxEx4.Size = new System.Drawing.Size(904, 165); + this.ucGroupBoxEx4.TabIndex = 666; + this.ucGroupBoxEx4.TabStop = false; + this.ucGroupBoxEx4.Text = "商品回采"; + // + // chkFailDownProd + // + this.chkFailDownProd.AutoSize = true; + this.chkFailDownProd.Location = new System.Drawing.Point(24, 27); + this.chkFailDownProd.Name = "chkFailDownProd"; + this.chkFailDownProd.Size = new System.Drawing.Size(183, 21); + this.chkFailDownProd.TabIndex = 821; + this.chkFailDownProd.Text = "如果同步操作失败则下架商品"; + this.chkFailDownProd.UseVisualStyleBackColor = true; + // + // btnPromotion + // + this.btnPromotion.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnPromotion.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnPromotion.DisabledBackColor = System.Drawing.Color.Empty; + this.btnPromotion.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPromotion.Location = new System.Drawing.Point(23, 61); + this.btnPromotion.Name = "btnPromotion"; + this.btnPromotion.Size = new System.Drawing.Size(108, 25); + this.btnPromotion.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnPromotion.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnPromotion.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnPromotion.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnPromotion.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnPromotion.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnPromotion.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnPromotion.Style.GradientAngle = 90; + this.btnPromotion.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnPromotion.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnPromotion.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnPromotion.TabIndex = 521; + this.btnPromotion.Text = "批量回采商品"; + this.btnPromotion.Click += new System.EventHandler(this.btnSync_Click); + // + // panelEx2 + // + this.panelEx2.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx2.Location = new System.Drawing.Point(135, 61); + this.panelEx2.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.panelEx2.Name = "panelEx2"; + this.panelEx2.Size = new System.Drawing.Size(58, 25); + this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx2.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx2.Style.GradientAngle = 90; + this.panelEx2.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx2.TabIndex = 805; + this.panelEx2.Text = "停止操作"; + this.panelEx2.Click += new System.EventHandler(this.btnStop_Click); + // + // ucGroupBoxEx1 + // + this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.textBox2); + this.ucGroupBoxEx1.Controls.Add(this.label1); + this.ucGroupBoxEx1.Controls.Add(this.textBox1); + this.ucGroupBoxEx1.Controls.Add(this.btnSelectOffline); + this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); + this.ucGroupBoxEx1.Controls.Add(this.btnSelectOnline); + this.ucGroupBoxEx1.Controls.Add(this.btnAddUnSelect); + this.ucGroupBoxEx1.Controls.Add(this.btnReverse); + this.ucGroupBoxEx1.Controls.Add(this.btnAddSelect); + this.ucGroupBoxEx1.Controls.Add(this.btnEmptyShop); + this.ucGroupBoxEx1.Controls.Add(this.label16); + this.ucGroupBoxEx1.Controls.Add(this.txtFilterShopName); + this.ucGroupBoxEx1.Controls.Add(this.label17); + this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); + this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; + this.ucGroupBoxEx1.Size = new System.Drawing.Size(160, 165); + this.ucGroupBoxEx1.TabIndex = 399; + this.ucGroupBoxEx1.TabStop = false; + this.ucGroupBoxEx1.Text = "基础"; + // + // textBox2 + // + this.textBox2.Font = new System.Drawing.Font("微软雅黑", 10F); + this.textBox2.Location = new System.Drawing.Point(39, 15); + this.textBox2.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(113, 25); + this.textBox2.TabIndex = 828; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(8, 19); + this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(32, 17); + this.label1.TabIndex = 829; + this.label1.Text = "名称"; + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("微软雅黑", 10F); + this.textBox1.Location = new System.Drawing.Point(38, 68); + this.textBox1.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(113, 25); + this.textBox1.TabIndex = 825; + // + // btnSelectOffline + // + this.btnSelectOffline.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSelectOffline.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSelectOffline.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSelectOffline.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSelectOffline.Location = new System.Drawing.Point(61, 139); + this.btnSelectOffline.Name = "btnSelectOffline"; + this.btnSelectOffline.Size = new System.Drawing.Size(50, 20); + this.btnSelectOffline.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOffline.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOffline.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOffline.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSelectOffline.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSelectOffline.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSelectOffline.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSelectOffline.Style.GradientAngle = 90; + this.btnSelectOffline.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOffline.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOffline.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOffline.TabIndex = 772; + this.btnSelectOffline.Text = "选掉线"; + this.btnSelectOffline.Click += new System.EventHandler(this.btnSelectOffline_Click); + // + // btnRefreshShop + // + this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshShop.Location = new System.Drawing.Point(9, 95); + this.btnRefreshShop.Name = "btnRefreshShop"; + this.btnRefreshShop.Size = new System.Drawing.Size(102, 20); + this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshShop.Style.GradientAngle = 90; + this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.TabIndex = 431; + this.btnRefreshShop.Text = "查询店铺"; + this.btnRefreshShop.Visible = false; + this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click); + // + // btnSelectOnline + // + this.btnSelectOnline.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSelectOnline.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSelectOnline.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSelectOnline.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSelectOnline.Location = new System.Drawing.Point(9, 139); + this.btnSelectOnline.Name = "btnSelectOnline"; + this.btnSelectOnline.Size = new System.Drawing.Size(50, 20); + this.btnSelectOnline.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOnline.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOnline.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOnline.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSelectOnline.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSelectOnline.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSelectOnline.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSelectOnline.Style.GradientAngle = 90; + this.btnSelectOnline.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOnline.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOnline.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOnline.TabIndex = 768; + this.btnSelectOnline.Text = "选在线"; + this.btnSelectOnline.Click += new System.EventHandler(this.btnSelectOnline_Click); + // + // btnAddUnSelect + // + this.btnAddUnSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAddUnSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddUnSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAddUnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddUnSelect.Location = new System.Drawing.Point(81, 117); + this.btnAddUnSelect.Name = "btnAddUnSelect"; + this.btnAddUnSelect.Size = new System.Drawing.Size(70, 20); + this.btnAddUnSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddUnSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAddUnSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAddUnSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAddUnSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAddUnSelect.Style.GradientAngle = 90; + this.btnAddUnSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddUnSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.TabIndex = 746; + this.btnAddUnSelect.Text = "弃选条件"; + this.btnAddUnSelect.Click += new System.EventHandler(this.btnAddUnSelect_Click); + // + // btnReverse + // + this.btnReverse.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnReverse.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnReverse.DisabledBackColor = System.Drawing.Color.Empty; + this.btnReverse.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnReverse.Location = new System.Drawing.Point(113, 139); + this.btnReverse.Name = "btnReverse"; + this.btnReverse.Size = new System.Drawing.Size(38, 20); + this.btnReverse.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnReverse.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnReverse.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnReverse.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnReverse.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnReverse.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnReverse.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnReverse.Style.GradientAngle = 90; + this.btnReverse.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnReverse.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnReverse.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnReverse.TabIndex = 726; + this.btnReverse.Text = "反选"; + this.btnReverse.Click += new System.EventHandler(this.btnReverse_Click); + // + // btnAddSelect + // + this.btnAddSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAddSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAddSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddSelect.Location = new System.Drawing.Point(9, 117); + this.btnAddSelect.Name = "btnAddSelect"; + this.btnAddSelect.Size = new System.Drawing.Size(70, 20); + this.btnAddSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAddSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAddSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAddSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAddSelect.Style.GradientAngle = 90; + this.btnAddSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddSelect.TabIndex = 742; + this.btnAddSelect.Text = "选中条件"; + this.btnAddSelect.Click += new System.EventHandler(this.btnAddSelect_Click); + // + // btnEmptyShop + // + this.btnEmptyShop.CanvasColor = System.Drawing.SystemColors.Control; + this.btnEmptyShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnEmptyShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnEmptyShop.Location = new System.Drawing.Point(113, 95); + this.btnEmptyShop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnEmptyShop.Name = "btnEmptyShop"; + this.btnEmptyShop.Size = new System.Drawing.Size(38, 20); + this.btnEmptyShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmptyShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmptyShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmptyShop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnEmptyShop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmptyShop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnEmptyShop.Style.GradientAngle = 90; + this.btnEmptyShop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmptyShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmptyShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmptyShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmptyShop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnEmptyShop.TabIndex = 713; + this.btnEmptyShop.Text = "清空"; + this.btnEmptyShop.Click += new System.EventHandler(this.btnEmptyShop_Click); + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(7, 72); + this.label16.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(32, 17); + this.label16.TabIndex = 697; + this.label16.Text = "备注"; + // + // txtFilterShopName + // + this.txtFilterShopName.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtFilterShopName.Location = new System.Drawing.Point(38, 41); + this.txtFilterShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtFilterShopName.Name = "txtFilterShopName"; + this.txtFilterShopName.Size = new System.Drawing.Size(113, 25); + this.txtFilterShopName.TabIndex = 653; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(7, 45); + this.label17.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(32, 17); + this.label17.TabIndex = 699; + this.label17.Text = "名称"; + // + // splitContainer3 + // + this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer3.Location = new System.Drawing.Point(0, 0); + this.splitContainer3.Name = "splitContainer3"; + this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer3.Panel1 + // + this.splitContainer3.Panel1.Controls.Add(this.splitContainer2); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); + this.splitContainer3.Size = new System.Drawing.Size(1424, 472); + this.splitContainer3.SplitterDistance = 442; + this.splitContainer3.TabIndex = 1; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.btnRefreshAuthor); + this.splitContainer2.Panel1.Controls.Add(this.pbLoadingShop); + this.splitContainer2.Panel1.Controls.Add(this.btnFilterShop); + this.splitContainer2.Panel1.Controls.Add(this.dgvShop); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.pbLoading); + this.splitContainer2.Panel2.Controls.Add(this.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(1424, 442); + this.splitContainer2.SplitterDistance = 350; + this.splitContainer2.TabIndex = 0; + // + // btnRefreshAuthor + // + this.btnRefreshAuthor.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshAuthor.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshAuthor.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshAuthor.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshAuthor.Location = new System.Drawing.Point(14, 36); + this.btnRefreshAuthor.Name = "btnRefreshAuthor"; + this.btnRefreshAuthor.Size = new System.Drawing.Size(70, 20); + this.btnRefreshAuthor.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshAuthor.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshAuthor.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshAuthor.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshAuthor.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshAuthor.Style.GradientAngle = 90; + this.btnRefreshAuthor.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshAuthor.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.TabIndex = 800; + this.btnRefreshAuthor.Text = "刷新授权"; + this.btnRefreshAuthor.Visible = false; + this.btnRefreshAuthor.Click += new System.EventHandler(this.btnRefreshAuthor_Click); + // + // pbLoadingShop + // + this.pbLoadingShop.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoadingShop.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoadingShop.Location = new System.Drawing.Point(150, 196); + this.pbLoadingShop.Name = "pbLoadingShop"; + this.pbLoadingShop.Size = new System.Drawing.Size(50, 50); + this.pbLoadingShop.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoadingShop.TabIndex = 189; + this.pbLoadingShop.TabStop = false; + this.pbLoadingShop.Visible = false; + // + // btnFilterShop + // + this.btnFilterShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFilterShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFilterShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFilterShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFilterShop.Location = new System.Drawing.Point(13, 62); + this.btnFilterShop.Name = "btnFilterShop"; + this.btnFilterShop.Size = new System.Drawing.Size(102, 20); + this.btnFilterShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFilterShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFilterShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFilterShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFilterShop.Style.GradientAngle = 90; + this.btnFilterShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilterShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilterShop.TabIndex = 703; + this.btnFilterShop.Text = "过滤店铺"; + this.btnFilterShop.Click += new System.EventHandler(this.btnFilterShop_Click); + // + // dgvShop + // + this.dgvShop.AllowUserToAddRows = false; + this.dgvShop.AllowUserToDeleteRows = false; + 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))))); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.colShopLoginName, + this.colShopId, + this.colShopName, + this.colShopNotes, + this.colSelectProduct, + this.colLoginStatus, + this.colApi, + this.colCanUse, + this.colUploadCount, + this.colOnSaleNum, + this.colRemaining, + this.colMessage}); + this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.Name = "dgvShop"; + this.dgvShop.ReadOnly = true; + this.dgvShop.RowHeadersWidth = 25; + this.dgvShop.RowTemplate.Height = 23; + this.dgvShop.Size = new System.Drawing.Size(346, 442); + this.dgvShop.TabIndex = 6; + this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); + // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 75; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 75; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 38; + // + // colApi + // + this.colApi.HeaderText = "Api"; + this.colApi.Name = "colApi"; + this.colApi.ReadOnly = true; + this.colApi.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colApi.Visible = false; + this.colApi.Width = 38; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colUploadCount + // + this.colUploadCount.HeaderText = "已传"; + this.colUploadCount.Name = "colUploadCount"; + this.colUploadCount.ReadOnly = true; + this.colUploadCount.Visible = false; + this.colUploadCount.Width = 38; + // + // colOnSaleNum + // + this.colOnSaleNum.HeaderText = "在售"; + this.colOnSaleNum.Name = "colOnSaleNum"; + this.colOnSaleNum.ReadOnly = true; + this.colOnSaleNum.Visible = false; + this.colOnSaleNum.Width = 38; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // + // pbLoading + // + this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoading.Location = new System.Drawing.Point(510, 196); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 780; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // chkTestNoAuditUpload + // + this.chkTestNoAuditUpload.AutoSize = true; + this.chkTestNoAuditUpload.Location = new System.Drawing.Point(1094, 35); + this.chkTestNoAuditUpload.Name = "chkTestNoAuditUpload"; + this.chkTestNoAuditUpload.Size = new System.Drawing.Size(123, 21); + this.chkTestNoAuditUpload.TabIndex = 779; + this.chkTestNoAuditUpload.Text = "测试免审提交商品"; + this.chkTestNoAuditUpload.UseVisualStyleBackColor = true; + this.chkTestNoAuditUpload.Visible = false; + // + // dgvSelectProduct + // + this.dgvSelectProduct.AllowUserToAddRows = false; + this.dgvSelectProduct.AllowUserToDeleteRows = false; + 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))))); + 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, + this.colSelectId, + this.colSupplierId, + this.colSupplierName, + this.colLogin, + this.colInShop, + this.colSpuId, + this.colSkcId, + this.colDraftId, + this.colImgUrl, + this.colProductSkcPic, + this.colSkuFakeImgUrl, + this.colSkuFakeImg, + this.colProductName, + this.colProductCat, + this.colExtCode, + this.colPrice, + this.colSoldNum, + this.colMsg, + this.colNotes, + this.colUserNotes, + this.ColDelete, + this.colAddTime, + this.colCouponNum, + this.colOpResult}); + this.dgvSelectProduct.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvSelectProduct.Location = new System.Drawing.Point(0, 0); + this.dgvSelectProduct.Name = "dgvSelectProduct"; + this.dgvSelectProduct.ReadOnly = true; + this.dgvSelectProduct.RowTemplate.Height = 23; + this.dgvSelectProduct.Size = new System.Drawing.Size(1066, 442); + this.dgvSelectProduct.TabIndex = 187; + this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); + // + // colCheck + // + this.colCheck.Frozen = true; + this.colCheck.HeaderText = "选择"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCheck.Width = 30; + // + // colSelectId + // + this.colSelectId.HeaderText = "认领Id"; + this.colSelectId.Name = "colSelectId"; + this.colSelectId.ReadOnly = true; + this.colSelectId.Visible = false; + // + // colSupplierId + // + this.colSupplierId.Frozen = true; + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + // + // colSupplierName + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; + this.colSupplierName.Frozen = true; + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // + // colLogin + // + this.colLogin.HeaderText = "登录"; + this.colLogin.Name = "colLogin"; + this.colLogin.ReadOnly = true; + this.colLogin.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLogin.Width = 40; + // + // colInShop + // + this.colInShop.HeaderText = "进店"; + this.colInShop.Name = "colInShop"; + this.colInShop.ReadOnly = true; + this.colInShop.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colInShop.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colInShop.Width = 40; + // + // colSpuId + // + this.colSpuId.HeaderText = "源商品ID"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSpuId.Visible = false; + // + // colSkcId + // + this.colSkcId.FillWeight = 150F; + this.colSkcId.HeaderText = "商品SKC"; + this.colSkcId.Name = "colSkcId"; + this.colSkcId.ReadOnly = true; + this.colSkcId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSkcId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSkcId.Visible = false; + this.colSkcId.Width = 80; + // + // colDraftId + // + this.colDraftId.HeaderText = "商品Id"; + this.colDraftId.Name = "colDraftId"; + this.colDraftId.ReadOnly = true; + this.colDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.colDraftId.Width = 120; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colProductSkcPic + // + this.colProductSkcPic.HeaderText = "图片"; + this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colProductSkcPic.Name = "colProductSkcPic"; + this.colProductSkcPic.ReadOnly = true; + this.colProductSkcPic.Width = 60; + // + // colSkuFakeImgUrl + // + this.colSkuFakeImgUrl.HeaderText = "SKU替换图地址"; + this.colSkuFakeImgUrl.Name = "colSkuFakeImgUrl"; + this.colSkuFakeImgUrl.ReadOnly = true; + this.colSkuFakeImgUrl.Visible = false; + // + // colSkuFakeImg + // + this.colSkuFakeImg.HeaderText = "SKU替换图"; + this.colSkuFakeImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colSkuFakeImg.Name = "colSkuFakeImg"; + this.colSkuFakeImg.ReadOnly = true; + this.colSkuFakeImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSkuFakeImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSkuFakeImg.Visible = false; + this.colSkuFakeImg.Width = 60; + // + // colProductName + // + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 150; + // + // colProductCat + // + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7; + this.colProductCat.HeaderText = "商品类目"; + this.colProductCat.Name = "colProductCat"; + this.colProductCat.ReadOnly = true; + this.colProductCat.Width = 90; + // + // colExtCode + // + this.colExtCode.HeaderText = "商品货号"; + this.colExtCode.Name = "colExtCode"; + this.colExtCode.ReadOnly = true; + this.colExtCode.Width = 145; + // + // colPrice + // + this.colPrice.HeaderText = "价格"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + this.colPrice.Width = 60; + // + // colSoldNum + // + this.colSoldNum.HeaderText = "销量"; + this.colSoldNum.Name = "colSoldNum"; + this.colSoldNum.ReadOnly = true; + this.colSoldNum.Width = 60; + // + // colMsg + // + this.colMsg.HeaderText = "状态"; + this.colMsg.Name = "colMsg"; + this.colMsg.ReadOnly = true; + // + // colNotes + // + this.colNotes.HeaderText = "上传备注"; + this.colNotes.Name = "colNotes"; + this.colNotes.ReadOnly = true; + this.colNotes.Visible = false; + // + // colUserNotes + // + this.colUserNotes.HeaderText = "重上/已买"; + this.colUserNotes.Name = "colUserNotes"; + this.colUserNotes.ReadOnly = true; + this.colUserNotes.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colUserNotes.Visible = false; + this.colUserNotes.Width = 75; + // + // ColDelete + // + this.ColDelete.HeaderText = "删除"; + this.ColDelete.Name = "ColDelete"; + this.ColDelete.ReadOnly = true; + this.ColDelete.Visible = false; + this.ColDelete.Width = 75; + // + // colAddTime + // + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle8; + this.colAddTime.HeaderText = "上架时间"; + this.colAddTime.Name = "colAddTime"; + this.colAddTime.ReadOnly = true; + this.colAddTime.Width = 80; + // + // colCouponNum + // + this.colCouponNum.HeaderText = "生效券数量"; + this.colCouponNum.Name = "colCouponNum"; + this.colCouponNum.ReadOnly = true; + this.colCouponNum.Visible = false; + this.colCouponNum.Width = 90; + // + // colOpResult + // + this.colOpResult.HeaderText = "操作结果"; + this.colOpResult.Name = "colOpResult"; + this.colOpResult.ReadOnly = true; + this.colOpResult.Width = 260; + // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Right; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(349, 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(1075, 26); + this.splitContainer4.SplitterDistance = 837; + 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(837, 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(22, 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.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + 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(115, 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; + // + // WXProdComplateForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(1424, 641); + this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Name = "WXProdComplateForm"; + this.Text = "爆单神器"; + this.Load += new System.EventHandler(this.UserSelectDbProductForm_Load); + this.VisibleChanged += new System.EventHandler(this.UserSelectDbProductForm_VisibleChanged); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ucGroupBoxEx3.ResumeLayout(false); + this.ucGroupBoxEx3.PerformLayout(); + this.ucGroupBoxEx4.ResumeLayout(false); + this.ucGroupBoxEx4.PerformLayout(); + this.ucGroupBoxEx1.ResumeLayout(false); + this.ucGroupBoxEx1.PerformLayout(); + this.splitContainer3.Panel1.ResumeLayout(false); + this.splitContainer3.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); + this.splitContainer3.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel2.ResumeLayout(false); + this.splitContainer2.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoadingShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit(); + this.splitContainer4.Panel1.ResumeLayout(false); + this.splitContainer4.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); + this.splitContainer4.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private UserComponent.UcGroupBoxEx ucGroupBoxEx1; + private DevComponents.DotNetBar.PanelEx btnRefreshShop; + private System.Windows.Forms.SplitContainer splitContainer3; + private System.Windows.Forms.SplitContainer splitContainer2; + private UserComponent.DataGridViewEx dgvShop; + private UserComponent.DataGridViewEx dgvSelectProduct; + private System.Windows.Forms.SplitContainer splitContainer4; + private UserControls.StatusBarUserControl statusBar; + private DevComponents.DotNetBar.PanelEx btnSearchProd; + private DevComponents.DotNetBar.PanelEx btnClearFilter; + private DevComponents.DotNetBar.PanelEx btnClearDgv; + private DevComponents.DotNetBar.PanelEx btnClear; + private DevComponents.DotNetBar.PanelEx panelEx1; + private UserComponent.UcCheckBox chkTestNoAuditUpload; + private System.Windows.Forms.PictureBox pbLoadingShop; + private System.Windows.Forms.PictureBox pbLoading; + private System.Windows.Forms.TextBox txtFilterShopName; + private DevComponents.DotNetBar.PanelEx btnFilterShop; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label16; + private DevComponents.DotNetBar.PanelEx btnEmptyShop; + private DevComponents.DotNetBar.PanelEx btnReverse; + private DevComponents.DotNetBar.PanelEx btnAddUnSelect; + private DevComponents.DotNetBar.PanelEx btnAddSelect; + private DevComponents.DotNetBar.PanelEx btnSelectOffline; + private DevComponents.DotNetBar.PanelEx btnSelectOnline; + private DevComponents.DotNetBar.PanelEx btnRefreshAuthor; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewLinkColumn colApi; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colUploadCount; + private System.Windows.Forms.DataGridViewTextBoxColumn colOnSaleNum; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; + private System.Windows.Forms.TextBox txtPageEnd; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cmbPreType; + private UserComponent.UcGroupBoxEx ucGroupBoxEx3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtFiltSaleNumMoreThan; + private DevComponents.DotNetBar.PanelEx btnFiltSelectMoreThan; + private DevComponents.DotNetBar.PanelEx panelEx6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox txtFiltSaleNumLessThan; + private DevComponents.DotNetBar.PanelEx btnFiltSelectLessThan; + private System.Windows.Forms.ComboBox cmbSaleSort; + private System.Windows.Forms.Label label6; + 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 colDraftId; + 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 colPrice; + private System.Windows.Forms.DataGridViewTextBoxColumn colSoldNum; + private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; + 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 colCouponNum; + private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private UserComponent.UcGroupBoxEx ucGroupBoxEx4; + private DevComponents.DotNetBar.PanelEx btnPromotion; + private DevComponents.DotNetBar.PanelEx panelEx2; + private UserComponent.UcCheckBox chkFailDownProd; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.cs b/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.cs new file mode 100644 index 0000000..204ba95 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.cs @@ -0,0 +1,1237 @@ +using AllBase; +using AllBase.Helper; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.Extension; +using TemuKJD.BaseForms; +using TemuKJD.ToolForms; +using Work; +using TemuKJD.BLL; +using System.Text.RegularExpressions; +using TemuKJD.PDDForms.ProductSelectForms; +using TemuKJD.WXForms.ShopForms; +using AllBase.Model.Result.PDDResult; +using AllBase.Model.Param.WXParam; +using AllBase.Model.Result.WXResult; +using Newtonsoft.Json; +using NaiBa.Util; +using AllBase.Model.Config; +using TemuKJD.WXForms.ProductForms; + +namespace TemuKJD.WXForms.AdminForms +{ + public partial class WXProdComplateForm : BaseForm + { + int PageBegin = 1; + int PageEnd = 999; + string PreType = ""; + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + public bool IsLoadComplate { get; set; } = false; + + bool isInit = false; + CheckBox chkSelectAll = null; + ConcurrentList lstShopAuthInfo = new ConcurrentList(); + ConcurrentList lstWXShopTokenInfo = new ConcurrentList(); + public NaiBa.Util.ConcurrentList lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); + //public Dictionary> dicCheckedShopIdList = new Dictionary>(); + public Dictionary dicCheckedShopId = new Dictionary(); + public Dictionary dicShopUpload = new Dictionary(); + public string pdd_product_cates = ""; + public WXProdComplateForm() + { + InitializeComponent(); + } + + private void UserSelectDbProductForm_Load(object sender, EventArgs e) + { + this.splitContainer1.Dock = DockStyle.Fill; + + lstShopAuthInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_auth_list"); + if (lstShopAuthInfo == null) + lstShopAuthInfo = new ConcurrentList(); + + lstWXShopTokenInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_token_list"); + if (lstWXShopTokenInfo == null) + lstWXShopTokenInfo = new ConcurrentList(); + + lstTemuDBProductSelect = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_db_prod_upload_list"); + if (lstTemuDBProductSelect == null) + lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); + + dicCheckedShopId = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_checked_shop_dic"); + if (dicCheckedShopId == null) + dicCheckedShopId = new Dictionary(); + dicShopUpload = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_upload_info"); + if (dicShopUpload == null) + dicShopUpload = new Dictionary(); + + + + chkSelectAll = dgvShop.Columns["colSelect"].AddHeaderCheckBox(HorizontalAlignment.Center, 0, 0, null, null, false); + dgvShop.Columns["colSelect"].HeaderText = ""; + //chkSelectAll.Width = chkSelectAll.Height = 13; + chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; + //chkSelectAll.Checked = true; + + this.dgvSelectProduct.AddSelectorColumn("colCheck"); + + dgvSelectProduct.AddImgColumn("colProductSkcPic", "colImgUrl"); + dgvSelectProduct.AddImgColumn("colSkuFakeImg", "colSkuFakeImgUrl"); + + dgvSelectProduct.Columns["colSkuFakeImg"].Visible = false; + +//#if DEBUG + if (BaseClass.SaLevel == 1) + { + //txtIdFilter.Visible = true; + //txtExtCodeFilter.Visible = true; + //lblIdFilter.Visible = true; + //lblExtCodeFilter.Visible = true; + } +//#endif + IsLoadComplate = true; + } + + private void btnRefreshAuthor_Click(object sender, EventArgs e) + { + updateAuthor(true); + } + + /// + /// 升级授权 + /// + /// 今日取过的也取 + private void updateAuthor(bool idRefreshTodayHasGet = false) + { + this.pbLoadingShop.Visible = true; + Task.Run(() => + { + // 店铺Id + var updateIds = dgvShop.Rows.Cast().Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (idRefreshTodayHasGet == true) + updateIds = selectIds; + + List tList = new List(); + if (idRefreshTodayHasGet) + lstShopAuthInfo.RemoveAll(s => updateIds.Contains(s.ShopId)); + foreach (var shop in GlobalConfig.ShopLoginList.Where(s => updateIds.Contains(s.ShopId))) + { + Invoke(new Action(() => { BindShop(shop, selectIds, ""); })); + var t = Task.Run(() => + { + try + { + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => { BindShop(shop, selectIds, "店铺掉线"); })); + return; + } + + var authInfo = lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shop.ShopId); + if (idRefreshTodayHasGet || authInfo == null || authInfo?.AddTime.Date != DateTime.Now.Date) + { + lstShopAuthInfo.RemoveAll(sa => sa.ShopId == shop.ShopId); + var rst = WXUpload.GetApiServiceList(shop); + if (!rst.Contains("\"code\":0")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => { BindShop(shop, selectIds, "店铺掉线"); })); + return; + } + + lstShopAuthInfo.Add(new AuthInfo() { ShopId = shop.ShopId, AddTime = DateTime.Now, ExpiresTime = DateTime.Now }); + Invoke(new Action(() => { BindShop(shop, selectIds, "授权查询失败"); })); + return; + } + + foreach (var itemObj in JsonHelper.JObjectParse(rst)["itemList"]) + { + // 找到了指定服务 + if (itemObj["serviceName"].ParseToString() == "店统领供应链-商品管理") + { + var expiresTick = itemObj["expireTime"].ParseToLong(); + lstShopAuthInfo.Add(new AuthInfo() { ShopId = shop.ShopId, AddTime = DateTime.Now, ExpiresTime = BaseClass.StampToDateTime(expiresTick.ParseToInt()) }); + Invoke(new Action(() => { BindShop(shop, selectIds, "已查询"); })); + return; + } + } + // 没找到指定服务 + lstShopAuthInfo.Add(new AuthInfo() { ShopId = shop.ShopId, AddTime = DateTime.Now, ExpiresTime = DateTime.Now }); + Invoke(new Action(() => { BindShop(shop, selectIds, "已查询"); })); + } + } + catch (Exception ex) + { + } + }); + tList.Add(t); + while (tList.Where(ta => !ta.IsFaulted && !ta.IsCompleted).Count() >= 20) { Thread.Sleep(100); } + } + while (tList.Where(ta => !ta.IsFaulted && !ta.IsCompleted).Count() >= 1) { Thread.Sleep(100); } + NaiBa.Util.Helper.ConfigHelper.SaveConfig( "wx_shop_auth_list", lstShopAuthInfo); + Invoke(new Action(() => { pbLoadingShop.Visible = false; })); + }); + } + + private void chkSelectAll_CheckedChanged(object sender, EventArgs e) + { + if (!chkSelectAll.Checked) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + row.Cells["colSelect"].Value = false; + } + } + else + { + //var list = GlobalConfig.ShopLoginList.Where(s => s.LoginStatus == "登录成功").Select(ss => ss.ShopId); + foreach (DataGridViewRow row in dgvShop.Rows) + { + //if (list.Any(l => l == row.Cells["colShopId"]?.Value?.ToString())) + if(row.Visible == true) + row.Cells["colSelect"].Value = true; + } + } + + foreach (var r in dgvShop.Rows.Cast()) + { + dicCheckedShopId[r.Cells["colShopId"].Value.ParseToString()] = r.Cells["colSelect"].Value.ParseToBool(); + } + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); + } + + private void btnRefreshShop_Click(object sender, EventArgs e) + { + pbLoadingShop.Visible = true; + RefreshShopLogin(); + } + + private void UserSelectDbProductForm_VisibleChanged(object sender, EventArgs e) + { + if (Visible == true) + { + //RefreshShopLogin(); + //updateAuthor(); + + if (!isInit) + { + Task.Run(() => + { + foreach (var shop in GlobalConfig.ShopLoginList) + { + //if (shop.LoginStatus == "登录成功") + //{ + // var rst = WXUpload.scanProductPreview(shop); + // if (!rst.Contains("\"code\":0") && !rst.Contains("\"success\":true")) + // { + // WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + // } + //} + } + + }); + } + + isInit = true; + } + } + + private void RefreshShopLogin() + { + // 店铺Id + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + // 获取被删除的店铺 + List dgvRowList = dgvShop.Rows.Cast().Where(row + => !GlobalConfig.ShopLoginList.Any(s => s.ShopId == row.Cells["colShopId"]?.Value?.ToString())).ToList(); + // 更新被删除的店铺列表 + foreach (var row in dgvRowList) + { + dgvShop.Rows.Remove(row); + } + // 绑定其他店铺(含新导入的店铺) + foreach (ShopLoginInfo shopEntity in GlobalConfig.ShopLoginList) + { + if (!string.IsNullOrEmpty(shopEntity.ShopId)) + BindShop(shopEntity, selectIds); + } + //cmbFilterShopNotes.Items.Clear(); + ////cmbFilterShopNotes.Items.Add(""); + //foreach (var note in GlobalConfig.ShopLoginList.Select(s => s.Notes).Where(s => !s.IsNullOrEmpty()).Distinct()) + //{ + // cmbFilterShopNotes.Items.Add(note); + //} + textBox1.Text = ""; + } + + private void BindShop(ShopLoginInfo shopEntity, List selectShopId = null, string msg = "") + { + if (shopEntity == null) + return; + if (selectShopId == null) + selectShopId = new List(); + + bool canUse = shopEntity.LoginStatus == "登录成功"; + //canUse = true; // 内部库不需要校验登录状态 + var row = dgvShop.Rows.Cast().FirstOrDefault(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId); + var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt(); + if (row == null) + { + this.dgvShop.Rows.Add( + //!isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse), + dicCheckedShopId.Keys.Contains(shopEntity.ShopId) && dicCheckedShopId[shopEntity.ShopId] == true, + shopEntity.LoginName, + shopEntity.ShopId, + shopEntity.ShopAccount, + shopEntity.Notes, + "选择商品", + canUse ? "在线" : "掉线", + lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期", + canUse, + dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? + dicShopUpload[shopEntity.ShopId].DicDayUploadCount[day] : 0, + dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].OnSaleRefreshDay == DateTime.Now.ToString("yyyyMMdd").ParseToInt() ? + dicShopUpload[shopEntity.ShopId].OnSaleCount : 0, + shopEntity.AddProductRemaining, + "", + msg + ); + } + else + { + row.Cells["colSelect"].Value = !isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse); + row.Cells["colShopLoginName"].Value = shopEntity.LoginName; + row.Cells["colShopName"].Value = shopEntity.ShopAccount; + row.Cells["colShopNotes"].Value = shopEntity.Notes; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red; + row.Cells["colCanUse"].Value = canUse; + row.Cells["colApi"].Value = lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期"; + row.Cells["colRemaining"].Value = shopEntity.AddProductRemaining; + row.Cells["colUploadCount"].Value = dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? + dicShopUpload[shopEntity.ShopId].DicDayUploadCount[day] : 0; + row.Cells["colOnSaleNum"].Value = dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].OnSaleRefreshDay == DateTime.Now.ToString("yyyyMMdd").ParseToInt() ? + dicShopUpload[shopEntity.ShopId].OnSaleCount : 0; + row.Cells["colMessage"].Value = msg; + } + + displayAuthStatus(shopEntity); + } + + void displayAuthStatus(ShopLoginInfo shop) + { + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ParseToString() == shop?.ShopId); + foreach (var row in rows) + { + bool canUse = row.Cells["colLoginStatus"].Value.ParseToString() == "在线"; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed; + canUse = row.Cells["colApi"].Value.ParseToString() == "可用"; + (row.Cells["colApi"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colApi"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colApi"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed; + (row.Cells["colApi"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed; + } + } + + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText; + string columnName = dgvShop.Columns[e.ColumnIndex].Name; + string shopId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString(); + string shopAccount = dgvShop.Rows[e.RowIndex].Cells["colShopName"].Value.ToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId.ToString()); + var row = dgvShop.Rows[e.RowIndex]; + switch (columnName) + { + case "colSelect": + //if (row.Cells["colCanUse"].Value.ParseToBool()) + { + row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool(); + + chkSelectAll.CheckedChanged -= chkSelectAll_CheckedChanged; + if (dgvShop.Rows.Cast().All(r => r.Cells["colSelect"].Value.ParseToBool())) + chkSelectAll.Checked = true; + else + chkSelectAll.Checked = false; + chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; + } + //else + { + //BaseMsgForm.ShowInfo("店铺未登录!"); + } + + dicCheckedShopId[row.Cells["colShopId"].Value.ParseToString()] = row.Cells["colSelect"].Value.ParseToBool(); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); + break; + case "colLoginStatus": + { + if (WXShopListForm.Instance == null) + WXShopListForm.Instance = new WXShopListForm(); + WXAdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + WXAdminShopLoginForm shopLoginForm = new WXAdminShopLoginForm(shop); + if (shop.LoginStatus != "登录成功") + { + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopLogin(); + } + else + { + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.Show(); + } + } + break; + case "colApi": + { + WXAdminShopLoginForm shopLoginForm = new WXAdminShopLoginForm(shop); + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/servicemarket/detail?serviceId=3984039898079707139"; + shopLoginForm.Show(); + } + break; + } + } + + private void btnSearch_Click(object sender, EventArgs e) + { + var lstShopId = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (lstShopId.Count == 0) + { + BaseMsgForm.ShowInfo("请选择店铺!"); + return; + } + } + + private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvSelectProduct.Columns[e.ColumnIndex].HeaderText; + var dbId = dgvSelectProduct.Rows[e.RowIndex].Cells["colSelectId"].Value.ParseToString(); + var dbProduct = lstTemuDBProductSelect.FirstOrDefault(p => p.id.ToString() == dbId); + var shopId = dgvSelectProduct.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString(); + var draftId = dgvSelectProduct.Rows[e.RowIndex].Cells["colDraftId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + + switch (headerText) + { + case "删除": + break; + case "登录": + { + WXAdminShopLoginForm shopLoginForm = new WXAdminShopLoginForm(shop); + //shopLoginForm.prodUserSelectForm = this; + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopLogin(); + } + break; + case "进店": + { + WXAdminShopLoginForm shopLoginForm = new WXAdminShopLoginForm(shop); + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus == "登录成功") + { + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home"; + shopLoginForm.Show(); + } + else + { + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopLogin(); + } + } + break; + case "图片": + { + ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + } + case "SKU替换图": + { + ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colSkuFakeImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + } + case "": + dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + default: + break; + } + } + + private void btnStop_Click(object sender, EventArgs e) + { + if (this.cancellationTokenSource != null) + this.cancellationTokenSource.Cancel(); + } + + private void btnSearchProd_Click(object sender, EventArgs e) + { + var shopIdLst = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (shopIdLst.Count <= 0) + { + BaseMsgForm.ShowError("未勾选上传店铺!"); + return; + } + btnSearchProd.Enabled = false; + pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + dgvSelectProduct.Rows.Clear(); + dgvSelectProduct.Columns["colCouponNum"].Visible = false; + Task.Run(() => + { + GetProduct(shopIdLst); + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "商品查询完毕"; + BaseMsgForm.ShowInfo("商品查询完毕"); + pbLoading.Visible = false; + btnSearchProd.Enabled = true; + })); + }, cancellationTokenSource.Token); + } + + void GetProduct(List shopIdLst) + { + List shopLst = GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId)).ToList(); + foreach(var shop in shopLst) + { + if(cancellationTokenSource.IsCancellationRequested) + break; + + if (shop.LoginStatus != "登录成功") + { + continue; + } + + int page = PageBegin - 1; + int totalPage = 1; + int pageSize = 50; + string nextKey = ""; + while (page < totalPage && page < PageEnd) + { + page++; + + if (cancellationTokenSource.IsCancellationRequested) + break; + + string getProdOnSaleRst = ""; + + if (string.IsNullOrEmpty(PreType) && sortType == null) + getProdOnSaleRst = WXPreSale.scanProductPreview(shop, page, nextKey, pageSize); + else + getProdOnSaleRst = WXPreSale.searchProduct(shop, page, null, pageSize, sortType); + Thread.Sleep(Randomx.GetId(50, 100)); + if (!getProdOnSaleRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref getProdOnSaleRst, "msg"); + if (string.IsNullOrEmpty(error)) + error = getProdOnSaleRst; + + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => { BindShop(shop, shopIdLst, "店铺掉线"); })); + } + + var shopRow = dgvShop.Rows.Cast().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId); + Invoke(new Action(() => { + if (shopRow != null) + { + shopRow.Cells["colOpResult"].Value = error; + } + })); + break; + } + + try + { + var prodObjs = JsonHelper.JObjectParse(getProdOnSaleRst); + if (page == 1 || 1 == 1) + { + var totalNum = prodObjs["totalNum"].ParseToInt(); + totalPage = Math.Ceiling(1m * totalNum / pageSize).ParseToInt(); + } + nextKey = prodObjs["nextKey"].ParseToString(); + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + this.statusBar.lblTaskStatus.Text = "正在查询店铺:" + shop.ShopAccount + " " + page + "/" + Math.Min(PageEnd, totalPage); + //this.statusBar.pgbTaskProgress.Maximum = lstTemuDBProductSelect.Count; + //this.statusBar.UpdateProgressBar(0); + })); + foreach (JObject prod in prodObjs["productList"]) + { + var pStr = JsonHelper.SerializeObject(prod); + Invoke(new Action(() => + { + decimal? price = null; + try { price = prod["skuList"][0]["price"].ParseToDecimal() / 100; } catch { } + var prodId = prod["productId"].ParseToString(); + if (dgvSelectProduct.Rows.Cast().Any(r => r.Cells["colDraftId"].ParseToString() == prodId)) + { + + } + + var rowIndex = this.dgvSelectProduct.Rows.Add( + false, + "", + shop.ShopId, + shop.ShopAccount, + "登录", + "进店", + "", + "", + prod["productId"].ParseToString(), + prod["headImg"].ParseToString(), + DataGridViewExtension.defaultBitmap, + "", // 替换图地址 + null, // 替换图 + prod["title"].ParseToString(), // 用户端显示商品原名 + (prod["recommendCategory"].IsJTokenNullOrEmpty() || prod["recommendCategory"]["categoryNames"].IsJTokenNullOrEmpty()) ? + "" : string.Join(" >> ", prod["recommendCategory"]["categoryNames"].Select(s => s.ParseToString())), // 类目名称 + prod["spuCode"].ParseToString(), + //price, + prod["price"].ParseToDecimal() * 0.01m, + prod["soldNum"].ParseToInt(), + "在售" + (prod["presaleTag"].ParseToInt() == 1 ? "[预售]" : ""), + "", // 备注 + "", + "删除", + BaseClass.StampToDateTime(prod["lastEditDraftTime"].ParseToInt()).ToString("yy-MM-dd HH:mm"), + ""); + + dgvSelectProduct.Rows[rowIndex].Height = 60; + dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Style.ForeColor = dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Value.ParseToString().Contains("预售") ? Color.Orange : Color.Blue; + })); + } + } + catch (Exception ex) + { + + } + } + } + } + + private void btnClearDgv_Click(object sender, EventArgs e) + { + var rows = this.dgvSelectProduct.Rows.Cast().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。 + foreach (var row in rows) + { + if (row.Cells["colCheck"].Value.ParseToBool() == true) + { + //var draft_id = row.Cells["colDraftId"].Value.ParseToString(); + //upload_draft_product_lst.RemoveAll(p => p.draft_id == draft_id); + + this.dgvSelectProduct.Rows.Remove(row); + } + } + //NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_select_upload_draft_products", upload_draft_product_lst); + } + + private void btnClearFilter_Click(object sender, EventArgs e) + { + txtFiltSaleNumMoreThan.Text = "0"; + txtFiltSaleNumLessThan.Text = "1"; + } + + private void btnFilterShop_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow row in dgvShop.Rows) + { + string notes = textBox1.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + if (!row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim())) + { + row.Visible = false; + row.Cells["colSelect"].Value = false; + continue; + } + if (!row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString())) + { + row.Visible = false; + row.Cells["colSelect"].Value = false; + continue; + } + row.Visible = true; + } + } + + private void btnEmptyShop_Click(object sender, EventArgs e) + { + txtFilterShopName.Text = ""; + textBox1.Text = ""; + btnFilterShop_Click(null, null); + } + + private void btnReverse_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool(); + } + } + + private void btnAddSelect_Click(object sender, EventArgs e) + { + string notes = textBox1.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()) && + (row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))) + { + row.Cells["colSelect"].Value = true; + } + } + } + } + + private void btnAddUnSelect_Click(object sender, EventArgs e) + { + string notes = textBox1.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()) && + (row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))) + { + row.Cells["colSelect"].Value = false; + } + } + } + } + + private void btnSelectOnline_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colLoginStatus"].Value.ParseToString() == "在线") + { + row.Cells["colSelect"].Value = true; + } + else + { + row.Cells["colSelect"].Value = false; + } + } + } + } + + private void btnSelectOffline_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colLoginStatus"].Value.ParseToString() != "在线") + { + row.Cells["colSelect"].Value = true; + } + else + { + row.Cells["colSelect"].Value = false; + } + } + } + } + + private void txtPageEnd_TextChanged(object sender, EventArgs e) + { + PageEnd = txtPageEnd.Text.ParseToInt(); + } + + private void cmbPreType_SelectedIndexChanged(object sender, EventArgs e) + { + PreType = cmbPreType.Text.Trim(); + } + + private void btnFiltSelectMoreThan_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow row in dgvSelectProduct.Rows) + { + if (row.Cells["colSoldNum"].Value.ParseToInt() > txtFiltSaleNumMoreThan.Text.Trim().ParseToInt()) + row.Cells["colCheck"].Value = true; + else + row.Cells["colCheck"].Value = false; + } + } + + private void btnFiltSelectLessThan_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvSelectProduct.Rows) + { + if (row.Cells["colSoldNum"].Value.ParseToInt() >= txtFiltSaleNumLessThan.Text.Trim().ParseToInt()) + row.Cells["colCheck"].Value = false; + else + row.Cells["colCheck"].Value = true; + } + } + + decimal productPriceValue = 0; + + private void btnEndCoupon_Click(object sender, EventArgs e) + { + var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rowLst.Count <= 0) + { + BaseMsgForm.ShowError("请勾选需要操作的商品!"); + return; + } + + this.pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + dgvSelectProduct.Columns["colCouponNum"].HeaderText = "生效券数量"; + dgvSelectProduct.Columns["colCouponNum"].Visible = true; + Task.Run(() => + { + EndProdCoupon(rowLst); + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "优惠券作废删除完毕"; + BaseMsgForm.ShowInfo("优惠券作废删除完毕"); + this.pbLoading.Visible = false; + })); + }, cancellationTokenSource.Token); + } + void EndProdCoupon(List rowLst) + { + 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.UpdateProgressBar(0); + })); + + foreach (var row in rowLst) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在作废删除" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + row.Cells["colOpResult"].Value = ""; + row.Cells["colCouponNum"].Value = ""; + })); + + 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) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "店铺不存在"; + })); + continue; + } + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "店铺掉线"; + })); + continue; + } + + var searchCouponRst = WxCoupon.WxSearchCoupon(shop, prodId); + Thread.Sleep(Randomx.GetId(500, 1000)); + 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 == "0") + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品无专属优惠券,跳过"; + })); + continue; + } + try + { + var couponLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(searchCouponRst)["coupons"].ToString()); + string errMsg = ""; + foreach (var coupon in couponLst) + { + var endRst = WxCoupon.WxEndCoupon(shop, coupon.couponKey.couponId.ParseToString()); + Thread.Sleep(Randomx.GetId(100, 300)); + if (!endRst.Contains("\"code\":0")) + { + var err = BaseRegex.GetStringJson(ref endRst, "msg"); + if (string.IsNullOrWhiteSpace(err)) + err = endRst; + errMsg += coupon.couponKey.couponId + " " + err + " \r\n"; + continue; + } + var delRst = WxCoupon.WxDelCoupon(shop, coupon.couponKey.couponId.ParseToString()); + Thread.Sleep(Randomx.GetId(100, 300)); + if (!delRst.Contains("\"code\":0")) + { + var err = BaseRegex.GetStringJson(ref delRst, "msg"); + if (string.IsNullOrWhiteSpace(err)) + err = delRst; + errMsg += coupon.couponKey.couponId + " " + err + " \r\n"; + continue; + } + } + if (!errMsg.IsNullOrEmpty()) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "作废删除失败 " + errMsg; + })); + } + else + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "作废删除成功"; + })); + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "作废删除失败 优惠券格式转换失败"; + })); + } + } + } + } + + int? sortType = null; + private void cmbSaleSort_TextChanged(object sender, EventArgs e) + { + sortType = null; + if (cmbSaleSort.Text == "降序") + sortType = 6; + if (cmbSaleSort.Text == "升序") + sortType = 5; + } + + private void btnSync_Click(object sender, EventArgs e) + { + var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rowLst.Count <= 0) + { + BaseMsgForm.ShowError("请勾选需要操作的商品!"); + return; + } + + this.pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + dgvSelectProduct.Columns["colCouponNum"].Visible = false; + Task.Run(() => + { + SyncProd(rowLst); + Invoke(new Action(() => + { + if(cancellationTokenSource.IsCancellationRequested) + { + this.statusBar.lblTaskStatus.Text = "商品同步中断"; + BaseMsgForm.ShowInfo("商品同步中断"); + } + else + { + this.statusBar.lblTaskStatus.Text = "商品同步完毕"; + BaseMsgForm.ShowInfo("商品同步完毕"); + } + this.pbLoading.Visible = false; + })); + }, cancellationTokenSource.Token); + } + + void SyncProd(List rowLst) + { + 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.UpdateProgressBar(0); + })); + + while(rowLst.Count > 0) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + var r0 = rowLst.FirstOrDefault(); + var shopId = r0.Cells["colSupplierId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + var rowLstTmp = rowLst.Where(r => r.Cells["colSupplierId"].Value.ParseToString() == shopId).Take(50).ToList(); + foreach(var r in rowLstTmp) + { + rowLst.Remove(r); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在同步" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + r.Cells["colOpResult"].Value = ""; + })); + } + if (shop == null) + { + Invoke(new Action(() => + { + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺不存在"; + } + })); + continue; + } + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺掉线"; + } + })); + continue; + } + + List prodIdLst = new List(); + List extCodeLst = new List(); + foreach (var row in rowLstTmp) + { + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + var extCode = row.Cells["colExtCode"].Value.ParseToString(); + prodIdLst.Add(prodId); + extCodeLst.Add(extCode); + } + + // 查询商品库有没有 + var url = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + Thread.Sleep(500); + var data = UserLogin.GetSignaturex(); + data += "&search_secret_spu_ids=" + string.Join(",", extCodeLst.Distinct()); + data += "&wx_safe_status=" + "安全商品,未校验"; + 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 result, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = result; + Invoke(new Action(() => + { + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "查询商品错误:" + errMsg; + } + })); + continue; + } + List complateDbProdExistLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + + foreach (var row in rowLstTmp) + { + var extCode = row.Cells["colExtCode"].Value.ParseToString(); + // 是否是库存商品 + var needDownProdLst = complateDbProdExistLst.Where(pe => pe.secret_spu_id == extCode).ToList(); + if (needDownProdLst.Count == 0) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "数据库内没有找到该商品,跳过回采"; + })); + continue; + } + else + { + if (needDownProdLst.Count > 0) + { + + } + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "正在回采商品"; + })); + Thread.Sleep(200); + + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + var getEditProdRst = WXUpload.getEditProductV2(shop, prodId); + Thread.Sleep(Randomx.GetId(50, 100)); + if (getEditProdRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + } + if (!getEditProdRst.Contains("\"success\":true")) + { + var errmsg = BaseRegex.GetStringJson(ref getEditProdRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = getEditProdRst; + if (shop.LoginStatus != "登录成功") + errmsg = "店铺掉线"; + + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = errmsg; + })); + continue; + } + + try + { + WXGetEditProductInfoLite wxProdInfoLite = JsonHelper.DeserializeJsonToObject(getEditProdRst); + var secret_spu_id = wxProdInfoLite.product.info.spuCode; + if (!string.IsNullOrWhiteSpace(secret_spu_id)) + { + + } + else + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品回采失败:外部编码采集失败,跳过"; + })); + continue; + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品回采失败:" + ex.Message; + })); + continue; + } + + //DateTime tickTime = DateTime.Now.AddSeconds(0 - Randomx.GetId(10, 30)); + //int time1 = BaseClass.DateTimeToTimestampSeconds(tickTime) - Randomx.GetId(80, 150); + //int time2 = BaseClass.DateTimeToTimestampSeconds(tickTime); + + //// 提交免审修改(实际生效接口) + //var listingAuditFreeRst = WXUpload.listingAuditFree(shop, productJson, prodId, time1, time2); + //System.Threading.Thread.Sleep(Randomx.GetId(150, 500)); + //if (!listingAuditFreeRst.Contains("\"code\":0")) + //{ + // var errmsg = BaseRegex.GetStringJson(ref listingAuditFreeRst, "msg"); + // if (string.IsNullOrWhiteSpace(errmsg)) + // errmsg = listingAuditFreeRst; + // if (errmsg.Contains("107232")) + // errmsg = "图片不清晰禁止操作"; + // if (errmsg.Contains("9401083")) + // errmsg = "店铺处罚中禁止操作"; + + // if (getEditProdRst.Contains("biz magic invalid")) + // { + // WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + // Invoke(new Action(() => + // { + // row.Cells["colOpResult"].Value = "店铺掉线"; + // })); + // continue; + // } + + // if (chkFailDownProd.Checked) + // { + // var downProd = WXPreSale.DownProd(shop, prodId); + // System.Threading.Thread.Sleep(Randomx.GetId(50, 100)); + // if (downProd.Contains("\"code\":0")) + // { + // errmsg += " 商品同步失败 已下架"; + // } + // else + // errmsg += " 商品同步失败 下架失败"; + // } + // Invoke(new Action(() => + // { + // row.Cells["colOpResult"].Value = errmsg; + // })); + // continue; + //} + var complateRst = ""; + if (complateRst.Contains("\"code\":0")) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品回采成功"; + })); + } + } + } + } + } + } +} diff --git a/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.resx b/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.resx new file mode 100644 index 0000000..df46883 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXProdComplateForm.resx @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 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 f672abe..825b24e 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -41,6 +41,7 @@ namespace TemuKJD.WXForms.ProductForms System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.chkUseWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkSaveBound = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkAiShortTitle = new TemuKJD.UserComponent.UcCheckBox(this.components); this.label6 = new System.Windows.Forms.Label(); @@ -88,17 +89,16 @@ 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.chkWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components); this.txtAddCount = new System.Windows.Forms.TextBox(); this.txtSearchGoodsName = new System.Windows.Forms.TextBox(); this.label20 = new System.Windows.Forms.Label(); this.pbSelectProd = new System.Windows.Forms.PictureBox(); - this.txtExtCodeFilter = new System.Windows.Forms.TextBox(); 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(); @@ -134,7 +134,9 @@ namespace TemuKJD.WXForms.ProductForms this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.btnRefreshNum = new DevComponents.DotNetBar.PanelEx(); + this.txtExtCodeFilter = new System.Windows.Forms.TextBox(); this.pbLoadingShop = new System.Windows.Forms.PictureBox(); + this.lblExtCodeFilter = new System.Windows.Forms.Label(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -240,6 +242,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.chkUseWXComplateProd); this.ucGroupBoxEx2.Controls.Add(this.chkSaveBound); this.ucGroupBoxEx2.Controls.Add(this.chkAiShortTitle); this.ucGroupBoxEx2.Controls.Add(this.label6); @@ -289,10 +292,21 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品上传"; // + // chkUseWXComplateProd + // + this.chkUseWXComplateProd.Location = new System.Drawing.Point(727, 42); + this.chkUseWXComplateProd.Name = "chkUseWXComplateProd"; + this.chkUseWXComplateProd.Size = new System.Drawing.Size(87, 21); + this.chkUseWXComplateProd.TabIndex = 876; + this.chkUseWXComplateProd.Text = "使用回采数据"; + this.chkUseWXComplateProd.UseVisualStyleBackColor = true; + this.chkUseWXComplateProd.Visible = false; + this.chkUseWXComplateProd.CheckedChanged += new System.EventHandler(this.chkUseWXComplateProd_CheckedChanged); + // // chkSaveBound // this.chkSaveBound.AutoSize = true; - this.chkSaveBound.Location = new System.Drawing.Point(806, 136); + this.chkSaveBound.Location = new System.Drawing.Point(791, 136); this.chkSaveBound.Name = "chkSaveBound"; this.chkSaveBound.Size = new System.Drawing.Size(111, 21); this.chkSaveBound.TabIndex = 863; @@ -306,11 +320,11 @@ namespace TemuKJD.WXForms.ProductForms this.chkAiShortTitle.AutoSize = true; this.chkAiShortTitle.Checked = true; this.chkAiShortTitle.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkAiShortTitle.Location = new System.Drawing.Point(653, 42); + this.chkAiShortTitle.Location = new System.Drawing.Point(638, 42); this.chkAiShortTitle.Name = "chkAiShortTitle"; - this.chkAiShortTitle.Size = new System.Drawing.Size(147, 21); + this.chkAiShortTitle.Size = new System.Drawing.Size(87, 21); this.chkAiShortTitle.TabIndex = 862; - this.chkAiShortTitle.Text = "AI短标题加入商品标题"; + this.chkAiShortTitle.Text = "AI优化标题"; this.chkAiShortTitle.UseVisualStyleBackColor = true; this.chkAiShortTitle.CheckedChanged += new System.EventHandler(this.chkAiShotTitle_CheckedChanged); // @@ -341,7 +355,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkHighestPriceSku.AutoSize = true; this.chkHighestPriceSku.Checked = true; this.chkHighestPriceSku.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkHighestPriceSku.Location = new System.Drawing.Point(582, 16); + this.chkHighestPriceSku.Location = new System.Drawing.Point(567, 16); this.chkHighestPriceSku.Name = "chkHighestPriceSku"; this.chkHighestPriceSku.Size = new System.Drawing.Size(119, 21); this.chkHighestPriceSku.TabIndex = 739; @@ -352,7 +366,7 @@ namespace TemuKJD.WXForms.ProductForms // txtFilterBoundMax // this.txtFilterBoundMax.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtFilterBoundMax.Location = new System.Drawing.Point(648, 134); + this.txtFilterBoundMax.Location = new System.Drawing.Point(633, 134); 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); @@ -363,7 +377,7 @@ namespace TemuKJD.WXForms.ProductForms // label23 // this.label23.AutoSize = true; - this.label23.Location = new System.Drawing.Point(621, 138); + this.label23.Location = new System.Drawing.Point(606, 138); this.label23.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label23.Name = "label23"; this.label23.Size = new System.Drawing.Size(32, 17); @@ -373,7 +387,7 @@ namespace TemuKJD.WXForms.ProductForms // txtFilterBoundMin // this.txtFilterBoundMin.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtFilterBoundMin.Location = new System.Drawing.Point(571, 134); + this.txtFilterBoundMin.Location = new System.Drawing.Point(556, 134); 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); @@ -384,7 +398,7 @@ namespace TemuKJD.WXForms.ProductForms // txtTitleHeadWord // this.txtTitleHeadWord.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtTitleHeadWord.Location = new System.Drawing.Point(514, 40); + this.txtTitleHeadWord.Location = new System.Drawing.Point(499, 40); this.txtTitleHeadWord.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtTitleHeadWord.MaxLength = 15; this.txtTitleHeadWord.Name = "txtTitleHeadWord"; @@ -398,7 +412,7 @@ namespace TemuKJD.WXForms.ProductForms 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(742, 135); + this.btnFilterBound.Location = new System.Drawing.Point(727, 135); this.btnFilterBound.Name = "btnFilterBound"; this.btnFilterBound.Size = new System.Drawing.Size(58, 23); this.btnFilterBound.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -423,7 +437,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkSameSpecPrice.AutoSize = true; this.chkSameSpecPrice.Checked = true; this.chkSameSpecPrice.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkSameSpecPrice.Location = new System.Drawing.Point(701, 16); + this.chkSameSpecPrice.Location = new System.Drawing.Point(686, 16); this.chkSameSpecPrice.Name = "chkSameSpecPrice"; this.chkSameSpecPrice.Size = new System.Drawing.Size(99, 21); this.chkSameSpecPrice.TabIndex = 745; @@ -434,7 +448,7 @@ namespace TemuKJD.WXForms.ProductForms // label22 // this.label22.AutoSize = true; - this.label22.Location = new System.Drawing.Point(448, 45); + this.label22.Location = new System.Drawing.Point(433, 45); 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); @@ -444,7 +458,7 @@ namespace TemuKJD.WXForms.ProductForms // txtShippingPriceTimes // this.txtShippingPriceTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtShippingPriceTimes.Location = new System.Drawing.Point(344, 135); + this.txtShippingPriceTimes.Location = new System.Drawing.Point(329, 135); this.txtShippingPriceTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtShippingPriceTimes.Name = "txtShippingPriceTimes"; this.txtShippingPriceTimes.Size = new System.Drawing.Size(32, 23); @@ -454,7 +468,7 @@ namespace TemuKJD.WXForms.ProductForms // label12 // this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(697, 138); + this.label12.Location = new System.Drawing.Point(682, 138); 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); @@ -465,7 +479,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(307, 138); + this.label13.Location = new System.Drawing.Point(292, 138); this.label13.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(41, 17); @@ -475,7 +489,7 @@ namespace TemuKJD.WXForms.ProductForms // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(448, 138); + this.label1.Location = new System.Drawing.Point(433, 138); this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(128, 17); @@ -485,7 +499,7 @@ namespace TemuKJD.WXForms.ProductForms // label18 // this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(811, 112); + this.label18.Location = new System.Drawing.Point(796, 112); 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); @@ -494,7 +508,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtPreDays // - this.txtPreDays.Location = new System.Drawing.Point(778, 109); + this.txtPreDays.Location = new System.Drawing.Point(763, 109); 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); @@ -505,7 +519,7 @@ namespace TemuKJD.WXForms.ProductForms // chkPreSale // this.chkPreSale.AutoSize = true; - this.chkPreSale.Location = new System.Drawing.Point(686, 110); + this.chkPreSale.Location = new System.Drawing.Point(671, 110); this.chkPreSale.Name = "chkPreSale"; this.chkPreSale.Size = new System.Drawing.Size(99, 21); this.chkPreSale.TabIndex = 789; @@ -518,7 +532,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, 110); + this.chkSkipUploaded.Location = new System.Drawing.Point(436, 110); this.chkSkipUploaded.Name = "chkSkipUploaded"; this.chkSkipUploaded.Size = new System.Drawing.Size(135, 21); this.chkSkipUploaded.TabIndex = 755; @@ -529,7 +543,7 @@ namespace TemuKJD.WXForms.ProductForms // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(539, 18); + this.label5.Location = new System.Drawing.Point(524, 18); this.label5.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(40, 17); @@ -538,7 +552,7 @@ namespace TemuKJD.WXForms.ProductForms // // txtMinPrice // - this.txtMinPrice.Location = new System.Drawing.Point(514, 15); + this.txtMinPrice.Location = new System.Drawing.Point(499, 15); this.txtMinPrice.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtMinPrice.Name = "txtMinPrice"; this.txtMinPrice.Size = new System.Drawing.Size(25, 23); @@ -549,7 +563,7 @@ namespace TemuKJD.WXForms.ProductForms // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(448, 18); + this.label8.Location = new System.Drawing.Point(433, 18); this.label8.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(68, 17); @@ -560,7 +574,7 @@ namespace TemuKJD.WXForms.ProductForms // this.txtReplaceText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtReplaceText.Location = new System.Drawing.Point(514, 67); + this.txtReplaceText.Location = new System.Drawing.Point(499, 67); this.txtReplaceText.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtReplaceText.Multiline = true; this.txtReplaceText.Name = "txtReplaceText"; @@ -572,7 +586,7 @@ namespace TemuKJD.WXForms.ProductForms // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(448, 72); + this.label3.Location = new System.Drawing.Point(433, 72); this.label3.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(68, 17); @@ -582,7 +596,7 @@ namespace TemuKJD.WXForms.ProductForms // chkUpDraft // this.chkUpDraft.AutoSize = true; - this.chkUpDraft.Location = new System.Drawing.Point(586, 110); + this.chkUpDraft.Location = new System.Drawing.Point(571, 110); this.chkUpDraft.Name = "chkUpDraft"; this.chkUpDraft.Size = new System.Drawing.Size(99, 21); this.chkUpDraft.TabIndex = 769; @@ -631,11 +645,11 @@ namespace TemuKJD.WXForms.ProductForms // this.chkAddMorePriceFirst.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.chkAddMorePriceFirst.AutoSize = true; - this.chkAddMorePriceFirst.Location = new System.Drawing.Point(201, 136); + this.chkAddMorePriceFirst.Location = new System.Drawing.Point(199, 136); this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst"; - this.chkAddMorePriceFirst.Size = new System.Drawing.Size(111, 21); + this.chkAddMorePriceFirst.Size = new System.Drawing.Size(99, 21); this.chkAddMorePriceFirst.TabIndex = 625; - this.chkAddMorePriceFirst.Text = "加价时先加再乘"; + this.chkAddMorePriceFirst.Text = "加价先加再乘"; this.chkAddMorePriceFirst.UseVisualStyleBackColor = true; this.chkAddMorePriceFirst.CheckedChanged += new System.EventHandler(this.chkAddMorePriceFirst_CheckedChanged); // @@ -696,7 +710,7 @@ namespace TemuKJD.WXForms.ProductForms this.panel4.Controls.Add(this.panel3); this.panel4.Location = new System.Drawing.Point(76, 17); this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(366, 114); + this.panel4.Size = new System.Drawing.Size(350, 114); this.panel4.TabIndex = 577; // // panel3 @@ -709,7 +723,7 @@ namespace TemuKJD.WXForms.ProductForms this.panel3.Controls.Add(this.fPnlPriceRule); this.panel3.Location = new System.Drawing.Point(1, 1); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(364, 112); + this.panel3.Size = new System.Drawing.Size(348, 112); this.panel3.TabIndex = 541; // // fPnlPriceRule @@ -872,7 +886,7 @@ namespace TemuKJD.WXForms.ProductForms // txtStockNum // this.txtStockNum.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtStockNum.Location = new System.Drawing.Point(410, 135); + this.txtStockNum.Location = new System.Drawing.Point(395, 135); this.txtStockNum.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtStockNum.Name = "txtStockNum"; this.txtStockNum.Size = new System.Drawing.Size(32, 23); @@ -884,7 +898,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(379, 138); + this.label4.Location = new System.Drawing.Point(364, 138); this.label4.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(32, 17); @@ -919,17 +933,16 @@ 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.chkWXComplateProd); this.ucGroupBoxEx4.Controls.Add(this.txtAddCount); this.ucGroupBoxEx4.Controls.Add(this.txtSearchGoodsName); this.ucGroupBoxEx4.Controls.Add(this.label20); this.ucGroupBoxEx4.Controls.Add(this.pbSelectProd); - this.ucGroupBoxEx4.Controls.Add(this.txtExtCodeFilter); 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); @@ -955,6 +968,16 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.TabStop = false; this.ucGroupBoxEx4.Text = "待传商品"; // + // chkWXComplateProd + // + this.chkWXComplateProd.Location = new System.Drawing.Point(180, 103); + this.chkWXComplateProd.Name = "chkWXComplateProd"; + this.chkWXComplateProd.Size = new System.Drawing.Size(87, 21); + this.chkWXComplateProd.TabIndex = 807; + this.chkWXComplateProd.Text = "微信回采商品"; + this.chkWXComplateProd.UseVisualStyleBackColor = true; + this.chkWXComplateProd.Visible = false; + // // txtAddCount // this.txtAddCount.Font = new System.Drawing.Font("微软雅黑", 10F); @@ -996,16 +1019,6 @@ namespace TemuKJD.WXForms.ProductForms this.pbSelectProd.Visible = false; this.pbSelectProd.Click += new System.EventHandler(this.pbSelectProd_Click); // - // 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; - // // cmbCateFilter3 // this.cmbCateFilter3.FormattingEnabled = true; @@ -1037,7 +1050,7 @@ namespace TemuKJD.WXForms.ProductForms // txtIdFilter // this.txtIdFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtIdFilter.Location = new System.Drawing.Point(47, 101); + this.txtIdFilter.Location = new System.Drawing.Point(47, 100); 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); @@ -1057,17 +1070,6 @@ 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; @@ -1082,7 +1084,7 @@ namespace TemuKJD.WXForms.ProductForms // lblIdFilter // this.lblIdFilter.AutoSize = true; - this.lblIdFilter.Location = new System.Drawing.Point(27, 105); + this.lblIdFilter.Location = new System.Drawing.Point(27, 104); 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); @@ -1304,10 +1306,9 @@ namespace TemuKJD.WXForms.ProductForms // // chkSkipQualification // - this.chkSkipQualification.AutoSize = true; this.chkSkipQualification.Location = new System.Drawing.Point(14, 133); this.chkSkipQualification.Name = "chkSkipQualification"; - this.chkSkipQualification.Size = new System.Drawing.Size(99, 21); + this.chkSkipQualification.Size = new System.Drawing.Size(87, 21); this.chkSkipQualification.TabIndex = 806; this.chkSkipQualification.Text = "跳过资质商品"; this.chkSkipQualification.UseVisualStyleBackColor = true; @@ -1626,7 +1627,9 @@ namespace TemuKJD.WXForms.ProductForms // splitContainer2.Panel1 // this.splitContainer2.Panel1.Controls.Add(this.btnRefreshNum); + this.splitContainer2.Panel1.Controls.Add(this.txtExtCodeFilter); this.splitContainer2.Panel1.Controls.Add(this.pbLoadingShop); + this.splitContainer2.Panel1.Controls.Add(this.lblExtCodeFilter); this.splitContainer2.Panel1.Controls.Add(this.dgvShop); this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); // @@ -1670,6 +1673,16 @@ namespace TemuKJD.WXForms.ProductForms this.btnRefreshNum.Visible = false; this.btnRefreshNum.Click += new System.EventHandler(this.btnRefreshNum_Click); // + // txtExtCodeFilter + // + this.txtExtCodeFilter.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtExtCodeFilter.Location = new System.Drawing.Point(249, 34); + 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; + // // pbLoadingShop // this.pbLoadingShop.Anchor = System.Windows.Forms.AnchorStyles.None; @@ -1682,6 +1695,17 @@ namespace TemuKJD.WXForms.ProductForms this.pbLoadingShop.TabStop = false; this.pbLoadingShop.Visible = false; // + // lblExtCodeFilter + // + this.lblExtCodeFilter.AutoSize = true; + this.lblExtCodeFilter.Location = new System.Drawing.Point(218, 38); + 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; + // // dgvShop // this.dgvShop.AllowUserToAddRows = false; @@ -2266,6 +2290,7 @@ namespace TemuKJD.WXForms.ProductForms ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); this.splitContainer3.ResumeLayout(false); this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); this.splitContainer2.Panel2.ResumeLayout(false); this.splitContainer2.Panel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); @@ -2428,5 +2453,7 @@ namespace TemuKJD.WXForms.ProductForms private UserComponent.UcCheckBox chkSaveBound; private UserComponent.UcCheckBox chkAiShortTitle; private UserComponent.UcCheckBox chkSkipQualification; + private UserComponent.UcCheckBox chkWXComplateProd; + private UserComponent.UcCheckBox chkUseWXComplateProd; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index a21315c..12ea400 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -165,6 +165,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkPreSale.CheckedChanged -= chkPreSale_CheckedChanged; this.txtTitleHeadWord.TextChanged -= txtTitleHeadWord_TextChanged; this.chkAiShortTitle.CheckedChanged -= chkAiShotTitle_CheckedChanged; + this.chkUseWXComplateProd.CheckedChanged -= chkUseWXComplateProd_CheckedChanged; this.chkSaveBound.CheckedChanged -= chkSaveBound_CheckedChanged; this.txtFilterBoundMin.TextChanged -= txtFilterBoundMin_TextChanged; this.txtFilterBoundMax.TextChanged -= txtFilterBoundMax_TextChanged; @@ -180,6 +181,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkPreSale.Checked = wxUploadRule.IsPreSale.ParseToBool(); this.txtTitleHeadWord.Text = wxUploadRule.TitleHeadWords.ParseToString(); this.chkAiShortTitle.Checked = wxUploadRule.IsAiShortTitle; + this.chkUseWXComplateProd.Checked = wxUploadRule.IsUseWXComplateProd; this.chkSaveBound.Checked = wxUploadRule.IsSaveBound; if (wxUploadRule.IsSaveBound) { @@ -198,6 +200,7 @@ namespace TemuKJD.WXForms.ProductForms this.chkPreSale.CheckedChanged += chkPreSale_CheckedChanged; this.txtTitleHeadWord.TextChanged += txtTitleHeadWord_TextChanged; this.chkAiShortTitle.CheckedChanged += chkAiShotTitle_CheckedChanged; + this.chkUseWXComplateProd.CheckedChanged += chkUseWXComplateProd_CheckedChanged; this.chkSaveBound.CheckedChanged += chkSaveBound_CheckedChanged; this.txtFilterBoundMin.TextChanged += txtFilterBoundMin_TextChanged; this.txtFilterBoundMax.TextChanged += txtFilterBoundMax_TextChanged; @@ -272,15 +275,22 @@ namespace TemuKJD.WXForms.ProductForms //#if DEBUG if (BaseClass.SaLevel == 1) { + //lblExtCodeFilter.Visible = true; + //txtExtCodeFilter.Visible = true; + txtIdFilter.Visible = true; - txtExtCodeFilter.Visible = true; cmbSourceType.Visible = true; cmbGroupFilter.Visible = true; lblIdFilter.Visible = true; - lblExtCodeFilter.Visible = true; lblSourceType.Visible = true; lblGroupFilter.Visible = true; } + + if (BaseClass.UserAuthority.ParseToString().Contains("微信回采")) + { + chkWXComplateProd.Visible = true; + chkUseWXComplateProd.Visible = true; + } //#endif if (BaseClass.SaLevel == 1) { @@ -1023,7 +1033,17 @@ namespace TemuKJD.WXForms.ProductForms break; //将商品上传 - var kjdDbProdTmp = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(kjdDbProd)); + KJDDBProduct kjdDbProdTmp = null; + try + { + kjdDbProdTmp = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(kjdDbProd)); + } + catch (Exception ex) + { + result = "{\"success\":false,\"status\":\"未上传\",\"errMsg\":\"商品初始化失败:" + ex.Message + "\"}"; + goto endUploadProduct; + } + result = UploadProduct(shop, kjdDbProdTmp, selectProd, row.Cells["colOpResult"], startTime); if (result.Contains("今日提审次数已用尽,请明日再试") || result.Contains("如需上架请先缴纳足额保证金")) { @@ -1031,6 +1051,7 @@ namespace TemuKJD.WXForms.ProductForms if (shopRow != null) Invoke(new Action(() => { shopRow.Cells["colSelect"].Value = false; })); } + // 图片重复的,修改图片缓存为空再传一次 if (result.Contains("10020225") || result.Contains("10020226")) { kjdDbProdTmp = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(kjdDbProd)); @@ -1038,26 +1059,28 @@ namespace TemuKJD.WXForms.ProductForms result = UploadProduct(shop, kjdDbProdTmp, selectProd, row.Cells["colOpResult"], startTime); } - Invoke(new Action(() => - { - row.Cells["colSkuFakeImgUrl"].Value = kjdDbProd.sku_img_replace_url; - if (row.Displayed) - { - string getImgError = ""; - Image img = GetHtml.GetUrlImg(kjdDbProd.sku_img_replace_url.Replace("https://", "http://"), out getImgError); - if (string.IsNullOrEmpty(getImgError)) - row.Cells["colSkuFakeImg"].Value = img; - } - })); + // 拼多多的虚拟图,微信不需要 + //Invoke(new Action(() => + //{ + // row.Cells["colSkuFakeImgUrl"].Value = kjdDbProd.sku_img_replace_url; + // if (row.Displayed) + // { + // string getImgError = ""; + // Image img = GetHtml.GetUrlImg(kjdDbProd.sku_img_replace_url.Replace("https://", "http://"), out getImgError); + // if (string.IsNullOrEmpty(getImgError)) + // row.Cells["colSkuFakeImg"].Value = img; + // } + //})); if (!result.Contains("success")) { WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); } + endUploadProduct:; } catch (Exception ex) { - result = "{\"success\":false,\"status\":\"未上传\",\"errMsg\":\"" + ex.Message + "\"}"; + result = "{\"success\":false,\"status\":\"未上传\",\"errMsg\":\"内部错误:" + ex.Message + " " + ex.InnerException?.Message + "\"}"; } Thread.Sleep(Randomx.GetId(100, 300)); @@ -1200,12 +1223,65 @@ namespace TemuKJD.WXForms.ProductForms } } + public static WXGetEditProductInfoLite GetProductWXComplate(string secret_spu_id, out string errMsg) + { + errMsg = ""; + + if (string.IsNullOrEmpty(secret_spu_id)) + { + errMsg = "产品编码为空"; + return null; + } + + List list = new List(); + + var url = BaseClass.BuildObjString("product/get_pdd_prod_wx_complate_list"); + var data = UserLogin.GetSignaturex() + "&search_secret_spu_ids=" + secret_spu_id; + + 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")) + { + errMsg = BaseRegex.GetStringJson(ref html, "msg"); + if (errMsg.IsNullOrEmpty()) + errMsg = html; + errMsg = "取回采数据失败 " + errMsg; + return null; + } + + var jArr = JObject.Parse(html)["data"]; + if (jArr.Count() == 0) + { + errMsg = "产品不存在"; + return null; + } + var sProd = JsonHelper.SerializeObject(jArr); + + try + { + var item = jArr.FirstOrDefault()["wx_edit_prod_json"]; + if (item == null) + return null; + + var editProd = JsonHelper.DeserializeJsonToObject(((JValue)item).Value.ParseToString()); + return editProd; + } + catch (Exception ex) + { + errMsg = "回采数据转换失败 " + ex.Message; + return null; + } + } + string UploadProduct(ShopLoginInfo shop, KJDDBProduct dbProd, TemuDBProductSelect selectProd, DataGridViewCell cell, DateTime startTime) { Thread.Sleep(Randomx.GetId(100, 300)); if (shop == null || string.IsNullOrEmpty(shop.ShopId) || shop.LoginStatus != "登录成功") { - return "店铺为空或未登录!"; + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"店铺为空或未登录!\"}"; } if (cell != null) { @@ -1215,8 +1291,6 @@ namespace TemuKJD.WXForms.ProductForms })); } - - #region 跳过已上传商品 if (chkSkipUploaded.Checked) { @@ -1437,6 +1511,22 @@ namespace TemuKJD.WXForms.ProductForms } #endregion + WXGetEditProductInfoLite wxEditProdInfo = null; + if (BaseClass.UserAuthority.ParseToString().Contains("微信回采") && chkUseWXComplateProd.Checked && dbProd.has_wx_format == "1") + { + string errMsg = ""; + wxEditProdInfo = GetProductWXComplate(dbProd.secret_spu_id, out errMsg); + + if (wxEditProdInfo == null) + { + Invoke(new Action(() => + { + cell.Value = errMsg; + })); + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"" + errMsg + "\"}"; + } + } + #region 图片盗链映射 bool isChangeImgDic = false; Dictionary wxImgMapDic = new Dictionary(); @@ -2491,192 +2581,233 @@ namespace TemuKJD.WXForms.ProductForms #region 匹配产品属性 //真丝、蚕丝、香云纱、羊绒、羊毛、羊羔毛、羽绒、皮草 - upProdParam.product.info.param = new List(); // 商品属性值 + upProdParam.product.info.param = new List(); // 商品属性值 var productAttr = upProdParam.product.info.category.LastOrDefault().catInfo.productAttr; - foreach (var propInfo in prodInfo.property.goods_properties) + + if (BaseClass.UserAuthority.ParseToString().Contains("微信回采") && chkUseWXComplateProd.Checked && dbProd.has_wx_format == "1" && wxEditProdInfo != null) { - if (propInfo.values.Count == 0) - continue; - - var attr = productAttr.attr.FirstOrDefault(r => r.name == propInfo.name); - if (propInfo.name == "生产日期" && propInfo.values.Count > 0) + foreach(var wxEditPropParam in wxEditProdInfo.product.info.param) { - propInfo.values.FirstOrDefault().value = DateTime.Now.Date.AddDays(-15).ToString("yyyy-MM-dd"); - propInfo.values.FirstOrDefault().raw_value = propInfo.values.FirstOrDefault().value; + var wxPropParam = new wxPropParam(); + upProdParam.product.info.param.Add(wxPropParam); + //var wxCategoryParam1 = new categoryPropParam() + //{ + // catType = 7, + // name = attr.name, + // catInfo = new catInfoParam() { inputType = attr.normalRelease.ruleType, isRequired = attr.isRequired == true ? 1 : 0, isCustomize = 0 } + //}; + //var wxCategoryParam2 = new categoryPropParam() + //{ + // catType = 7, + // name = attrValue, + // catInfo = new catInfoParam() { inputType = attr.normalRelease.ruleType, isRequired = attr.isRequired == true ? 1 : 0, isCustomize = 0 } + //}; + //wxPropParam.categorys.Add(wxCategoryParam1); + //wxPropParam.categorys.Add(wxCategoryParam2); + foreach (var wxEditCategoryParam in wxEditPropParam.categorys) + { + var wxCategoryParam = new categoryPropParam() + { + catType = wxEditCategoryParam.catType, + name = wxEditCategoryParam.name, + catInfo = new catInfoParam() + { + inputType = wxEditCategoryParam.catInfo.inputType, + isRequired = wxEditCategoryParam.catInfo.isRequired, + isCustomize = wxEditCategoryParam.catInfo.isCustomize, + } + }; + wxPropParam.categorys.Add(wxCategoryParam); + } } - if (attr == null) + } + else + { + foreach (var propInfo in prodInfo.property.goods_properties) { - if (propInfo.name.Contains("面料俗称")) + if (propInfo.values.Count == 0) + continue; + + var attr = productAttr.attr.FirstOrDefault(r => r.name == propInfo.name); + if (propInfo.name == "生产日期" && propInfo.values.Count > 0) { - attr = productAttr.attr.FirstOrDefault(r => r.name == "面料材质"); + propInfo.values.FirstOrDefault().value = DateTime.Now.Date.AddDays(-15).ToString("yyyy-MM-dd"); + propInfo.values.FirstOrDefault().raw_value = propInfo.values.FirstOrDefault().value; } - if (propInfo.name.Contains("适用年龄")) + if (attr == null) { - attr = productAttr.attr.FirstOrDefault(r => r.name == "适用年龄" || r.name == "适用年龄段"); + if (propInfo.name.Contains("面料俗称")) + { + attr = productAttr.attr.FirstOrDefault(r => r.name == "面料材质"); + } + if (propInfo.name.Contains("适用年龄")) + { + attr = productAttr.attr.FirstOrDefault(r => r.name == "适用年龄" || r.name == "适用年龄段"); + } + if (propInfo.name.Contains("填充物")) + { + attr = productAttr.attr.FirstOrDefault(r => r.name == "填充物种类" || r.name == "填充物"); + } + + // 书籍类目属性匹配 + if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸") + { + if (propInfo.name == "出版社名称") + attr = productAttr.attr.FirstOrDefault(r => r.name == "出版社名称"); + else if (propInfo.name == "ISBN编号") + attr = productAttr.attr.FirstOrDefault(r => r.name == "ISBN版号/CN刊号"); + else if (propInfo.name == "书名") + attr = productAttr.attr.FirstOrDefault(r => r.name == "书名"); + else if (propInfo.name == "定价") + attr = productAttr.attr.FirstOrDefault(r => r.name == "定价"); + else if (propInfo.name == "作者") + attr = productAttr.attr.FirstOrDefault(r => r.name == "作者"); + else if (propInfo.name == "出版时间") + attr = productAttr.attr.FirstOrDefault(r => r.name == "出版时间"); + else if (propInfo.name == "版次") + attr = productAttr.attr.FirstOrDefault(r => r.name == "版次"); + else if (propInfo.name == "装帧类型") + attr = productAttr.attr.FirstOrDefault(r => r.name == "包装"); + else if (propInfo.name == "包册数") + attr = productAttr.attr.FirstOrDefault(r => r.name == "图书册数"); + } + if (upProdParam.product.info.category.FirstOrDefault()?.name == "食品饮料" || prodInfo.detail.cats.FirstOrDefault() == "食品饮料") + { + if (propInfo.name == "厂名") + attr = productAttr.attr.FirstOrDefault(r => r.name == "生产企业名称"); + else if (propInfo.name == "食品生产许可证编号") + attr = productAttr.attr.FirstOrDefault(r => r.name == "食品生产许可证编号"); + else if (propInfo.name == "产品标准号") + attr = productAttr.attr.FirstOrDefault(r => r.name == "产品标准号"); + else if (propInfo.name == "保质期") + attr = productAttr.attr.FirstOrDefault(r => r.name == "保质期"); + else if (propInfo.name == "生产日期") + { + attr = productAttr.attr.FirstOrDefault(r => r.name == "生产日期"); + } + else if (propInfo.name == "产品重量") + { + attr = productAttr.attr.FirstOrDefault(r => r.name == "单件净含量"); + if (attr == null) + attr = productAttr.attr.FirstOrDefault(r => r.name == "净含量"); + } + else if (propInfo.name == "包装方式") + attr = productAttr.attr.FirstOrDefault(r => r.name == "包装方式"); + //else if (propInfo.name == "配料表") + // attr = productAttr.attr.FirstOrDefault(r => r.name == "配料表"); + //else if (propInfo.name == "联系方式") + // attr = productAttr.attr.FirstOrDefault(r => r.name == "联系方式"); + else if (propInfo.name == "厂址") + attr = productAttr.attr.FirstOrDefault(r => r.name == "地址"); + else if (propInfo.name == "储藏方法") + attr = productAttr.attr.FirstOrDefault(r => r.name == "贮存条件"); + } } - if (propInfo.name.Contains("填充物")) + if (attr == null) { - attr = productAttr.attr.FirstOrDefault(r => r.name == "填充物种类" || r.name == "填充物"); + continue; + } + var attrValueLst = attr.value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToList(); + var attrValue = attrValueLst.FirstOrDefault(v => v == propInfo.values.FirstOrDefault()?.value); + if (propInfo.name == "保质期") + { + attrValue = "30 天"; + if (propInfo.values.Count > 0) + { + if (propInfo.values.FirstOrDefault().value.Contains("年") || propInfo.values.FirstOrDefault().value.Contains("月") + || propInfo.values.FirstOrDefault().value.Contains("日") || propInfo.values.FirstOrDefault().value.Contains("天") + || propInfo.values.FirstOrDefault().value.Contains("见包装")) + { + attrValue = propInfo.values.FirstOrDefault().value; + } + if (attrValue.Contains("天") && attrValue.Replace("天", "").ParseToInt() < 30) + { + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"食品保质期小于30天,跳过上传\"}"; + } + } } - // 书籍类目属性匹配 + if (propInfo.name == "产品重量") + { + attrValue = "10g"; + if (propInfo.values.FirstOrDefault().value.Contains("g") || propInfo.values.FirstOrDefault().value.Contains("kg")) + attrValue = propInfo.values.FirstOrDefault().value; + } + if (propInfo.name == "风格" && attrValue == null) + { + attrValue = attrValueLst.FirstOrDefault(v => v == propInfo.values.FirstOrDefault().value + "风"); + } + if (attr.type == "string") + { + attrValue = propInfo.values.FirstOrDefault()?.value; + } + //书籍属性处理 if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸") { - if (propInfo.name == "出版社名称") - attr = productAttr.attr.FirstOrDefault(r => r.name == "出版社名称"); - else if (propInfo.name == "ISBN编号") - attr = productAttr.attr.FirstOrDefault(r => r.name == "ISBN版号/CN刊号"); - else if (propInfo.name == "书名") - attr = productAttr.attr.FirstOrDefault(r => r.name == "书名"); - else if (propInfo.name == "定价") - attr = productAttr.attr.FirstOrDefault(r => r.name == "定价"); - else if (propInfo.name == "作者") - attr = productAttr.attr.FirstOrDefault(r => r.name == "作者"); - else if (propInfo.name == "出版时间") - attr = productAttr.attr.FirstOrDefault(r => r.name == "出版时间"); - else if (propInfo.name == "版次") - attr = productAttr.attr.FirstOrDefault(r => r.name == "版次"); - else if (propInfo.name == "装帧类型") - attr = productAttr.attr.FirstOrDefault(r => r.name == "包装"); - else if (propInfo.name == "包册数") - attr = productAttr.attr.FirstOrDefault(r => r.name == "图书册数"); - } - if (upProdParam.product.info.category.FirstOrDefault()?.name == "食品饮料" || prodInfo.detail.cats.FirstOrDefault() == "食品饮料") - { - if (propInfo.name == "厂名") - attr = productAttr.attr.FirstOrDefault(r => r.name == "生产企业名称"); - else if (propInfo.name == "食品生产许可证编号") - attr = productAttr.attr.FirstOrDefault(r => r.name == "食品生产许可证编号"); - else if (propInfo.name == "产品标准号") - attr = productAttr.attr.FirstOrDefault(r => r.name == "产品标准号"); - else if (propInfo.name == "保质期") - attr = productAttr.attr.FirstOrDefault(r => r.name == "保质期"); - else if (propInfo.name == "生产日期") + if (attrValue.IsNullOrEmpty() && attr.type == "integer_unit" && (propInfo.values.FirstOrDefault()?.value).IsNumber()) { - attr = productAttr.attr.FirstOrDefault(r => r.name == "生产日期"); + attrValue = propInfo.values.FirstOrDefault()?.value + " " + attr.value.Split(';').FirstOrDefault(); } - else if (propInfo.name == "产品重量") + if (attrValue.IsNullOrEmpty() && attr.name == "包装") { - attr = productAttr.attr.FirstOrDefault(r => r.name == "单件净含量"); - if (attr == null) - attr = productAttr.attr.FirstOrDefault(r => r.name == "净含量"); - } - else if (propInfo.name == "包装方式") - attr = productAttr.attr.FirstOrDefault(r => r.name == "包装方式"); - //else if (propInfo.name == "配料表") - // attr = productAttr.attr.FirstOrDefault(r => r.name == "配料表"); - //else if (propInfo.name == "联系方式") - // attr = productAttr.attr.FirstOrDefault(r => r.name == "联系方式"); - else if (propInfo.name == "厂址") - attr = productAttr.attr.FirstOrDefault(r => r.name == "地址"); - else if (propInfo.name == "储藏方法") - attr = productAttr.attr.FirstOrDefault(r => r.name == "贮存条件"); - } - } - if (attr == null) - { - continue; - } - var attrValueLst = attr.value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToList(); - var attrValue = attrValueLst.FirstOrDefault(v => v == propInfo.values.FirstOrDefault()?.value); - if (propInfo.name == "保质期" ) - { - attrValue = "30 天"; - if (propInfo.values.Count > 0) - { - if (propInfo.values.FirstOrDefault().value.Contains("年") || propInfo.values.FirstOrDefault().value.Contains("月") - || propInfo.values.FirstOrDefault().value.Contains("日") || propInfo.values.FirstOrDefault().value.Contains("天") - || propInfo.values.FirstOrDefault().value.Contains("见包装")) - { - attrValue = propInfo.values.FirstOrDefault().value; - } - if (attrValue.Contains("天") && attrValue.Replace("天", "").ParseToInt() < 30) - { - return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"食品保质期小于30天,跳过上传\"}"; + if (propInfo.values.FirstOrDefault()?.value == "平装-胶订") + attrValue = "平装"; } } - } - - if (propInfo.name == "产品重量" ) - { - attrValue = "10g"; - if (propInfo.values.FirstOrDefault().value.Contains("g") || propInfo.values.FirstOrDefault().value.Contains("kg")) - attrValue = propInfo.values.FirstOrDefault().value; - } - if (propInfo.name == "风格" && attrValue == null) - { - attrValue = attrValueLst.FirstOrDefault(v => v == propInfo.values.FirstOrDefault().value + "风"); - } - if (attr.type == "string") - { - attrValue = propInfo.values.FirstOrDefault()?.value; - } - //书籍属性处理 - if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸") - { - if (attrValue.IsNullOrEmpty() && attr.type == "integer_unit" && (propInfo.values.FirstOrDefault()?.value).IsNumber()) + if (attrValue.IsNullOrEmpty() && attr.isRequired == true) { - attrValue = propInfo.values.FirstOrDefault()?.value + " " + attr.value.Split(';').FirstOrDefault(); + if (attrValueLst.Contains("其他")) + attrValue = "其他"; + else if (attrValueLst.Contains("常规")) + attrValue = "常规"; + else if (attrValueLst.Contains("通用")) + attrValue = "通用"; + else + attrValue = attrValueLst.Where(v => !"真丝、蚕丝、香云纱、羊绒、羊毛、羊羔绒、羊羔毛、羽绒、皮草".Contains(v)).OrderBy(x => Guid.NewGuid()).FirstOrDefault(); } - if (attrValue.IsNullOrEmpty() && attr.name == "包装") + if (attrValue.IsNullOrEmpty()) { - if (propInfo.values.FirstOrDefault()?.value == "平装-胶订") - attrValue = "平装"; + if (attrValueLst.Contains("其他")) + attrValue = "其他"; + else if (attrValueLst.Contains("通用")) + attrValue = "通用"; + } + if (attrValue.IsNullOrEmpty() && attr.type == "string") + { + attrValue = propInfo.values.FirstOrDefault()?.value; + } + if (attr.type == "decimal4_unit" || attr.type == "integer_unit") + { + if (attr.value == "%") + attrValue = "10 %"; + else if (attr.value == "g;kg") + attrValue = "50 g"; + else if (attr.value == "g") + attrValue = "10 g"; + else if (attr.value == "kg") + attrValue = "1 kg"; } - } - if (attrValue.IsNullOrEmpty() && attr.isRequired == true) - { - if (attrValueLst.Contains("其他")) - attrValue = "其他"; - else if (attrValueLst.Contains("常规")) - attrValue = "常规"; - else if (attrValueLst.Contains("通用")) - attrValue = "通用"; - else - attrValue = attrValueLst.Where(v => !"真丝、蚕丝、香云纱、羊绒、羊毛、羊羔绒、羊羔毛、羽绒、皮草".Contains(v)).OrderBy(x => Guid.NewGuid()).FirstOrDefault(); - } - if (attrValue.IsNullOrEmpty()) - { - if (attrValueLst.Contains("其他")) - attrValue = "其他"; - else if (attrValueLst.Contains("通用")) - attrValue = "通用"; - } - if (attrValue.IsNullOrEmpty() && attr.type == "string") - { - attrValue = propInfo.values.FirstOrDefault()?.value; - } - if (attr.type == "decimal4_unit" || attr.type == "integer_unit") - { - if (attr.value == "%") - attrValue = "10 %"; - else if (attr.value == "g;kg") - attrValue = "50 g"; - else if (attr.value == "g") - attrValue = "10 g"; - else if (attr.value == "kg") - attrValue = "1 kg"; - } - if (string.IsNullOrEmpty(attrValue)) - continue; + if (string.IsNullOrEmpty(attrValue)) + continue; - var wxPropParam = new propParam(); - upProdParam.product.info.param.Add(wxPropParam); - var wxCategoryParam1 = new categoryPropParam() - { - catType = 7, - name = attr.name, - catInfo = new catInfoParam() { inputType = attr.normalRelease.ruleType, isRequired = attr.isRequired == true ? 1 : 0, isCustomize = 0 } - }; - var wxCategoryParam2 = new categoryPropParam() - { - catType = 7, - name = attrValue, - catInfo = new catInfoParam() { inputType = attr.normalRelease.ruleType, isRequired = attr.isRequired == true ? 1 : 0, isCustomize = 0 } - }; - wxPropParam.categorys.Add(wxCategoryParam1); - wxPropParam.categorys.Add(wxCategoryParam2); + var wxPropParam = new wxPropParam(); + upProdParam.product.info.param.Add(wxPropParam); + var wxCategoryParam1 = new categoryPropParam() + { + catType = 7, + name = attr.name, + catInfo = new catInfoParam() { inputType = attr.normalRelease.ruleType, isRequired = attr.isRequired == true ? 1 : 0, isCustomize = 0 } + }; + var wxCategoryParam2 = new categoryPropParam() + { + catType = 7, + name = attrValue, + catInfo = new catInfoParam() { inputType = attr.normalRelease.ruleType, isRequired = attr.isRequired == true ? 1 : 0, isCustomize = 0 } + }; + wxPropParam.categorys.Add(wxCategoryParam1); + wxPropParam.categorys.Add(wxCategoryParam2); + } } foreach (var attr in productAttr.attr) { @@ -2801,7 +2932,7 @@ namespace TemuKJD.WXForms.ProductForms attrValue = "20 cm"; } - var wxPropParam = new propParam(); + var wxPropParam = new wxPropParam(); upProdParam.product.info.param.Add(wxPropParam); var wxCategoryParam1 = new categoryPropParam() { @@ -3163,262 +3294,291 @@ namespace TemuKJD.WXForms.ProductForms } #endregion - #region 标签图 书籍类生成书籍图片 - //qualificationList - if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸") + // 资质信息 + if (BaseClass.UserAuthority.ParseToString().Contains("微信回采") && chkUseWXComplateProd.Checked && dbProd.has_wx_format == "1" && wxEditProdInfo != null) { - if (cell != null) + upProdParam.product.info.qualificationList.Clear(); + if (wxEditProdInfo.product?.info?.qualificationList?.Count > 0) { - Invoke(new Action(() => + foreach (var editQualification in wxEditProdInfo.product.info.qualificationList) { - cell.Value = "正在生成图书专有信息"; - })); - } - - string publisher = "出版社:" + new List() { "技术出版社", "文化出版社", "美术出版社" }[Randomx.GetId(3)]; - string isbn = "ISBN:"; - string bookName = "书名:"; - string bookPrice = "定价:" + upProdParam.product.productSkus.Max(s => s.productSkuInfo.salePrice) * 0.01; - string author = "作者:王老师"; - string publishTime = "出版时间:" + DateTime.Now.AddMonths(-3).ToString("yyyy年MM月dd日"); - string edition = "版次:1"; - string binding = "装帧:平装"; - - foreach (var propParam in upProdParam.product.info.param) - { - if (propParam.categorys[0].name.Contains("出版社名称")) - publisher = "出版社:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("ISBN版号/CN刊号")) - isbn = "ISBN:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("书名")) - bookName = "书名:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("定价")) - { - //bookPrice = "定价:" + propParam.categorys[1].name; - propParam.categorys[1].name = bookPrice; + upProdParam.product.info.qualificationList.Add(new qualificationParam() + { + qualificationId = editQualification.qualificationId, + qualificationUrl = editQualification.qualificationUrl, + }); } - else if (propParam.categorys[0].name.Contains("作者")) - author = "作者:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("出版时间")) - publishTime = "出版时间:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("版次")) - edition = "版次:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("包装")) - binding = "装帧:" + propParam.categorys[1].name; } - var bookStr = publisher + "\r\n" + "\r\n" + - isbn + "\r\n" + "\r\n" + - bookName + "\r\n" + "\r\n" + - bookPrice + "\r\n" + "\r\n" + - author + "\r\n" + "\r\n" + - publishTime + "\r\n" + "\r\n" + - edition + "\r\n" + "\r\n" + - binding; - - var bookImg = new Bitmap(800, 800); - using (Graphics g = Graphics.FromImage(bookImg)) + if (upProdParam.product.info.category.FirstOrDefault()?.name == "成人用品" && upProdParam.product.info.category[1].name != "情趣内衣") { - g.Clear(Color.White); - //Font font = new Font("宋体", 15, FontStyle.Bold); - Font font = new Font("微软雅黑", 15, FontStyle.Regular); - Brush textBrush = Brushes.Black; - g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - RectangleF rectF = new RectangleF(80, 80, 800 - 80, 800 - 80); - g.DrawString(bookStr, font, textBrush, rectF); + upProdParam.product.info.brandId = wxEditProdInfo.product.info.brandId.ParseToLong(); } - - Thread.Sleep(Randomx.GetId(500, 800)); - var locationStr = UploadImg(shop, bookImg, cell); - if (!locationStr.Contains("\"success\":true")) - return locationStr; - var location = BaseRegex.GetStringJson(ref locationStr, "Location"); - upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "1111485", qualificationUrl = new List() { location }, }); } - #endregion - - #region 标签图 食品类生成食品图片 - //qualificationList - if (upProdParam.product.info.category.FirstOrDefault()?.name == "食品饮料" || prodInfo.detail.cats.FirstOrDefault() == "食品饮料") + else { - if (cell != null) + #region 标签图 书籍类生成书籍图片 + //qualificationList + if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸") { - Invoke(new Action(() => + if (cell != null) { - cell.Value = "正在生成食品饮料专有信息"; - })); + Invoke(new Action(() => + { + cell.Value = "正在生成图书专有信息"; + })); + } + + string publisher = "出版社:" + new List() { "技术出版社", "文化出版社", "美术出版社" }[Randomx.GetId(3)]; + string isbn = "ISBN:"; + string bookName = "书名:"; + string bookPrice = "定价:" + upProdParam.product.productSkus.Max(s => s.productSkuInfo.salePrice) * 0.01; + string author = "作者:王老师"; + string publishTime = "出版时间:" + DateTime.Now.AddMonths(-3).ToString("yyyy年MM月dd日"); + string edition = "版次:1"; + string binding = "装帧:平装"; + + foreach (var propParam in upProdParam.product.info.param) + { + if (propParam.categorys[0].name.Contains("出版社名称")) + publisher = "出版社:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("ISBN版号/CN刊号")) + isbn = "ISBN:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("书名")) + bookName = "书名:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("定价")) + { + //bookPrice = "定价:" + propParam.categorys[1].name; + propParam.categorys[1].name = bookPrice; + } + else if (propParam.categorys[0].name.Contains("作者")) + author = "作者:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("出版时间")) + publishTime = "出版时间:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("版次")) + edition = "版次:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("包装")) + binding = "装帧:" + propParam.categorys[1].name; + } + + var bookStr = publisher + "\r\n" + "\r\n" + + isbn + "\r\n" + "\r\n" + + bookName + "\r\n" + "\r\n" + + bookPrice + "\r\n" + "\r\n" + + author + "\r\n" + "\r\n" + + publishTime + "\r\n" + "\r\n" + + edition + "\r\n" + "\r\n" + + binding; + + var bookImg = new Bitmap(800, 800); + using (Graphics g = Graphics.FromImage(bookImg)) + { + g.Clear(Color.White); + //Font font = new Font("宋体", 15, FontStyle.Bold); + Font font = new Font("微软雅黑", 15, FontStyle.Regular); + Brush textBrush = Brushes.Black; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + RectangleF rectF = new RectangleF(80, 80, 800 - 80, 800 - 80); + g.DrawString(bookStr, font, textBrush, rectF); + } + + Thread.Sleep(Randomx.GetId(500, 800)); + var locationStr = UploadImg(shop, bookImg, cell); + if (!locationStr.Contains("\"success\":true")) + return locationStr; + var location = BaseRegex.GetStringJson(ref locationStr, "Location"); + upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "1111485", qualificationUrl = new List() { location }, }); } + #endregion - - string foodName = "食品名称:" + prodTitle; - string companyName = "生产商名称:中国地区食品厂"; - string SCID = "食品生产许可证编号:SC10241162100670"; - string GBID = "产品标准号:GB 2726"; - string ExpDate = "保质期:30天"; - string MakeDate = "生产日期:" + DateTime.Now.AddDays(-15).ToString("yyyy-MM-dd"); - string NetContent = "净含量:见包装"; - string Pack = "包装方式:袋装"; - string inList = "配料表:水"; - string contact = "联系方式:无"; - string address = "地址:见包装"; - string Storage = "贮存条件:常温"; - - foreach (var propParam in upProdParam.product.info.param) + #region 标签图 食品类生成食品图片 + //qualificationList + if (upProdParam.product.info.category.FirstOrDefault()?.name == "食品饮料" || prodInfo.detail.cats.FirstOrDefault() == "食品饮料") { - if (propParam.categorys[0].name.Contains("食品名称")) - foodName = "食品名称:" + 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.Contains("见包装") && !propParam.categorys[1].name.Contains("见外包装")) - GBID = "产品标准号:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("保质期")) - ExpDate = "保质期:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("生产日期")) - MakeDate = "生产日期:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("净含量")) - NetContent = "净含量:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("包装方式")) - Pack = "包装方式:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("配料表")) - inList = "配料表:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("联系方式")) - contact = "联系方式:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("地址")) - address = "地址:" + propParam.categorys[1].name; - else if (propParam.categorys[0].name.Contains("贮存条件")) - Storage = "贮存条件:" + propParam.categorys[1].name; + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在生成食品饮料专有信息"; + })); + } + + + string foodName = "食品名称:" + prodTitle; + string companyName = "生产商名称:中国地区食品厂"; + string SCID = "食品生产许可证编号:SC10241162100670"; + string GBID = "产品标准号:GB 2726"; + string ExpDate = "保质期:30天"; + string MakeDate = "生产日期:" + DateTime.Now.AddDays(-15).ToString("yyyy-MM-dd"); + string NetContent = "净含量:见包装"; + string Pack = "包装方式:袋装"; + string inList = "配料表:水"; + string contact = "联系方式:无"; + string address = "地址:见包装"; + string Storage = "贮存条件:常温"; + + foreach (var propParam in upProdParam.product.info.param) + { + if (propParam.categorys[0].name.Contains("食品名称")) + foodName = "食品名称:" + 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.Contains("见包装") && !propParam.categorys[1].name.Contains("见外包装")) + GBID = "产品标准号:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("保质期")) + ExpDate = "保质期:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("生产日期")) + MakeDate = "生产日期:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("净含量")) + NetContent = "净含量:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("包装方式")) + Pack = "包装方式:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("配料表")) + inList = "配料表:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("联系方式")) + contact = "联系方式:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("地址")) + address = "地址:" + propParam.categorys[1].name; + else if (propParam.categorys[0].name.Contains("贮存条件")) + Storage = "贮存条件:" + propParam.categorys[1].name; + } + + var bookStr = foodName + "\r\n" + "\r\n"; + bookStr += companyName + "\r\n" + "\r\n"; + bookStr += SCID + "\r\n" + "\r\n"; + bookStr += GBID + "\r\n" + "\r\n"; + bookStr += ExpDate + "\r\n" + "\r\n"; + bookStr += MakeDate + "\r\n" + "\r\n"; + bookStr += NetContent + "\r\n" + "\r\n"; + bookStr += Pack + "\r\n" + "\r\n"; + bookStr += inList + "\r\n" + "\r\n"; + bookStr += contact + "\r\n" + "\r\n"; + bookStr += address + "\r\n" + "\r\n"; + bookStr += Storage + "\r\n" + "\r\n"; + + var bookImg = new Bitmap(800, 800); + using (Graphics g = Graphics.FromImage(bookImg)) + { + g.Clear(Color.White); + //Font font = new Font("宋体", 15, FontStyle.Bold); + Font font = new Font("微软雅黑", 15, FontStyle.Regular); + Brush textBrush = Brushes.Black; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + RectangleF rectF = new RectangleF(80, 80, 800 - 80, 800 - 80); + g.DrawString(bookStr, font, textBrush, rectF); + } + + Thread.Sleep(Randomx.GetId(500, 800)); + var locationStr = UploadImg(shop, bookImg, cell); + if (!locationStr.Contains("\"success\":true")) + return locationStr; + var location = BaseRegex.GetStringJson(ref locationStr, "Location"); + upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "50000057", qualificationUrl = new List() { location }, }); } + #endregion - var bookStr = foodName + "\r\n" + "\r\n"; - bookStr += companyName + "\r\n" + "\r\n"; - bookStr += SCID + "\r\n" + "\r\n"; - bookStr += GBID + "\r\n" + "\r\n"; - bookStr += ExpDate + "\r\n" + "\r\n"; - bookStr += MakeDate + "\r\n" + "\r\n"; - bookStr += NetContent + "\r\n" + "\r\n"; - bookStr += Pack + "\r\n" + "\r\n"; - bookStr += inList + "\r\n" + "\r\n"; - bookStr += contact + "\r\n" + "\r\n"; - bookStr += address + "\r\n" + "\r\n"; - bookStr += Storage + "\r\n" + "\r\n"; - - var bookImg = new Bitmap(800, 800); - using (Graphics g = Graphics.FromImage(bookImg)) + #region 标签图 成人用品 + //qualificationList + if (upProdParam.product.info.category.FirstOrDefault()?.name == "成人用品" && upProdParam.product.info.category[1].name != "情趣内衣") { - g.Clear(Color.White); - //Font font = new Font("宋体", 15, FontStyle.Bold); - Font font = new Font("微软雅黑", 15, FontStyle.Regular); - Brush textBrush = Brushes.Black; - g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - RectangleF rectF = new RectangleF(80, 80, 800 - 80, 800 - 80); - g.DrawString(bookStr, font, textBrush, rectF); + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在生成成人用品专有信息"; + })); + } + + string prodName = "产品名称:" + + (upProdParam.product.info.category.Count > 2 ? upProdParam.product.info.category[2].name : upProdParam.product.info.category.LastOrDefault()?.name); + string company = "生产企业:浙江邦臣医药有限公司"; + string address = "制造商地址:浙江省金华市婺城区神丽路1399号6号厂房"; + string model = "产品型号:见包装"; + string material = "材质:其他"; + string user = "适用人群:18岁以上成年人"; + + foreach (var propParam in upProdParam.product.info.param) + { + //if (propParam.categorys[0].name.Contains("产品名称")) + // prodName = "产品名称:" + propParam.categorys[1].name; + } + + var bookStr = prodName + "\r\n" + "\r\n" + + company + "\r\n" + "\r\n" + + address + "\r\n" + "\r\n" + + model + "\r\n" + "\r\n" + + material + "\r\n" + "\r\n" + + user; + + var bookImg = new Bitmap(800, 800); + using (Graphics g = Graphics.FromImage(bookImg)) + { + g.Clear(Color.White); + //Font font = new Font("宋体", 15, FontStyle.Bold); + Font font = new Font("微软雅黑", 15, FontStyle.Regular); + Brush textBrush = Brushes.Black; + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + RectangleF rectF = new RectangleF(80, 80, 800 - 80, 800 - 80); + g.DrawString(bookStr, font, textBrush, rectF); + } + + Thread.Sleep(Randomx.GetId(500, 800)); + var locationStr = UploadImg(shop, bookImg, cell); + if (!locationStr.Contains("\"success\":true")) + return locationStr; + var location = BaseRegex.GetStringJson(ref locationStr, "Location"); + upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "50000089", qualificationUrl = new List() { location }, }); } - Thread.Sleep(Randomx.GetId(500, 800)); - var locationStr = UploadImg(shop, bookImg, cell); - if (!locationStr.Contains("\"success\":true")) - return locationStr; - var location = BaseRegex.GetStringJson(ref locationStr, "Location"); - upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "50000057", qualificationUrl = new List() { location }, }); + if (upProdParam.product.info.category.FirstOrDefault()?.name == "成人用品" && upProdParam.product.info.category[1].name != "情趣内衣") + { + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在生成成人用品专有信息"; + })); + } + + string prodName = (upProdParam.product.info.category.Count > 2 ? upProdParam.product.info.category[2].name : upProdParam.product.info.category.LastOrDefault()?.name); + + var baseImg = TemuKJD.Properties.Resources.qingxu; + var newImg = new Bitmap(baseImg.Width, baseImg.Height); + using (Graphics g = Graphics.FromImage(newImg)) + { + //g.Clear(Color.White); + g.DrawImage(baseImg, new Rectangle(0, 0, newImg.Width, newImg.Height), 0, 0, baseImg.Width, baseImg.Height, GraphicsUnit.Pixel); + + g.FillRectangle(Brushes.White, 860.ParseToInt(), (1024 - 4).ParseToInt(), 500, 120); + + //Font font = new Font("宋体", txtSize.Text.Trim().ParseToInt(), FontStyle.Bold); + Font font = new Font("宋体", 44.ParseToInt(), FontStyle.Regular); + //Font font = new Font("微软雅黑", 15, FontStyle.Regular); + Brush textBrush = Brushes.Black; + textBrush = new SolidBrush(Color.FromArgb(0, 0, 0)); + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; + RectangleF rectF = new RectangleF(860, 1024, baseImg.Width - 80, baseImg.Height - 80); + if (!string.IsNullOrWhiteSpace(prodName.Trim())) + g.DrawString(prodName.Trim(), font, textBrush, rectF); + } + + Thread.Sleep(Randomx.GetId(500, 800)); + var locationStr = UploadImg(shop, newImg, cell); + if (!locationStr.Contains("\"success\":true")) + return locationStr; + var location = BaseRegex.GetStringJson(ref locationStr, "Location"); + upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "50000115", qualificationUrl = new List() { location }, }); + } + #endregion } - #endregion - #region 标签图 成人用品 - //qualificationList - if (upProdParam.product.info.category.FirstOrDefault()?.name == "成人用品" && upProdParam.product.info.category[1].name != "情趣内衣") + if (upProdParam.product.info.category[1].name == "情趣内衣") { - if (cell != null) - { - Invoke(new Action(() => - { - cell.Value = "正在生成成人用品专有信息"; - })); - } - - string prodName = "产品名称:" + - (upProdParam.product.info.category.Count > 2 ? upProdParam.product.info.category[2].name : upProdParam.product.info.category.LastOrDefault()?.name); - string company = "生产企业:浙江邦臣医药有限公司"; - string address = "制造商地址:浙江省金华市婺城区神丽路1399号6号厂房"; - string model = "产品型号:见包装"; - string material = "材质:其他"; - string user = "适用人群:18岁以上成年人"; - - foreach (var propParam in upProdParam.product.info.param) - { - //if (propParam.categorys[0].name.Contains("产品名称")) - // prodName = "产品名称:" + propParam.categorys[1].name; - } - - var bookStr = prodName + "\r\n" + "\r\n" + - company + "\r\n" + "\r\n" + - address + "\r\n" + "\r\n" + - model + "\r\n" + "\r\n" + - material + "\r\n" + "\r\n" + - user; - - var bookImg = new Bitmap(800, 800); - using (Graphics g = Graphics.FromImage(bookImg)) - { - g.Clear(Color.White); - //Font font = new Font("宋体", 15, FontStyle.Bold); - Font font = new Font("微软雅黑", 15, FontStyle.Regular); - Brush textBrush = Brushes.Black; - g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - RectangleF rectF = new RectangleF(80, 80, 800 - 80, 800 - 80); - g.DrawString(bookStr, font, textBrush, rectF); - } - - Thread.Sleep(Randomx.GetId(500, 800)); - var locationStr = UploadImg(shop, bookImg, cell); - if (!locationStr.Contains("\"success\":true")) - return locationStr; - var location = BaseRegex.GetStringJson(ref locationStr, "Location"); - upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "50000089", qualificationUrl = new List() { location }, }); + upProdParam.product.info.extraService.freightInsurance = 0; } - if (upProdParam.product.info.category.FirstOrDefault()?.name == "成人用品" && upProdParam.product.info.category[1].name != "情趣内衣") - { - if (cell != null) - { - Invoke(new Action(() => - { - cell.Value = "正在生成成人用品专有信息"; - })); - } - - string prodName = (upProdParam.product.info.category.Count > 2 ? upProdParam.product.info.category[2].name : upProdParam.product.info.category.LastOrDefault()?.name); - - var baseImg = TemuKJD.Properties.Resources.qingxu; - var newImg = new Bitmap(baseImg.Width, baseImg.Height); - using (Graphics g = Graphics.FromImage(newImg)) - { - //g.Clear(Color.White); - g.DrawImage(baseImg, new Rectangle(0, 0, newImg.Width, newImg.Height), 0, 0, baseImg.Width, baseImg.Height, GraphicsUnit.Pixel); - - g.FillRectangle(Brushes.White, 860.ParseToInt(), (1024 - 4).ParseToInt(), 500, 120); - - //Font font = new Font("宋体", txtSize.Text.Trim().ParseToInt(), FontStyle.Bold); - Font font = new Font("宋体", 44.ParseToInt(), FontStyle.Regular); - //Font font = new Font("微软雅黑", 15, FontStyle.Regular); - Brush textBrush = Brushes.Black; - textBrush = new SolidBrush(Color.FromArgb(0, 0, 0)); - g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; - RectangleF rectF = new RectangleF(860, 1024, baseImg.Width - 80, baseImg.Height - 80); - if (!string.IsNullOrWhiteSpace(prodName.Trim())) - g.DrawString(prodName.Trim(), font, textBrush, rectF); - } - - Thread.Sleep(Randomx.GetId(500, 800)); - var locationStr = UploadImg(shop, newImg, cell); - if (!locationStr.Contains("\"success\":true")) - return locationStr; - var location = BaseRegex.GetStringJson(ref locationStr, "Location"); - upProdParam.product.info.qualificationList.Add(new qualificationParam() { qualificationId = "50000115", qualificationUrl = new List() { location }, }); - } - #endregion - if (cell != null) { Invoke(new Action(() => @@ -3948,6 +4108,8 @@ namespace TemuKJD.WXForms.ProductForms data += "&product_name=" + txtSearchGoodsName.Text.Trim(); if (chkSevenDays.Checked) data += "&add_days_less=7"; + if (chkWXComplateProd.Checked) + data += "&has_wx_format=1"; })); var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -4500,6 +4662,12 @@ namespace TemuKJD.WXForms.ProductForms wxUploadRule.IsAiShortTitle = chkAiShortTitle.Checked; NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_upload_rule", wxUploadRule); } + + private void chkUseWXComplateProd_CheckedChanged(object sender, EventArgs e) + { + wxUploadRule.IsUseWXComplateProd = chkUseWXComplateProd.Checked; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_upload_rule", wxUploadRule); + } } public class WXUpload @@ -4918,5 +5086,6 @@ Content-Type: application/octet-stream public int FilterBoundMinSave { get; set; } = 1000; public int FilterBoundMaxSave { get; set; } = 1000; public bool IsAiShortTitle { get; set; } = false; + public bool IsUseWXComplateProd { get; set; } } } diff --git a/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs index d1d979c..a4d09ab 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs @@ -1129,11 +1129,39 @@ namespace TemuKJD.WXForms.ProductForms } List downSkuExistLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + // 查询作废库有没有 + url = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + Thread.Sleep(500); + data = UserLogin.GetSignaturex(); + data += "&search_secret_spu_ids=" + string.Join(",", extCodeLst.Distinct()); + data += "&wx_safe_status=" + "违规商品"; + 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 result, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = result; + Invoke(new Action(() => + { + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "查询商品违规错误:" + errMsg; + } + })); + continue; + } + List downDbProdExistLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + foreach (var row in rowLstTmp) { var extCode = row.Cells["colExtCode"].Value.ParseToString(); - var neewDownSkuLst = downSkuExistLst.Where(se => se.secret_spu_id == extCode).ToList(); - if (neewDownSkuLst.Count == 0) + // 下架sku + var needDownSkuLst = downSkuExistLst.Where(se => se.secret_spu_id == extCode).ToList(); + // 违规商品 + var needDownProdLst = downDbProdExistLst.Where(pe => pe.secret_spu_id == extCode).ToList(); + if (needDownSkuLst.Count == 0 && needDownProdLst.Count == 0) { Invoke(new Action(() => { @@ -1143,6 +1171,10 @@ namespace TemuKJD.WXForms.ProductForms } else { + if (needDownProdLst.Count > 0) + { + + } Invoke(new Action(() => { row.Cells["colOpResult"].Value = "正在检测同步"; @@ -1187,7 +1219,7 @@ namespace TemuKJD.WXForms.ProductForms var jSkuStr = jSku.ParseToString(); var itemCode = jSku["productSkuInfo"]?["skuCode"].ParseToString(); var needDownSku = downSkuExistLst.FirstOrDefault(se =>se.secret_spu_id == extCode && se.secret_sku_id == itemCode); - if (needDownSku != null) + if (needDownSku != null || needDownProdLst.Count > 0) { if (//jSku["productSkuInfo"]["stockInfo"]["stockNum"].ParseToString() != "0" || jSku["productSkuInfo"]["stockInfo"]["totalNum"].ParseToString() != "0" || diff --git a/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs b/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs index eb7e000..242c8d3 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopBrowserObject.cs @@ -3,7 +3,9 @@ using AllBase.Helper; using AllBase.Model.Param.PDDProdParam; using AllBase.Model.Result; using AllBase.Model.Result.PDDResult; +using AllBase.Model.Result.WXResult; using NaiBa.Util.Extension; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -14,8 +16,9 @@ using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.BaseForms; using TemuKJD.BLL; -using TemuKJD.PDDForms.AdminForms; using TemuKJD.PDDForms.ProductThirdSelectForms; +using TemuKJD.WXForms.AdminForms; +using TemuKJD.WXForms.ProductForms; using Work; namespace TemuKJD.WXForms.ShopForms @@ -25,5 +28,153 @@ namespace TemuKJD.WXForms.ShopForms public delegate void InfoReceivedHandler(string information); public event InfoReceivedHandler OnInfoReceived; + public string getProduct(string sProdId, string supplierId, bool notSaveDb = false) + { + var prodId = sProdId.ParseToLong(); + if (prodId <= 0) + { + MainForm.instance.Invoke(new Action(() => + { + BaseMsgForm.ShowError("商品Id不存在!"); + })); + return "failed"; + } + //var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == supplierId.ParseToString()); + var shop = WXAdminShopListForm.lstAdminShopInfo.FirstOrDefault(s => s.ShopId == supplierId.ParseToString()); + if (shop == null) + shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == supplierId.ParseToString()); + if (string.IsNullOrEmpty(supplierId) || shop == null) + { + MainForm.instance.Invoke(new Action(() => + { + BaseMsgForm.ShowError("店铺不存在!"); + })); + return "failed"; + } + + Task.Run(() => + { + var msg = getPDDProductWidthEdit(shop, sProdId); + if (!string.IsNullOrEmpty(msg)) + { + if (!msg.StartsWith("success") && !msg.StartsWith("商品回采保存成功")) + { + MainForm.instance.Invoke(new Action(() => + { + BaseMsgForm.ShowError(msg); + })); + } + else + { + MainForm.instance.Invoke(new Action(() => + { + BaseMsgForm.ShowInfo(msg); + })); + } + } + }); + + return "success"; + } + + public string getPDDProductWidthEdit(ShopLoginInfo shop, string prodId) + { + try + { + Thread.Sleep(Randomx.GetId(10, 50)); + string getEditProdRst = ""; + try + { + getEditProdRst = WXUpload.getEditProductV2(shop, prodId); + Thread.Sleep(Randomx.GetId(50, 100)); + if (getEditProdRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + } + if (!getEditProdRst.Contains("\"success\":true")) + { + var errmsg = BaseRegex.GetStringJson(ref getEditProdRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = getEditProdRst; + if (shop.LoginStatus != "登录成功") + errmsg = "店铺掉线"; + + return "商品回采失败!" + errmsg; + } + } + catch (Exception ex) + { + //OnInfoReceived("商品获取失败!商品数据格式获取失败!" + ex.Message); + return "商品回采失败!商品数据格式获取失败!" + ex.Message; + } + + WXGetEditProductInfoLite wxProdInfoLite = null; + try + { + wxProdInfoLite = JsonHelper.DeserializeJsonToObject(getEditProdRst); + var wxProdInfoLiteStr = JsonHelper.SerializeObject(wxProdInfoLite); + if (string.IsNullOrWhiteSpace(wxProdInfoLite.product.info.spuCode)) + { + return "商品回采失败:外部编码采集失败,跳过"; + } + } + catch (Exception ex) + { + return "商品回采失败:格式转换失败 " + ex.Message; + } + + + // 查询商品库有没有 + var url = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + Thread.Sleep(200); + var data = UserLogin.GetSignaturex(); + data += "&search_secret_spu_ids=" + wxProdInfoLite.product.info.spuCode; + data += "&wx_safe_status=" + "安全商品,未校验"; + 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 result, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = result; + return "查询回采商品错误:" + errMsg; + } + List complateDbProdExistLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + if (complateDbProdExistLst.Count == 0) + { + return "回采商品不存在"; + } + + + url = BaseClass.BuildPDDObjString("product/add_prod_wx_complate"); + Thread.Sleep(200); + data = UserLogin.GetSignaturex(); + data += "&secret_spu_id=" + wxProdInfoLite.product.info.spuCode; + data += "&spu_id=" + complateDbProdExistLst[0].spu_id; + data += "&coid=" + complateDbProdExistLst[0].skc_id; + JsonSerializerSettings jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + data += "&wx_edit_prod_json=" + GetHtml.UrlEncodeUtf8(JsonConvert.SerializeObject(wxProdInfoLite, jsonSetting)); + 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 result, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = result; + return "查询回采商品错误:" + errMsg; + } + else + { + return "商品回采保存成功!"; + } + } + catch (Exception ex) + { + return "商品采集失败!" + ex.Message; + } + return "商品采集失败!"; + } } } diff --git a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs index 0bfa3df..c8e9f43 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs @@ -445,7 +445,8 @@ namespace TemuKJD.WXForms.ShopForms List shopIdList = GetCheckedShopIdList(); this.Invoke(new Action(() => { - foreach(DataGridViewRow row in dgvShop.Rows.Cast()) + var rows = dgvShop.Rows.Cast().ToList(); + foreach (DataGridViewRow row in rows) { if (!shopList.Any(s => s.ShopId == row.Cells["colShopId"].Value.ParseToString())) this.dgvShop.Rows.Remove(row); diff --git a/TEMUKJD/WXForms/ShopForms/WXShopLoginForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopLoginForm.cs index 33912ab..6f0bfa4 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopLoginForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopLoginForm.cs @@ -446,7 +446,7 @@ namespace TemuKJD.WXForms.ShopForms sb.Append("(function(){"); sb.Append("CefSharp.BindObjectAsync('shopObj');"); sb.Append("})();"); - //cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString()); + cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString()); } //public Func BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行) @@ -538,6 +538,58 @@ namespace TemuKJD.WXForms.ShopForms this.lstShopCompany.Add(sc); }); } + + if (BaseClass.UserAuthority.ParseToString().Contains("微信回采") && currentUrl.StartsWith("https://store.weixin.qq.com/shop/goods/list")) + { + //Task.Run(() => { + string sAddInputJs = @" + document.addEventListener('wheel', function(event) { + // 检查滚动方向 + //if (event.deltaY < 0) { + // console.log('向上滚动'); + //} else { + // console.log('向下滚动'); + //} + // 或者使用 event.deltaX 来检查水平滚动 + //if (event.deltaX < 0) { + // console.log('向左滚动'); + //} else if (event.deltaX > 0) { + // console.log('向右滚动'); + //} + + // 阻止默认的滚动行为(如果有需要) + //event.preventDefault(); + + addGetProdButton(); + }); + addGetProdButton(); + + function addGetProdButton() { + const element = document.getElementsByName('goods')[0]; + const shadowRoot = element.shadowRoot; + var productLst = shadowRoot.querySelector('micro-app-body').getElementsByClassName('goods_info') + for ( i= 0; i < productLst.length; i++) { + var addBtnItem = productLst[i]; //.parentElement.parentElement.parentElement; + var pos = addBtnItem.innerHTML.indexOf('ID:') + if (addBtnItem.innerHTML.indexOf('回采') < 0 && pos >= 0) { + var sSpuId = addBtnItem.innerHTML.substring(pos + 3); + sSpuId = sSpuId.substring(0, sSpuId.indexOf('"" + //addBtnItem.innerHTML += """" + //addBtnItem.innerHTML = addBtnItem.innerHTML.replace(""分享 "", ""分享 ""); + var newDiv = document.createElement(""div""); + newDiv.innerHTML = ""回采<\a>""; + addBtnItem.lastChild.appendChild(newDiv); + } + } + }"; + cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sAddInputJs); + //}); + + //const element = document.getElementsByName('goods')[0] + //const shadowRoot = element.shadowRoot; + //shadowRoot.querySelector('micro-app-body').getElementsByClassName('goods_info') + } } /// diff --git a/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs b/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs index 89612a0..78a6b19 100644 --- a/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs +++ b/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs @@ -411,6 +411,7 @@ namespace TemuKJD.WXForms.TalkForms if (shop == null) return; + string resData = responseData; Task.Run(() => { var row = dgvShop.Rows.Cast().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId); @@ -421,7 +422,7 @@ namespace TemuKJD.WXForms.TalkForms { //{"base_resp":{"err_msg":"ok","ret":0},"list":[{"session_status":1,"summary":{"accept_by_robot":2,"accept_by_robot_time":"0","complaint_info":{"complaint_expire_time":0,"complaint_id":"0"},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM6vehibAAib9ia4ejxH7ibula7RuH4rTO7H7equgOZPVZl5Ew\\/64\",\"nickname\":\"Vader\",\"list\":[],\"qa_info_list\":[]}","id":"1","is_delete":0,"lastest_msg_content":"","lastest_msg_id":"4348928114244206592","lastest_msg_kf_content":"{\"content\":\"你好\"}","lastest_user_msg_time":"1768807915","msg_type":1,"recv_open_account":"wxf4460bce24e5d58d","recv_openid":"","room_id":"4348927951587721218","scene":6,"send_open_account":"","send_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM","send_scene":6,"unread_msg_num":"1","unreplied_msg_time":"1768807915","update_time":"1768807915"}}],"num":1} //{"base_resp":{"err_msg":"ok","ret":0},"list":[],"num":0} - var jObj = JsonHelper.JObjectParse(responseData); + var jObj = JsonHelper.JObjectParse(resData); //{"base_resp":{"err_msg":"ok","ret":0},"list":[{"session_status":1,"summary":{"accept_by_robot":2,"accept_by_robot_time":"0","complaint_info":{"complaint_expire_time":0,"complaint_id":"0"},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"160","is_delete":0,"lastest_msg_content":"","lastest_msg_id":"4349035115016224786","lastest_msg_kf_content":"{\"type\":13,\"content\":\"{\\\"finder_live_id\\\":\\\"\\\",\\\"finder_username\\\":\\\"\\\",\\\"finder_object_id\\\":\\\"\\\",\\\"finder_nonce_id\\\":\\\"\\\",\\\"app_id\\\":\\\"wxca8d4b8e8feedc2a\\\",\\\"page_path\\\":\\\"main/pages/productDetail/productDetail.html?productId=10000405003763&realappid=wx2664a142d76831dd&cacheKey=3d585c9672aa92a088812cf9f8b30e0a&cacheType=backup&businessId=1&requestId=4349035091393462273&subScene=1208\\\",\\\"product_id\\\":\\\"10000405003763\\\",\\\"cover_url\\\":\\\"https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/695a36c7000ab9b70c029451f0d71715000000a100004f50?imageView2/1/w/400/h/400/q/50\\\",\\\"product_title\\\":\\\"运动套装女春秋2024新款时尚小熊卫衣连帽宽松跑步服休闲两件套潮\\\",\\\"market_price\\\":\\\"39530\\\",\\\"selling_price\\\":\\\"38730\\\",\\\"platform_head_img\\\":\\\"http://mmbiz.qpic.cn/mmbiz_jpg/cpXibyAIsexe8vObd8jWMktZk6sg1kKJgicdnzFiaxR1XvU0Kchlfdewsu7JETDF3lLp5cyULNNee94UPGeU1r9Rw/0?wx_fmt=jpeg/0\\\",\\\"platform_name\\\":\\\"夜笙供应链\\\",\\\"shop_window_id\\\":\\\"\\\",\\\"live_status\\\":\\\"\\\",\\\"flash_sale_price\\\":0,\\\"flash_sale_end_time\\\":0,\\\"ec_source\\\":\\\"\\\",\\\"selling_price_wording\\\":\\\"\\\",\\\"ext_conv\\\":{\\\"ext_conv_type\\\":1,\\\"ec_product_url\\\":\\\"https://channels.weixin.qq.com/shop?login_appid=wx2664a142d76831dd&redirect_url=%2Fgoods%2Fentry%3FproductId%3D10000405003763\\\",\\\"context\\\":\\\"\\\"}}\"}","lastest_user_msg_time":"1768814292","msg_type":11,"recv_open_account":"wx2664a142d76831dd","recv_openid":"","room_id":"4349034984388345858","scene":6,"send_open_account":"","send_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac","send_scene":6,"unread_msg_num":"1","unreplied_msg_time":"1768814293","update_time":"1768814292"}}],"num":1} //if (jObj["num"].ParseToInt() <= 0) // return; @@ -431,13 +432,13 @@ namespace TemuKJD.WXForms.TalkForms { //{"base_resp":{"err_msg":"ok","ret":0},"pin_summary_list":[],"summary_cursor":"4349020771451830279","summary_list":[{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"5","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":0,"lastest_msg_content":"","lastest_msg_id":"4349029975415865363","lastest_msg_kf_content":"{\"content\":\"你好\"}","lastest_user_msg_time":"1768813986","msg_type":1,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348999364009132044","room_session_status":0,"scene":6,"send_open_account":"","send_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"78","unread_msg_num":"1","unreplied_msg_time":"1768813988","update_time":"1768813986","user_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac"}]} //{"base_resp":{"err_msg":"ok","ret":0},"pin_summary_list":[],"summary_cursor":"4349035365970083850","summary_list":[{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"160","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4349035365970083850","lastest_msg_kf_content":"{\"content\":\"在的亲\"}","lastest_user_msg_time":"1768814292","msg_type":1,"recv_open_account":"wx2664a142d76831dd","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4349034984388345858","room_session_status":0,"scene":6,"send_open_account":"wx2664a142d76831dd","send_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"3186","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768814308","user_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/sstLNDibp2U6zXibjfoE1tUiaHCOKX1olnJNZnFGehlibg4liacAAWmj2VQ\\/64\",\"nickname\":\"我是上帝的女儿李善容\",\"list\":[],\"qa_info_list\":[]}","id":"154","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":0,"lastest_msg_content":"","lastest_msg_id":"4347360170765271042","lastest_msg_kf_content":"{\"type\":\"SessionTimeoutRedDot\",\"content\":\"你已超过10分钟未回复该会话,请及时处理。\",\"room_id\":\"4339855644638920709\",\"msg_id\":\"4347350053416747021\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768713854","msg_type":24,"recv_open_account":"wx2664a142d76831dd","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4339855644638920709","room_session_status":0,"scene":6,"send_open_account":"","send_openid":"o9cq802n8yQWq6bwbx2w8rp_aygk","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"3042","unread_msg_num":"0","unreplied_msg_time":"1768713857","update_time":"1768714458","user_openid":"o9cq802n8yQWq6bwbx2w8rp_aygk"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/IbQhd2Y9oKdcIf3tbP1pciaic0icL271V7iaqWQqGvrrrMbq26tSHnFf9Q\\/64\",\"nickname\":\"素色🍃᭄年华\",\"list\":[],\"qa_info_list\":[]}","id":"155","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4347305586245287937","lastest_msg_kf_content":"{\"type\":\"SessionTimeoutRedDot\",\"content\":\"你已超过10分钟未回复该会话,请及时处理。\",\"room_id\":\"4340576309047115777\",\"msg_id\":\"4347295489464516617\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768710602","msg_type":24,"recv_open_account":"wx2664a142d76831dd","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4340576309047115777","room_session_status":0,"scene":6,"send_open_account":"","send_openid":"o9cq80-t4oDOfQD6J6oJ8pp4yA7M","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"3035","unread_msg_num":"0","unreplied_msg_time":"1768710604","update_time":"1768711205","user_openid":"o9cq80-t4oDOfQD6J6oJ8pp4yA7M"}]} - var jObj = JsonHelper.JObjectParse(responseData); + var jObj = JsonHelper.JObjectParse(resData); return; } else if (url.Contains("action=get_session_summary")) { //{"base_resp":{"err_msg":"ok","ret":0},"pin_summary_list":[],"summary_cursor":"4349042918267191303","summary_list":[{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEIuS5Aa65qsCwzKFpmSiciazvMbicxfEyHvTmD8MpQibR85wg\\/64\",\"nickname\":\"jtt\",\"list\":[],\"qa_info_list\":[]}","id":"5","is_delete":0,"is_expired":0,"is_pin":0,"is_pin_update_time":"0","kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4349042918267191303","lastest_msg_kf_content":"{\"content\":\"您好亲,有什么需要帮助的吗\"}","lastest_user_msg_time":"1768814710","msg_type":1,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348999364009132044","room_session_status":0,"scene":6,"send_open_account":"wxad4163db54e87b44","send_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","send_scene":6,"session_close_source":0,"star_label":0,"star_label_update_time":"0","sync_id":"87","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768814758","user_openid":"o9cq800-I4XeS-NiBgsIae1y38Ac"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM6vehibAAib9ia4ejxH7ibula7RuH4rTO7H7equgOZPVZl5Ew\\/64\",\"nickname\":\"Vader\",\"list\":[],\"qa_info_list\":[]}","id":"2","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348993861855264779","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348684483414425612\",\"msg_id\":\"4348993861855264779\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768811222","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348684483414425612","scene":6,"send_open_account":"","send_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"59","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768811834","user_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM61GOTjShX4GX3aSpuNiavic5xxAickB0fxH1Bic8Az5d0LCA\\/64\",\"nickname\":\"春暖花开\",\"list\":[],\"qa_info_list\":[]}","id":"4","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348932333527973902","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348906544732405760\",\"msg_id\":\"4348932333527973902\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768807466","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348906544732405760","scene":6,"send_open_account":"","send_openid":"o9cq807-mRKhlh-MPBpeYyar46HA","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"44","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768808166","user_openid":"o9cq807-mRKhlh-MPBpeYyar46HA"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PdibpV1sFDHeGJDbIwia4cv3UUPxnHqjFQ4piaSFEeJlViaeDPicHuQITkw\\/64\",\"nickname\":\"春雨\",\"list\":[],\"qa_info_list\":[]}","id":"3","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348888492147638275","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348715191491690506\",\"msg_id\":\"4348888492147638275\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768795504","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4348715191491690506","scene":6,"send_open_account":"","send_openid":"o9cq805nSmIjHqNthn9QbNimVAsE","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"29","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768805553","user_openid":"o9cq805nSmIjHqNthn9QbNimVAsE"},{"complaint_info":{"complaint_expire_time":0,"complaint_id":"","complaint_status":0},"ext_info":{},"extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/PiajxSqBRaEJLajvZG4pYqhDrljibs7sNChSx6Cib2mN6KicJgbRESR8Rg\\/64\",\"nickname\":\"喂累了额\",\"list\":[],\"qa_info_list\":[]}","id":"1","is_delete":0,"is_expired":1,"is_pin":0,"is_pin_update_time":"0","kf_reply_status":1,"lastest_msg_content":"","lastest_msg_id":"4348884857446612993","lastest_msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4347660512343588869\",\"msg_id\":\"4348884857446612993\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","lastest_user_msg_time":"1768732601","msg_type":5,"recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","room_id":"4347660512343588869","scene":6,"send_open_account":"","send_openid":"o9cq8038HnVM43HL44F5yGx6S6P0","send_scene":6,"star_label":0,"star_label_update_time":"0","sync_id":"27","unread_msg_num":"0","unreplied_msg_time":"0","update_time":"1768805337","user_openid":"o9cq8038HnVM43HL44F5yGx6S6P0"}]} - var jObj = JsonHelper.JObjectParse(responseData); + var jObj = JsonHelper.JObjectParse(resData); if (jObj.IsNullOrEmpty() || jObj["summary_list"].IsNullOrEmpty()) { return; @@ -457,6 +458,8 @@ namespace TemuKJD.WXForms.TalkForms continue; if (summary.Contains("用户超时未回")) continue; + if (summary.Contains("该对话已投诉成功, 投诉有效期内不计入考核。")) + continue; // 最后一条是自己回复的,返回 var send_open_account = summaryObj["send_open_account"].ParseToString(); if (send_open_account == shop.ShopId) @@ -488,12 +491,12 @@ namespace TemuKJD.WXForms.TalkForms //{"finder_live_id":"","finder_username":"","finder_object_id":"","finder_nonce_id":"","app_id":"wxca8d4b8e8feedc2a","page_path":"main/pages/productDetail/productDetail.html?productId=10000444468035&realappid=wx2664a142d76831dd&cacheKey=4f69a37c98838eb27e484b6def86d0ca&cacheType=backup&businessId=1&requestId=4348991209208823817&subScene=1208","product_id":"10000444468035","cover_url":"https://wst.wxapp.tc.qq.com/161/20304/snscosdownload/SH/reserved/69677007000d0f3329fc594d77ef1b15000000a000004f50?imageView2/1/w/400/h/400/q/50","product_title":"保暖加绒中老年妈妈装棉服","market_price":"6980","selling_price":"6180","platform_head_img":"http://mmbiz.qpic.cn/mmbiz_jpg/cpXibyAIsexe8vObd8jWMktZk6sg1kKJgicdnzFiaxR1XvU0Kchlfdewsu7JETDF3lLp5cyULNNee94UPGeU1r9Rw/0?wx_fmt=jpeg/0","platform_name":"夜笙供应链","shop_window_id":"","live_status":"","flash_sale_price":0,"flash_sale_end_time":0,"ec_source":"","selling_price_wording":"","ext_conv":{"ext_conv_type":1,"ec_product_url":"https://channels.weixin.qq.com/shop?login_appid=wx2664a142d76831dd&redirect_url=%2Fgoods%2Fentry%3FproductId%3D10000444468035","context":""}} try { - if (responseData.Contains("\"total_num\":0")) + if (resData.Contains("\"total_num\":0")) return; // 只有一条消息且是更新房间游标的直接退出 - if (responseData.Contains("\"total_num\":1") && responseData.Contains("更新房间游标")) + if (resData.Contains("\"total_num\":1") && resData.Contains("更新房间游标")) return; - if (responseData.Contains("鉴权失败")) + if (resData.Contains("鉴权失败")) { return; //WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); @@ -501,7 +504,7 @@ namespace TemuKJD.WXForms.TalkForms } //{"base_resp":{"ret":30000,"err_msg":"鉴权失败"}} - var jObj = JsonHelper.JObjectParse(responseData); + var jObj = JsonHelper.JObjectParse(resData); if (jObj["total_num"].ParseToInt() <= 0) return; // 自己发的消息或者客服自动回复消息不闪烁提示且将表格颜色还原 ----------------------------------------------------------------------------------------------- @@ -529,11 +532,14 @@ namespace TemuKJD.WXForms.TalkForms // {"base_resp":{"err_msg":"ok","ret":0},"kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","list":[{"accept_by_robot":0,"async_check_spam_stage":0,"client_ms":"1768806150100","create_time":"1768806150","create_time_ms":"1768806150100","encrypt_msg_kf_content":"","extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM6vehibAAib9ia4ejxH7ibula7RuH4rTO7H7equgOZPVZl5Ew\\/64\",\"nickname\":\"Vader\",\"list\":[],\"qa_info_list\":[]}","id":"31","imunion_msg_id":"mmec-commkf-v2-4348898496719831040","insert_create_time_ms":"1768806150148","is_anonymous_msg":0,"is_delete":0,"is_expired":0,"is_fail":0,"is_hit_spam":0,"is_revoked":0,"is_sys_msg":1,"msg_direction":3,"msg_id":"4348898496719831040","msg_kf_content":"{\"type\":\"EndRoom\",\"content\":\"用户超时未回,会话已结束,两天内仍可再次联系\",\"room_id\":\"4348684483414425612\",\"msg_id\":\"4348898496719831040\",\"is_anonymous_msg\":0,\"need_update_summary\":1}","msg_type":5,"properties":"0","recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","reply_type":0,"room_id":"4348684483414425612","room_useruin":"0","scene":6,"send_open_account":"","send_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM","send_scene":6,"session_id":"0","update_time":"1768806150"}],"total_num":1} if (content.Contains("用户超时未回,会话已结束,两天内仍可再次联系")) return; - if (content.Contains("会话已结束")) return; if (content.Contains("用户已结束会话") || content.Contains("客服已结束会话")) return; + if (content.Contains("用户超时未回")) + return; + if (content.Contains("该对话已投诉成功, 投诉有效期内不计入考核。")) + return; // {"base_resp":{"err_msg":"ok","ret":0},"kf_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","list":[{"accept_by_robot":0,"async_check_spam_stage":0,"client_ms":"1768808777632","create_time":"1768808777","create_time_ms":"1768808777632","encrypt_msg_kf_content":"","extra_info":"{\"head_img\":\"http:\\/\\/wx.qlogo.cn\\/mmhead\\/Q3auHgzwzM6vehibAAib9ia4ejxH7ibula7RuH4rTO7H7equgOZPVZl5Ew\\/64\",\"nickname\":\"Vader\",\"list\":[],\"qa_info_list\":[]}","id":"46","imunion_msg_id":"mmec-commkf-v2-4348942579357122569","insert_create_time_ms":"1768808777711","is_anonymous_msg":1,"is_delete":0,"is_expired":0,"is_fail":0,"is_hit_spam":0,"is_revoked":0,"is_sys_msg":1,"msg_direction":3,"msg_id":"4348942579357122569","msg_kf_content":"{\"type\":\"AcceptRoom\",\"content\":\"用户已接入\",\"room_id\":\"4348684483414425612\",\"msg_id\":\"4348942569912549377\",\"is_anonymous_msg\":1,\"need_update_summary\":0,\"summary_content\":\"{\\\"id\\\":\\\"2\\\",\\\"room_id\\\":\\\"4348684483414425612\\\",\\\"scene\\\":6,\\\"account\\\":\\\"3641079964\\\",\\\"send_scene\\\":6,\\\"send_account\\\":\\\"user_acct_2044334303_6\\\",\\\"send_uin\\\":2044334303,\\\"lastest_msg_id\\\":\\\"4348942543756476432\\\",\\\"lastest_msg_content\\\":\\\"\\\",\\\"unread_msg_num\\\":\\\"1\\\",\\\"update_time\\\":\\\"1768808774\\\",\\\"kf_uin\\\":1525084715,\\\"extra_info\\\":\\\"{\\\\\\\"head_img\\\\\\\":\\\\\\\"http:\\\\\\\\\\\\\\/\\\\\\\\\\\\\\/wx.qlogo.cn\\\\\\\\\\\\\\/mmhead\\\\\\\\\\\\\\/Q3auHgzwzM6vehibAAib9ia4ejxH7ibula7RuH4rTO7H7equgOZPVZl5Ew\\\\\\\\\\\\\\/64\\\\\\\",\\\\\\\"nickname\\\\\\\":\\\\\\\"Vader\\\\\\\",\\\\\\\"list\\\\\\\":[],\\\\\\\"qa_info_list\\\\\\\":[]}\\\",\\\"lastest_msg_kf_content\\\":\\\"{\\\\\\\"content\\\\\\\":\\\\\\\"测试\\\\\\\"}\\\",\\\"lastest_user_msg_time\\\":\\\"1768808774\\\",\\\"msg_type\\\":1,\\\"send_open_account\\\":\\\"\\\",\\\"recv_open_account\\\":\\\"wxad4163db54e87b44\\\",\\\"send_openid\\\":\\\"o9cq802Ue5pCVRmzuzkFUcnoHjcM\\\",\\\"recv_openid\\\":\\\"o9cq801T0m1dIivQzMyUwBvW5Znk\\\",\\\"is_delete\\\":0,\\\"star_label\\\":0,\\\"star_label_update_time\\\":\\\"0\\\",\\\"unreplied_msg_time\\\":\\\"1768808777\\\",\\\"kf_reply_status\\\":0,\\\"sync_id\\\":\\\"45\\\",\\\"is_pin\\\":0,\\\"is_pin_update_time\\\":\\\"0\\\",\\\"ext_info\\\":{},\\\"complaint_info\\\":{\\\"complaint_expire_time\\\":0,\\\"complaint_id\\\":\\\"\\\",\\\"complaint_status\\\":0},\\\"user_uin\\\":2044334303,\\\"is_expired\\\":0}\"}","msg_type":5,"properties":"0","recv_open_account":"wxad4163db54e87b44","recv_openid":"o9cq801T0m1dIivQzMyUwBvW5Znk","reply_type":0,"room_id":"4348684483414425612","room_useruin":"0","scene":6,"send_open_account":"","send_openid":"o9cq802Ue5pCVRmzuzkFUcnoHjcM","send_scene":6,"session_id":"0","update_time":"1768808777"}],"total_num":1} //if (content.Contains("用户已接入")) @@ -1043,7 +1049,7 @@ namespace TemuKJD.WXForms.TalkForms Invoke(new Action(() => { if (r != null) - r.Cells["colMessage"].Value = "正在刷新"; + r.Cells["colMessage"].Value = "正在刷新店铺"; })); WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); Invoke(new Action(() => diff --git a/Work/UserLogin.cs b/Work/UserLogin.cs index 9797a27..b88c087 100644 --- a/Work/UserLogin.cs +++ b/Work/UserLogin.cs @@ -85,6 +85,7 @@ namespace Work BaseClass.NickName = BaseRegex.GetStringJson(ref html, "nick_name"); BaseClass.UserName = BaseRegex.GetStringJson(ref html, "user_name"); BaseClass.SaLevel = BaseRegex.GetIntJson(ref html, "sa_level").ParseToInt(); + BaseClass.UserAuthority = BaseRegex.GetStringJson(ref html, "authority"); BaseClass.Mobile = BaseRegex.GetStringJson(ref html, "mobile"); BaseClass.UserVersion = BaseRegex.GetStringJson(ref html, "version").ParseToInt(); BaseClass.UserVersionString = BaseRegex.GetStringJson(ref html, "version_s");