From a2a6719a99118b92d5c4693737edffea59f7d8d4 Mon Sep 17 00:00:00 2001 From: wule Date: Wed, 4 Feb 2026 11:59:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B1=BB=E7=9B=AE=E8=AF=86=E5=88=AB=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=20=20=E5=A4=9A=E9=80=89=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20=20=E5=BE=AE=E4=BF=A1=E4=B8=8A=E8=B4=A7=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20=20=E5=BE=AE=E4=BF=A1=E5=AE=A2=E6=9C=8D=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=AF=86=E5=88=AB=E4=BC=98=E5=8C=96=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 2 +- AllBase/Model/Result/ShopLoginInfo.cs | 1 + AllBase/Randomx.cs | 10 + .../BLL/BXX/BXXProductManage.cs | 157 +++- .../KJD_WebService/BLL/DYXD/DYUserManage.cs | 3 + .../KJD_WebService/BLL/KJD/ToolManage.cs | 148 ++-- .../KJD_WebService/BLL/WXXD/WXShopManage.cs | 2 +- .../KJD_WebService/BLL/WXXD/WXUserManage.cs | 3 + .../KJD_WebService/KJD_WebService.csproj | 2 + .../KJD_WebService/KJD_WebService.csproj.user | 2 +- KJDService/KJD_WebService/Utils/HttpUtils.cs | 149 +++- .../KJD_WebService/Utils/RandomUtils.cs | 69 ++ TEMUKJD/BLL/PDDProdFormConverter.cs | 6 + TEMUKJD/Extension/ControlExtension.cs | 38 + TEMUKJD/KJD.csproj | 1 + ...oductThirdSelectListManageForm.Designer.cs | 306 +++---- .../PDDDBProdEditForm.Designer.cs | 44 +- .../ProductSelectForms/PDDDBProdEditForm.cs | 8 +- .../PDDDBProdListForm.Designer.cs | 2 + .../ProductSelectForms/PDDDBProdListForm.cs | 69 +- .../GetJuShuitanProdForm.Designer.cs | 14 +- .../UserComponent/UcComboBoxMutiSelect .cs | 60 +- .../WXDBProdUploadForm.Designer.cs | 370 +++++--- .../ProductForms/WXDBProdUploadForm.cs | 790 ++++++++++++++---- .../ProductForms/WXDBProdUploadForm.resx | 3 + TEMUKJD/WXForms/ProductForms/WXProductForm.cs | 8 + .../ShopForms/WXShopListForm.Designer.cs | 384 +++++---- TEMUKJD/WXForms/ShopForms/WXShopListForm.cs | 89 +- .../WXForms/TalkForms/WxTalkForm.Designer.cs | 176 +++- TEMUKJD/WXForms/TalkForms/WxTalkForm.cs | 51 +- TEMUKJD/WXForms/TalkForms/WxTalkForm.resx | 6 + 31 files changed, 2223 insertions(+), 750 deletions(-) create mode 100644 KJDService/KJD_WebService/Utils/RandomUtils.cs create mode 100644 TEMUKJD/Extension/ControlExtension.cs diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 2ad5324..ba5c057 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 822; + public static int VersionCount = 826; //public static int VersionCount = 613; /// diff --git a/AllBase/Model/Result/ShopLoginInfo.cs b/AllBase/Model/Result/ShopLoginInfo.cs index 86d3854..91ae9d5 100644 --- a/AllBase/Model/Result/ShopLoginInfo.cs +++ b/AllBase/Model/Result/ShopLoginInfo.cs @@ -194,6 +194,7 @@ namespace AllBase.Model.Result public class AuthInfo { + public string ShopId { get; set; } = ""; public string AccessToken { get; set; } = ""; public string RefreshToken { get; set; } = ""; public string AppKey { get; set; } = ""; diff --git a/AllBase/Randomx.cs b/AllBase/Randomx.cs index 114f816..4ee1b18 100644 --- a/AllBase/Randomx.cs +++ b/AllBase/Randomx.cs @@ -9,6 +9,7 @@ namespace AllBase { public static string WordBase = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; public static string NumberBase = "0123456789"; + public static string WordNumberBase = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz01234567890123456789"; public static string SignWordBase = ".`~^*_| -#$%&?+";//".`~^*_| -#$%&?"; public static int GetId(int max) @@ -39,6 +40,15 @@ namespace AllBase } return s.ToString(); } + public static string GetWordNumber(int len) + { + StringBuilder s = new StringBuilder(); + for (int i = 0; i < len; i++) + { + s.Append(WordNumberBase[new Random(Guid.NewGuid().GetHashCode()).Next(WordNumberBase.Length)]); + } + return s.ToString(); + } /// /// 获取新的属性名称 /// diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index 054d5cb..4cb45de 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -8,6 +8,8 @@ using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; +using System.Drawing; +using System.IO; using System.Linq; using System.Web; using System.Web.Security; @@ -246,6 +248,10 @@ namespace KJD_Web.BLL.BXX if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; + var version = RegexUtils.GetStringQuery(ref inputData, "version").ParseToInt(); + if (version < 823) + return "{\"code\":1,\"msg\":\"当前版本过于陈旧,请立即升级新版\"}"; + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'","\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); var search_spu = RegexUtils.GetStringQuery(ref inputData, "search_spu")?.Replace("'", "\\'"); @@ -276,7 +282,7 @@ namespace KJD_Web.BLL.BXX string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select count(id) from bxx.product p where p.is_del=0"; + string sql = "select count(*) from bxx.product p where p.is_del=0"; string where = ""; if (!string.IsNullOrEmpty(from_shop_id)) @@ -600,7 +606,7 @@ namespace KJD_Web.BLL.BXX string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select count(id) from bxx.sku_img_replace s where 1=1"; + string sql = "select count(*) from bxx.sku_img_replace s where 1=1"; string where = ""; if (!string.IsNullOrWhiteSpace(sku_img_replace_ids)) @@ -703,7 +709,7 @@ namespace KJD_Web.BLL.BXX string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select count(id) from bxx.product p where p.is_del=0"; + string sql = "select count(*) from bxx.product p where p.is_del=0"; string where = ""; if (!string.IsNullOrEmpty(in_ext_codes)) @@ -828,6 +834,8 @@ namespace KJD_Web.BLL.BXX } var data = JsonUtils.SerializerObjectToString(productLst); var seconds = (DateTime.Now - timeCalc).TotalSeconds.ToString("0.000"); + if (product_get_type == "厂商直采" && count > 500) + count *= 3; return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + ",\"seconds\":" + seconds + "}"; } catch (Exception ex) @@ -844,7 +852,7 @@ namespace KJD_Web.BLL.BXX } /// - /// 随机获取商品(无详情) 随机添加到上传列表所以不需要获取详情 + /// 获取拼多多商品随机sku替换图 /// /// /// @@ -868,7 +876,7 @@ namespace KJD_Web.BLL.BXX string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select count(id) from bxx.sku_img_replace s where 1=1"; + string sql = "select count(*) from bxx.sku_img_replace s where 1=1"; string where = ""; if (!string.IsNullOrWhiteSpace(in_img_type) && !string.IsNullOrWhiteSpace(in_img_group)) @@ -1868,6 +1876,18 @@ namespace KJD_Web.BLL.BXX if (time1 != EncrypUtil.Encryption(time)) return "{\"code\":50000,\"msg\":\"校验失败\"}"; + string img_base64 = RegexUtils.GetStringQuery(ref inputData, "img_base64")?.Replace("'", "\\'"); + if (!string.IsNullOrEmpty(img_base64)) + { + return WxApiUploadImageBase64(inputData, img_base64); + } + bool is_file = RegexUtils.GetStringQuery(ref inputData, "is_file")?.Replace("'", "\\'").ToLower() == "true"; + if (is_file) + { + return WxApiUploadImageFile(inputData); + } + + string post_data = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "post_data")); string token = RegexUtils.GetStringQuery(ref inputData, "token"); @@ -1877,6 +1897,133 @@ namespace KJD_Web.BLL.BXX } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + + public string WxApiUploadImageFile(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + string token = RegexUtils.GetStringQuery(ref inputData, "token")?.Replace("'", "\\'"); + string img_url = RegexUtils.GetStringQuery(ref inputData, "img_url")?.Replace("'", "\\'"); + string random_code = RegexUtils.GetStringQuery(ref inputData, "random_code")?.Replace("'", "\\'"); + int img_width = RegexUtils.GetStringQuery(ref inputData, "width").ParseToInt(); + int img_height = RegexUtils.GetStringQuery(ref inputData, "height").ParseToInt(); + bool is_keep_file = RegexUtils.GetStringQuery(ref inputData, "is_keep_file").ParseToBool(); + + string getImgError; + var image = HttpUtils.GetUrlImg(img_url.Replace("https://", "http://"), out getImgError); + if (!string.IsNullOrEmpty(getImgError) || image == null) + { + return "{\"code\":50001,\"msg\":\"获取图片失败:" + getImgError + "\"}"; + } + try + { + if (img_width.IsNullOrZero() || img_height.IsNullOrZero()) + { + img_width = image.Width; + img_height = image.Height; + } + var imageBg = new Bitmap(img_width, img_height); + using (Graphics g = Graphics.FromImage(imageBg)) + { + g.DrawImage(image, new Rectangle(0, 0, imageBg.Width, imageBg.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); + if (!string.IsNullOrEmpty(random_code) && random_code.ToLower() == "true") + { + g.FillRectangle(new SolidBrush(Color.FromArgb(RandomUtils.GetId(256), RandomUtils.GetId(256), RandomUtils.GetId(256))), + new Rectangle(RandomUtils.GetId(imageBg.Width - 30), RandomUtils.GetId(imageBg.Height - 30), 30, 30)); + } + } + + //string tempImgPath = Path.GetTempPath() + "\\" + RandomUtils.GetWordNumber(8).ToLower(); + string tempImgPath = "C:\\tempImg\\" + RandomUtils.GetWordNumber(8).ToLower(); + if (!Directory.Exists(tempImgPath)) + Directory.CreateDirectory(tempImgPath); + string imgFullPath = tempImgPath + "\\" + EncrypUtil.GetMd5(img_url) + ".jpg"; + imageBg.Save(imgFullPath, System.Drawing.Imaging.ImageFormat.Jpeg); + + var apiUpImgFileRst = HttpUtils.WxApiUploadImgFile(imgFullPath, imageBg.Width, imageBg.Height, token); + if (string.IsNullOrEmpty(apiUpImgFileRst)) + apiUpImgFileRst = "{\"code\":50002,\"msg\":\"图片传输超时\"}"; + + if (!is_keep_file) + { + try + { + // 删除文件夹及其所有内容 + Directory.Delete(tempImgPath, true); // 第二个参数为true表示递归删除所有子文件夹和文件 + } + catch (Exception ex) + { + } + } + return apiUpImgFileRst; + } + catch (Exception ex) + { + return "{\"code\":50001,\"msg\":\"上传图片失败:" + ex.Message + "\"}"; + } + + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string WxApiUploadImageBase64(string inputData, string imgBase64) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + string token = RegexUtils.GetStringQuery(ref inputData, "token")?.Replace("'", "\\'"); + string img_url = RegexUtils.GetStringQuery(ref inputData, "img_url")?.Replace("'", "\\'"); + bool is_keep_file = RegexUtils.GetStringQuery(ref inputData, "is_keep_file").ParseToBool(); + + try + { + byte[] imageBytes = Convert.FromBase64String(imgBase64); + using (MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length)) + { + // 创建Image对象 + Image imageBg = Image.FromStream(ms, true); + + string tempImgPath = "C:\\tempImg\\" + RandomUtils.GetWordNumber(16).ToLower(); + if (!Directory.Exists(tempImgPath)) + Directory.CreateDirectory(tempImgPath); + string imgFullPath = tempImgPath + "\\" + EncrypUtil.GetMd5(img_url) + ".jpg"; + imageBg.Save(imgFullPath, System.Drawing.Imaging.ImageFormat.Jpeg); + + var apiUpImgFileRst = HttpUtils.WxApiUploadImgFile(imgFullPath, imageBg.Width, imageBg.Height, token); + if (string.IsNullOrEmpty(apiUpImgFileRst)) + apiUpImgFileRst = "{\"code\":50002,\"msg\":\"图片传输超时\"}"; + + if (!is_keep_file) + { + try + { + // 删除文件夹及其所有内容 + Directory.Delete(tempImgPath, true); // 第二个参数为true表示递归删除所有子文件夹和文件 + } + catch (Exception ex) + { + } + } + return apiUpImgFileRst; + } + } + catch (Exception ex) + { + return "{\"code\":50001,\"msg\":\"上传图片失败:" + ex.Message + "\"}"; + } + + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } } } diff --git a/KJDService/KJD_WebService/BLL/DYXD/DYUserManage.cs b/KJDService/KJD_WebService/BLL/DYXD/DYUserManage.cs index 3674e15..8c975a8 100644 --- a/KJDService/KJD_WebService/BLL/DYXD/DYUserManage.cs +++ b/KJDService/KJD_WebService/BLL/DYXD/DYUserManage.cs @@ -20,6 +20,9 @@ namespace KJD_Web.BLL.DYXD { var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + var version = RegexUtils.GetStringQuery(ref inputData, "version").ParseToInt(); + if (version < 823) + return "{\"code\":1,\"msg\":\"当前版本过于陈旧,请立即升级新版\"}"; int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); diff --git a/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs b/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs index e13319b..ba1b975 100644 --- a/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs +++ b/KJDService/KJD_WebService/BLL/KJD/ToolManage.cs @@ -88,84 +88,84 @@ namespace KJD_Web.BLL string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; - for (int i = 1; i <= 12; i++) - { +// for (int i = 1; i <= 12; i++) +// { - //sql = @"drop table if exists kjd_order.order_code_" + i + ";\r\n"; - sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_2026" + i.ToString("D2") + @" ( - `id` int NOT NULL AUTO_INCREMENT, - `supplierId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺Id', - `supplierName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺名称', - `originalPurchaseOrderSn` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备母货单号', - `subPurchaseOrderSn` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备货单号', - `productName` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `productId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品编号', - `upProductId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上家编号', - `productSkcId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `productSkcPicture` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主图', - `productSn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货号', - `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废', - `productSkuId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `extCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku货号', - `className` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku规格', - `currencyType` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `supplierPrice` int NOT NULL COMMENT '申报价格', - `costPrice` int DEFAULT NULL COMMENT '成本价', - `deliveryFee` int DEFAULT NULL COMMENT '车队费', - `markFee` int DEFAULT NULL COMMENT '贴标费', - `purchaseQuantity` int NOT NULL COMMENT '备货件数', - `deliverQuantity` int NOT NULL COMMENT '送货件数', - `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数', - `availableSaleDays` decimal(10, 0) DEFAULT NULL COMMENT '可售天数', - `qcResult` int DEFAULT NULL COMMENT '抽检结果 1合格 2不合格', - `thumbUrlList` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku图片', - `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间', - `deliverTime` bigint DEFAULT NULL COMMENT '发货时间', - `receiveTime` bigint DEFAULT NULL COMMENT '收货时间', - `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间', - `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间', - `deliveryOrderSn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货单号', - `receiveWarehouseId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库Id', - `receiveWarehouseName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库', - `warehouseGroupId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '仓组Id', - `jiaTongCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '佳同码', - `barCodeMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品条码MD5', - `shippingMarkMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '箱唛文件MD5', - `notes` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', - `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)', - `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `index_subPurchaseOrderSn` (`subPurchaseOrderSn`) USING BTREE -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单推送表'"; +// //sql = @"drop table if exists kjd_order.order_code_" + i + ";\r\n"; +// sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_2026" + i.ToString("D2") + @" ( +// `id` int NOT NULL AUTO_INCREMENT, +// `supplierId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺Id', +// `supplierName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '店铺名称', +// `originalPurchaseOrderSn` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备母货单号', +// `subPurchaseOrderSn` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备货单号', +// `productName` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `productId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品编号', +// `upProductId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上家编号', +// `productSkcId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `productSkcPicture` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主图', +// `productSn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货号', +// `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废', +// `productSkuId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `extCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku货号', +// `className` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'sku规格', +// `currencyType` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `supplierPrice` int NOT NULL COMMENT '申报价格', +// `costPrice` int DEFAULT NULL COMMENT '成本价', +// `deliveryFee` int DEFAULT NULL COMMENT '车队费', +// `markFee` int DEFAULT NULL COMMENT '贴标费', +// `purchaseQuantity` int NOT NULL COMMENT '备货件数', +// `deliverQuantity` int NOT NULL COMMENT '送货件数', +// `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数', +// `availableSaleDays` decimal(10, 0) DEFAULT NULL COMMENT '可售天数', +// `qcResult` int DEFAULT NULL COMMENT '抽检结果 1合格 2不合格', +// `thumbUrlList` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku图片', +// `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间', +// `deliverTime` bigint DEFAULT NULL COMMENT '发货时间', +// `receiveTime` bigint DEFAULT NULL COMMENT '收货时间', +// `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间', +// `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间', +// `deliveryOrderSn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货单号', +// `receiveWarehouseId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库Id', +// `receiveWarehouseName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实际收货仓库', +// `warehouseGroupId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '仓组Id', +// `jiaTongCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '佳同码', +// `barCodeMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品条码MD5', +// `shippingMarkMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '箱唛文件MD5', +// `notes` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', +// `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)', +// `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, +// `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +// PRIMARY KEY (`id`), +// UNIQUE KEY `index_subPurchaseOrderSn` (`subPurchaseOrderSn`) USING BTREE +//) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单推送表'"; - //sql = @"drop table if exists kjd_order.order_code_" + i + ";\r\n"; - sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_code_2026" + i.ToString("D2") + @" ( - `id` int unsigned NOT NULL AUTO_INCREMENT, - `supplierId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `fileCodeMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `fileCodeBase64` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, - `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `index_fileCodeMd5` (`fileCodeMd5`) USING BTREE -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci"; +// //sql = @"drop table if exists kjd_order.order_code_" + i + ";\r\n"; +// sql = @"CREATE TABLE IF NOT EXISTS kjd_order.order_code_2026" + i.ToString("D2") + @" ( +// `id` int unsigned NOT NULL AUTO_INCREMENT, +// `supplierId` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `fileCodeMd5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `fileCodeBase64` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, +// `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, +// `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +// PRIMARY KEY (`id`), +// UNIQUE KEY `index_fileCodeMd5` (`fileCodeMd5`) USING BTREE +//) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT 0 COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)',\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号',\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `costPrice` int NULL COMMENT '成本价',\r\nADD\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费',\r\nADD\r\n COLUMN `markFee` int NULL COMMENT '贴标费',\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierId`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upProductId` varchar (25) NOT NULL COMMENT '上家编号',\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `supplierName` varchar (50) NOT NULL COMMENT '店铺名称',\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierName`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `productName` varchar (1000) NOT NULL\r\nAFTER\r\n `subPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `category` varchar (50) NOT NULL\r\nAFTER\r\n `productName`,\r\nMODIFY\r\n COLUMN `productId` varchar (25) NOT NULL COMMENT '商品编号'\r\nAFTER\r\n `category`,\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`,\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT 0 COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)',\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号',\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `costPrice` int NULL COMMENT '成本价',\r\nADD\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费',\r\nADD\r\n COLUMN `markFee` int NULL COMMENT '贴标费',\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NOT NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierId`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `upProductId` varchar (25) NOT NULL COMMENT '上家编号',\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`"; +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + "\r\nADD\r\n COLUMN `supplierName` varchar (50) NOT NULL COMMENT '店铺名称',\r\nMODIFY\r\n COLUMN `originalPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备母货单号'\r\nAFTER\r\n `supplierName`,\r\nMODIFY\r\n COLUMN `subPurchaseOrderSn` varchar (25) NOT NULL COMMENT '备货单号'\r\nAFTER\r\n `originalPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `productName` varchar (1000) NOT NULL\r\nAFTER\r\n `subPurchaseOrderSn`,\r\nMODIFY\r\n COLUMN `category` varchar (50) NOT NULL\r\nAFTER\r\n `productName`,\r\nMODIFY\r\n COLUMN `productId` varchar (25) NOT NULL COMMENT '商品编号'\r\nAFTER\r\n `category`,\r\nMODIFY\r\n COLUMN `upProductId` varchar (25) NULL COMMENT '上家编号'\r\nAFTER\r\n `productId`,\r\nMODIFY\r\n COLUMN `productSkcId` varchar (25) NOT NULL\r\nAFTER\r\n `upProductId`,\r\nMODIFY\r\n COLUMN `productSkcPicture` varchar (250) NOT NULL COMMENT '主图'\r\nAFTER\r\n `productSkcId`,\r\nMODIFY\r\n COLUMN `productSn` varchar (50) NULL COMMENT '货号'\r\nAFTER\r\n `productSkcPicture`,\r\nMODIFY\r\n COLUMN `status` int NOT NULL COMMENT '状态 1待发货 2已送货 7已入库 8已作废'\r\nAFTER\r\n `productSn`,\r\nMODIFY\r\n COLUMN `productSkuId` varchar (25) NOT NULL\r\nAFTER\r\n `status`,\r\nMODIFY\r\n COLUMN `extCode` varchar (50) NOT NULL COMMENT 'sku货号'\r\nAFTER\r\n `productSkuId`,\r\nMODIFY\r\n COLUMN `className` varchar (100) NOT NULL COMMENT 'sku规格'\r\nAFTER\r\n `extCode`,\r\nMODIFY\r\n COLUMN `currencyType` varchar (10) NOT NULL\r\nAFTER\r\n `className`,\r\nMODIFY\r\n COLUMN `supplierPrice` int NOT NULL COMMENT '申报价格'\r\nAFTER\r\n `currencyType`,\r\nMODIFY\r\n COLUMN `costPrice` int NULL COMMENT '成本价'\r\nAFTER\r\n `supplierPrice`,\r\nMODIFY\r\n COLUMN `deliveryFee` int NULL COMMENT '车队费'\r\nAFTER\r\n `costPrice`,\r\nMODIFY\r\n COLUMN `markFee` int NULL COMMENT '贴标费'\r\nAFTER\r\n `deliveryFee`,\r\nMODIFY\r\n COLUMN `purchaseQuantity` int NOT NULL COMMENT '备货件数'\r\nAFTER\r\n `markFee`,\r\nMODIFY\r\n COLUMN `deliverQuantity` int NOT NULL COMMENT '送货件数'\r\nAFTER\r\n `purchaseQuantity`,\r\nMODIFY\r\n COLUMN `realReceiveAuthenticQuantity` int NOT NULL COMMENT '入库件数'\r\nAFTER\r\n `deliverQuantity`,\r\nMODIFY\r\n COLUMN `availableSaleDays` decimal (10, 0) NULL COMMENT '可售天数'\r\nAFTER\r\n `realReceiveAuthenticQuantity`,\r\nMODIFY\r\n COLUMN `qcResult` int NULL COMMENT '抽检结果 1合格 2不合格'\r\nAFTER\r\n `availableSaleDays`,\r\nMODIFY\r\n COLUMN `thumbUrlList` varchar (500) NULL COMMENT 'sku图片'\r\nAFTER\r\n `qcResult`,\r\nMODIFY\r\n COLUMN `purchaseTime` bigint NOT NULL COMMENT '备货单创建时间'\r\nAFTER\r\n `thumbUrlList`,\r\nMODIFY\r\n COLUMN `deliverTime` bigint NULL COMMENT '发货时间'\r\nAFTER\r\n `purchaseTime`,\r\nMODIFY\r\n COLUMN `receiveTime` bigint NULL COMMENT '收货时间'\r\nAFTER\r\n `deliverTime`,\r\nMODIFY\r\n COLUMN `expectLatestDeliverTimeOrDefault` bigint NOT NULL COMMENT '最迟发货时间'\r\nAFTER\r\n `receiveTime`,\r\nMODIFY\r\n COLUMN `expectLatestArrivalTimeOrDefault` bigint NOT NULL COMMENT '最迟到货时间'\r\nAFTER\r\n `expectLatestDeliverTimeOrDefault`,\r\nMODIFY\r\n COLUMN `deliveryOrderSn` varchar (50) NULL COMMENT '发货单号'\r\nAFTER\r\n `expectLatestArrivalTimeOrDefault`,\r\nMODIFY\r\n COLUMN `receiveWarehouseId` varchar (25) NULL COMMENT '实际收货仓库Id'\r\nAFTER\r\n `deliveryOrderSn`,\r\nMODIFY\r\n COLUMN `receiveWarehouseName` varchar (50) NULL COMMENT '实际收货仓库'\r\nAFTER\r\n `receiveWarehouseId`,\r\nMODIFY\r\n COLUMN `warehouseGroupId` varchar (25) NULL COMMENT '仓组Id'\r\nAFTER\r\n `receiveWarehouseName`,\r\nMODIFY\r\n COLUMN `jiaTongCode` varchar (50) NULL COMMENT '佳同码'\r\nAFTER\r\n `warehouseGroupId`,\r\nMODIFY\r\n COLUMN `barCodeMd5` varchar (32) NULL COMMENT '商品条码MD5'\r\nAFTER\r\n `jiaTongCode`,\r\nMODIFY\r\n COLUMN `shippingMark​Md5` varchar (32) NULL COMMENT '箱唛文件MD5'\r\nAFTER\r\n `barCodeMd5`,\r\nMODIFY\r\n COLUMN `notes` varchar (50) NULL COMMENT '备注'\r\nAFTER\r\n `shippingMark​Md5`,\r\nMODIFY\r\n COLUMN `upLoadStatus` int NOT NULL DEFAULT '0' COMMENT '是否上传订单(上传后扣除用户授权金额,产生扣费记录)'\r\nAFTER\r\n `notes`,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `upLoadStatus`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`"; - // sql = "ALTER TABLE\r\n kjd_order.order_" + i + " CHANGE COLUMN `shippingMark​Md5` `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'"; - // sql = "ALTER TABLE\r\n kjd_order.order_code_" + i + " DROP COLUMN `subPurchaseOrderSn`,\r\n DROP COLUMN `jiaTongCode`,\r\n DROP COLUMN `shippingMark​Md5`,\r\n DROP COLUMN `shippingMarkBase64`,\r\n CHANGE COLUMN `barCodeMd5` `fileCodeMd5` varchar (32) NOT NULL,\r\n CHANGE COLUMN `barCodeBase64` `fileCodeBase64` longtext NOT NULL,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `fileCodeBase64`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`,\r\n DROP INDEX `index_subPurchaseOrderSn`,\r\nADD\r\n UNIQUE `index_fileCodeMd5` USING btree (`fileCodeMd5`)"; - var rst = mySql.ExecuteNonQuery(sql); - } +// // sql = "ALTER TABLE\r\n kjd_order.order_" + i + " CHANGE COLUMN `shippingMark​Md5` `shippingMarkMd5` varchar (32) NULL COMMENT '箱唛文件MD5'"; +// // sql = "ALTER TABLE\r\n kjd_order.order_code_" + i + " DROP COLUMN `subPurchaseOrderSn`,\r\n DROP COLUMN `jiaTongCode`,\r\n DROP COLUMN `shippingMark​Md5`,\r\n DROP COLUMN `shippingMarkBase64`,\r\n CHANGE COLUMN `barCodeMd5` `fileCodeMd5` varchar (32) NOT NULL,\r\n CHANGE COLUMN `barCodeBase64` `fileCodeBase64` longtext NOT NULL,\r\nMODIFY\r\n COLUMN `add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP\r\nAFTER\r\n `fileCodeBase64`,\r\nMODIFY\r\n COLUMN `mdy_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\r\nAFTER\r\n `add_time`,\r\n DROP INDEX `index_subPurchaseOrderSn`,\r\nADD\r\n UNIQUE `index_fileCodeMd5` USING btree (`fileCodeMd5`)"; +// var rst = mySql.ExecuteNonQuery(sql); + //} mySql.Close(); } } diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs index 48d3e35..d4f512c 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXShopManage.cs @@ -590,7 +590,7 @@ namespace KJD_Web.BLL.WXXD string new_shop_id = RegexUtils.GetStringQuery(ref inputData, "new_shop_id"); string old_shop_id = RegexUtils.GetStringQuery(ref inputData, "shop_id"); string shop_account = RegexUtils.GetStringQuery(ref inputData, "shop_account"); - string group_name = RegexUtils.GetStringQuery(ref inputData, "group_name"); + string group_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "group_name")); string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes")); string login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status")); diff --git a/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs b/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs index 33fabd1..4818011 100644 --- a/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs +++ b/KJDService/KJD_WebService/BLL/WXXD/WXUserManage.cs @@ -20,6 +20,9 @@ namespace KJD_Web.BLL.WXXD { var mobile = RegexUtils.GetStringQuery(ref inputData, "mobile")?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + var version = RegexUtils.GetStringQuery(ref inputData, "version").ParseToInt(); + if (version < 823) + return "{\"code\":1,\"msg\":\"当前版本过于陈旧,请立即升级新版\"}"; int r2 = 0; int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2); diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj b/KJDService/KJD_WebService/KJD_WebService.csproj index d7301ac..56716f8 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj +++ b/KJDService/KJD_WebService/KJD_WebService.csproj @@ -58,6 +58,7 @@ ..\Dll\Newtonsoft.Json.dll + @@ -115,6 +116,7 @@ + WXProductService.asmx Component diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj.user b/KJDService/KJD_WebService/KJD_WebService.csproj.user index c789fae..4bcdc04 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj.user +++ b/KJDService/KJD_WebService/KJD_WebService.csproj.user @@ -1,4 +1,4 @@ - + true diff --git a/KJDService/KJD_WebService/Utils/HttpUtils.cs b/KJDService/KJD_WebService/Utils/HttpUtils.cs index b2cea6e..1a1b678 100644 --- a/KJDService/KJD_WebService/Utils/HttpUtils.cs +++ b/KJDService/KJD_WebService/Utils/HttpUtils.cs @@ -1,10 +1,16 @@ -using System; +using NaiBa.Util.Extension; +using System; using System.Collections.Generic; +using System.Drawing; using System.IO; using System.IO.Compression; using System.Linq; using System.Net; +using System.Net.Http; +using System.Security.Cryptography; using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; using System.Web; namespace KJD_Web.Utils @@ -22,7 +28,7 @@ namespace KJD_Web.Utils request.KeepAlive = true; request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0"); - request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"; + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.ContentType = "application/json"; request.Accept = "*/*"; request.Referer = referer; @@ -71,7 +77,7 @@ namespace KJD_Web.Utils request.KeepAlive = true; request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0"); - request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"; + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.ContentType = "application/json"; request.Accept = "*/*"; request.Referer = referer; @@ -121,7 +127,7 @@ namespace KJD_Web.Utils request.KeepAlive = true; request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0"); - request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"; + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; request.ContentType = "application/json"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; //request.Accept = "*/*"; request.Referer = referer; @@ -234,5 +240,140 @@ namespace KJD_Web.Utils } } } + public static void WriteMultipartBodyToRequest(HttpWebRequest request, string body) + { + string[] multiparts = Regex.Split(body, @""); + byte[] bytes; + using (MemoryStream ms = new MemoryStream()) + { + foreach (string part in multiparts) + { + if (File.Exists(part)) + { + bytes = File.ReadAllBytes(part); + } + else + { + bytes = System.Text.Encoding.UTF8.GetBytes(part.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n")); + } + + ms.Write(bytes, 0, bytes.Length); + } + + request.ContentLength = ms.Length; + using (Stream stream = request.GetRequestStream()) + { + ms.WriteTo(stream); + } + } + } + + /// + /// 读取网络图片转为Img以在DataGridView中显示,用于HttpWebRequest直接读取可能403的情况 + /// + /// + /// + /// + public static Image GetUrlImg(string imgUrl, out string rst) + { + rst = ""; + //return LoadImage(imgUrl); + Image image = null; + HttpWebResponse response = null; + try + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imgUrl); + + request.KeepAlive = true; + request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0"); + request.Headers.Add("Upgrade-Insecure-Requests", @"1"); + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; + request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; + request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); + request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); + //request.IfModifiedSince = DateTime.Parse("Fri, 18 Jul 2025 06:00:49 GMT"); // 没改动不更新,CS程序无缓存不使用 + + response = (HttpWebResponse)request.GetResponse(); + + using (Stream stream = response.GetResponseStream()) + { + image = Image.FromStream(stream); + } + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.ProtocolError) + { + response = (HttpWebResponse)ex.Response; + rst = ReadResponse(response); + } + if (string.IsNullOrEmpty(rst)) + rst = ex.Message; + } + catch (Exception e) + { + rst = e.Message; + } + if (response != null) + { + response.Close(); + response.Dispose(); + } + return image; + } + + public static string WxApiUploadImgFile(string filePath, int width, int height, string accessToken) + { + string boundary = "----WebKitFormBoundaryeZuqpVO6jYOF5Y6S"; + HttpWebResponse response = null; + string result; + try + { + string url = "https://api.weixin.qq.com/shop/ec/basics/img/upload?access_token=" + accessToken + + "&upload_type=0&resp_type=1&height=" + height + "&width=" + width; + + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + + request.KeepAlive = true; + request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0"); + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"; + request.ContentType = "multipart/form-data; boundary=" + boundary; + request.Accept = "*/*"; + request.Referer = ""; + request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); + request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); + + request.Method = "POST"; + request.ServicePoint.Expect100Continue = false; + + string body = @"--" + boundary + @" +Content-Disposition: form-data; name=""media""; filename=""" + Path.GetFileName(filePath) + @""" +Content-Type: image/jpg + +" + filePath + @" +--" + boundary + @"-- +"; + WriteMultipartBodyToRequest(request, body); + + response = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.ProtocolError) + { + response = (HttpWebResponse)ex.Response; + result = ReadResponse(response); + return result; + } + else return ex.Message; + } + catch (Exception e) + { + if (response != null) response.Close(); + return e.Message; + } + result = ReadResponse(response); + return result; + } } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/Utils/RandomUtils.cs b/KJDService/KJD_WebService/Utils/RandomUtils.cs new file mode 100644 index 0000000..917509a --- /dev/null +++ b/KJDService/KJD_WebService/Utils/RandomUtils.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web; + +namespace KJD_Web.Utils +{ + public class RandomUtils + { + public static string WordBase = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"; + public static string NumberBase = "0123456789"; + public static string WordNumberBase = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz01234567890123456789"; + public static string SignWordBase = ".`~^*_| -#$%&?+";//".`~^*_| -#$%&?"; + + public static int GetId(int max) + { + return new Random(Guid.NewGuid().GetHashCode()).Next(0, max); + } + + public static int GetId(int min, int max) + { + return new Random(Guid.NewGuid().GetHashCode()).Next(min, max); + } + + public static string GetWord(int len) + { + StringBuilder s = new StringBuilder(); + for (int i = 0; i < len; i++) + { + s.Append(WordBase[new Random(Guid.NewGuid().GetHashCode()).Next(WordBase.Length)]); + } + return s.ToString(); + } + public static string GetNumber(int len) + { + StringBuilder s = new StringBuilder(); + for (int i = 0; i < len; i++) + { + s.Append(NumberBase[new Random(Guid.NewGuid().GetHashCode()).Next(NumberBase.Length)]); + } + return s.ToString(); + } + public static string GetWordNumber(int len) + { + StringBuilder s = new StringBuilder(); + for (int i = 0; i < len; i++) + { + s.Append(WordNumberBase[new Random(Guid.NewGuid().GetHashCode()).Next(WordNumberBase.Length)]); + } + return s.ToString(); + } + /// + /// 获取新的属性名称 + /// + /// + /// + public static string GetNewProp(bool begin, string name) + { + char w = SignWordBase[new Random(Guid.NewGuid().GetHashCode()).Next(SignWordBase.Length)]; + char add = SignWordBase[new Random(Guid.NewGuid().GetHashCode()).Next(SignWordBase.Length)]; + if (begin) + name += "" + w + add; + else + name = "" + add + w + "" + name; + return name; + } + } +} \ No newline at end of file diff --git a/TEMUKJD/BLL/PDDProdFormConverter.cs b/TEMUKJD/BLL/PDDProdFormConverter.cs index 525fa8a..e099485 100644 --- a/TEMUKJD/BLL/PDDProdFormConverter.cs +++ b/TEMUKJD/BLL/PDDProdFormConverter.cs @@ -651,6 +651,12 @@ namespace TemuKJD.BLL shipment_limit_second_list = null, sku69_code = "", }; + // 供应商价加价10%(最低1元)赚取差价 + int addPrice = (skuInfo.multi_price * 0.1).ParseToInt(); + if (addPrice < 100) + addPrice = 100; + skuInfo.multi_price += addPrice; + skuInfo.price += addPrice; foreach (JObject jSpec in jSku["skus"]) { skuInfo.spec.Add(new spec_item() diff --git a/TEMUKJD/Extension/ControlExtension.cs b/TEMUKJD/Extension/ControlExtension.cs new file mode 100644 index 0000000..5bdd2cc --- /dev/null +++ b/TEMUKJD/Extension/ControlExtension.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TemuKJD.Extension +{ + public static class ControlExtension + { + public static Point GetRelativePosition(this Control control, Form form) + { + Point location = control.Location; + Control parent = control.Parent; + while (parent != null && parent != form) + { + location.X += parent.Location.X; + location.Y += parent.Location.Y; + parent = parent.Parent; + } + return location; + } + public static Point GetRelativePosition(this Control control) + { + Point location = control.Location; + Control parent = control.Parent; + while (parent != null && !(parent is Form)) + { + location.X += parent.Location.X; + location.Y += parent.Location.Y; + parent = parent.Parent; + } + return location; + } + } +} diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 911581d..07a0600 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -136,6 +136,7 @@ ChangeForm.cs + Form diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs index 93b72bd..be70cfa 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs @@ -29,8 +29,6 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); @@ -40,6 +38,8 @@ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProductThirdSelectListManageForm)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.numMaxWaitSecond = new System.Windows.Forms.NumericUpDown(); @@ -118,16 +118,6 @@ this.chkUseGlobalFissionSetting = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkNoSubSa = new TemuKJD.UserComponent.UcCheckBox(this.components); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); - this.pbLoading = new System.Windows.Forms.PictureBox(); - this.panel2 = new System.Windows.Forms.Panel(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.dgvMapDraftIds = new TemuKJD.UserComponent.DataGridViewEx(); - this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colMapId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMapShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colMapDraftId = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colToPorductPage = new System.Windows.Forms.DataGridViewLinkColumn(); - this.colToDraftPage = new System.Windows.Forms.DataGridViewLinkColumn(); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -156,6 +146,16 @@ this.colEditNotes = new System.Windows.Forms.DataGridViewLinkColumn(); this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.dgvMapDraftIds = new TemuKJD.UserComponent.DataGridViewEx(); + this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colMapId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMapShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMapDraftId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colToPorductPage = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colToDraftPage = new System.Windows.Forms.DataGridViewLinkColumn(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); @@ -183,10 +183,10 @@ this.splitContainer2.Panel1.SuspendLayout(); this.splitContainer2.Panel2.SuspendLayout(); this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dgvMapDraftIds)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit(); this.SuspendLayout(); // // splitContainer1 @@ -1127,7 +1127,7 @@ this.cmbSearchYear.Items.AddRange(new object[] { "2025", "2026"}); - this.cmbSearchYear.Location = new System.Drawing.Point(1017, 8); + this.cmbSearchYear.Location = new System.Drawing.Point(1017, 11); this.cmbSearchYear.Margin = new System.Windows.Forms.Padding(0); this.cmbSearchYear.Name = "cmbSearchYear"; this.cmbSearchYear.Size = new System.Drawing.Size(55, 25); @@ -1142,7 +1142,7 @@ "全部", "重上", "已买"}); - this.cmbUserNotes.Location = new System.Drawing.Point(927, 8); + this.cmbUserNotes.Location = new System.Drawing.Point(927, 11); this.cmbUserNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbUserNotes.Name = "cmbUserNotes"; this.cmbUserNotes.Size = new System.Drawing.Size(52, 25); @@ -1159,7 +1159,7 @@ "核价成功", "核价成功(重复)", "重复"}); - this.cmbNotes.Location = new System.Drawing.Point(813, 8); + this.cmbNotes.Location = new System.Drawing.Point(813, 11); this.cmbNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbNotes.Name = "cmbNotes"; this.cmbNotes.Size = new System.Drawing.Size(52, 25); @@ -1186,7 +1186,7 @@ "已上传", "草稿箱", "全部"}); - this.cmbStatus.Location = new System.Drawing.Point(723, 8); + this.cmbStatus.Location = new System.Drawing.Point(723, 11); this.cmbStatus.Margin = new System.Windows.Forms.Padding(0); this.cmbStatus.Name = "cmbStatus"; this.cmbStatus.Size = new System.Drawing.Size(52, 25); @@ -1405,141 +1405,6 @@ this.splitContainer2.SplitterDistance = 485; this.splitContainer2.TabIndex = 0; // - // pbLoading - // - this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; - this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(734, 215); - 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; - // - // panel2 - // - this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.panel2.Controls.Add(this.panelEx1); - this.panel2.Controls.Add(this.dgvMapDraftIds); - this.panel2.Location = new System.Drawing.Point(661, 69); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(196, 341); - this.panel2.TabIndex = 191; - this.panel2.Visible = false; - // - // panelEx1 - // - this.panelEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.panelEx1.Cursor = System.Windows.Forms.Cursors.Hand; - this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.panelEx1.Location = new System.Drawing.Point(151, 313); - this.panelEx1.Name = "panelEx1"; - this.panelEx1.Size = new System.Drawing.Size(42, 24); - this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.panelEx1.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.panelEx1.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.panelEx1.Style.ForeColor.Color = System.Drawing.Color.White; - this.panelEx1.Style.GradientAngle = 90; - this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.panelEx1.TabIndex = 453; - this.panelEx1.Text = "关闭"; - this.panelEx1.Click += new System.EventHandler(this.btnCloseDgvMapDraftIds_Click); - // - // dgvMapDraftIds - // - this.dgvMapDraftIds.AllowUserToAddRows = false; - this.dgvMapDraftIds.AllowUserToDeleteRows = false; - dataGridViewCellStyle10.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvMapDraftIds.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; - this.dgvMapDraftIds.AutoRowNumber = true; - this.dgvMapDraftIds.BackgroundColor = System.Drawing.Color.White; - this.dgvMapDraftIds.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvMapDraftIds.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; - this.dgvMapDraftIds.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvMapDraftIds.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dataGridViewCheckBoxColumn1, - this.colMapId, - this.colMapShopId, - this.colMapDraftId, - this.colToPorductPage, - this.colToDraftPage}); - this.dgvMapDraftIds.Location = new System.Drawing.Point(1, 1); - this.dgvMapDraftIds.Name = "dgvMapDraftIds"; - this.dgvMapDraftIds.ReadOnly = true; - this.dgvMapDraftIds.RowHeadersWidth = 40; - this.dgvMapDraftIds.RowTemplate.Height = 23; - this.dgvMapDraftIds.Size = new System.Drawing.Size(192, 310); - this.dgvMapDraftIds.TabIndex = 192; - this.dgvMapDraftIds.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDraftIds_CellContentClick); - // - // dataGridViewCheckBoxColumn1 - // - this.dataGridViewCheckBoxColumn1.HeaderText = "选择"; - this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; - this.dataGridViewCheckBoxColumn1.ReadOnly = true; - this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.dataGridViewCheckBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.dataGridViewCheckBoxColumn1.Visible = false; - this.dataGridViewCheckBoxColumn1.Width = 30; - // - // colMapId - // - this.colMapId.HeaderText = "映射Id"; - this.colMapId.Name = "colMapId"; - this.colMapId.ReadOnly = true; - this.colMapId.Visible = false; - this.colMapId.Width = 125; - // - // colMapShopId - // - this.colMapShopId.HeaderText = "映射店铺Id"; - this.colMapShopId.Name = "colMapShopId"; - this.colMapShopId.ReadOnly = true; - this.colMapShopId.Visible = false; - this.colMapShopId.Width = 120; - // - // colMapDraftId - // - this.colMapDraftId.HeaderText = "已上传商品ID"; - this.colMapDraftId.Name = "colMapDraftId"; - this.colMapDraftId.ReadOnly = true; - this.colMapDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colMapDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colMapDraftId.Width = 120; - // - // colToPorductPage - // - this.colToPorductPage.HeaderText = "访问商品页"; - this.colToPorductPage.Name = "colToPorductPage"; - this.colToPorductPage.ReadOnly = true; - this.colToPorductPage.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colToPorductPage.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colToPorductPage.Visible = false; - this.colToPorductPage.Width = 62; - // - // colToDraftPage - // - this.colToDraftPage.HeaderText = "访问草稿页"; - this.colToDraftPage.Name = "colToDraftPage"; - this.colToDraftPage.ReadOnly = true; - this.colToDraftPage.Visible = false; - this.colToDraftPage.Width = 38; - // // dgvSelectProduct // this.dgvSelectProduct.AllowUserToAddRows = false; @@ -1818,6 +1683,141 @@ this.colOpResult.ReadOnly = true; this.colOpResult.Width = 150; // + // 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(734, 215); + 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; + // + // panel2 + // + this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel2.Controls.Add(this.panelEx1); + this.panel2.Controls.Add(this.dgvMapDraftIds); + this.panel2.Location = new System.Drawing.Point(661, 69); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(196, 341); + this.panel2.TabIndex = 191; + this.panel2.Visible = false; + // + // panelEx1 + // + this.panelEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.Cursor = System.Windows.Forms.Cursors.Hand; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.panelEx1.Location = new System.Drawing.Point(151, 313); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(42, 24); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.panelEx1.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.panelEx1.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.panelEx1.Style.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.panelEx1.TabIndex = 453; + this.panelEx1.Text = "关闭"; + this.panelEx1.Click += new System.EventHandler(this.btnCloseDgvMapDraftIds_Click); + // + // dgvMapDraftIds + // + this.dgvMapDraftIds.AllowUserToAddRows = false; + this.dgvMapDraftIds.AllowUserToDeleteRows = false; + dataGridViewCellStyle10.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvMapDraftIds.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10; + this.dgvMapDraftIds.AutoRowNumber = true; + this.dgvMapDraftIds.BackgroundColor = System.Drawing.Color.White; + this.dgvMapDraftIds.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvMapDraftIds.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11; + this.dgvMapDraftIds.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvMapDraftIds.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewCheckBoxColumn1, + this.colMapId, + this.colMapShopId, + this.colMapDraftId, + this.colToPorductPage, + this.colToDraftPage}); + this.dgvMapDraftIds.Location = new System.Drawing.Point(1, 1); + this.dgvMapDraftIds.Name = "dgvMapDraftIds"; + this.dgvMapDraftIds.ReadOnly = true; + this.dgvMapDraftIds.RowHeadersWidth = 40; + this.dgvMapDraftIds.RowTemplate.Height = 23; + this.dgvMapDraftIds.Size = new System.Drawing.Size(192, 310); + this.dgvMapDraftIds.TabIndex = 192; + this.dgvMapDraftIds.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDraftIds_CellContentClick); + // + // dataGridViewCheckBoxColumn1 + // + this.dataGridViewCheckBoxColumn1.HeaderText = "选择"; + this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; + this.dataGridViewCheckBoxColumn1.ReadOnly = true; + this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewCheckBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.dataGridViewCheckBoxColumn1.Visible = false; + this.dataGridViewCheckBoxColumn1.Width = 30; + // + // colMapId + // + this.colMapId.HeaderText = "映射Id"; + this.colMapId.Name = "colMapId"; + this.colMapId.ReadOnly = true; + this.colMapId.Visible = false; + this.colMapId.Width = 125; + // + // colMapShopId + // + this.colMapShopId.HeaderText = "映射店铺Id"; + this.colMapShopId.Name = "colMapShopId"; + this.colMapShopId.ReadOnly = true; + this.colMapShopId.Visible = false; + this.colMapShopId.Width = 120; + // + // colMapDraftId + // + this.colMapDraftId.HeaderText = "已上传商品ID"; + this.colMapDraftId.Name = "colMapDraftId"; + this.colMapDraftId.ReadOnly = true; + this.colMapDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colMapDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colMapDraftId.Width = 120; + // + // colToPorductPage + // + this.colToPorductPage.HeaderText = "访问商品页"; + this.colToPorductPage.Name = "colToPorductPage"; + this.colToPorductPage.ReadOnly = true; + this.colToPorductPage.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colToPorductPage.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colToPorductPage.Visible = false; + this.colToPorductPage.Width = 62; + // + // colToDraftPage + // + this.colToDraftPage.HeaderText = "访问草稿页"; + this.colToDraftPage.Name = "colToDraftPage"; + this.colToDraftPage.ReadOnly = true; + this.colToDraftPage.Visible = false; + this.colToDraftPage.Width = 38; + // // ucSplitPage1 // this.ucSplitPage1.CurrentPage = 1; @@ -1884,10 +1884,10 @@ this.splitContainer2.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); this.panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dgvMapDraftIds)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit(); this.ResumeLayout(false); } diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.Designer.cs index 89a7649..341555c 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.Designer.cs @@ -54,20 +54,18 @@ this.label8 = new System.Windows.Forms.Label(); this.txtNotes = new DevComponents.DotNetBar.Controls.TextBoxX(); this.btnOk = new TemuKJD.UserControls.ButtonEx(); + this.pnlSkuOption = new System.Windows.Forms.Panel(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.pnlSkuOption.SuspendLayout(); this.SuspendLayout(); // // panel2 // this.panel2.BackColor = System.Drawing.Color.White; - this.panel2.Controls.Add(this.btnBookImg); - this.panel2.Controls.Add(this.btnEditDetail); - this.panel2.Controls.Add(this.btnSelect); - this.panel2.Controls.Add(this.buttonEx1); - this.panel2.Controls.Add(this.pictureBox2); - this.panel2.Controls.Add(this.label9); + this.panel2.Controls.Add(this.btnOk); + this.panel2.Controls.Add(this.pnlSkuOption); this.panel2.Controls.Add(this.label7); this.panel2.Controls.Add(this.txtFissionWords); this.panel2.Controls.Add(this.txtEndWords); @@ -85,7 +83,6 @@ this.panel2.Controls.Add(this.pictureBox1); this.panel2.Controls.Add(this.label8); this.panel2.Controls.Add(this.txtNotes); - this.panel2.Controls.Add(this.btnOk); this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; this.panel2.Location = new System.Drawing.Point(1, 33); this.panel2.Name = "panel2"; @@ -98,7 +95,7 @@ this.btnBookImg.Cursor = System.Windows.Forms.Cursors.Hand; this.btnBookImg.DisabledBackColor = System.Drawing.Color.Empty; this.btnBookImg.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnBookImg.Location = new System.Drawing.Point(341, 523); + this.btnBookImg.Location = new System.Drawing.Point(332, 37); this.btnBookImg.Name = "btnBookImg"; this.btnBookImg.Size = new System.Drawing.Size(85, 26); this.btnBookImg.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -123,7 +120,7 @@ this.btnEditDetail.Cursor = System.Windows.Forms.Cursors.Hand; this.btnEditDetail.DisabledBackColor = System.Drawing.Color.Empty; this.btnEditDetail.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnEditDetail.Location = new System.Drawing.Point(341, 491); + this.btnEditDetail.Location = new System.Drawing.Point(332, 5); this.btnEditDetail.Name = "btnEditDetail"; this.btnEditDetail.Size = new System.Drawing.Size(85, 26); this.btnEditDetail.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -143,13 +140,12 @@ // // btnSelect // - this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnSelect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnSelect.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnSelect.ForeColor = System.Drawing.Color.White; - this.btnSelect.Location = new System.Drawing.Point(90, 491); + this.btnSelect.Location = new System.Drawing.Point(79, 5); this.btnSelect.Margin = new System.Windows.Forms.Padding(2); this.btnSelect.Name = "btnSelect"; this.btnSelect.Size = new System.Drawing.Size(70, 26); @@ -160,13 +156,12 @@ // // buttonEx1 // - this.buttonEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonEx1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.buttonEx1.Cursor = System.Windows.Forms.Cursors.Hand; this.buttonEx1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.buttonEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.buttonEx1.ForeColor = System.Drawing.Color.White; - this.buttonEx1.Location = new System.Drawing.Point(90, 600); + this.buttonEx1.Location = new System.Drawing.Point(79, 114); this.buttonEx1.Margin = new System.Windows.Forms.Padding(2); this.buttonEx1.Name = "buttonEx1"; this.buttonEx1.Size = new System.Drawing.Size(70, 26); @@ -178,8 +173,7 @@ // // pictureBox2 // - this.pictureBox2.Anchor = System.Windows.Forms.AnchorStyles.Top; - this.pictureBox2.Location = new System.Drawing.Point(165, 491); + this.pictureBox2.Location = new System.Drawing.Point(154, 5); this.pictureBox2.Name = "pictureBox2"; this.pictureBox2.Size = new System.Drawing.Size(136, 136); this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -190,7 +184,7 @@ // label9 // this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(19, 496); + this.label9.Location = new System.Drawing.Point(8, 10); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(68, 17); this.label9.TabIndex = 404; @@ -387,7 +381,7 @@ this.btnOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnOk.ForeColor = System.Drawing.Color.White; - this.btnOk.Location = new System.Drawing.Point(387, 601); + this.btnOk.Location = new System.Drawing.Point(400, 616); this.btnOk.Margin = new System.Windows.Forms.Padding(2); this.btnOk.Name = "btnOk"; this.btnOk.Size = new System.Drawing.Size(55, 26); @@ -396,6 +390,19 @@ this.btnOk.UseVisualStyleBackColor = false; this.btnOk.Click += new System.EventHandler(this.btnOk_Click); // + // pnlSkuOption + // + this.pnlSkuOption.Controls.Add(this.label9); + this.pnlSkuOption.Controls.Add(this.btnBookImg); + this.pnlSkuOption.Controls.Add(this.pictureBox2); + this.pnlSkuOption.Controls.Add(this.buttonEx1); + this.pnlSkuOption.Controls.Add(this.btnSelect); + this.pnlSkuOption.Controls.Add(this.btnEditDetail); + this.pnlSkuOption.Location = new System.Drawing.Point(10, 483); + this.pnlSkuOption.Name = "pnlSkuOption"; + this.pnlSkuOption.Size = new System.Drawing.Size(417, 147); + this.pnlSkuOption.TabIndex = 661; + // // PDDDBProdEditForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -412,6 +419,8 @@ this.panel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.pnlSkuOption.ResumeLayout(false); + this.pnlSkuOption.PerformLayout(); this.ResumeLayout(false); } @@ -443,5 +452,6 @@ private UserControls.ButtonEx btnSelect; private DevComponents.DotNetBar.PanelEx btnEditDetail; private DevComponents.DotNetBar.PanelEx btnBookImg; + public System.Windows.Forms.Panel pnlSkuOption; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs index ca99498..cb3bc06 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditForm.cs @@ -64,8 +64,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms private void btnOk_Click(object sender, EventArgs e) { - //var url = BaseClass.BuildObjString("product/mdy_product_notes"); - var url = BaseClass.BuildObjString("product/mdy_db_product"); + //var url = BaseClass.BuildPDDObjString("product/mdy_product_notes"); + var url = BaseClass.BuildPDDObjString("product/mdy_db_product"); var data = UserLogin.GetSignaturex() + "&db_id=" + dbProd.id + "¬es=" + this.txtNotes.Text.Trim(); data += "&product_name=" + this.txtProductName.Text.Trim(); @@ -172,7 +172,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms } string img_md5 = BaseClass.GetMd5(imgBase64); - var url = BaseClass.BuildObjString("product/add_sku_img_replace"); + var url = BaseClass.BuildPDDObjString("product/add_sku_img_replace"); var data = UserLogin.GetSignaturex() + "&product_db_id=" + dbProd.id; data += "&img_base64=" + imgBase64; @@ -213,7 +213,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms imgListForm.ShowDialog(); if (imgListForm.SelectDbImgId > 0) { - var url = BaseClass.BuildObjString("product/mdy_prod_sku_img_replace_id"); + var url = BaseClass.BuildPDDObjString("product/mdy_prod_sku_img_replace_id"); var data = UserLogin.GetSignaturex() + "&product_db_id=" + dbProd.id; data += "&img_db_id=" + imgListForm.SelectDbImgId; diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs index f5484b9..6896db3 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs @@ -780,6 +780,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbWxSafe.FormattingEnabled = true; this.cmbWxSafe.Items.AddRange(new object[] { "", + "安全+未校验", "安全商品", "违规商品", "未校验"}); @@ -788,6 +789,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbWxSafe.Name = "cmbWxSafe"; this.cmbWxSafe.Size = new System.Drawing.Size(37, 25); this.cmbWxSafe.TabIndex = 676; + this.cmbWxSafe.Text = "安全+未校验"; // // lblWxSafe // diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs index f2200a5..b78a254 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs @@ -90,7 +90,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms } if (BaseClass.MainPath != "binxixi") { - this.dgvDbProduct.Columns["col_edit"].Visible = false; + //this.dgvDbProduct.Columns["col_edit"].Visible = false; } btnSelect.Visible = false; @@ -315,7 +315,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms "&search_ext_code=" + txtExtCode.Text.Trim() + "&search_group=" + cmbGroupFilter.Text.Trim() + "&search_prod_name=" + txtProdName.Text.Trim() + - "&wx_safe_status=" + cmbWxSafe.Text.Trim() + + "&wx_safe_status=" + cmbWxSafe.Text.Trim().Replace("安全+未校验", "安全商品,未校验") + "&special_prod_type=" + cmbSpProdType.Text.Trim(); if (!string.IsNullOrEmpty(cmbWxCat.Text)) { @@ -408,7 +408,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.cmbGroupFilter.Text = ""; this.cmbSort.Text = "入库时间"; this.cmbSourceType.Text = ""; - this.cmbWxSafe.Text = ""; + this.cmbWxSafe.Text = "安全+未校验"; this.cmbSpProdType.Text = ""; this.cmbWxCat.Text = ""; this.cmbExportToOutServer.Text = ""; @@ -432,6 +432,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms case "详情": case "编辑/详情": PDDDBProdEditForm editForm = new PDDDBProdEditForm(dbProduct); + if (BaseClass.MainPath != "binxixi") + editForm.pnlSkuOption.Visible = false; editForm.ShowDialog(); dgvDbProduct.Rows[e.RowIndex].Cells["col_notes"].Value = dbProduct.notes; dgvDbProduct.Rows[e.RowIndex].Cells["col_ext_code"].Value = dbProduct.ext_code; @@ -1064,18 +1066,68 @@ namespace TemuKJD.PDDForms.ProductSelectForms var dbProd = PDDDBProdEditForm.GetPddProductDetail(prod.id.ParseToString()); var prodObj = JsonHelper.JObjectParse(dbProd.product_json); - List mainImgLst = new List(); + List mainImgLst3 = new List(); if (!prodObj["jstProd"].IsJTokenNullOrEmpty()) { var jstProd = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodObj["jstProd"])); - mainImgLst = jstProd.itemMainImage.Take(3).ToList(); - foreach (var img in mainImgLst) + mainImgLst3 = jstProd.itemMainImage.Take(3).ToList(); + bool is404 = false; + foreach (var img in mainImgLst3) { + // 盗链识别 var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); var upDate = UserLogin.GetSignaturex(); upDate += "&token=" + token.accessToken; upDate += "&post_data=" + GetHtml.UrlEncodeUtf8("{\"img_url\":\"" + img + "\"}"); var upDateRst = GetHtml.PostUtf8(urlImg, upDate); + + for (int i = 0; i < 20 && upDateRst.Contains("access_token expired"); i++) + { + token.mdyTime = DateTime.Now.AddDays(-100); + token = new WxApiBLL().GetRandomWxToken(); + upDateRst = GetHtml.PostUtf8(urlImg, upDate); + } + + if (upDateRst.Contains("原图url打开返回404")) + { + string in_db_ids = dbProd.id.ParseToString(); + var url = BaseClass.BuildPDDObjString("product/mdy_db_product"); + var data = UserLogin.GetSignaturex() + + "&in_db_ids=" + in_db_ids + "&wx_safe_status=违规商品"; + if (dbProd.notes.IsNullOrEmpty()) + data += "¬es=商品图片链接失效"; + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + } + // 上传图片识别 + if (upDateRst.Contains("图片格式不合法")) + { + string errMsg = ""; + var imgBase64 = WXForms.ProductForms.WXDBProdUploadForm.GetImgBase64ForApi(out errMsg, img, false, false); + if (!string.IsNullOrEmpty(errMsg)) + { + //break; + } + + urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); + upDate = UserLogin.GetSignaturex(); + upDate += "&token=" + token.accessToken; + //upDate += "&is_file=true"; + //if (needAddRandomBlock || wantAddRandomBlock) + // upDate += "&random_code=true"; + upDate += "&img_url=" + img; + upDate += "&img_base64=" + imgBase64; + + upDateRst = GetHtml.PostUtf8(urlImg, upDate); + for (int i = 0; i < 20 && upDateRst.Contains("access_token expired"); i++) + { + token.mdyTime = DateTime.Now.AddDays(-100); + token = new WxApiBLL().GetRandomWxToken(); + upDateRst = GetHtml.PostUtf8(urlImg, upDate); + } + } + var upImgUrl = BaseRegex.GetStringJson(ref upDateRst, "img_url"); (obj["head_imgs"] as JArray).Add(upImgUrl); } @@ -1156,6 +1208,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms if (row != null) { string catName = dbProd.cat_name; + string mainCatName = dbProd.main_cat_name ?? prod.main_cat_id; if (dbProd.wx_cat_leaf != null) { var catN = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == dbProd.wx_cat_leaf.ParseToString())?.name; @@ -1180,16 +1233,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms catName = catN + " >> " + catName; } } - if (prod.wx_cat_1 != null) + if (dbProd.wx_cat_1 != null) { var catN = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == dbProd.wx_cat_1.ParseToString())?.name; if (!string.IsNullOrEmpty(catN)) { catName = catN + " >> " + catName; + mainCatName = catN; } } Invoke(new Action(() => { + row.Cells["colMainCate"].Value = mainCatName; row.Cells["col_cat_name"].Value = catName; })); } diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs index b112d48..c90b267 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs @@ -114,7 +114,7 @@ namespace TemuKJD.ToolForms this.splitContainer2.Panel1.Controls.Add(this.btnNext); this.splitContainer2.Panel1.Controls.Add(this.btnPrev); this.splitContainer2.Panel1.Controls.Add(this.txtAddress); - this.splitContainer2.Size = new System.Drawing.Size(1390, 440); + this.splitContainer2.Size = new System.Drawing.Size(1390, 434); this.splitContainer2.SplitterDistance = 26; this.splitContainer2.TabIndex = 6; // @@ -153,7 +153,7 @@ namespace TemuKJD.ToolForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(673, 194); + this.pbLoading.Location = new System.Drawing.Point(673, 195); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -197,7 +197,7 @@ namespace TemuKJD.ToolForms this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; - this.dgvProduct.Size = new System.Drawing.Size(1390, 433); + this.dgvProduct.Size = new System.Drawing.Size(1390, 434); this.dgvProduct.TabIndex = 7; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // @@ -333,7 +333,7 @@ namespace TemuKJD.ToolForms this.splitContainer1.Panel2.Controls.Add(this.btnImportCookie); this.splitContainer1.Panel2.Controls.Add(this.label2); this.splitContainer1.Size = new System.Drawing.Size(1404, 561); - this.splitContainer1.SplitterDistance = 469; + this.splitContainer1.SplitterDistance = 470; this.splitContainer1.SplitterWidth = 3; this.splitContainer1.TabIndex = 4; // @@ -348,7 +348,7 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.Name = "ucTabControlMetro1"; this.ucTabControlMetro1.SelectedIndex = 0; this.ucTabControlMetro1.ShowCloseButton = false; - this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 469); + this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 470); this.ucTabControlMetro1.TabIndex = 462; this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; @@ -360,7 +360,7 @@ namespace TemuKJD.ToolForms this.tabPage1.Location = new System.Drawing.Point(4, 26); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1396, 446); + this.tabPage1.Size = new System.Drawing.Size(1396, 440); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "商品页面"; this.tabPage1.UseVisualStyleBackColor = true; @@ -372,7 +372,7 @@ namespace TemuKJD.ToolForms this.tabPage2.Location = new System.Drawing.Point(4, 26); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(1396, 439); + this.tabPage2.Size = new System.Drawing.Size(1396, 440); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "采集列表"; this.tabPage2.UseVisualStyleBackColor = true; diff --git a/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs b/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs index 9394300..74ea3bb 100644 --- a/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs +++ b/TEMUKJD/UserComponent/UcComboBoxMutiSelect .cs @@ -9,6 +9,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using TemuKJD.Extension; namespace TemuKJD.UserComponent { @@ -46,19 +47,32 @@ namespace TemuKJD.UserComponent ControlStyles.AllPaintingInWmPaint, true); UpdateStyles(); + this.Text = DefaultText; + this.DropDownWidth = 1; + this.DropDownHeight = 1; this.DropDown += UcComboBoxMutiSelect_DropDown; - //this.DropDownClosed += UcComboBoxMutiSelect_DropDownClosed; + this.DropDownClosed += UcComboBoxMutiSelect_DropDownClosed; } private void UcComboBoxMutiSelect_DropDownClosed(object sender, EventArgs e) { if (checkedListBox != null) - checkedListBox.Visible = false; + { + var parentForm = this.FindForm(); + Point mousePosition = parentForm.PointToClient(Cursor.Position); + Point relativeLocation = checkedListBox.GetRelativePosition(); + + if (mousePosition.X < relativeLocation.X || mousePosition.X > relativeLocation.X + checkedListBox.Width || + mousePosition.Y < relativeLocation.Y || mousePosition.Y > relativeLocation.Y + checkedListBox.Height) + { + checkedListBox.Visible = false; + } + } } private void UcComboBoxMutiSelect_DropDown(object sender, EventArgs e) { - this.DropDownHeight = 1; + var parentForm = this.FindForm(); if (checkedListBox == null) { @@ -69,21 +83,9 @@ namespace TemuKJD.UserComponent checkedListBox.MouseLeave += checkedListBox_MouseLeave; checkedListBox.MouseEnter += CheckedListBox_MouseEnter; checkedListBox.MouseMove += CheckedListBox_MouseMove; - //checkedListBox.MouseUp += new MouseEventHandler(this.checkedListBox_MouseUp); + //checkedListBox.MouseUp += new MouseEventHandler(checkedListBox_MouseUp); - Point point = new Point(); - point.X = this.Left; - point.Y = this.Top + this.Height; - var parentForm = this.Parent; - while (!(parentForm is Form)) - { - point.X += parentForm.Left; - point.Y += parentForm.Top; - parentForm = parentForm.Parent; - } parentForm.Controls.Add(checkedListBox); - checkedListBox.Location = point; - checkedListBox.Size = new Size(Math.Max(80, this.Width), 100); } string str1 = string.Join(",", this.Items.Cast().Select(o => o.ParseToString())); @@ -92,14 +94,34 @@ namespace TemuKJD.UserComponent { checkedListBox.Items.Clear(); foreach (var item in this.Items) - { - checkedListBox.Items.Add(item.ParseToString(), true); + { + checkedListBox.Items.Add(item.ParseToString(), true); } } + for (int index = 0; index < checkedListBox.Items.Count; index++) + { + var item = checkedListBox.Items[index]; + if (this.Text == "全部" || this.Text.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).Contains(item.ParseToString())) + checkedListBox.SetItemChecked(index, true); + else + checkedListBox.SetItemChecked(index, false); + } - this.FindForm().ActiveControl = checkedListBox; + checkedListBox.SendToBack(); checkedListBox.Visible = true; + // 确定弹出列表框的大小和位置 + checkedListBox.Size = new Size(Math.Max(80, this.Width), Math.Min(300, checkedListBox.PreferredHeight)); + Point relativeLocation = this.GetRelativePosition(); + if (parentForm.Height - relativeLocation.Y >= this.Height + checkedListBox.Size.Height + 20) + relativeLocation = new Point(relativeLocation.X, relativeLocation.Y + this.Height); + else + relativeLocation = new Point(relativeLocation.X, relativeLocation.Y - checkedListBox.Size.Height); + checkedListBox.Location = relativeLocation; checkedListBox.BringToFront(); + + //parentForm.ActiveControl = checkedListBox; + //checkedListBox.Focus(); + } private void CheckedListBox_MouseMove(object sender, MouseEventArgs e) diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index 6fac5b1..316bf6e 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -107,13 +107,18 @@ namespace TemuKJD.WXForms.ProductForms this.txtAddCount = new System.Windows.Forms.TextBox(); this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); - this.cmbFilterShopNotes = new System.Windows.Forms.ComboBox(); + this.btnSelectOffline = new DevComponents.DotNetBar.PanelEx(); + this.btnSelectOnline = new DevComponents.DotNetBar.PanelEx(); + this.btnAddUnSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnReverse = new DevComponents.DotNetBar.PanelEx(); + this.cmbFilterShopNotes = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); + this.btnAddSelect = new DevComponents.DotNetBar.PanelEx(); this.btnEmptyShop = new DevComponents.DotNetBar.PanelEx(); this.btnFilterShop = new DevComponents.DotNetBar.PanelEx(); - this.label17 = new System.Windows.Forms.Label(); this.label16 = new System.Windows.Forms.Label(); this.txtFilterShopName = new System.Windows.Forms.TextBox(); this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); + this.label17 = new System.Windows.Forms.Label(); this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.btnRefreshNum = new DevComponents.DotNetBar.PanelEx(); @@ -126,6 +131,7 @@ namespace TemuKJD.WXForms.ProductForms 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(); @@ -164,6 +170,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.panel1 = new System.Windows.Forms.Panel(); + this.btnRefreshAuthor = new DevComponents.DotNetBar.PanelEx(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -209,7 +216,7 @@ namespace TemuKJD.WXForms.ProductForms // this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); this.splitContainer1.Size = new System.Drawing.Size(1523, 546); - this.splitContainer1.SplitterDistance = 158; + this.splitContainer1.SplitterDistance = 165; this.splitContainer1.TabIndex = 11; // // ucGroupBoxEx2 @@ -253,9 +260,9 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx2.Controls.Add(this.label4); this.ucGroupBoxEx2.Controls.Add(this.label9); this.ucGroupBoxEx2.Controls.Add(this.chkStepAddPrice); - this.ucGroupBoxEx2.Location = new System.Drawing.Point(549, 2); + this.ucGroupBoxEx2.Location = new System.Drawing.Point(571, 2); this.ucGroupBoxEx2.Name = "ucGroupBoxEx2"; - this.ucGroupBoxEx2.Size = new System.Drawing.Size(972, 158); + this.ucGroupBoxEx2.Size = new System.Drawing.Size(950, 165); this.ucGroupBoxEx2.TabIndex = 667; this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品上传"; @@ -274,7 +281,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, 128); + this.txtShippingPriceTimes.Location = new System.Drawing.Point(344, 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); @@ -285,7 +292,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, 131); + this.label13.Location = new System.Drawing.Point(307, 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); @@ -387,7 +394,7 @@ namespace TemuKJD.WXForms.ProductForms this.txtReplaceText.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); this.txtReplaceText.Multiline = true; this.txtReplaceText.Name = "txtReplaceText"; - this.txtReplaceText.Size = new System.Drawing.Size(328, 40); + this.txtReplaceText.Size = new System.Drawing.Size(306, 40); this.txtReplaceText.TabIndex = 740; this.txtReplaceText.Text = "真丝,蚕丝,香云纱,羊绒,羊毛,羊羔绒,羊羔毛,羽绒,皮草"; this.txtReplaceText.TextChanged += new System.EventHandler(this.txtReplaceText_TextChanged); @@ -430,7 +437,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(845, 34); + this.label7.Location = new System.Drawing.Point(823, 34); this.label7.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(20, 17); @@ -440,7 +447,7 @@ namespace TemuKJD.WXForms.ProductForms // txtWaitSeconds // this.txtWaitSeconds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtWaitSeconds.Location = new System.Drawing.Point(813, 31); + this.txtWaitSeconds.Location = new System.Drawing.Point(791, 31); this.txtWaitSeconds.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtWaitSeconds.Name = "txtWaitSeconds"; this.txtWaitSeconds.Size = new System.Drawing.Size(32, 23); @@ -452,7 +459,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(759, 34); + this.label6.Location = new System.Drawing.Point(737, 34); this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(56, 17); @@ -465,7 +472,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnStop.CanvasColor = System.Drawing.SystemColors.Control; this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnStop.DisabledBackColor = System.Drawing.Color.Empty; - this.btnStop.Location = new System.Drawing.Point(866, 59); + this.btnStop.Location = new System.Drawing.Point(844, 59); this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnStop.Name = "btnStop"; this.btnStop.Size = new System.Drawing.Size(84, 23); @@ -489,7 +496,7 @@ 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, 129); + this.chkAddMorePriceFirst.Location = new System.Drawing.Point(201, 136); this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst"; this.chkAddMorePriceFirst.Size = new System.Drawing.Size(111, 21); this.chkAddMorePriceFirst.TabIndex = 625; @@ -503,7 +510,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearDgv.Location = new System.Drawing.Point(866, 87); + this.btnClearDgv.Location = new System.Drawing.Point(844, 87); this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearDgv.Name = "btnClearDgv"; this.btnClearDgv.Size = new System.Drawing.Size(84, 23); @@ -528,7 +535,7 @@ namespace TemuKJD.WXForms.ProductForms this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label14.AutoSize = true; this.label14.ForeColor = System.Drawing.SystemColors.GrayText; - this.label14.Location = new System.Drawing.Point(8, 74); + this.label14.Location = new System.Drawing.Point(8, 81); this.label14.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(68, 51); @@ -539,7 +546,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(180, 131); + this.label15.Location = new System.Drawing.Point(180, 138); this.label15.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(20, 17); @@ -554,7 +561,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, 107); + this.panel4.Size = new System.Drawing.Size(366, 114); this.panel4.TabIndex = 577; // // panel3 @@ -567,7 +574,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, 105); + this.panel3.Size = new System.Drawing.Size(364, 112); this.panel3.TabIndex = 541; // // fPnlPriceRule @@ -672,7 +679,7 @@ namespace TemuKJD.WXForms.ProductForms // txtAddMorePrice // this.txtAddMorePrice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtAddMorePrice.Location = new System.Drawing.Point(149, 128); + this.txtAddMorePrice.Location = new System.Drawing.Point(149, 135); this.txtAddMorePrice.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtAddMorePrice.Name = "txtAddMorePrice"; this.txtAddMorePrice.Size = new System.Drawing.Size(31, 23); @@ -683,7 +690,7 @@ namespace TemuKJD.WXForms.ProductForms // txtAddTimes // this.txtAddTimes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtAddTimes.Location = new System.Drawing.Point(76, 128); + this.txtAddTimes.Location = new System.Drawing.Point(76, 135); this.txtAddTimes.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtAddTimes.Name = "txtAddTimes"; this.txtAddTimes.Size = new System.Drawing.Size(31, 23); @@ -695,7 +702,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(107, 131); + this.label10.Location = new System.Drawing.Point(107, 138); this.label10.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(44, 17); @@ -709,7 +716,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnUpload.Cursor = System.Windows.Forms.Cursors.Hand; this.btnUpload.DisabledBackColor = System.Drawing.Color.Empty; this.btnUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnUpload.Location = new System.Drawing.Point(866, 31); + this.btnUpload.Location = new System.Drawing.Point(844, 31); this.btnUpload.Name = "btnUpload"; this.btnUpload.Size = new System.Drawing.Size(84, 23); this.btnUpload.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -730,7 +737,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, 128); + this.txtStockNum.Location = new System.Drawing.Point(410, 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); @@ -742,7 +749,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, 131); + this.label4.Location = new System.Drawing.Point(379, 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); @@ -753,7 +760,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(8, 131); + this.label9.Location = new System.Drawing.Point(8, 138); this.label9.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(68, 17); @@ -805,9 +812,9 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.Controls.Add(this.lblWaitToUp); this.ucGroupBoxEx4.Controls.Add(this.txtAddCount); this.ucGroupBoxEx4.Controls.Add(this.panelEx2); - this.ucGroupBoxEx4.Location = new System.Drawing.Point(139, 2); + this.ucGroupBoxEx4.Location = new System.Drawing.Point(162, 2); this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; - this.ucGroupBoxEx4.Size = new System.Drawing.Size(410, 158); + this.ucGroupBoxEx4.Size = new System.Drawing.Size(410, 165); this.ucGroupBoxEx4.TabIndex = 666; this.ucGroupBoxEx4.TabStop = false; this.ucGroupBoxEx4.Text = "待传商品"; @@ -818,7 +825,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(264, 100); + this.btnFilterBound.Location = new System.Drawing.Point(264, 102); this.btnFilterBound.Name = "btnFilterBound"; this.btnFilterBound.Size = new System.Drawing.Size(58, 23); this.btnFilterBound.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -841,7 +848,7 @@ namespace TemuKJD.WXForms.ProductForms // label12 // this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(221, 103); + this.label12.Location = new System.Drawing.Point(221, 105); this.label12.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(44, 17); @@ -851,7 +858,7 @@ namespace TemuKJD.WXForms.ProductForms // txtFilterBound // this.txtFilterBound.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtFilterBound.Location = new System.Drawing.Point(178, 99); + this.txtFilterBound.Location = new System.Drawing.Point(178, 101); this.txtFilterBound.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtFilterBound.Name = "txtFilterBound"; this.txtFilterBound.Size = new System.Drawing.Size(43, 25); @@ -861,7 +868,7 @@ namespace TemuKJD.WXForms.ProductForms // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(4, 103); + this.label1.Location = new System.Drawing.Point(4, 105); this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(176, 17); @@ -871,7 +878,7 @@ namespace TemuKJD.WXForms.ProductForms // cmbCateFilter3 // this.cmbCateFilter3.FormattingEnabled = true; - this.cmbCateFilter3.Location = new System.Drawing.Point(309, 18); + this.cmbCateFilter3.Location = new System.Drawing.Point(309, 20); this.cmbCateFilter3.Name = "cmbCateFilter3"; this.cmbCateFilter3.Size = new System.Drawing.Size(92, 25); this.cmbCateFilter3.TabIndex = 710; @@ -880,7 +887,7 @@ namespace TemuKJD.WXForms.ProductForms // txtExtCodeFilter // this.txtExtCodeFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtExtCodeFilter.Location = new System.Drawing.Point(309, 72); + this.txtExtCodeFilter.Location = new System.Drawing.Point(309, 74); this.txtExtCodeFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtExtCodeFilter.Name = "txtExtCodeFilter"; this.txtExtCodeFilter.Size = new System.Drawing.Size(92, 25); @@ -890,7 +897,7 @@ namespace TemuKJD.WXForms.ProductForms // label21 // this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(271, 22); + this.label21.Location = new System.Drawing.Point(271, 24); this.label21.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(39, 17); @@ -900,7 +907,7 @@ namespace TemuKJD.WXForms.ProductForms // cmbGroupFilter // this.cmbGroupFilter.FormattingEnabled = true; - this.cmbGroupFilter.Location = new System.Drawing.Point(47, 72); + this.cmbGroupFilter.Location = new System.Drawing.Point(47, 74); this.cmbGroupFilter.Name = "cmbGroupFilter"; this.cmbGroupFilter.Size = new System.Drawing.Size(92, 25); this.cmbGroupFilter.TabIndex = 641; @@ -909,7 +916,7 @@ namespace TemuKJD.WXForms.ProductForms // txtIdFilter // this.txtIdFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtIdFilter.Location = new System.Drawing.Point(178, 72); + this.txtIdFilter.Location = new System.Drawing.Point(178, 74); 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); @@ -923,7 +930,7 @@ namespace TemuKJD.WXForms.ProductForms "", "已设置", "未设置"}); - this.cmbJstInitSet.Location = new System.Drawing.Point(178, 45); + this.cmbJstInitSet.Location = new System.Drawing.Point(178, 47); this.cmbJstInitSet.Name = "cmbJstInitSet"; this.cmbJstInitSet.Size = new System.Drawing.Size(92, 25); this.cmbJstInitSet.TabIndex = 697; @@ -932,7 +939,7 @@ namespace TemuKJD.WXForms.ProductForms // lblIdFilter // this.lblIdFilter.AutoSize = true; - this.lblIdFilter.Location = new System.Drawing.Point(158, 76); + this.lblIdFilter.Location = new System.Drawing.Point(158, 78); 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); @@ -943,7 +950,7 @@ namespace TemuKJD.WXForms.ProductForms // cmbCateFilter2 // this.cmbCateFilter2.FormattingEnabled = true; - this.cmbCateFilter2.Location = new System.Drawing.Point(178, 18); + this.cmbCateFilter2.Location = new System.Drawing.Point(178, 20); this.cmbCateFilter2.Name = "cmbCateFilter2"; this.cmbCateFilter2.Size = new System.Drawing.Size(92, 25); this.cmbCateFilter2.TabIndex = 708; @@ -952,7 +959,7 @@ namespace TemuKJD.WXForms.ProductForms // lblExtCodeFilter // this.lblExtCodeFilter.AutoSize = true; - this.lblExtCodeFilter.Location = new System.Drawing.Point(278, 76); + this.lblExtCodeFilter.Location = new System.Drawing.Point(278, 78); this.lblExtCodeFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblExtCodeFilter.Name = "lblExtCodeFilter"; this.lblExtCodeFilter.Size = new System.Drawing.Size(32, 17); @@ -963,7 +970,7 @@ namespace TemuKJD.WXForms.ProductForms // lblJstInitSet // this.lblJstInitSet.AutoSize = true; - this.lblJstInitSet.Location = new System.Drawing.Point(147, 49); + this.lblJstInitSet.Location = new System.Drawing.Point(147, 51); this.lblJstInitSet.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblJstInitSet.Name = "lblJstInitSet"; this.lblJstInitSet.Size = new System.Drawing.Size(32, 17); @@ -973,7 +980,7 @@ namespace TemuKJD.WXForms.ProductForms // lblGroupFilter // this.lblGroupFilter.AutoSize = true; - this.lblGroupFilter.Location = new System.Drawing.Point(16, 76); + this.lblGroupFilter.Location = new System.Drawing.Point(16, 78); this.lblGroupFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblGroupFilter.Name = "lblGroupFilter"; this.lblGroupFilter.Size = new System.Drawing.Size(32, 17); @@ -984,7 +991,7 @@ namespace TemuKJD.WXForms.ProductForms // label19 // this.label19.AutoSize = true; - this.label19.Location = new System.Drawing.Point(140, 22); + this.label19.Location = new System.Drawing.Point(140, 24); this.label19.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(39, 17); @@ -1000,7 +1007,7 @@ namespace TemuKJD.WXForms.ProductForms "店铺采集", "机会商品", "外部数据"}); - this.cmbSourceType.Location = new System.Drawing.Point(309, 45); + this.cmbSourceType.Location = new System.Drawing.Point(309, 47); this.cmbSourceType.Name = "cmbSourceType"; this.cmbSourceType.Size = new System.Drawing.Size(92, 25); this.cmbSourceType.TabIndex = 673; @@ -1012,7 +1019,7 @@ namespace TemuKJD.WXForms.ProductForms // lblSourceType // this.lblSourceType.AutoSize = true; - this.lblSourceType.Location = new System.Drawing.Point(278, 48); + this.lblSourceType.Location = new System.Drawing.Point(278, 50); this.lblSourceType.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblSourceType.Name = "lblSourceType"; this.lblSourceType.Size = new System.Drawing.Size(32, 17); @@ -1026,7 +1033,7 @@ namespace TemuKJD.WXForms.ProductForms 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(343, 99); + this.btnClearFilter.Location = new System.Drawing.Point(343, 101); 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); @@ -1049,7 +1056,7 @@ namespace TemuKJD.WXForms.ProductForms // lblGoodsCount // this.lblGoodsCount.AutoSize = true; - this.lblGoodsCount.Location = new System.Drawing.Point(9, 130); + this.lblGoodsCount.Location = new System.Drawing.Point(9, 132); this.lblGoodsCount.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblGoodsCount.Name = "lblGoodsCount"; this.lblGoodsCount.Size = new System.Drawing.Size(71, 17); @@ -1064,7 +1071,7 @@ namespace TemuKJD.WXForms.ProductForms "安全+未校验", "安全商品", "未校验"}); - this.cmbWxSafe.Location = new System.Drawing.Point(47, 45); + this.cmbWxSafe.Location = new System.Drawing.Point(47, 47); this.cmbWxSafe.Name = "cmbWxSafe"; this.cmbWxSafe.Size = new System.Drawing.Size(92, 25); this.cmbWxSafe.TabIndex = 675; @@ -1073,7 +1080,7 @@ namespace TemuKJD.WXForms.ProductForms // lblWxSafe // this.lblWxSafe.AutoSize = true; - this.lblWxSafe.Location = new System.Drawing.Point(4, 48); + this.lblWxSafe.Location = new System.Drawing.Point(4, 50); this.lblWxSafe.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblWxSafe.Name = "lblWxSafe"; this.lblWxSafe.Size = new System.Drawing.Size(44, 17); @@ -1086,7 +1093,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearUpload.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearUpload.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearUpload.Location = new System.Drawing.Point(343, 126); + this.btnClearUpload.Location = new System.Drawing.Point(343, 128); this.btnClearUpload.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearUpload.Name = "btnClearUpload"; this.btnClearUpload.Size = new System.Drawing.Size(58, 25); @@ -1109,7 +1116,7 @@ namespace TemuKJD.WXForms.ProductForms // cmbCateFilter1 // this.cmbCateFilter1.FormattingEnabled = true; - this.cmbCateFilter1.Location = new System.Drawing.Point(47, 18); + this.cmbCateFilter1.Location = new System.Drawing.Point(47, 20); this.cmbCateFilter1.Name = "cmbCateFilter1"; this.cmbCateFilter1.Size = new System.Drawing.Size(92, 25); this.cmbCateFilter1.TabIndex = 663; @@ -1118,7 +1125,7 @@ namespace TemuKJD.WXForms.ProductForms // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(9, 22); + this.label2.Location = new System.Drawing.Point(9, 24); this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(39, 17); @@ -1131,7 +1138,7 @@ namespace TemuKJD.WXForms.ProductForms this.lblWaitToUp.Cursor = System.Windows.Forms.Cursors.Hand; this.lblWaitToUp.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lblWaitToUp.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.lblWaitToUp.Location = new System.Drawing.Point(120, 130); + this.lblWaitToUp.Location = new System.Drawing.Point(120, 132); this.lblWaitToUp.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblWaitToUp.Name = "lblWaitToUp"; this.lblWaitToUp.Size = new System.Drawing.Size(71, 17); @@ -1142,7 +1149,7 @@ namespace TemuKJD.WXForms.ProductForms // txtAddCount // this.txtAddCount.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtAddCount.Location = new System.Drawing.Point(245, 126); + this.txtAddCount.Location = new System.Drawing.Point(245, 128); this.txtAddCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtAddCount.Name = "txtAddCount"; this.txtAddCount.Size = new System.Drawing.Size(36, 25); @@ -1155,7 +1162,7 @@ namespace TemuKJD.WXForms.ProductForms this.panelEx2.Cursor = System.Windows.Forms.Cursors.Hand; this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty; this.panelEx2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.panelEx2.Location = new System.Drawing.Point(283, 126); + this.panelEx2.Location = new System.Drawing.Point(283, 128); this.panelEx2.Name = "panelEx2"; this.panelEx2.Size = new System.Drawing.Size(58, 25); this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1179,38 +1186,168 @@ namespace TemuKJD.WXForms.ProductForms | 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.btnRefreshAuthor); + this.ucGroupBoxEx1.Controls.Add(this.btnSelectOffline); + this.ucGroupBoxEx1.Controls.Add(this.btnSelectOnline); + this.ucGroupBoxEx1.Controls.Add(this.btnAddUnSelect); + this.ucGroupBoxEx1.Controls.Add(this.btnReverse); this.ucGroupBoxEx1.Controls.Add(this.cmbFilterShopNotes); + this.ucGroupBoxEx1.Controls.Add(this.btnAddSelect); this.ucGroupBoxEx1.Controls.Add(this.btnEmptyShop); this.ucGroupBoxEx1.Controls.Add(this.btnFilterShop); - this.ucGroupBoxEx1.Controls.Add(this.label17); this.ucGroupBoxEx1.Controls.Add(this.label16); this.ucGroupBoxEx1.Controls.Add(this.txtFilterShopName); this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); + 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(136, 158); + this.ucGroupBoxEx1.Size = new System.Drawing.Size(160, 165); this.ucGroupBoxEx1.TabIndex = 399; this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "基础"; // + // 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, 137); + 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); + // + // 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, 137); + 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, 115); + 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, 137); + 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); + // // cmbFilterShopNotes // + this.cmbFilterShopNotes.DefaultText = "全部"; + this.cmbFilterShopNotes.DropDownHeight = 1; + this.cmbFilterShopNotes.DropDownWidth = 1; this.cmbFilterShopNotes.FormattingEnabled = true; - this.cmbFilterShopNotes.Location = new System.Drawing.Point(38, 86); + this.cmbFilterShopNotes.IntegralHeight = false; + this.cmbFilterShopNotes.Location = new System.Drawing.Point(38, 66); this.cmbFilterShopNotes.Name = "cmbFilterShopNotes"; - this.cmbFilterShopNotes.Size = new System.Drawing.Size(89, 25); - this.cmbFilterShopNotes.TabIndex = 723; + this.cmbFilterShopNotes.Size = new System.Drawing.Size(113, 25); + this.cmbFilterShopNotes.TabIndex = 442; + this.cmbFilterShopNotes.Text = "全部"; + // + // 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, 115); + 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.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 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(10, 116); + this.btnEmptyShop.Location = new System.Drawing.Point(113, 93); this.btnEmptyShop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnEmptyShop.Name = "btnEmptyShop"; - this.btnEmptyShop.Size = new System.Drawing.Size(37, 24); + 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))))); @@ -1229,14 +1366,13 @@ namespace TemuKJD.WXForms.ProductForms // // btnFilterShop // - this.btnFilterShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 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(49, 116); + this.btnFilterShop.Location = new System.Drawing.Point(9, 93); this.btnFilterShop.Name = "btnFilterShop"; - this.btnFilterShop.Size = new System.Drawing.Size(78, 24); + 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))))); @@ -1252,20 +1388,10 @@ namespace TemuKJD.WXForms.ProductForms this.btnFilterShop.Text = "过滤店铺"; this.btnFilterShop.Click += new System.EventHandler(this.btnFilterShop_Click); // - // label17 - // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(6, 61); - 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 = "名称"; - // // label16 // this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(7, 90); + this.label16.Location = new System.Drawing.Point(7, 70); 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); @@ -1275,22 +1401,21 @@ namespace TemuKJD.WXForms.ProductForms // txtFilterShopName // this.txtFilterShopName.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtFilterShopName.Location = new System.Drawing.Point(38, 57); + this.txtFilterShopName.Location = new System.Drawing.Point(38, 39); this.txtFilterShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtFilterShopName.Name = "txtFilterShopName"; - this.txtFilterShopName.Size = new System.Drawing.Size(89, 25); + this.txtFilterShopName.Size = new System.Drawing.Size(113, 25); this.txtFilterShopName.TabIndex = 653; // // btnRefreshShop // - this.btnRefreshShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRefreshShop.Location = new System.Drawing.Point(14, 28); + this.btnRefreshShop.Location = new System.Drawing.Point(9, 17); this.btnRefreshShop.Name = "btnRefreshShop"; - this.btnRefreshShop.Size = new System.Drawing.Size(113, 24); + this.btnRefreshShop.Size = new System.Drawing.Size(70, 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))))); @@ -1306,6 +1431,16 @@ namespace TemuKJD.WXForms.ProductForms this.btnRefreshShop.Text = "刷新店铺"; this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click); // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(7, 43); + 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; @@ -1321,8 +1456,8 @@ namespace TemuKJD.WXForms.ProductForms // splitContainer3.Panel2 // this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); - this.splitContainer3.Size = new System.Drawing.Size(1523, 384); - this.splitContainer3.SplitterDistance = 354; + this.splitContainer3.Size = new System.Drawing.Size(1523, 377); + this.splitContainer3.SplitterDistance = 347; this.splitContainer3.TabIndex = 1; // // splitContainer2 @@ -1348,7 +1483,7 @@ namespace TemuKJD.WXForms.ProductForms this.splitContainer2.Panel2.Controls.Add(this.chkTestNoAuditUpload); this.splitContainer2.Panel2.Controls.Add(this.dgvSelectProduct); this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); - this.splitContainer2.Size = new System.Drawing.Size(1523, 354); + this.splitContainer2.Size = new System.Drawing.Size(1523, 347); this.splitContainer2.SplitterDistance = 350; this.splitContainer2.TabIndex = 0; // @@ -1382,7 +1517,7 @@ namespace TemuKJD.WXForms.ProductForms // 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, 152); + this.pbLoadingShop.Location = new System.Drawing.Point(150, 148); this.pbLoadingShop.Name = "pbLoadingShop"; this.pbLoadingShop.Size = new System.Drawing.Size(50, 50); this.pbLoadingShop.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -1416,6 +1551,7 @@ namespace TemuKJD.WXForms.ProductForms this.colShopNotes, this.colSelectProduct, this.colLoginStatus, + this.colApi, this.colCanUse, this.colUploadCount, this.colOnSaleNum, @@ -1427,7 +1563,7 @@ namespace TemuKJD.WXForms.ProductForms this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; this.dgvShop.RowTemplate.Height = 23; - this.dgvShop.Size = new System.Drawing.Size(346, 354); + this.dgvShop.Size = new System.Drawing.Size(346, 347); this.dgvShop.TabIndex = 6; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // @@ -1490,6 +1626,13 @@ namespace TemuKJD.WXForms.ProductForms 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.Width = 38; + // // colCanUse // this.colCanUse.HeaderText = "可用"; @@ -1512,6 +1655,7 @@ namespace TemuKJD.WXForms.ProductForms this.colOnSaleNum.HeaderText = "在售"; this.colOnSaleNum.Name = "colOnSaleNum"; this.colOnSaleNum.ReadOnly = true; + this.colOnSaleNum.Visible = false; this.colOnSaleNum.Width = 38; // // colRemaining @@ -1531,7 +1675,7 @@ namespace TemuKJD.WXForms.ProductForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(559, 152); + this.pbLoading.Location = new System.Drawing.Point(559, 148); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -1569,7 +1713,7 @@ namespace TemuKJD.WXForms.ProductForms // this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(8, 33); + this.label11.Location = new System.Drawing.Point(8, 26); this.label11.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(68, 17); @@ -1580,7 +1724,7 @@ namespace TemuKJD.WXForms.ProductForms // txtSinglePriceAdd // this.txtSinglePriceAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtSinglePriceAdd.Location = new System.Drawing.Point(76, 30); + this.txtSinglePriceAdd.Location = new System.Drawing.Point(76, 23); this.txtSinglePriceAdd.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtSinglePriceAdd.Name = "txtSinglePriceAdd"; this.txtSinglePriceAdd.Size = new System.Drawing.Size(31, 23); @@ -1646,7 +1790,7 @@ namespace TemuKJD.WXForms.ProductForms this.dgvSelectProduct.Name = "dgvSelectProduct"; this.dgvSelectProduct.ReadOnly = true; this.dgvSelectProduct.RowTemplate.Height = 23; - this.dgvSelectProduct.Size = new System.Drawing.Size(1165, 354); + this.dgvSelectProduct.Size = new System.Drawing.Size(1165, 347); this.dgvSelectProduct.TabIndex = 187; this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); // @@ -1917,7 +2061,30 @@ namespace TemuKJD.WXForms.ProductForms this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(881, 86); this.panel1.TabIndex = 189; - this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint); + // + // 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(81, 17); + 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.Click += new System.EventHandler(this.btnRefreshAuthor_Click); // // WXDBProdUploadForm // @@ -2077,6 +2244,17 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.TextBox txtShippingPriceTimes; private System.Windows.Forms.Label label13; 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 UserComponent.UcCheckBox chkImgRandomBlock; + private UserComponent.UcComboBoxMutiSelect cmbFilterShopNotes; + 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 System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; @@ -2084,16 +2262,12 @@ namespace TemuKJD.WXForms.ProductForms 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 DevComponents.DotNetBar.PanelEx btnFilterShop; - private System.Windows.Forms.Label label17; - private System.Windows.Forms.Label label16; - private DevComponents.DotNetBar.PanelEx btnEmptyShop; - private UserComponent.UcCheckBox chkImgRandomBlock; - private System.Windows.Forms.ComboBox cmbFilterShopNotes; + private DevComponents.DotNetBar.PanelEx btnRefreshAuthor; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index c81d04d..45690ae 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -39,8 +39,9 @@ namespace TemuKJD.WXForms.ProductForms bool isInit = false; CheckBox chkSelectAll = null; - Dictionary dicShopGetCount = new Dictionary(); - Dictionary> dicNotSupportCate = new Dictionary>(); + //Dictionary dicShopGetCount = new Dictionary(); + //Dictionary> dicNotSupportCate = new Dictionary>(); + ConcurrentList lstShopAuthInfo = new ConcurrentList(); public NaiBa.Util.ConcurrentList lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); NaiBa.Util.ConcurrentList lstAddPriceRule = new NaiBa.Util.ConcurrentList(); AddPriceRule defaultAddPriceRule = null; @@ -67,6 +68,10 @@ namespace TemuKJD.WXForms.ProductForms this.panel1.Height = this.Height - 60; this.panel1.SendToBack(); + lstShopAuthInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_auth_list"); + if (lstShopAuthInfo == null) + lstShopAuthInfo = new ConcurrentList(); + lstTemuDBProductSelect = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_db_prod_upload_list"); if (lstTemuDBProductSelect == null) lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); @@ -256,6 +261,83 @@ namespace TemuKJD.WXForms.ProductForms IsLoadComplate = true; } + private void btnRefreshAuthor_Click(object sender, EventArgs e) + { + updateAuthor(true); + } + private void updateAuthor(bool refreshAll = false) + { + this.pbLoadingShop.Visible = true; + Task.Run(() => + { + // 店铺Id + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + + List tList = new List(); + if (refreshAll) + lstShopAuthInfo.Clear(); + foreach (var shop in GlobalConfig.ShopLoginList.Where(s => selectIds.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 (refreshAll || 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 }); + } + if (refreshAll) + 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) @@ -287,14 +369,15 @@ namespace TemuKJD.WXForms.ProductForms { pbLoadingShop.Visible = true; RefreshDbProd(); - RefreshShop(); + RefreshShopAuth(); } private void UserSelectDbProductForm_VisibleChanged(object sender, EventArgs e) { if (Visible == true) { - RefreshShop(); + RefreshShopAuth(); + updateAuthor(); RefreshDbProd(); if (!isInit) @@ -394,7 +477,7 @@ namespace TemuKJD.WXForms.ProductForms } } - private void RefreshShop() + private void RefreshShopAuth() { // 店铺Id var selectIds = dgvShop.Rows.Cast().Where(row @@ -414,14 +497,14 @@ namespace TemuKJD.WXForms.ProductForms BindShop(shopEntity, selectIds); } cmbFilterShopNotes.Items.Clear(); - cmbFilterShopNotes.Items.Add(""); + //cmbFilterShopNotes.Items.Add(""); foreach (var note in GlobalConfig.ShopLoginList.Select(s => s.Notes).Where(s => !s.IsNullOrEmpty()).Distinct()) { cmbFilterShopNotes.Items.Add(note); } } - private void BindShop(ShopLoginInfo shopEntity, List selectShopId = null) + private void BindShop(ShopLoginInfo shopEntity, List selectShopId = null, string msg = "") { if (shopEntity == null) return; @@ -443,13 +526,14 @@ namespace TemuKJD.WXForms.ProductForms 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, - string.Empty + msg ); } else @@ -461,11 +545,33 @@ namespace TemuKJD.WXForms.ProductForms 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; } } @@ -502,21 +608,32 @@ namespace TemuKJD.WXForms.ProductForms NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); break; case "colLoginStatus": - if (WXShopListForm.Instance == null) - WXShopListForm.Instance = new WXShopListForm(); - WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); - WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); - //shopLoginForm.prodUserSelectForm = this; - if (shop.LoginStatus != "登录成功") - { - shopLoginForm.openType = EnumOpenType.login; - shopLoginForm.ShowDialog(); - RefreshShop(); - } - else { + if (WXShopListForm.Instance == null) + WXShopListForm.Instance = new WXShopListForm(); + WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); + //shopLoginForm.prodUserSelectForm = this; + if (shop.LoginStatus != "登录成功") + { + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopAuth(); + } + else + { + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.Show(); + } + } + break; + case "colApi": + { + WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); shopLoginForm.openType = EnumOpenType.manage; shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/servicemarket/detail?serviceId=3984039898079707139"; shopLoginForm.Show(); } break; @@ -555,7 +672,7 @@ namespace TemuKJD.WXForms.ProductForms //shopLoginForm.prodUserSelectForm = this; shopLoginForm.openType = EnumOpenType.login; shopLoginForm.ShowDialog(); - RefreshShop(); + RefreshShopAuth(); } break; case "进店": @@ -870,6 +987,12 @@ namespace TemuKJD.WXForms.ProductForms //将商品上传 var kjdDbProdTmp = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(kjdDbProd)); result = UploadProduct(shop, kjdDbProdTmp, selectProd, row.Cells["colOpResult"], startTime); + if (result.Contains("今日提审次数已用尽,请明日再试") || result.Contains("如需上架请先缴纳足额保证金")) + { + var shopRow = dgvShop.Rows.Cast().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId); + if (shopRow != null) + Invoke(new Action(() => { shopRow.Cells["colSelect"].Value = false; })); + } if (result.Contains("10020225") || result.Contains("10020226")) { kjdDbProdTmp = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(kjdDbProd)); @@ -1333,11 +1456,10 @@ namespace TemuKJD.WXForms.ProductForms } #endregion - // 过滤重复图片 - if (chkImgRandomBlock.Checked && (dbProd.main_cat_name == "图书" || dbProd.main_cat_name == "书籍/杂志/报纸")) - { - } - else + #region 过滤重复图片 无论是否打码 + bool needAddRandomBlock = false; + bool wantAddRandomBlock = chkImgRandomBlock.Checked && (/*upProdParam.product.info.category.FirstOrDefault()?.name == "图书" ||*/ + prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸" || dbProd.main_cat_name == "图书" || dbProd.main_cat_name == "书籍/杂志/报纸"); { List galls = new List(); foreach (var gall in prodInfo.detail.galleries.Where(g => g.type == 1)) @@ -1352,7 +1474,39 @@ namespace TemuKJD.WXForms.ProductForms } prodInfo.detail.galleries.Clear(); prodInfo.detail.galleries.AddRange(galls); + int repeatSn = 0; + while (prodInfo.detail.galleries.Where(g => g.type == 1).Count() > 0 && prodInfo.detail.galleries.Where(g => g.type == 1).Count() < 3) + { + repeatSn++; + var gallOld = prodInfo.detail.galleries.LastOrDefault(g => g.type == 1); + var gallNew = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(gallOld)); + // 如果有 替换掉之前附加的后缀 + for (int i = 0; i < 10; i++) + { + gallNew.url = gallNew.url.Replace("?re_sn1=" + i, ""); + gallNew.url = gallNew.url.Replace("?re_sn1=" + i, ""); + } + if (gallNew.url.Contains("?")) + gallNew.url += "&re_sn1=" + repeatSn; + else + gallNew.url += "?re_sn1=" + repeatSn; + prodInfo.detail.galleries.Add(gallNew); + needAddRandomBlock = true; + } + if (prodInfo.detail.galleries.Where(g => g.type == 1).Count() > 0 && prodInfo.detail.galleries.Where(g => g.type == 2).Count() <= 0) + { + var gallOld = prodInfo.detail.galleries.FirstOrDefault(g => g.type == 1); + var gallNew = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(gallOld)); + if (gallNew.url.Contains("?")) + gallNew.url += "&re_sn2=" + 1; + else + gallNew.url += "?re_sn2=" + 1; + gallNew.type = 2; + prodInfo.detail.galleries.Add(gallNew); + needAddRandomBlock = true; + } } + #endregion // 生成初始化上传商品对象 var upProdInitParam = new WXUploadProductInitParam(); @@ -1391,25 +1545,23 @@ namespace TemuKJD.WXForms.ProductForms Thread.Sleep(Randomx.GetId(100, 300)); foreach (var gallery_item in prodInfo.detail.galleries.Where(g => g.type == 1).Take(9)) // 9张主图 { - try { - if (chkImgRandomBlock.Checked && (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸" || - dbProd.main_cat_name == "图书" || dbProd.main_cat_name == "书籍/杂志/报纸")) + // 获取缓存盗链 主图 + if (wxImgMapDic.ContainsKey(BaseClass.GetMd5(gallery_item.url))) { - // 图书暂时要加差异化主图,走不了api + upProdInitParam.product.info.headImg.Add(wxImgMapDic[BaseClass.GetMd5(gallery_item.url)]); + upProdParam.product.info.headImg.Add(wxImgMapDic[BaseClass.GetMd5(gallery_item.url)]); + continue; + } + + if (needAddRandomBlock || wantAddRandomBlock) + { + // 如果想打码或者需要打码,就走差异化详情图,不走api直传 } else { - // 主图缓存盗链 - if (wxImgMapDic.ContainsKey(BaseClass.GetMd5(gallery_item.url))) - { - upProdInitParam.product.info.headImg.Add(wxImgMapDic[BaseClass.GetMd5(gallery_item.url)]); - upProdParam.product.info.headImg.Add(wxImgMapDic[BaseClass.GetMd5(gallery_item.url)]); - continue; - } - - // 使用接口链接传图 + // 使用接口链接传主图 var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); var upDate = UserLogin.GetSignaturex(); upDate += "&token=" + token.accessToken; @@ -1425,7 +1577,7 @@ namespace TemuKJD.WXForms.ProductForms })); } - for (int i = 0; i < 5 && upDateRst.Contains("access_token expired"); i++) + for (int i = 0; i < 20 && upDateRst.Contains("access_token expired"); i++) { token.mdyTime = DateTime.Now.AddDays(-100); token = new WxApiBLL().GetRandomWxToken(); @@ -1449,77 +1601,136 @@ namespace TemuKJD.WXForms.ProductForms { } - var upImgAuthRst = WXUpload.getUploadTempImgAuth(shop); - for (int i = 0; i < 10 && upImgAuthRst.Contains("LogicError"); i++) + // api上传图片文件 主图 + if (1 == 1) { - Invoke(new Action(() => + try { - cell.Value = "图片提报失败,正在重试。" + (i + 1); - })); - Thread.Sleep(Randomx.GetId(3000, 6000)); - upImgAuthRst = WXUpload.getUploadTempImgAuth(shop); - } - if (!upImgAuthRst.Contains("\"code\":0")) - { - var error = BaseRegex.GetStringJson(ref upImgAuthRst, "msg"); - if (string.IsNullOrEmpty(error)) - error = upImgAuthRst; - return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"申请上传主图失败 " + GetHtml.UrlEncodeUtf8(error) + "\"}"; - } - string disK = BaseRegex.GetStringJson(ref upImgAuthRst, "disK"); - long disT = BaseRegex.GetLongJson(ref upImgAuthRst, "disT"); - string ext = BaseRegex.GetStringJson(ref upImgAuthRst, "ext"); - string imgBase64 = ""; + string errMsg = ""; + var imgBase64 = GetImgBase64ForApi(out errMsg, gallery_item.url, needAddRandomBlock, wantAddRandomBlock, 800, 800); + if (!string.IsNullOrEmpty(errMsg)) + { + return errMsg; + } - //------------------------------------------------------------------------------------------------------------------------------------- - //生成主图base64字符串 - string getImgError; - var image = GetHtml.GetUrlImg(gallery_item.url.Replace("https://", "http://"), out getImgError); - var imageBg = new Bitmap(800, 800); - if (!string.IsNullOrEmpty(getImgError) || image == null) - { - return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"初始化主图上传失败\"}"; - } - try - { - using (Graphics g = Graphics.FromImage(imageBg)) - { - g.DrawImage(image, new Rectangle(0, 0, imageBg.Width, imageBg.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); - if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸" || - dbProd.main_cat_name == "图书" || dbProd.main_cat_name == "书籍/杂志/报纸") + var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); + var upDate = UserLogin.GetSignaturex(); + upDate += "&token=" + token.accessToken; + //upDate += "&is_file=true"; + //if (needAddRandomBlock || wantAddRandomBlock) + // upDate += "&random_code=true"; + upDate += "&img_url=" + gallery_item.url; + upDate += "&img_base64=" + imgBase64; + + var sTime = DateTime.Now; + var apiUpImgFileRst = GetHtml.PostUtf8(urlImg, upDate); + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在上传主图文件并识别商品 " + (DateTime.Now - sTime).TotalMilliseconds.ParseToInt(); + })); + } + + for (int i = 0; i < 5 && apiUpImgFileRst.Contains("access_token expired"); i++) + { + token.mdyTime = DateTime.Now.AddDays(-100); + token = new WxApiBLL().GetRandomWxToken(); + apiUpImgFileRst = GetHtml.PostUtf8(urlImg, upDate); + } + var upImgUrl = BaseRegex.GetStringJson(ref apiUpImgFileRst, "img_url"); + if (apiUpImgFileRst.Contains("\"errcode\":0") && !string.IsNullOrEmpty(upImgUrl)) + { + upProdInitParam.product.info.headImg.Add(upImgUrl); + upProdParam.product.info.headImg.Add(upImgUrl); + wxImgMapDic[BaseClass.GetMd5(gallery_item.url)] = upImgUrl; + isChangeImgDic = true; + continue; + } + else { - g.FillRectangle(new SolidBrush(Color.FromArgb(Randomx.GetId(256), Randomx.GetId(256), Randomx.GetId(256))), - new Rectangle(Randomx.GetId(imageBg.Width - 30), Randomx.GetId(imageBg.Height - 30), 30, 30)); } } - using (MemoryStream memoryStream = new MemoryStream()) + catch (Exception ex) { - imageBg.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); - byte[] imageBytes = memoryStream.ToArray(); - imgBase64 = Convert.ToBase64String(imageBytes); + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"修改主图失败 " + ex.Message + "\"}"; } } - catch (Exception ex) - { - return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"修改主图失败 " + ex.Message + "\"}"; - } - //------------------------------------------------------------------------------------------------------------------------------------- - //上传主图获取路径 - var upImgRst = WXUpload.adtimageupload(shop, imgBase64, disK, disT, ext).ParseToString(); - var location = BaseRegex.GetStringJson(ref upImgRst, "Location"); - if (string.IsNullOrEmpty(location)) + // 模拟上传图片 + if (1 == 1) { - var error = BaseRegex.GetStringJson(ref upImgAuthRst, "msg"); - if (string.IsNullOrEmpty(error)) - error = upImgAuthRst; - return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"主图上传失败 " + error + "\"}"; + var upImgAuthRst = WXUpload.getUploadTempImgAuth(shop); + for (int i = 0; i < 10 && upImgAuthRst.Contains("LogicError"); i++) + { + Invoke(new Action(() => + { + cell.Value = "图片提报失败,正在重试。" + (i + 1); + })); + Thread.Sleep(Randomx.GetId(3000, 6000)); + upImgAuthRst = WXUpload.getUploadTempImgAuth(shop); + } + if (!upImgAuthRst.Contains("\"code\":0")) + { + var error = BaseRegex.GetStringJson(ref upImgAuthRst, "msg"); + if (string.IsNullOrEmpty(error)) + error = upImgAuthRst; + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"申请上传主图失败 " + GetHtml.UrlEncodeUtf8(error) + "\"}"; + } + string disK = BaseRegex.GetStringJson(ref upImgAuthRst, "disK"); + long disT = BaseRegex.GetLongJson(ref upImgAuthRst, "disT"); + string ext = BaseRegex.GetStringJson(ref upImgAuthRst, "ext"); + string imgBase64 = ""; + + //------------------------------------------------------------------------------------------------------------------------------------- + //生成主图base64字符串 + string getImgError; + var image = GetHtml.GetUrlImg(gallery_item.url.Replace("https://", "http://"), out getImgError); + var imageBg = new Bitmap(800, 800); + if (!string.IsNullOrEmpty(getImgError) || image == null) + { + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"初始化主图上传失败\"}"; + } + try + { + using (Graphics g = Graphics.FromImage(imageBg)) + { + g.DrawImage(image, new Rectangle(0, 0, imageBg.Width, imageBg.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); + if (needAddRandomBlock || wantAddRandomBlock) + { + g.FillRectangle(new SolidBrush(Color.FromArgb(Randomx.GetId(256), Randomx.GetId(256), Randomx.GetId(256))), + new Rectangle(Randomx.GetId(imageBg.Width - 30), Randomx.GetId(imageBg.Height - 30), 30, 30)); + } + } + using (MemoryStream memoryStream = new MemoryStream()) + { + imageBg.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); + byte[] imageBytes = memoryStream.ToArray(); + imgBase64 = Convert.ToBase64String(imageBytes); + } + } + catch (Exception ex) + { + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"修改主图失败 " + ex.Message + "\"}"; + } + + //------------------------------------------------------------------------------------------------------------------------------------- + //上传主图获取路径 + var upImgRst = WXUpload.adtimageupload(shop, imgBase64, disK, disT, ext).ParseToString(); + var location = BaseRegex.GetStringJson(ref upImgRst, "Location"); + if (string.IsNullOrEmpty(location)) + { + var error = BaseRegex.GetStringJson(ref upImgAuthRst, "msg"); + if (string.IsNullOrEmpty(error)) + error = upImgAuthRst; + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"主图上传失败 " + error + "\"}"; + } + upProdInitParam.product.info.headImg.Add(location); + upProdParam.product.info.headImg.Add(location); + //wxImgMapDic[BaseClass.GetMd5(gallery_item.url)] = location; + //isChangeImgDic = true; + Thread.Sleep(Randomx.GetId(10, 50)); } - upProdInitParam.product.info.headImg.Add(location); - upProdParam.product.info.headImg.Add(location); - //wxImgMapDic[BaseClass.GetMd5(gallery_item.url)] = location; - //isChangeImgDic = true; - Thread.Sleep(Randomx.GetId(10, 50)); } #endregion @@ -1550,12 +1761,7 @@ namespace TemuKJD.WXForms.ProductForms //------------------------------------------------------------------------------------------------------------------------------------- // ai识别类目暂存主图位置 int imgId = 0; - string tempImgPath = Path.GetTempPath() + "\\"; - string folderLetters = "abcdefghijklmnopqrstuvwxyz1234567890"; - for (int i = 0; i < 8; i++) - { - tempImgPath += folderLetters[Randomx.GetId(folderLetters.Length)]; - } + string tempImgPath = Path.GetTempPath().Trim('\\') + "\\" + Randomx.GetWordNumber(8).ToLower(); List tempImgFullPathLst = new List(); //------------------------------------------------------------------------------------------------------------------------------------- // 生成ai识别类目所需图片 @@ -1961,57 +2167,118 @@ namespace TemuKJD.WXForms.ProductForms foreach (var gallery_item in detailGalleries) { - if (chkImgRandomBlock.Checked && (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸" || - dbProd.main_cat_name == "图书" || dbProd.main_cat_name == "书籍/杂志/报纸")) + try { - // 图书暂时要加差异化详情图,走不了api - } - else - { - // 盗链 + // 获取缓存盗链 详情图 if (wxImgMapDic.ContainsKey(BaseClass.GetMd5(gallery_item.url))) { upProdParam.product.info.detail.detailImg.Add(wxImgMapDic[BaseClass.GetMd5(gallery_item.url)]); continue; } - // 使用接口链接传图 - var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); - var upDate = UserLogin.GetSignaturex(); - upDate += "&token=" + token.accessToken; - upDate += "&post_data=" + GetHtml.UrlEncodeUtf8("{\"img_url\":\"" + gallery_item.url.Replace("https://", "http://") + "\"}"); - - var sTime = DateTime.Now; - var upDateRst = GetHtml.PostUtf8(urlImg, upDate); - if (cell != null) + if (needAddRandomBlock || wantAddRandomBlock) { - Invoke(new Action(() => - { - cell.Value = "正在生成商品详情 " + (DateTime.Now - sTime).TotalMilliseconds.ParseToInt(); - })); - } - - for (int i = 0; i < 5 && upDateRst.Contains("access_token expired"); i++) - { - token.mdyTime = DateTime.Now.AddDays(-100); - token = new WxApiBLL().GetRandomWxToken(); - upDateRst = GetHtml.PostUtf8(urlImg, upDate); - } - var upImgUrl = BaseRegex.GetStringJson(ref upDateRst, "img_url"); - if (upDateRst.Contains("\"errcode\":0") && !string.IsNullOrEmpty(upImgUrl)) - { - upProdParam.product.info.detail.detailImg.Add(upImgUrl); - wxImgMapDic[BaseClass.GetMd5(gallery_item.url)] = upImgUrl; - isChangeImgDic = true; - continue; + // 如果想打码或者需要打码,就走差异化详情图,不走api直传 } else - { + { + // 使用接口链接传详情图 + var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); + var upDate = UserLogin.GetSignaturex(); + upDate += "&token=" + token.accessToken; + upDate += "&post_data=" + GetHtml.UrlEncodeUtf8("{\"img_url\":\"" + gallery_item.url.Replace("https://", "http://") + "\"}"); + + var sTime = DateTime.Now; + var upDateRst = GetHtml.PostUtf8(urlImg, upDate); + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在生成商品详情图 " + (DateTime.Now - sTime).TotalMilliseconds.ParseToInt(); + })); + } + + for (int i = 0; i < 20 && upDateRst.Contains("access_token expired"); i++) + { + token.mdyTime = DateTime.Now.AddDays(-100); + token = new WxApiBLL().GetRandomWxToken(); + upDateRst = GetHtml.PostUtf8(urlImg, upDate); + } + var upImgUrl = BaseRegex.GetStringJson(ref upDateRst, "img_url"); + if (upDateRst.Contains("\"errcode\":0") && !string.IsNullOrEmpty(upImgUrl)) + { + upProdParam.product.info.detail.detailImg.Add(upImgUrl); + wxImgMapDic[BaseClass.GetMd5(gallery_item.url)] = upImgUrl; + isChangeImgDic = true; + continue; + } + else + { + } + } + } + catch (Exception ex) + { + } + + // api上传图片文件 详情图 + if (1 == 1) + { + try + { + string errMsg = ""; + var imgBase64 = GetImgBase64ForApi(out errMsg, gallery_item.url, needAddRandomBlock, wantAddRandomBlock); + if (!string.IsNullOrEmpty(errMsg)) + { + return errMsg; + } + + var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); + var upDate = UserLogin.GetSignaturex(); + upDate += "&token=" + token.accessToken; + //upDate += "&is_file=true"; + //if (needAddRandomBlock || wantAddRandomBlock) + // upDate += "&random_code=true"; + upDate += "&img_url=" + gallery_item.url; + upDate += "&img_base64=" + imgBase64; + + var sTime = DateTime.Now; + var apiUpImgFileRst = GetHtml.PostUtf8(urlImg, upDate); + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在上传商品详情图文件 " + (DateTime.Now - sTime).TotalMilliseconds.ParseToInt(); + })); + } + + for (int i = 0; i < 5 && apiUpImgFileRst.Contains("access_token expired"); i++) + { + token.mdyTime = DateTime.Now.AddDays(-100); + token = new WxApiBLL().GetRandomWxToken(); + apiUpImgFileRst = GetHtml.PostUtf8(urlImg, upDate); + } + var upImgUrl = BaseRegex.GetStringJson(ref apiUpImgFileRst, "img_url"); + if (apiUpImgFileRst.Contains("\"errcode\":0") && !string.IsNullOrEmpty(upImgUrl)) + { + upProdParam.product.info.detail.detailImg.Add(upImgUrl); + wxImgMapDic[BaseClass.GetMd5(gallery_item.url)] = upImgUrl; + isChangeImgDic = true; + continue; + } + else + { + } + } + catch (Exception ex) + { + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"修改主图失败 " + ex.Message + "\"}"; } } + // 模拟上传图片 bool randomDrawBlock = false; - if (upProdParam.product.info.category.FirstOrDefault()?.name == "图书" || prodInfo.detail.cats.FirstOrDefault() == "书籍/杂志/报纸") + if (needAddRandomBlock || wantAddRandomBlock) randomDrawBlock = true; var locationStr = UploadImg(shop, gallery_item.url, cell, randomDrawBlock); if (!locationStr.Contains("\"success\":true")) @@ -2279,12 +2546,14 @@ namespace TemuKJD.WXForms.ProductForms var spec = sku.spec[0]; if (!attrParam.items.Any(it => it.value == spec.spec_name) && !string.IsNullOrEmpty(sku.thumb_url)) { + // 获取缓存盗链 sku图 if (wxImgMapDic.ContainsKey(BaseClass.GetMd5(sku.thumb_url))) { attrParam.items.Add(new productSaleAttrItemParam() { value = spec.spec_name, imgUrl = wxImgMapDic[BaseClass.GetMd5(sku.thumb_url)], }); continue; } // 使用接口链接传sku图 + if (1 == 1) { var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); var upDate = UserLogin.GetSignaturex(); @@ -2301,7 +2570,7 @@ namespace TemuKJD.WXForms.ProductForms })); } - for (int i = 0; i < 5 && upDateRst.Contains("access_token expired"); i++) + for (int i = 0; i < 20 && upDateRst.Contains("access_token expired"); i++) { token.mdyTime = DateTime.Now.AddDays(-100); token = new WxApiBLL().GetRandomWxToken(); @@ -2320,6 +2589,61 @@ namespace TemuKJD.WXForms.ProductForms } } + // api上传图片文件 sku图 + if (1 == 1) + { + try + { + string errMsg = ""; + var imgBase64 = GetImgBase64ForApi(out errMsg, sku.thumb_url, false, false); + if (!string.IsNullOrEmpty(errMsg)) + { + return errMsg; + } + + var urlImg = BaseClass.BuildPDDObjString("product/wx_api_upload_image"); + var upDate = UserLogin.GetSignaturex(); + upDate += "&token=" + token.accessToken; + //upDate += "&is_file=true"; + //if (needAddRandomBlock || wantAddRandomBlock) + // upDate += "&random_code=true"; + upDate += "&img_url=" + sku.thumb_url; + upDate += "&img_base64=" + imgBase64; + + var sTime = DateTime.Now; + var apiUpImgFileRst = GetHtml.PostUtf8(urlImg, upDate); + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在上传商品sku图文件 " + (DateTime.Now - sTime).TotalMilliseconds.ParseToInt(); + })); + } + + for (int i = 0; i < 5 && apiUpImgFileRst.Contains("access_token expired"); i++) + { + token.mdyTime = DateTime.Now.AddDays(-100); + token = new WxApiBLL().GetRandomWxToken(); + apiUpImgFileRst = GetHtml.PostUtf8(urlImg, upDate); + } + var upImgUrl = BaseRegex.GetStringJson(ref apiUpImgFileRst, "img_url"); + if (apiUpImgFileRst.Contains("\"errcode\":0") && !string.IsNullOrEmpty(upImgUrl)) + { + attrParam.items.Add(new productSaleAttrItemParam() { value = spec.spec_name, imgUrl = upImgUrl, }); + wxImgMapDic[BaseClass.GetMd5(sku.thumb_url)] = upImgUrl; + isChangeImgDic = true; + continue; + } + else + { + } + } + catch (Exception ex) + { + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"修改主图失败 " + ex.Message + "\"}"; + } + } + // 上传sku图 var locationStr = UploadImg(shop, sku.thumb_url, cell); if (!locationStr.Contains("\"success\":true")) @@ -2575,7 +2899,7 @@ namespace TemuKJD.WXForms.ProductForms })); } - #region 草稿保存成功,缓存盗链图片 + #region 草稿保存成功,保存缓存盗链图片 if (isChangeImgDic) { var url = BaseClass.BuildObjString("product/mdy_pdd_product"); @@ -2684,12 +3008,7 @@ namespace TemuKJD.WXForms.ProductForms // 提交免审修改(实际生效接口) var listingAuditFreeRst = WXUpload.listingAuditFree(shop, productJson, upProdParam.product.productKey.productId, time1, time2); - string tempBlobPath = Path.GetTempPath(); - string folderLetters = "abcdefghijklmnopqrstuvwxyz1234567890"; - for (int i = 0; i < 8; i++) - { - tempBlobPath += folderLetters[Randomx.GetId(folderLetters.Length)]; - } + string tempBlobPath = Path.GetTempPath().Trim('\\') + "\\" + Randomx.GetWordNumber(8).ToLower(); if (!Directory.Exists(tempBlobPath)) Directory.CreateDirectory(tempBlobPath); string blobFullPath = tempBlobPath + "\\blob"; // C:\Users\Administrator\AppData\Local\Temp\3mer3k21\blob @@ -2777,6 +3096,53 @@ namespace TemuKJD.WXForms.ProductForms } + public static string GetImgBase64ForApi(out string errorMsg, string img_url, bool needAddRandomBlock, bool wantAddRandomBlock, int imgWidth = 0, int imgHeight = 0) + { + errorMsg = ""; + string imgBase64 = ""; + //------------------------------------------------------------------------------------------------------------------------------------- + //生成主图base64字符串 + string getImgError; + var image = GetHtml.GetUrlImg(img_url.Replace("https://", "http://"), out getImgError); + if (image == null) + image = new Bitmap(800, 800); + if (imgWidth == 0 || imgHeight == 0) + { + imgWidth = image.Width; + imgHeight = image.Height; + } + var imageBg = new Bitmap(imgWidth, imgHeight); + if (image == null || !string.IsNullOrEmpty(getImgError)) + { + errorMsg = "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"初始化主图上传失败 " + getImgError + "\"}"; + return ""; + } + try + { + using (Graphics g = Graphics.FromImage(imageBg)) + { + g.DrawImage(image, new Rectangle(0, 0, imageBg.Width, imageBg.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); + if (needAddRandomBlock || wantAddRandomBlock) + { + g.FillRectangle(new SolidBrush(Color.FromArgb(Randomx.GetId(256), Randomx.GetId(256), Randomx.GetId(256))), + new Rectangle(Randomx.GetId(imageBg.Width - 30), Randomx.GetId(imageBg.Height - 30), 30, 30)); + } + } + using (MemoryStream memoryStream = new MemoryStream()) + { + imageBg.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); + byte[] imageBytes = memoryStream.ToArray(); + imgBase64 = Convert.ToBase64String(imageBytes); + return imgBase64; + } + } + catch (Exception ex) + { + errorMsg = "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"修改主图失败 " + ex.Message + "\"}"; + return ""; + } + } + public string UploadImg(ShopLoginInfo shop, string img_url, DataGridViewCell cell = null, bool randomBlock = false) { string getImgError; @@ -2864,21 +3230,6 @@ namespace TemuKJD.WXForms.ProductForms return "{\"success\":true,\"location\":\"" + location + "\"}"; } - - - - - - - - - - - private void panel1_Paint(object sender, PaintEventArgs e) - { - - } - private void btnStop_Click(object sender, EventArgs e) { if (this.cancellationTokenSource != null) @@ -3354,13 +3705,18 @@ namespace TemuKJD.WXForms.ProductForms { foreach(DataGridViewRow row in dgvShop.Rows) { + string notes = cmbFilterShopNotes.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(cmbFilterShopNotes.Text.Trim())) + if (!row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString())) { row.Visible = false; row.Cells["colSelect"].Value = false; @@ -3373,9 +3729,95 @@ namespace TemuKJD.WXForms.ProductForms private void btnEmptyShop_Click(object sender, EventArgs e) { txtFilterShopName.Text = ""; - cmbFilterShopNotes.Text = ""; + cmbFilterShopNotes.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 = cmbFilterShopNotes.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 = cmbFilterShopNotes.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; + } + } + } + } + } public class WXUpload @@ -3692,6 +4134,20 @@ Content-Type: application/octet-stream var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer); return result; } + + /// + /// 获取服务接口到期时间 + /// + /// + /// + public static string GetApiServiceList(ShopLoginInfo shop) + { + + string url = "https://store.weixin.qq.com/shop-faas/mmecnodeservicemarket/service/GetMyServiceList?offset=0&limit=20&status=2&token=&lang=zh_CN"; + string referer = "https://store.weixin.qq.com/shop/servicemarket/myServices?status=2"; + var result = WXHttpResponseBLL.WeiXinGetResponse(shop, url, referer); + return result; + } } public class AddPriceRule diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx index 3f86cc6..22f2cf1 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.resx @@ -135,6 +135,9 @@ True + + True + True diff --git a/TEMUKJD/WXForms/ProductForms/WXProductForm.cs b/TEMUKJD/WXForms/ProductForms/WXProductForm.cs index 1445b67..97cd8f9 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProductForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProductForm.cs @@ -28,6 +28,7 @@ namespace TemuKJD.WXForms.ProductForms { tv.SelectedNode = tv.Nodes[0].Nodes[0]; tv.ExpandGroup(tv.Nodes[0].Name); + List hideName = new List() { "商品列表", "营销工具" }; if (BaseClass.GroupId == 3) { @@ -39,6 +40,13 @@ namespace TemuKJD.WXForms.ProductForms { } } + + foreach (var item in hideName) + { + var n = tv.Nodes[0].Nodes.Find(item, true); + if (n.Count() > 0) + n[0].Remove(); + } } catch { } } diff --git a/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs index fc30940..9613ac2 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopListForm.Designer.cs @@ -34,24 +34,27 @@ this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.panel5 = new System.Windows.Forms.Panel(); - this.btnRefreshShop = new TemuKJD.UserControls.ButtonEx(); this.btnLoginSelect = new TemuKJD.UserControls.ButtonEx(); this.btnCheck = new TemuKJD.UserControls.ButtonEx(); this.panel4 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label5 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.cmbNotes = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); + this.txtShopId = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.txtShopName = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.cmbSubAccount = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); + this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); + this.pnlEmpty = new DevComponents.DotNetBar.PanelEx(); + this.btnSearch = new DevComponents.DotNetBar.PanelEx(); this.btnOpenOrder = new TemuKJD.UserControls.ButtonEx(); this.btnAddShop = new TemuKJD.UserControls.ButtonEx(); - this.cmbNotes = new System.Windows.Forms.ComboBox(); - this.pnlEmpty = new DevComponents.DotNetBar.PanelEx(); - this.btnSearch = new TemuKJD.UserControls.ButtonEx(); - this.label4 = new System.Windows.Forms.Label(); - this.txtShopName = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.txtShopId = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnImport = new TemuKJD.UserControls.ButtonEx(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.btnRefreshAuth = new TemuKJD.UserControls.ButtonEx(); this.pbLoading = new System.Windows.Forms.PictureBox(); + this.btnImport = new TemuKJD.UserControls.ButtonEx(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -86,6 +89,7 @@ this.tableLayoutPanel2.SuspendLayout(); this.panel5.SuspendLayout(); this.panel4.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); this.splitContainer2.Panel1.SuspendLayout(); this.splitContainer2.Panel2.SuspendLayout(); @@ -141,30 +145,13 @@ // // panel5 // - this.panel5.Controls.Add(this.btnRefreshShop); this.panel5.Controls.Add(this.btnLoginSelect); this.panel5.Controls.Add(this.btnCheck); - this.panel5.Location = new System.Drawing.Point(1032, 3); + this.panel5.Location = new System.Drawing.Point(1094, 3); this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(229, 40); + this.panel5.Size = new System.Drawing.Size(167, 40); this.panel5.TabIndex = 1; // - // btnRefreshShop - // - this.btnRefreshShop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnRefreshShop.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRefreshShop.ForeColor = System.Drawing.Color.White; - this.btnRefreshShop.Location = new System.Drawing.Point(21, 9); - this.btnRefreshShop.Margin = new System.Windows.Forms.Padding(2); - this.btnRefreshShop.Name = "btnRefreshShop"; - this.btnRefreshShop.Size = new System.Drawing.Size(66, 26); - this.btnRefreshShop.TabIndex = 375; - this.btnRefreshShop.Text = "刷新店铺"; - this.btnRefreshShop.UseVisualStyleBackColor = false; - this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshCookie_Click); - // // btnLoginSelect // this.btnLoginSelect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -172,10 +159,10 @@ this.btnLoginSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnLoginSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnLoginSelect.ForeColor = System.Drawing.Color.White; - this.btnLoginSelect.Location = new System.Drawing.Point(162, 9); + this.btnLoginSelect.Location = new System.Drawing.Point(85, 9); this.btnLoginSelect.Margin = new System.Windows.Forms.Padding(2); this.btnLoginSelect.Name = "btnLoginSelect"; - this.btnLoginSelect.Size = new System.Drawing.Size(66, 26); + this.btnLoginSelect.Size = new System.Drawing.Size(66, 25); this.btnLoginSelect.TabIndex = 373; this.btnLoginSelect.Text = "登录选中"; this.btnLoginSelect.UseVisualStyleBackColor = false; @@ -188,10 +175,10 @@ this.btnCheck.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnCheck.ForeColor = System.Drawing.Color.White; - this.btnCheck.Location = new System.Drawing.Point(92, 9); + this.btnCheck.Location = new System.Drawing.Point(17, 9); this.btnCheck.Margin = new System.Windows.Forms.Padding(2); this.btnCheck.Name = "btnCheck"; - this.btnCheck.Size = new System.Drawing.Size(66, 26); + this.btnCheck.Size = new System.Drawing.Size(66, 25); this.btnCheck.TabIndex = 372; this.btnCheck.Text = "检测选中"; this.btnCheck.UseVisualStyleBackColor = false; @@ -199,73 +186,177 @@ // // panel4 // + this.panel4.Controls.Add(this.tableLayoutPanel1); this.panel4.Controls.Add(this.btnOpenOrder); this.panel4.Controls.Add(this.btnAddShop); - this.panel4.Controls.Add(this.cmbNotes); - this.panel4.Controls.Add(this.pnlEmpty); - this.panel4.Controls.Add(this.btnSearch); - this.panel4.Controls.Add(this.label4); - this.panel4.Controls.Add(this.txtShopName); - this.panel4.Controls.Add(this.label3); - this.panel4.Controls.Add(this.txtShopId); - this.panel4.Controls.Add(this.label2); - this.panel4.Controls.Add(this.btnImport); this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; this.panel4.Location = new System.Drawing.Point(3, 3); this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(1023, 40); + this.panel4.Size = new System.Drawing.Size(1085, 40); this.panel4.TabIndex = 0; // - // btnOpenOrder + // tableLayoutPanel1 // - this.btnOpenOrder.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnOpenOrder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnOpenOrder.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnOpenOrder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnOpenOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnOpenOrder.ForeColor = System.Drawing.Color.White; - this.btnOpenOrder.Location = new System.Drawing.Point(902, 10); - this.btnOpenOrder.Margin = new System.Windows.Forms.Padding(2); - this.btnOpenOrder.Name = "btnOpenOrder"; - this.btnOpenOrder.Size = new System.Drawing.Size(119, 25); - this.btnOpenOrder.TabIndex = 465; - this.btnOpenOrder.Text = "登录订单系统"; - this.btnOpenOrder.UseVisualStyleBackColor = false; - this.btnOpenOrder.Click += new System.EventHandler(this.btnOpenOrder_Click); + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.ColumnCount = 11; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00067F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00066F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00066F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.99801F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.label5, 6, 0); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.cmbNotes, 5, 0); + this.tableLayoutPanel1.Controls.Add(this.txtShopId, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.label3, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.txtShopName, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.label4, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.cmbSubAccount, 7, 0); + this.tableLayoutPanel1.Controls.Add(this.btnRefreshShop, 8, 0); + this.tableLayoutPanel1.Controls.Add(this.pnlEmpty, 10, 0); + this.tableLayoutPanel1.Controls.Add(this.btnSearch, 9, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(94, 1); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(719, 39); + this.tableLayoutPanel1.TabIndex = 375; // - // btnAddShop + // label5 // - this.btnAddShop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnAddShop.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnAddShop.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnAddShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnAddShop.ForeColor = System.Drawing.Color.White; - this.btnAddShop.Location = new System.Drawing.Point(1, 9); - this.btnAddShop.Margin = new System.Windows.Forms.Padding(2); - this.btnAddShop.Name = "btnAddShop"; - this.btnAddShop.Size = new System.Drawing.Size(107, 26); - this.btnAddShop.TabIndex = 370; - this.btnAddShop.Text = "扫码添加店铺"; - this.btnAddShop.UseVisualStyleBackColor = false; - this.btnAddShop.Click += new System.EventHandler(this.btnAddShop_Click); + this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(398, 11); + this.label5.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(44, 17); + this.label5.TabIndex = 414; + this.label5.Text = "子账户"; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(3, 11); + this.label2.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(43, 17); + this.label2.TabIndex = 373; + this.label2.Text = "店铺id"; // // cmbNotes // + this.cmbNotes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.cmbNotes.DefaultText = "全部"; + this.cmbNotes.DropDownHeight = 1; + this.cmbNotes.DropDownWidth = 1; this.cmbNotes.FormattingEnabled = true; - this.cmbNotes.Location = new System.Drawing.Point(584, 10); + this.cmbNotes.IntegralHeight = false; + this.cmbNotes.Location = new System.Drawing.Point(314, 6); + this.cmbNotes.Margin = new System.Windows.Forms.Padding(0, 1, 0, 3); this.cmbNotes.Name = "cmbNotes"; - this.cmbNotes.Size = new System.Drawing.Size(120, 25); + this.cmbNotes.Size = new System.Drawing.Size(81, 25); this.cmbNotes.TabIndex = 413; this.cmbNotes.Text = "全部"; // + // txtShopId + // + this.txtShopId.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txtShopId.Location = new System.Drawing.Point(46, 8); + this.txtShopId.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.txtShopId.Name = "txtShopId"; + this.txtShopId.Size = new System.Drawing.Size(81, 23); + this.txtShopId.TabIndex = 372; + // + // label3 + // + this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(130, 11); + this.label3.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(44, 17); + this.label3.TabIndex = 375; + this.label3.Text = "店铺名"; + // + // txtShopName + // + this.txtShopName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txtShopName.Location = new System.Drawing.Point(174, 8); + this.txtShopName.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.txtShopName.Name = "txtShopName"; + this.txtShopName.Size = new System.Drawing.Size(81, 23); + this.txtShopName.TabIndex = 374; + // + // label4 + // + this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(258, 11); + this.label4.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(56, 17); + this.label4.TabIndex = 377; + this.label4.Text = "分组备注"; + // + // cmbSubAccount + // + this.cmbSubAccount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.cmbSubAccount.DefaultText = "全部"; + this.cmbSubAccount.DropDownHeight = 1; + this.cmbSubAccount.DropDownWidth = 1; + this.cmbSubAccount.FormattingEnabled = true; + this.cmbSubAccount.IntegralHeight = false; + this.cmbSubAccount.Location = new System.Drawing.Point(442, 8); + this.cmbSubAccount.Margin = new System.Windows.Forms.Padding(0, 1, 0, 3); + this.cmbSubAccount.Name = "cmbSubAccount"; + this.cmbSubAccount.Size = new System.Drawing.Size(80, 25); + this.cmbSubAccount.TabIndex = 415; + this.cmbSubAccount.Text = "全部"; + // + // btnRefreshShop + // + this.btnRefreshShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshShop.Location = new System.Drawing.Point(524, 8); + this.btnRefreshShop.Margin = new System.Windows.Forms.Padding(2, 3, 0, 3); + this.btnRefreshShop.Name = "btnRefreshShop"; + this.btnRefreshShop.Size = new System.Drawing.Size(58, 23); + this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshShop.Style.GradientAngle = 90; + this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.TabIndex = 802; + this.btnRefreshShop.Text = "刷新店铺"; + this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshCookie_Click); + // // pnlEmpty // + this.pnlEmpty.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); 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(786, 9); + this.pnlEmpty.Location = new System.Drawing.Point(644, 8); + this.pnlEmpty.Margin = new System.Windows.Forms.Padding(2, 3, 0, 3); this.pnlEmpty.Name = "pnlEmpty"; - this.pnlEmpty.Size = new System.Drawing.Size(66, 26); + this.pnlEmpty.Size = new System.Drawing.Size(75, 23); this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center; this.pnlEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); this.pnlEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); @@ -284,77 +375,62 @@ // // btnSearch // - this.btnSearch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + 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.ForeColor = System.Drawing.Color.White; - this.btnSearch.Location = new System.Drawing.Point(715, 9); - this.btnSearch.Margin = new System.Windows.Forms.Padding(2); + this.btnSearch.Location = new System.Drawing.Point(584, 8); + this.btnSearch.Margin = new System.Windows.Forms.Padding(2, 3, 0, 3); this.btnSearch.Name = "btnSearch"; - this.btnSearch.Size = new System.Drawing.Size(66, 26); - this.btnSearch.TabIndex = 372; - this.btnSearch.Text = "搜索"; - this.btnSearch.UseVisualStyleBackColor = false; + this.btnSearch.Size = new System.Drawing.Size(58, 23); + this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearch.Style.GradientAngle = 90; + this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearch.TabIndex = 798; + this.btnSearch.Text = "筛选"; this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); // - // label4 + // btnOpenOrder // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(525, 14); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(68, 17); - this.label4.TabIndex = 377; - this.label4.Text = "分组备注:"; + this.btnOpenOrder.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnOpenOrder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnOpenOrder.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnOpenOrder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnOpenOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnOpenOrder.ForeColor = System.Drawing.Color.White; + this.btnOpenOrder.Location = new System.Drawing.Point(964, 9); + this.btnOpenOrder.Margin = new System.Windows.Forms.Padding(2); + this.btnOpenOrder.Name = "btnOpenOrder"; + this.btnOpenOrder.Size = new System.Drawing.Size(119, 25); + this.btnOpenOrder.TabIndex = 465; + this.btnOpenOrder.Text = "登录订单系统"; + this.btnOpenOrder.UseVisualStyleBackColor = false; + this.btnOpenOrder.Click += new System.EventHandler(this.btnOpenOrder_Click); // - // txtShopName + // btnAddShop // - this.txtShopName.Location = new System.Drawing.Point(402, 11); - this.txtShopName.Name = "txtShopName"; - this.txtShopName.Size = new System.Drawing.Size(110, 23); - this.txtShopName.TabIndex = 374; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(354, 14); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(56, 17); - this.label3.TabIndex = 375; - this.label3.Text = "店铺名:"; - // - // txtShopId - // - this.txtShopId.Location = new System.Drawing.Point(232, 11); - this.txtShopId.Name = "txtShopId"; - this.txtShopId.Size = new System.Drawing.Size(110, 23); - this.txtShopId.TabIndex = 372; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(184, 14); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(55, 17); - this.label2.TabIndex = 373; - this.label2.Text = "店铺id:"; - // - // btnImport - // - this.btnImport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnImport.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnImport.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnImport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnImport.ForeColor = System.Drawing.Color.White; - this.btnImport.Location = new System.Drawing.Point(71, 9); - this.btnImport.Margin = new System.Windows.Forms.Padding(2); - this.btnImport.Name = "btnImport"; - this.btnImport.Size = new System.Drawing.Size(66, 26); - this.btnImport.TabIndex = 371; - this.btnImport.Text = "导入店铺"; - this.btnImport.UseVisualStyleBackColor = false; - this.btnImport.Visible = false; - this.btnImport.Click += new System.EventHandler(this.btnImport_Click); + this.btnAddShop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddShop.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnAddShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddShop.ForeColor = System.Drawing.Color.White; + this.btnAddShop.Location = new System.Drawing.Point(1, 9); + this.btnAddShop.Margin = new System.Windows.Forms.Padding(2); + this.btnAddShop.Name = "btnAddShop"; + this.btnAddShop.Size = new System.Drawing.Size(90, 25); + this.btnAddShop.TabIndex = 370; + this.btnAddShop.Text = "扫码添加店铺"; + this.btnAddShop.UseVisualStyleBackColor = false; + this.btnAddShop.Click += new System.EventHandler(this.btnAddShop_Click); // // splitContainer2 // @@ -369,6 +445,7 @@ this.splitContainer2.Panel1.BackColor = System.Drawing.Color.White; this.splitContainer2.Panel1.Controls.Add(this.btnRefreshAuth); this.splitContainer2.Panel1.Controls.Add(this.pbLoading); + this.splitContainer2.Panel1.Controls.Add(this.btnImport); this.splitContainer2.Panel1.Controls.Add(this.dgvShop); this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0); // @@ -408,6 +485,23 @@ this.pbLoading.TabIndex = 6; this.pbLoading.TabStop = false; // + // btnImport + // + this.btnImport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnImport.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnImport.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnImport.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnImport.ForeColor = System.Drawing.Color.White; + this.btnImport.Location = new System.Drawing.Point(81, 35); + this.btnImport.Margin = new System.Windows.Forms.Padding(2); + this.btnImport.Name = "btnImport"; + this.btnImport.Size = new System.Drawing.Size(66, 26); + this.btnImport.TabIndex = 371; + this.btnImport.Text = "导入店铺"; + this.btnImport.UseVisualStyleBackColor = false; + this.btnImport.Visible = false; + this.btnImport.Click += new System.EventHandler(this.btnImport_Click); + // // dgvShop // this.dgvShop.AllowUserToAddRows = false; @@ -704,7 +798,8 @@ this.tableLayoutPanel2.ResumeLayout(false); this.panel5.ResumeLayout(false); this.panel4.ResumeLayout(false); - this.panel4.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); this.splitContainer2.Panel1.ResumeLayout(false); this.splitContainer2.Panel2.ResumeLayout(false); this.splitContainer2.Panel2.PerformLayout(); @@ -738,11 +833,9 @@ private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox txtShopId; private System.Windows.Forms.Label label2; - private UserControls.ButtonEx btnSearch; private System.Windows.Forms.Label label4; private DevComponents.DotNetBar.PanelEx pnlEmpty; - private UserControls.ButtonEx btnRefreshShop; - private System.Windows.Forms.ComboBox cmbNotes; + private UserComponent.UcComboBoxMutiSelect cmbNotes; private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName; private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; @@ -768,5 +861,10 @@ private System.Windows.Forms.DataGridViewLinkColumn colEdit; private System.Windows.Forms.DataGridViewLinkColumn colDelete; public UserControls.ButtonEx btnOpenOrder; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label5; + private UserComponent.UcComboBoxMutiSelect cmbSubAccount; + private DevComponents.DotNetBar.PanelEx btnSearch; + private DevComponents.DotNetBar.PanelEx btnRefreshShop; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs index c02568f..d1f0c00 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs @@ -384,14 +384,6 @@ namespace TemuKJD.WXForms.ShopForms return; } - Invoke(new Action(() => - { - cmbNotes.Items.Clear(); - var notes = GlobalConfig.ShopLoginList.Select(s => s.Notes).Distinct(); - cmbNotes.Items.Add("全部"); - cmbNotes.Items.AddRange(notes.ToArray()); - })); - Task.Run(() => { isLoading = true; @@ -400,6 +392,18 @@ namespace TemuKJD.WXForms.ShopForms Thread.Sleep(1000); } + Invoke(new Action(() => + { + cmbNotes.Items.Clear(); + var notes = GlobalConfig.ShopLoginList.Select(s => s.Notes).Distinct(); + cmbNotes.Items.AddRange(notes.Where(n => !n.IsNullOrEmpty()).ToArray()); + + cmbSubAccount.Items.Clear(); + var subAccountStr = string.Join(",", GlobalConfig.ShopLoginList.Select(s => s.SubUserName).Distinct()); + var subAccounts = subAccountStr.Split(',').Distinct(); + cmbSubAccount.Items.AddRange(subAccounts.Where(s => !s.IsNullOrEmpty()).ToArray()); + })); + var shopList = GlobalConfig.ShopLoginList.Where(s => !string.IsNullOrEmpty(s.ShopId) || GlobalConfig.ShopLoginList.Where(ss=>ss.LoginName == s.LoginName).Count() == 1) .OrderBy(s=>s.LoginName).ToList(); @@ -408,7 +412,15 @@ namespace TemuKJD.WXForms.ShopForms { if (!string.IsNullOrWhiteSpace(cmbNotes.Text) && cmbNotes.Text.Trim() != "全部") { - shopList = shopList.Where(s => s.Notes.ParseToString().ToLower().Contains(cmbNotes.Text.ToLower())).ToList(); + var notes = cmbNotes.Text.ToLower(); + var notesLst = cmbNotes.Text.ToLower().Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries); + shopList = shopList.Where(s => s.Notes.ParseToString().ToLower().Contains(notes) || notesLst.Contains(s.Notes.ParseToString().ToLower())).ToList(); + } + if (!string.IsNullOrWhiteSpace(cmbSubAccount.Text) && cmbSubAccount.Text.Trim() != "全部") + { + var subAccount = cmbSubAccount.Text.ToLower(); + var subAccountLst = cmbSubAccount.Text.ToLower().Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries); + shopList = shopList.Where(s => s.SubUserName.ParseToString().ToLower().Contains(subAccount) || subAccountLst.Any(sa => s.SubUserName.ParseToString().ToLower().Contains(sa))).ToList(); } if (!string.IsNullOrEmpty(txtShopId.Text)) { @@ -988,43 +1000,44 @@ namespace TemuKJD.WXForms.ShopForms private void btnSearch_Click(object sender, EventArgs e) { - //Task.Run(() => - //{ - // RefreshDataGridView(false); - //}); - - this.pbLoading.Visible = true; - this.splitContainer1.Panel1.Enabled = false; - var t = Task.Run(() => - { - try - { - UpdateShop(); - RefreshDataGridView(false); - } - catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); } - }); Task.Run(() => { - while (true) - { - Thread.Sleep(1000); - if (t.IsCompleted || t.IsCanceled || t.IsFaulted) - { - Invoke(new Action(() => - { - this.pbLoading.Visible = false; - this.splitContainer1.Panel1.Enabled = true; - })); - break; - } - } + RefreshDataGridView(false); }); + + //this.pbLoading.Visible = true; + //this.splitContainer1.Panel1.Enabled = false; + //var t = Task.Run(() => + //{ + // try + // { + // UpdateShop(); + // RefreshDataGridView(false); + // } + // catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); } + //}); + //Task.Run(() => + //{ + // while (true) + // { + // Thread.Sleep(1000); + // if (t.IsCompleted || t.IsCanceled || t.IsFaulted) + // { + // Invoke(new Action(() => + // { + // this.pbLoading.Visible = false; + // this.splitContainer1.Panel1.Enabled = true; + // })); + // break; + // } + // } + //}); } private void btnEmpty_Click(object sender, EventArgs e) { this.cmbNotes.Text = "全部"; + this.cmbSubAccount.Text = "全部"; this.txtShopId.Text = ""; this.txtShopName.Text = ""; } diff --git a/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs b/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs index 514c542..70de72b 100644 --- a/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs +++ b/TEMUKJD/WXForms/TalkForms/WxTalkForm.Designer.cs @@ -55,10 +55,18 @@ namespace TemuKJD.WXForms.TalkForms this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.cmbFiltNotes = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.txtFiltShopName = new DevComponents.DotNetBar.Controls.TextBoxX(); + this.btnFilterShop = new DevComponents.DotNetBar.PanelEx(); this.pnlRefresh = new DevComponents.DotNetBar.PanelEx(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); this.ucTabControl1 = new TemuKJD.UserComponent.UcTabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.pnlTalk = new System.Windows.Forms.Panel(); + this.btnNext = new System.Windows.Forms.Button(); + this.btnPrev = new System.Windows.Forms.Button(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.mainPanel = new System.Windows.Forms.Panel(); this.ColumnShopStatus = new System.Windows.Forms.DataGridViewLinkColumn(); @@ -70,6 +78,8 @@ namespace TemuKJD.WXForms.TalkForms this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewLinkColumn2 = new System.Windows.Forms.DataGridViewLinkColumn(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); ((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit(); this.panel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); @@ -88,6 +98,7 @@ namespace TemuKJD.WXForms.TalkForms ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); this.ucTabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); + this.pnlTalk.SuspendLayout(); this.tabPage2.SuspendLayout(); this.SuspendLayout(); // @@ -98,7 +109,7 @@ namespace TemuKJD.WXForms.TalkForms // lblVersionName // this.lblVersionName.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.lblVersionName.Location = new System.Drawing.Point(5529, 33); + this.lblVersionName.Location = new System.Drawing.Point(10335, 33); // // panel3 // @@ -166,6 +177,7 @@ namespace TemuKJD.WXForms.TalkForms this.chkNotShowMessageWindow.TabIndex = 201; this.chkNotShowMessageWindow.Text = "新消息不弹框提示"; this.chkNotShowMessageWindow.UseVisualStyleBackColor = true; + this.chkNotShowMessageWindow.Visible = false; // // cmbMessage // @@ -251,16 +263,18 @@ namespace TemuKJD.WXForms.TalkForms this.chkIsAutoReLogin.TabIndex = 2; this.chkIsAutoReLogin.Text = "掉线自动重登"; this.chkIsAutoReLogin.UseVisualStyleBackColor = true; + this.chkIsAutoReLogin.Visible = false; // // txtAutoReplyText // - this.txtAutoReplyText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.txtAutoReplyText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.txtAutoReplyText.Location = new System.Drawing.Point(4, 78); this.txtAutoReplyText.Multiline = true; this.txtAutoReplyText.Name = "txtAutoReplyText"; - this.txtAutoReplyText.Size = new System.Drawing.Size(266, 0); + this.txtAutoReplyText.Size = new System.Drawing.Size(266, 50); this.txtAutoReplyText.TabIndex = 1; + this.txtAutoReplyText.Visible = false; // // chkIsAutoReply // @@ -272,6 +286,7 @@ namespace TemuKJD.WXForms.TalkForms this.chkIsAutoReply.TabIndex = 0; this.chkIsAutoReply.Text = "自动回复:"; this.chkIsAutoReply.UseVisualStyleBackColor = true; + this.chkIsAutoReply.Visible = false; // // splitContainer4 // @@ -288,16 +303,22 @@ namespace TemuKJD.WXForms.TalkForms // // splitContainer4.Panel2 // + this.splitContainer4.Panel2.Controls.Add(this.cmbFiltNotes); + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Panel2.Controls.Add(this.txtFiltShopName); + this.splitContainer4.Panel2.Controls.Add(this.btnFilterShop); this.splitContainer4.Panel2.Controls.Add(this.pnlRefresh); + this.splitContainer4.Panel2.Controls.Add(this.label2); + this.splitContainer4.Panel2.Controls.Add(this.label3); this.splitContainer4.Size = new System.Drawing.Size(266, 585); - this.splitContainer4.SplitterDistance = 555; + this.splitContainer4.SplitterDistance = 503; this.splitContainer4.TabIndex = 7; // // 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(108, 252); + this.pbLoading.Location = new System.Drawing.Point(108, 226); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -339,7 +360,7 @@ namespace TemuKJD.WXForms.TalkForms this.dgvShop.ReadOnly = true; this.dgvShop.RowHeadersWidth = 25; this.dgvShop.RowTemplate.Height = 23; - this.dgvShop.Size = new System.Drawing.Size(266, 555); + this.dgvShop.Size = new System.Drawing.Size(266, 503); this.dgvShop.TabIndex = 7; this.dgvShop.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellClick); this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); @@ -410,16 +431,89 @@ namespace TemuKJD.WXForms.TalkForms this.colMessage.ReadOnly = true; this.colMessage.Width = 120; // + // cmbFiltNotes + // + this.cmbFiltNotes.DefaultText = "全部"; + this.cmbFiltNotes.DropDownHeight = 1; + this.cmbFiltNotes.DropDownWidth = 1; + this.cmbFiltNotes.FormattingEnabled = true; + this.cmbFiltNotes.IntegralHeight = false; + this.cmbFiltNotes.Location = new System.Drawing.Point(61, 25); + this.cmbFiltNotes.Name = "cmbFiltNotes"; + this.cmbFiltNotes.Size = new System.Drawing.Size(205, 25); + this.cmbFiltNotes.TabIndex = 0; + this.cmbFiltNotes.Text = "全部"; + // + // panelEx1 + // + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.Cursor = System.Windows.Forms.Cursors.Hand; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.panelEx1.Location = new System.Drawing.Point(188, 52); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(78, 26); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.White; + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.White; + 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.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.GradientAngle = 90; + 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 = 207; + this.panelEx1.Text = "还 原 搜 索"; + this.panelEx1.Click += new System.EventHandler(this.btnEmpty_Click); + // + // txtFiltShopName + // + // + // + // + this.txtFiltShopName.Border.Class = "TextBoxBorder"; + this.txtFiltShopName.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.txtFiltShopName.Location = new System.Drawing.Point(61, 0); + this.txtFiltShopName.Name = "txtFiltShopName"; + this.txtFiltShopName.PreventEnterBeep = true; + this.txtFiltShopName.Size = new System.Drawing.Size(205, 23); + this.txtFiltShopName.TabIndex = 202; + // + // 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(94, 52); + this.btnFilterShop.Name = "btnFilterShop"; + this.btnFilterShop.Size = new System.Drawing.Size(92, 26); + this.btnFilterShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterShop.Style.BackColor1.Color = System.Drawing.Color.White; + this.btnFilterShop.Style.BackColor2.Color = System.Drawing.Color.White; + this.btnFilterShop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnFilterShop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.Style.ForeColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.Style.GradientAngle = 90; + this.btnFilterShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnFilterShop.TabIndex = 195; + this.btnFilterShop.Text = "搜 索"; + this.btnFilterShop.Click += new System.EventHandler(this.btnFilterShop_Click); + // // pnlRefresh // this.pnlRefresh.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.pnlRefresh.Cursor = System.Windows.Forms.Cursors.Hand; this.pnlRefresh.DisabledBackColor = System.Drawing.Color.Empty; - this.pnlRefresh.Dock = System.Windows.Forms.DockStyle.Fill; this.pnlRefresh.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.pnlRefresh.Location = new System.Drawing.Point(0, 0); + this.pnlRefresh.Location = new System.Drawing.Point(0, 52); this.pnlRefresh.Name = "pnlRefresh"; - this.pnlRefresh.Size = new System.Drawing.Size(266, 26); + this.pnlRefresh.Size = new System.Drawing.Size(92, 26); this.pnlRefresh.Style.Alignment = System.Drawing.StringAlignment.Center; this.pnlRefresh.Style.BackColor1.Color = System.Drawing.Color.White; this.pnlRefresh.Style.BackColor2.Color = System.Drawing.Color.White; @@ -435,6 +529,24 @@ namespace TemuKJD.WXForms.TalkForms this.pnlRefresh.Text = "刷 新 店 铺"; this.pnlRefresh.Click += new System.EventHandler(this.pnlRefresh_Click); // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(0, 3); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(68, 17); + this.label2.TabIndex = 217; + this.label2.Text = "店铺名称:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(0, 29); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(68, 17); + this.label3.TabIndex = 218; + this.label3.Text = "店铺备注:"; + // // ucTabControl1 // this.ucTabControl1.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251))))); @@ -464,12 +576,36 @@ namespace TemuKJD.WXForms.TalkForms // // pnlTalk // + this.pnlTalk.Controls.Add(this.btnNext); + this.pnlTalk.Controls.Add(this.btnPrev); this.pnlTalk.Dock = System.Windows.Forms.DockStyle.Fill; this.pnlTalk.Location = new System.Drawing.Point(3, 3); this.pnlTalk.Name = "pnlTalk"; this.pnlTalk.Size = new System.Drawing.Size(1215, 578); this.pnlTalk.TabIndex = 1; // + // btnNext + // + this.btnNext.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnNext.Location = new System.Drawing.Point(1181, 3); + this.btnNext.Name = "btnNext"; + this.btnNext.Size = new System.Drawing.Size(32, 23); + this.btnNext.TabIndex = 11; + this.btnNext.Text = "→"; + this.btnNext.UseVisualStyleBackColor = true; + this.btnNext.Click += new System.EventHandler(this.btnNext_Click); + // + // btnPrev + // + this.btnPrev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnPrev.Location = new System.Drawing.Point(1149, 3); + this.btnPrev.Name = "btnPrev"; + this.btnPrev.Size = new System.Drawing.Size(32, 23); + this.btnPrev.TabIndex = 10; + this.btnPrev.Text = "←"; + this.btnPrev.UseVisualStyleBackColor = true; + this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click); + // // tabPage2 // this.tabPage2.Controls.Add(this.mainPanel); @@ -561,6 +697,16 @@ namespace TemuKJD.WXForms.TalkForms this.dataGridViewLinkColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.dataGridViewLinkColumn2.Width = 106; // + // contextMenuStrip1 + // + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4); + // + // contextMenuStrip2 + // + this.contextMenuStrip2.Name = "contextMenuStrip2"; + this.contextMenuStrip2.Size = new System.Drawing.Size(61, 4); + // // WxTalkForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -588,12 +734,14 @@ namespace TemuKJD.WXForms.TalkForms this.splitContainer2.ResumeLayout(false); this.splitContainer4.Panel1.ResumeLayout(false); this.splitContainer4.Panel2.ResumeLayout(false); + this.splitContainer4.Panel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); this.splitContainer4.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); this.ucTabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); + this.pnlTalk.ResumeLayout(false); this.tabPage2.ResumeLayout(false); this.ResumeLayout(false); @@ -638,5 +786,15 @@ namespace TemuKJD.WXForms.TalkForms private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; private System.Windows.Forms.PictureBox pbLoading; + private DevComponents.DotNetBar.PanelEx btnFilterShop; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private DevComponents.DotNetBar.PanelEx panelEx1; + private DevComponents.DotNetBar.Controls.TextBoxX txtFiltShopName; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; + private UserComponent.UcComboBoxMutiSelect cmbFiltNotes; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnNext; + private System.Windows.Forms.Button btnPrev; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs b/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs index 2e0993c..92e6c0f 100644 --- a/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs +++ b/TEMUKJD/WXForms/TalkForms/WxTalkForm.cs @@ -119,6 +119,13 @@ namespace TemuKJD.WXForms.TalkForms SetMainBrowserUrl(GlobalConfig.ShopLoginList.FirstOrDefault()); LoadShop(); InitAutoExecute(); + Invoke(new Action(() => + { + foreach (var shopNote in GlobalConfig.ShopLoginList.Select(s => s.Notes).Where(s => !s.IsNullOrEmpty()).Distinct()) + { + this.cmbFiltNotes.Items.Add(shopNote); + } + })); }); } private void cefWebBrowser1_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e) @@ -240,6 +247,7 @@ namespace TemuKJD.WXForms.TalkForms dgvShop.Rows[iGrid].Cells["colShopId"].Value = shop.ShopId; // 店铺ID dgvShop.Rows[iGrid].Cells["colShopName"].Value = shop.ShopAccount; // 店铺名称 + dgvShop.Rows[iGrid].Cells["colShopNotes"].Value = shop.Notes; // 备注 dgvShop.Rows[iGrid].Cells["colLoginStatus"].Value = shop.LoginStatus == "登录成功" ? "在线" : "掉线"; // 登录状态 dicRowColor[dgvShop.Rows[iGrid]] = dgvShop.Rows[iGrid].DefaultCellStyle.BackColor; @@ -385,9 +393,9 @@ namespace TemuKJD.WXForms.TalkForms var send_open_account = summaryObj["send_open_account"].ParseToString(); if (send_open_account == shop.ShopId) continue; - // 虽然没有回复,但是最后一条消息是七天以前收到的,返回 + // 虽然没有回复,但是最后一条消息是两天以前收到的,返回 var lastUpTime = summaryObj["update_time"].ParseToLong(); - if (lastUpTime < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-7))) + if (lastUpTime < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-2))) continue; // 其他情况,标记需要回复 needReply = true; @@ -892,6 +900,8 @@ namespace TemuKJD.WXForms.TalkForms currentShop = shop; shop.Chat.Dock = DockStyle.Fill; shop.Chat.BringToFront(); + btnPrev.BringToFront(); + btnNext.BringToFront(); } Task.Run(() => @@ -922,5 +932,42 @@ namespace TemuKJD.WXForms.TalkForms Invoke(new Action(() => { pbLoading.Visible = false; })); }); } + + private void btnFilterShop_Click(object sender, EventArgs e) + { + string shopName = txtFiltShopName.Text.Trim(); + string notes = cmbFiltNotes.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + foreach(DataGridViewRow row in dgvShop.Rows) + { + if ((row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString())) && + row.Cells["colShopName"].Value.ParseToString().Contains(shopName)) + { + row.Visible = true; + } + else + { + row.Visible = false; + } + } + } + + private void btnEmpty_Click(object sender, EventArgs e) + { + cmbFiltNotes.Text = "全部"; + btnFilterShop_Click(null, null); + } + + private void btnPrev_Click(object sender, EventArgs e) + { + currentShop.Chat.Back(); + } + + private void btnNext_Click(object sender, EventArgs e) + { + currentShop.Chat.Forward(); + } } } diff --git a/TEMUKJD/WXForms/TalkForms/WxTalkForm.resx b/TEMUKJD/WXForms/TalkForms/WxTalkForm.resx index 1a1053b..0a191cd 100644 --- a/TEMUKJD/WXForms/TalkForms/WxTalkForm.resx +++ b/TEMUKJD/WXForms/TalkForms/WxTalkForm.resx @@ -156,6 +156,12 @@ True + + 17, 17 + + + 182, 17 +