diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 75a4d44..cf1ae59 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 669; + public static int VersionCount = 673; //public static int VersionCount = 613; /// diff --git a/AllBase/Model/Result/KJDDBProduct.cs b/AllBase/Model/Result/KJDDBProduct.cs index 244ea2f..27f30ea 100644 --- a/AllBase/Model/Result/KJDDBProduct.cs +++ b/AllBase/Model/Result/KJDDBProduct.cs @@ -37,6 +37,10 @@ namespace AllBase.Model.Result /// public int select_count { get; set; } public int select_total_count { get; set; } + /// + /// 采集来源 0母店采集 1前端直采 + /// + public int product_get_type { get; set; } public string head_words { get; set; } public string end_words { get; set; } public string fission_words { get; set; } diff --git a/AllBase/Model/Result/TemuDBProductSelect.cs b/AllBase/Model/Result/TemuDBProductSelect.cs index ef668c2..84e4a27 100644 --- a/AllBase/Model/Result/TemuDBProductSelect.cs +++ b/AllBase/Model/Result/TemuDBProductSelect.cs @@ -45,6 +45,7 @@ namespace AllBase.Model.Result public string main_img { get; set; } public string spu_id { get; set; } public string skc_id { get; set; } + public int product_get_type { get; set; } public KJDDBProduct kjdDbProduct { get; set; } = null; #endregion } diff --git a/AllBase/Model/Result/TemuDetailProductInfo.cs b/AllBase/Model/Result/TemuDetailProductInfo.cs index e104afe..415a81f 100644 --- a/AllBase/Model/Result/TemuDetailProductInfo.cs +++ b/AllBase/Model/Result/TemuDetailProductInfo.cs @@ -28,10 +28,16 @@ namespace AllBase.Model.Result public List sizeTemplateIds { get; set; } public List showSizeTemplateIds { get; set; } public object imageLanguageList { get; set; } + /// + /// 商品主图 + /// public List carouselImageUrls { get; set; } public List guideFilePageImages { get; set; } public List carouselImageI18nVOList { get; set; } - public List carouseVideoVOList { get; set; } + /// + /// 主图视频 + /// + public List carouseVideoVOList { get; set; } public List detailVideoVOList { get; set; } public string materialImgUrl { get; set; } public List outerPackageImages { get; set; } @@ -44,23 +50,40 @@ namespace AllBase.Model.Result public TemuProductNonAuditExtAttr productNonAuditExtAttr { get; set; } public List productSkcList { get; set; } public List goodsAdvantageLabelVOList { get; set; } + /// + /// 详情图 + /// public List goodsLayerDecorationVOList { get; set; } public List goodsLayerDecorationCustomizeI18nVOList { get; set; } public List productGuideFileI18nList { get; set; } public List productGuideFileNewVOList { get;set; } public List productImageProcessExtVOList { get; set; } public long? productCreateTime { get; set; } - public object productCategoryPredictList { get; set; } - public object productAuditDraftVO { get; set; } - public bool? isImproveSalesInfo { get; set; } - public object productWarehouseRoute { get; set; } - public object vehicleLibraryRelationDTOList { get; set; } - public object canEditSkuAccessories { get; set; } - public object canEditSizeTemplate { get; set; } - public object skcQcAdjustmentNote { get; set; } - public object inProcessAddSizeSpecEditTask { get; set; } - public object productGuideFileRejectVO { get; set; } - public List inProcessEditTaskList { get; set; } + public object productCategoryPredictList { get; set; } = null; + public object productAuditDraftVO { get; set; } = null; + public bool? isImproveSalesInfo { get; set; } = true; + public object productWarehouseRoute { get; set; } = null; + public object vehicleLibraryRelationDTOList { get; set; } = null; + public bool? canEditSkuAccessories { get; set; } = true; + public bool? canEditSizeTemplate { get; set; } = true; + public object skcQcAdjustmentNote { get; set; } = null; + public object inProcessAddSizeSpecEditTask { get; set; } = null; + public object productGuideFileRejectVO { get; set; } = null; + public List inProcessEditTaskList { get; set; } = new List(); + } + + public class carouseVideoVo + { + public object productId { get; set; } // null, + public long? supplierId { get; set; } // 634418216147215, + public int? videoType { get; set; } // 1, + public string vid { get; set; } // "goods-video-tag#pokis7uhk62rriiu46b472pa1azpn5ds", + public string videoUrl { get; set; } // "https://goods-vod.kwcdn.com/goods-video/74f0787150525059c5c200cc5507e01f85d64b40gs2CV.f30.mp4", + public object videoUrlDisplay { get; set; } // null, + public string coverUrl { get; set; } // "https://img.kwcdn.com/product/86a8b1a323a1fc7197372617a125900c20a1a4de.temu.000001.jpeg", + public object coverUrlDisplay { get; set; } // null, + public int? width { get; set; } // 720, + public int? height { get; set; } // 720, } public class TemuTextModuleDetails @@ -87,8 +110,8 @@ namespace AllBase.Model.Result } public class TemuCat { - public long? catId { get; set; } - public string catName { get; set; } + public long? catId { get; set; } = 0; + public string catName { get; set; } = ""; public string catEnName { get; set; } public string catType { get; set; } } @@ -145,7 +168,7 @@ namespace AllBase.Model.Result public class TemuProductFragileLabelAttr { - bool? isFragile { get; set; } + public bool? isFragile { get; set; } } public class TemuProductOuterPackage diff --git a/AllBase/Model/Result/TemuResult/TemuWebClientProductInfo.cs b/AllBase/Model/Result/TemuResult/TemuWebClientProductInfo.cs index be4e159..a987404 100644 --- a/AllBase/Model/Result/TemuResult/TemuWebClientProductInfo.cs +++ b/AllBase/Model/Result/TemuResult/TemuWebClientProductInfo.cs @@ -6,7 +6,243 @@ using System.Threading.Tasks; namespace AllBase.Model.Result.TemuResult { - public class TemuWebClientProductInfo + public class TemuWebClientProductInfo // store { + /// + /// 有商品类目名称信息 + /// + public List crumbOptList { get; set; } + + public clientGoodsInfo goods { get; set; } + public List sku { get; set; } + /// + /// 详情图简单列表 + /// + public List productDetailFlatList { get; set; } + /// + /// 详情图完整列表 + /// + public productDetailInfo productDetail { get; set; } + /// + /// 商品页面左边所有图片列表(可能是主图+sku图) + /// + public List preloadFirstImgList { get; set; } + public List goodsProperty { get; set; } + } + + public class crumbOptInfo + { + public string seoLinkUrl { get; set; } // "/ca-zh-Hans", + public int? tabType { get; set; } // 0, + public string pRec { get; set; } // "{\"offset\":\"0\",\"list_id\":\"pc_crumb_list_4bzytc\",\"g\":\"0\",\"scene_id\":\"95\",\"opt_id\":\"-100\",\"ts_req\":\"0\",\"version\":\"5\",\"search_id\":\"_IHh7Tqb8opEtWvYBgp_LRi4Ofyx4F3ZTMo65IClyYg=\",\"scene\":\"pc_crumb_list\",\"gin_fallback\":\"0\",\"opt_type\":\"0\",\"goods_source\":\"rec\",\"idx\":\"0\",\"region\":\"37\",\"no_result\":\"0\",\"cloud_env\":\"usm1\",\"ts\":\"1762746343397\"}", + public bool? disableDup { get; set; } // false, + public int? pattern { get; set; } // 0, + public string linkUrl { get; set; } // "/", + public int? optType { get; set; } // 0, + public string optName { get; set; } // "首页", + public int? priority { get; set; } // 0, + public int? optId { get; set; } // -100, + public bool? isFeatured { get; set; } // false, + public string href { get; set; } // "/ca-zh-Hans", + public string title { get; set; } // "首页" + } + + public class bestSellerModuleInfo + { + + } + + public class productDetailInfo + { + public List floorList { get; set; } + } + + public class floorInfo + { + public List items { get; set; } + public int? type { get; set; } // 1, + /// + /// "marginBottom": 5 + /// + public Dictionary style { get; set; } + } + + public class productDetailFlatInfo + { + public string url { get; set; } // "https://img.kwcdn.com/product/fancy/9084c7b6-0de8-4546-be07-be0bd8c4e6c4.jpg", + public int? width { get; set; } // 1200, + public int? height { get; set; } // 1200, + public int? index { get; set; } // 0 + } + + public class clientSkuInfo + { + public int? normalPrice { get; set; } // 534, + public string normalPriceStr { get; set; } // "CA$5.34", + public int? normalLinePrice { get; set; } // 3000, + public string normalLinePriceStr { get; set; } // "30.00", + public List salePriceRich { get; set; } + public List linePriceRich { get; set; } + public int? salePrice { get; set; } // 534, + public long? skuId { get; set; } // 17601340657079, + public long? goodsId { get; set; } // 601101753736428, + public string thumbUrl { get; set; } // "https://img.kwcdn.com/product/open/e3b5a129022a4c0291d63bebefeda29c-goods.jpeg", + /// + /// 购买限量 + /// + public int? limitQuantity { get; set; } // 99, + public int? isOnsale { get; set; } // 1, + public int? canSubscribe { get; set; } // 0, + public int? subscribeStatus { get; set; } // 0, + public List specs { get; set; } + + public string skuLimitToast { get; set; } // "该商品的最大购买限额为99。", + public string autoTuneNumberToast { get; set; } // "此商品的最大购买限额为 99。我们已将其更新为最大可用限额。", + public int? galleryId { get; set; } // -1, + public string specShowImageUrl { get; set; } // "https://img.kwcdn.com/product/open/e3b5a129022a4c0291d63bebefeda29c-goods.jpeg", + public string urlId { get; set; } // "7074627613567149799", + /// + /// 库存数量 + /// + public int? stockQuantity { get; set; } // 635, + public int? priority { get; set; } // 3, + public object reduction { get; set; } + public List sizeDescHoverLists { get; set; } + public object control { get; set; } + /// + /// "salePrice": "534", + /// "skuModel": "CLeboY2igAQYohM=", + /// "isOnsale": "1", + /// "reduction": "820", + /// "business_reduction": "820", + /// "limitQuantity": "99", + /// "unitMainPrice": "0", + /// "showBestPriceRich": "0" + /// + public Dictionary skuExt { get; set; } + + + } + + public class clientSpec + { + public string specKey { get; set; } // "颜色", + public string specValue { get; set; } // "Black", + public int? specKeyId { get; set; } // 1001, + public int? specValueId { get; set; } // 17079 + } + + + public class clientGoodsInfo + { + public int? minOnSalePrice { get; set; } // 484, + public int? maxOnSalePrice { get; set; } // 620, + public string minToMaxPriceStr { get; set; } // "CA$4.84-CA$6.20", + public string minOnSalePriceStr { get; set; } // "CA$4.84", + public long? goodsId { get; set; } // 601101753736428, + public long? mallId { get; set; } // 4494544356590, + public string goodsName { get; set; } // "柔软宽松的针织冬季小毛帽,适合女士和男士,男女通用冬季节日礼物。6个颜色可选", + public int? isOnsale { get; set; } // 1, + public string thumbUrl { get; set; } // "", + public string hdThumbUrl { get; set; } // "https://img.kwcdn.com/product/open/4374e37ce05c4587a7d05d809c622040-goods.jpeg", + public int? status { get; set; } // 1, + public string itemId { get; set; } // "LP3898613", + /// + /// "sideSalesTip": "已售 1万件, by ", + /// "mallLogo": "https://img.kwcdn.com/supplier-public-tag/1f193485160/3d1b1933-2ae4-4414-8906-792b3a520891_300x300.jpeg", + /// "mallName": "Hundred Treasures Pavilion", + /// "mallSalesTip": " (10万 已售)", + /// "seoUrl": "/mall.html?_bg_fs=1&mall_id=4494544356590&goods_id=601101753736428&sticky_type=3", + /// "mallJumpUrl": "/mall.html?_bg_fs=1&mall_id=4494544356590&goods_id=601101753736428&sticky_type=3", + /// "mallSalesTipNew": "(已售出10万件)", + /// "goodsSoldTip": "已售 1万件", + /// "providedBy": "售自" + /// + public Dictionary saleInfo { get; set; } + public string sideSalesTip { get; set; } // "已售 1万件", + public int? isLocalGoods { get; set; } // 0, + public List iterationSku { get; set; } // [17601340657079, 17601340657080, 17601340657081, 17601340657082, 17601340657083, 17601340657084], + public long? catId { get; set; } // 30618, + public int? soldQuantity { get; set; } // 10000, + public string imageUrl { get; set; } // "", + /// + /// 主图和sku图列表 + /// + public List gallery { get; set; } + public List goodsProperty { get; set; } + public int? rows { get; set; } // 3, + public string statusExplain { get; set; } // "NORMAL", + public int? checkQuantity { get; set; } // 1, + public int? sellerType { get; set; } // 0, + public long? catId1 { get; set; } = 0; // 27011, + public long? catId2 { get; set; } = 0; // 30327, + public long? catId3 { get; set; } = 0; // 30603, + public long? catId4 { get; set; } = 0; // 30607, + public long? catId5 { get; set; } = 0; + public long? catId6 { get; set; } = 0; + public long? catId7 { get; set; } = 0; + public long? catId8 { get; set; } = 0; + public long? catId9 { get; set; } = 0; + public long? catId10 { get; set; } = 0; + public videoInfo video { get; set; } + public int? soldOutSubscribeStatus { get; set; } + /// + /// 主图列表 + /// + public List bannerList { get; set; } + public List detailList { get; set; } + public List customImageList { get; set; } + public List skc { get; set; } + } + + public class galleryInfo + { + /// + /// 主图(含视频)或sku 数字下标, 主图 > 0,sku从-1开始-2,-3依次类推 + /// + public long? id { get; set; } // 12384616100, + public string urlId { get; set; } // "5596271214573389307", + public string url { get; set; } // "https://img.kwcdn.com/product/open/4374e37ce05c4587a7d05d809c622040-goods.jpeg", + public string videoUrl { get; set; } // "", + public int? width { get; set; } // 1600, + public int? height { get; set; } // 1600, + /// + /// 主图或sku图顺序数字从1开始1、2、3依次类推,主图视频为0 + /// + public int? priority { get; set; } // 0, + /// + /// 1 主图或视频; -1 sku图 + /// + public int? type { get; set; } // 1, + public List showTextSpecs { get; set; } + public int? enableShare { get; set; } // 1, + public videoInfo video { get; set; } + } + + public class videoInfo + { + public string url { get; set; } // "https://img.kwcdn.com/product/9f0010396fd407f18b04800a47355be2b52d04b1.temu.000001.jpeg", + public string videoUrl { get; set; } // "https://goods-vod.kwcdn.com/goods-video/9c8a36ab13a9c0d247abda13adf3c4f08b653ba4gs2CV.f30.mp4", + public int? height { get; set; } // 720, + public int? width { get; set; } // 720 + } + + public class showTextSpecInfo + { + public string specKey { get; set; } // "颜色", + public string specValue { get; set; } // "深灰色", + public int? specKeyId { get; set; } // 1001, + public int? specValueId { get; set; } // 15071 + } + + public class goodsPropertyInfo + { + public string key { get; set; } // "成分", + public List values { get; set; } // [ "100% 腈纶" ], + public int? refPid { get; set; } // 15, + public int? referenceId { get; set; } // 0, + public int? important { get; set; } // 1 + public int? copyable { get; set; } // 1, + public int? customProperty { get; set; } // 2 } } diff --git a/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs b/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs index 7d350af..6d0b109 100644 --- a/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs +++ b/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs @@ -32,8 +32,12 @@ namespace KJD_Web.BLL string product_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "product_name"))?.Replace("'", "\\'"); string product_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "product_json"))?.Replace("'", "\\'"); string size_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "size_json"))?.Replace("'", "\\'"); + string original_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "original_json"))?.Replace("'", "\\'"); string main_img = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "main_img"))?.Replace("'", "\\'"); string notes = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "notes"))?.Replace("'", "\\'"); + string product_get_type = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "product_get_type"))?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(product_get_type)) + product_get_type = "0"; if (string.IsNullOrEmpty(user_name)) { @@ -44,9 +48,10 @@ namespace KJD_Web.BLL MysqlUtils mySql = new MysqlUtils(conn); string sql = ""; - sql = "insert into kjd.product (spu_id,skc_id,cat_id,cat_name,product_name,ext_code,main_img,product_json,size_json,notes,add_time,mdy_time) " + + sql = "insert into kjd.product (spu_id,skc_id,cat_id,cat_name,product_name,ext_code,main_img,product_json,size_json,original_json,notes,product_get_type,add_time,mdy_time) " + "values ('" + spu_id + "','" + skc_id + "','" + cat_id + "','" + cat_name + "','" + product_name + "','" + - ext_code + "','" + main_img + "','" + product_json + "','" + size_json + "','" + notes + "','" + + ext_code + "','" + main_img + "','" + product_json + "','" + size_json + "','" + original_json + "','" + notes + "','" + + product_get_type + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; var rst = mySql.ExecuteNonQuery(sql); @@ -84,6 +89,9 @@ namespace KJD_Web.BLL var get_select_count = RegexUtils.GetStringQuery(ref inputData, "get_select_count")?.Replace("'", "\\'"); var select_shop_id = RegexUtils.GetStringQuery(ref inputData, "select_shop_id")?.Replace("'", "\\'"); var sort_field = RegexUtils.GetStringQuery(ref inputData, "sort_field")?.Replace("'", "\\'"); + var product_get_type = RegexUtils.GetStringQuery(ref inputData, "product_get_type")?.Replace("'", "\\'"); + if (string.IsNullOrEmpty(product_get_type)) + product_get_type = "0"; int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); @@ -92,6 +100,8 @@ namespace KJD_Web.BLL MysqlUtils mySql = new MysqlUtils(conn); string sql = "select count(id) from kjd.product p where p.is_del=0"; + if (!isDetail && product_get_type != "all") + sql += " and p.product_get_type=" + product_get_type; string where = ""; if (!string.IsNullOrWhiteSpace(search_spu)) @@ -123,13 +133,18 @@ namespace KJD_Web.BLL sql = "select * from kjd.product p where p.is_del=0"; else if (string.IsNullOrEmpty(get_select_count)) sql = "select p.id,p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.ext_code,p.product_name,p.main_img,p.notes," + - "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words from kjd.product p where p.is_del=0"; + "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words," + + "p.product_get_type from kjd.product p where p.is_del=0"; else sql = "SELECT p.id,p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.ext_code,p.product_name,p.main_img,p.notes," + - "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,COUNT(s.id) AS select_count " + + "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.product_get_type" + + ",COUNT(s.id) AS select_count " + "FROM kjd.product p LEFT JOIN kjd.product_select s ON p.id=s.out_product_id AND s.shop_id='" + select_shop_id + "' " + "WHERE p.is_del=0"; + if (!isDetail && product_get_type != "all") // 详情必须从列表页面进入,不用限制 + sql += " and p.product_get_type=" + product_get_type; + //where子句 sql += where; @@ -170,6 +185,7 @@ namespace KJD_Web.BLL end_words = row["end_words"].ParseToString(), fission_words = row["fission_words"].ParseToString(), head_words = row["head_words"].ParseToString(), + product_get_type = row["product_get_type"].ParseToInt(), //0母店采集 1前端直采 }; if (isDetail) { @@ -284,6 +300,9 @@ namespace KJD_Web.BLL string fission_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "fission_words"))?.Replace("'", "\\'"); string head_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "head_words"))?.Replace("'", "\\'"); string end_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "end_words"))?.Replace("'", "\\'"); + string product_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "product_json"))?.Replace("'", "\\'"); + string size_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "size_json"))?.Replace("'", "\\'"); + string original_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "original_json"))?.Replace("'", "\\'"); if (string.IsNullOrEmpty(user_name)) { @@ -305,6 +324,12 @@ namespace KJD_Web.BLL sql += " head_words='" + head_words + "',"; if (end_words != null) sql += " end_words='" + end_words + "',"; + if (product_json != null) + sql += " product_json='" + product_json + "',"; + if (size_json != null) + sql += " size_json='" + size_json + "',"; + if (original_json != null) + sql += " original_json='" + original_json + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ";"; @@ -561,7 +586,7 @@ namespace KJD_Web.BLL "s.sub_user_name,s.notes,s.user_notes,s.status,s.draft_id,s.add_times,s.add_time,s.mdy_time," + "s.fission_product_name,s.operate_sub_sa_name,s.add_sub_sa_time," + "p.spu_id,p.skc_id,p.cat_id,p.cat_name,p.ext_code,p.product_name,p.main_img," + - "u.nick_name as operate_sub_sa_nick " + + "p.product_get_type,u.nick_name as operate_sub_sa_nick " + "from kjd.product_select s left join kjd.product p on s.out_product_id=p.id " + "left join kjd.user u on u.user_name=s.operate_sub_sa_name " + "where 1=1"; @@ -606,6 +631,7 @@ namespace KJD_Web.BLL operate_sub_sa_nick = row["operate_sub_sa_nick"].ToString(), fission_product_name = row["fission_product_name"].ToString(), user_notes = row["user_notes"].ToString(), + product_get_type = row["product_get_type"].ParseToInt(), //product_json = row["product_json"].ToString(), //size_json = row["size_json"].ToString(), }; @@ -987,6 +1013,7 @@ namespace KJD_Web.BLL int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200); + bool is_random = RegexUtils.GetStringQuery(ref inputData, "is_random").ParseToBool(); string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); @@ -1021,7 +1048,10 @@ namespace KJD_Web.BLL //where子句 sql += where; - sql += " order by s.id desc"; + if (is_random) + sql += " ORDER BY RAND(),s.id desc"; + else + sql += " order by s.id desc"; sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; dt = mySql.ExecuteDataTable(sql); } diff --git a/KJDService/KJD_WebService/BLL/KJD/UserManage.cs b/KJDService/KJD_WebService/BLL/KJD/UserManage.cs index d37f504..1f364d3 100644 --- a/KJDService/KJD_WebService/BLL/KJD/UserManage.cs +++ b/KJDService/KJD_WebService/BLL/KJD/UserManage.cs @@ -466,5 +466,24 @@ namespace KJD_Web.BLL } return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + + public string IsGetReturnPackage(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + + int r2 = RegexUtils.GetStringQuery(ref inputData, "r2").ParseToInt(); + string c2 = RegexUtils.GetStringQuery(ref inputData, "c2"); + + if (EncrypUtil.Encryption(r2) != c2) + return "{\"code\":2,\"msg\":\"不合法的输入内容\"}"; + + var isGetReturn = System.Configuration.ConfigurationManager.ConnectionStrings["GetReturnPackage"]?.ConnectionString; + return "{\"code\":200, \"is_get\":\"" + isGetReturn + "\"}"; + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/Model/DBProductResultParam.cs b/KJDService/KJD_WebService/Model/DBProductResultParam.cs index b4b0c9b..0652682 100644 --- a/KJDService/KJD_WebService/Model/DBProductResultParam.cs +++ b/KJDService/KJD_WebService/Model/DBProductResultParam.cs @@ -44,5 +44,6 @@ namespace KJD_Web.Model public string fission_words { get; set; } public string head_words { get; set; } public string end_words { get; set; } + public int product_get_type { get; set; } } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/Model/ProductSelectResultParam.cs b/KJDService/KJD_WebService/Model/ProductSelectResultParam.cs index 02d1080..a77c3a5 100644 --- a/KJDService/KJD_WebService/Model/ProductSelectResultParam.cs +++ b/KJDService/KJD_WebService/Model/ProductSelectResultParam.cs @@ -41,7 +41,7 @@ namespace KJD_Web.Model public string main_img { get; set; } public string spu_id { get; set; } public string skc_id { get; set; } - + public int product_get_type { get; set; } #endregion } } \ No newline at end of file diff --git a/KJDService/KJD_WebService/UserService.asmx.cs b/KJDService/KJD_WebService/UserService.asmx.cs index ac9a67f..dacd3e1 100644 --- a/KJDService/KJD_WebService/UserService.asmx.cs +++ b/KJDService/KJD_WebService/UserService.asmx.cs @@ -78,6 +78,18 @@ namespace KJD_Web Context.Response.End(); } + [WebMethod] + public void is_get_return_package() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new UserManage().IsGetReturnPackage(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] public void change_password() { diff --git a/KJDService/KJD_WebService/Web.config b/KJDService/KJD_WebService/Web.config index 6643254..ca211ba 100644 --- a/KJDService/KJD_WebService/Web.config +++ b/KJDService/KJD_WebService/Web.config @@ -8,6 +8,7 @@ + diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 354becd..34e4560 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -195,6 +195,12 @@ TemuAdsForm.cs + + Form + + + TemuJitForm.cs + Form @@ -881,6 +887,9 @@ TemuAdsForm.cs + + TemuJitForm.cs + DbProductCategorySearch.cs diff --git a/TEMUKJD/KJDForms/AdminForms/AdminForm.Designer.cs b/TEMUKJD/KJDForms/AdminForms/AdminForm.Designer.cs index 564a827..85de1d6 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminForm.Designer.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminForm.Designer.cs @@ -36,7 +36,8 @@ System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("库存上传"); System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("商品核价"); System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("加入发货台"); - System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] { + System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("开通Jit"); + System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, treeNode3, @@ -44,7 +45,8 @@ treeNode5, treeNode6, treeNode7, - treeNode8}); + treeNode8, + treeNode9}); this.panel1 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); @@ -151,10 +153,12 @@ treeNode7.Text = "商品核价"; treeNode8.Name = "加入发货台"; treeNode8.Text = "加入发货台"; - treeNode9.Name = "超级权限管理"; - treeNode9.Text = "超级权限管理"; + treeNode9.Name = "开通Jit"; + treeNode9.Text = "开通Jit"; + treeNode10.Name = "超级权限管理"; + treeNode10.Text = "超级权限管理"; this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode9}); + treeNode10}); this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); this.tv.Size = new System.Drawing.Size(140, 446); this.tv.TabIndex = 1; diff --git a/TEMUKJD/KJDForms/AdminForms/AdminForm.cs b/TEMUKJD/KJDForms/AdminForms/AdminForm.cs index c8ec3e0..a9cc426 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminForm.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminForm.cs @@ -27,6 +27,7 @@ namespace TemuKJD.KJDForms.AdminForms public Lazy productThirdSelectListManageForm = new Lazy(); public Lazy adminProductPriceCheckForm = new Lazy(); public Lazy joinDeliveryFrom = new Lazy(); + public Lazy jitForm = new Lazy(); public AdminForm() { @@ -38,7 +39,7 @@ namespace TemuKJD.KJDForms.AdminForms tv.ExpandGroup(tv.Nodes[0].Name); List hideName = new List() { "超级用户管理", "超级店铺管理", "选品数据库", "选品加价管理", "认领待上传", "库存上传", "商品核价", - "加入发货台" }; + "加入发货台", "开通Jit" }; if (BaseClass.GroupId == 3) { @@ -53,6 +54,9 @@ namespace TemuKJD.KJDForms.AdminForms hideName.Remove("库存上传"); hideName.Remove("商品核价"); hideName.Remove("加入发货台"); +#if DEBUG + hideName.Remove("开通Jit"); +#endif } if (BaseClass.SaLevel==2) { @@ -112,6 +116,9 @@ namespace TemuKJD.KJDForms.AdminForms joinDeliveryFrom.Value.IsAdmin = true; SetForm(joinDeliveryFrom.Value); break; + case "开通Jit": + SetForm(jitForm.Value); + break; } })); }).Start(); diff --git a/TEMUKJD/KJDForms/AdminForms/AdminShopListForm.cs b/TEMUKJD/KJDForms/AdminForms/AdminShopListForm.cs index 9908111..0d58c9f 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminShopListForm.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminShopListForm.cs @@ -394,19 +394,26 @@ namespace TemuKJD.KJDForms.AdminForms } public List AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50) + { + return AdminGetServerShopLst(out pageCount, txtUserName.Text.Trim(), txtLoginName.Text.Trim(), txtNotes.Text.Trim(), + txtShopId.Text.Trim(), txtShopName.Text.Trim(), page, pageSize); + } + + public List AdminGetServerShopLst(out int pageCount, string search_user_name, string search_login_name, string search_notes, + string search_id, string search_name, int page = 1, int pageSize = 50) { List list = new List(); pageCount = 1; var url = BaseClass.BuildObjString("shop/admin_get_shop_list"); - var data = UserLogin.GetSignaturex() + - "&page=" + page + + var data = UserLogin.GetSignaturex() + + "&page=" + page + "&page_size=" + pageSize + - "&search_user_name=" + txtUserName.Text.Trim() + - "&search_login_name=" + txtLoginName.Text.Trim() + - "&search_notes=" + txtNotes.Text.Trim() + - "&search_id=" + txtShopId.Text.Trim() + - "&search_name=" + txtShopName.Text.Trim(); + "&search_user_name=" + search_user_name + + "&search_login_name=" + search_login_name + + "&search_notes=" + search_notes + + "&search_id=" + search_id + + "&search_name=" + search_name; if (BaseClass.SaLevel > 1) data += "&operate_sub_sa_name=" + BaseClass.UserName; var html = GetHtml.PostUtf8(url, data); diff --git a/TEMUKJD/KJDForms/ProductForms/JoinDeliveryFrom.Designer.cs b/TEMUKJD/KJDForms/ProductForms/JoinDeliveryFrom.Designer.cs index f529d48..49236b2 100644 --- a/TEMUKJD/KJDForms/ProductForms/JoinDeliveryFrom.Designer.cs +++ b/TEMUKJD/KJDForms/ProductForms/JoinDeliveryFrom.Designer.cs @@ -39,8 +39,6 @@ namespace TemuKJD.KJDForms.ProductForms this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnStart = new DevComponents.DotNetBar.PanelEx(); - this.txtRetryInterval = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); this.btnSearch = new DevComponents.DotNetBar.PanelEx(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnEmpty = new DevComponents.DotNetBar.PanelEx(); @@ -88,7 +86,9 @@ namespace TemuKJD.KJDForms.ProductForms this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.txtRetryInterval = new System.Windows.Forms.TextBox(); this.btnStop = new DevComponents.DotNetBar.PanelEx(); + this.label1 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -175,25 +175,6 @@ namespace TemuKJD.KJDForms.ProductForms this.btnStart.Text = "循环加入发货台"; this.btnStart.Click += new System.EventHandler(this.btnStart_Click); // - // txtRetryInterval - // - this.txtRetryInterval.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtRetryInterval.Location = new System.Drawing.Point(253, -1); - this.txtRetryInterval.Name = "txtRetryInterval"; - this.txtRetryInterval.Size = new System.Drawing.Size(47, 23); - this.txtRetryInterval.TabIndex = 431; - this.txtRetryInterval.Text = "5"; - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(179, 2); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(76, 17); - this.label1.TabIndex = 432; - this.label1.Text = "重试间隔(秒)"; - // // btnSearch // this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; @@ -371,8 +352,8 @@ namespace TemuKJD.KJDForms.ProductForms // // splitContainer2.Panel2 // - this.splitContainer2.Panel2.Controls.Add(this.pnlMsg); this.splitContainer2.Panel2.Controls.Add(this.pbLoading); + this.splitContainer2.Panel2.Controls.Add(this.pnlMsg); this.splitContainer2.Panel2.Controls.Add(this.dgvStock); this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); this.splitContainer2.Size = new System.Drawing.Size(1478, 462); @@ -789,6 +770,15 @@ namespace TemuKJD.KJDForms.ProductForms this.btnClear.Text = "清空结果"; this.btnClear.Visible = false; // + // txtRetryInterval + // + this.txtRetryInterval.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtRetryInterval.Location = new System.Drawing.Point(253, -1); + this.txtRetryInterval.Name = "txtRetryInterval"; + this.txtRetryInterval.Size = new System.Drawing.Size(47, 23); + this.txtRetryInterval.TabIndex = 431; + this.txtRetryInterval.Text = "5"; + // // btnStop // this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -814,6 +804,16 @@ namespace TemuKJD.KJDForms.ProductForms this.btnStop.Text = "停止当前操作"; this.btnStop.Click += new System.EventHandler(this.btnStop_Click); // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(179, 2); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(76, 17); + this.label1.TabIndex = 432; + this.label1.Text = "重试间隔(秒)"; + // // JoinDeliveryFrom // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; diff --git a/TEMUKJD/KJDForms/ProductForms/TemuJitForm.Designer.cs b/TEMUKJD/KJDForms/ProductForms/TemuJitForm.Designer.cs new file mode 100644 index 0000000..ba9869b --- /dev/null +++ b/TEMUKJD/KJDForms/ProductForms/TemuJitForm.Designer.cs @@ -0,0 +1,945 @@ + +namespace TemuKJD.KJDForms.ProductForms +{ + partial class TemuJitForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnResetExtCode = new DevComponents.DotNetBar.PanelEx(); + this.txtExtCode = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.chkSearchTime = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.dtpEndTime = new System.Windows.Forms.DateTimePicker(); + this.dtpStartTime = new System.Windows.Forms.DateTimePicker(); + this.btnStop = new DevComponents.DotNetBar.PanelEx(); + this.btnSearchPrice2 = new DevComponents.DotNetBar.PanelEx(); + this.txtSkcId = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.btnEmpty = new DevComponents.DotNetBar.PanelEx(); + this.label5 = new System.Windows.Forms.Label(); + this.txtNotes = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); + this.txtShopName = new System.Windows.Forms.TextBox(); + this.txtShopId = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.pbShopLoading = new System.Windows.Forms.PictureBox(); + this.chkSearchAllShop = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colUser = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.dgvPriceCheck = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colProdIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOrderId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn(); + this.colProductId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colProdSkc = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colProdName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSkuName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colExtCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPrcie = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colCreatTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.ucGroupBoxEx1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); + this.splitContainer3.Panel1.SuspendLayout(); + this.splitContainer3.Panel2.SuspendLayout(); + this.splitContainer3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbShopLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPriceCheck)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit(); + this.splitContainer4.Panel1.SuspendLayout(); + this.splitContainer4.Panel2.SuspendLayout(); + this.splitContainer4.SuspendLayout(); + this.SuspendLayout(); + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.White; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); + this.splitContainer1.Size = new System.Drawing.Size(1461, 571); + this.splitContainer1.SplitterDistance = 130; + this.splitContainer1.TabIndex = 12; + // + // ucGroupBoxEx1 + // + this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.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.btnResetExtCode); + this.ucGroupBoxEx1.Controls.Add(this.txtExtCode); + this.ucGroupBoxEx1.Controls.Add(this.label12); + this.ucGroupBoxEx1.Controls.Add(this.chkSearchTime); + this.ucGroupBoxEx1.Controls.Add(this.dtpEndTime); + this.ucGroupBoxEx1.Controls.Add(this.dtpStartTime); + this.ucGroupBoxEx1.Controls.Add(this.btnStop); + this.ucGroupBoxEx1.Controls.Add(this.btnSearchPrice2); + this.ucGroupBoxEx1.Controls.Add(this.txtSkcId); + this.ucGroupBoxEx1.Controls.Add(this.label7); + this.ucGroupBoxEx1.Controls.Add(this.btnEmpty); + this.ucGroupBoxEx1.Controls.Add(this.label5); + this.ucGroupBoxEx1.Controls.Add(this.txtNotes); + this.ucGroupBoxEx1.Controls.Add(this.label4); + this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); + this.ucGroupBoxEx1.Controls.Add(this.txtShopName); + this.ucGroupBoxEx1.Controls.Add(this.txtShopId); + this.ucGroupBoxEx1.Controls.Add(this.label2); + this.ucGroupBoxEx1.Controls.Add(this.label3); + this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); + this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; + this.ucGroupBoxEx1.Size = new System.Drawing.Size(1456, 130); + this.ucGroupBoxEx1.TabIndex = 399; + this.ucGroupBoxEx1.TabStop = false; + this.ucGroupBoxEx1.Text = "参数设置"; + // + // btnResetExtCode + // + this.btnResetExtCode.CanvasColor = System.Drawing.SystemColors.Control; + this.btnResetExtCode.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnResetExtCode.DisabledBackColor = System.Drawing.Color.Empty; + this.btnResetExtCode.Location = new System.Drawing.Point(525, 44); + this.btnResetExtCode.Name = "btnResetExtCode"; + this.btnResetExtCode.Size = new System.Drawing.Size(66, 23); + this.btnResetExtCode.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnResetExtCode.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnResetExtCode.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnResetExtCode.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnResetExtCode.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnResetExtCode.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnResetExtCode.Style.GradientAngle = 90; + this.btnResetExtCode.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnResetExtCode.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnResetExtCode.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnResetExtCode.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnResetExtCode.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnResetExtCode.TabIndex = 1005; + this.btnResetExtCode.Text = "重置"; + // + // txtExtCode + // + this.txtExtCode.Location = new System.Drawing.Point(340, 44); + this.txtExtCode.Name = "txtExtCode"; + this.txtExtCode.Size = new System.Drawing.Size(182, 23); + this.txtExtCode.TabIndex = 1003; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(306, 47); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(44, 17); + this.label12.TabIndex = 1004; + this.label12.Text = "货号:"; + // + // chkSearchTime + // + this.chkSearchTime.AutoSize = true; + this.chkSearchTime.Checked = true; + this.chkSearchTime.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkSearchTime.Location = new System.Drawing.Point(301, 74); + this.chkSearchTime.Name = "chkSearchTime"; + this.chkSearchTime.Size = new System.Drawing.Size(15, 14); + this.chkSearchTime.TabIndex = 1002; + this.chkSearchTime.UseVisualStyleBackColor = true; + // + // dtpEndTime + // + this.dtpEndTime.Location = new System.Drawing.Point(455, 71); + this.dtpEndTime.Name = "dtpEndTime"; + this.dtpEndTime.Size = new System.Drawing.Size(136, 23); + this.dtpEndTime.TabIndex = 1001; + // + // dtpStartTime + // + this.dtpStartTime.Location = new System.Drawing.Point(317, 71); + this.dtpStartTime.Name = "dtpStartTime"; + this.dtpStartTime.Size = new System.Drawing.Size(136, 23); + this.dtpStartTime.TabIndex = 1000; + // + // btnStop + // + 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(525, 98); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(66, 23); + this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnStop.Style.GradientAngle = 90; + this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnStop.TabIndex = 999; + this.btnStop.Text = "停止读取"; + // + // btnSearchPrice2 + // + this.btnSearchPrice2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSearchPrice2.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSearchPrice2.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSearchPrice2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearchPrice2.Location = new System.Drawing.Point(410, 98); + this.btnSearchPrice2.Name = "btnSearchPrice2"; + this.btnSearchPrice2.Size = new System.Drawing.Size(112, 23); + this.btnSearchPrice2.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchPrice2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchPrice2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchPrice2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearchPrice2.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearchPrice2.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearchPrice2.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearchPrice2.Style.GradientAngle = 90; + this.btnSearchPrice2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchPrice2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchPrice2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchPrice2.TabIndex = 996; + this.btnSearchPrice2.Text = "读取待创建首单"; + this.btnSearchPrice2.Click += new System.EventHandler(this.btnSearchPrice2_Click); + // + // txtSkcId + // + this.txtSkcId.Location = new System.Drawing.Point(340, 17); + this.txtSkcId.Name = "txtSkcId"; + this.txtSkcId.Size = new System.Drawing.Size(251, 23); + this.txtSkcId.TabIndex = 997; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(298, 20); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(52, 17); + this.label7.TabIndex = 998; + this.label7.Text = "SkcId:"; + // + // btnEmpty + // + this.btnEmpty.CanvasColor = System.Drawing.SystemColors.Control; + this.btnEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnEmpty.DisabledBackColor = System.Drawing.Color.Empty; + this.btnEmpty.Location = new System.Drawing.Point(213, 98); + this.btnEmpty.Name = "btnEmpty"; + this.btnEmpty.Size = new System.Drawing.Size(40, 23); + this.btnEmpty.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnEmpty.Style.GradientAngle = 90; + this.btnEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnEmpty.TabIndex = 697; + this.btnEmpty.Text = "重置"; + this.btnEmpty.Click += new System.EventHandler(this.btnEmpty_Click); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + this.label5.Location = new System.Drawing.Point(15, 101); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(128, 17); + this.label5.TabIndex = 685; + this.label5.Text = "注:逗号分隔查询多店"; + // + // txtNotes + // + this.txtNotes.Location = new System.Drawing.Point(70, 71); + this.txtNotes.Name = "txtNotes"; + this.txtNotes.Size = new System.Drawing.Size(183, 23); + this.txtNotes.TabIndex = 382; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(13, 74); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(68, 17); + this.label4.TabIndex = 383; + this.label4.Text = "店铺分组:"; + // + // btnRefreshShop + // + this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshShop.Location = new System.Drawing.Point(145, 98); + this.btnRefreshShop.Name = "btnRefreshShop"; + this.btnRefreshShop.Size = new System.Drawing.Size(65, 23); + this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshShop.Style.GradientAngle = 90; + this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.TabIndex = 431; + this.btnRefreshShop.Text = "查询/刷新"; + this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click); + // + // txtShopName + // + this.txtShopName.Location = new System.Drawing.Point(70, 44); + this.txtShopName.Name = "txtShopName"; + this.txtShopName.Size = new System.Drawing.Size(183, 23); + this.txtShopName.TabIndex = 380; + // + // txtShopId + // + this.txtShopId.Location = new System.Drawing.Point(70, 17); + this.txtShopId.Name = "txtShopId"; + this.txtShopId.Size = new System.Drawing.Size(183, 23); + this.txtShopId.TabIndex = 378; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(26, 20); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 17); + this.label2.TabIndex = 379; + this.label2.Text = "店铺id:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(25, 47); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(56, 17); + this.label3.TabIndex = 381; + this.label3.Text = "店铺名:"; + // + // splitContainer3 + // + this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer3.Location = new System.Drawing.Point(0, 0); + this.splitContainer3.Name = "splitContainer3"; + this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer3.Panel1 + // + this.splitContainer3.Panel1.Controls.Add(this.splitContainer2); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); + this.splitContainer3.Size = new System.Drawing.Size(1461, 437); + this.splitContainer3.SplitterDistance = 407; + this.splitContainer3.TabIndex = 1; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.pbShopLoading); + this.splitContainer2.Panel1.Controls.Add(this.chkSearchAllShop); + this.splitContainer2.Panel1.Controls.Add(this.dgvShop); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.pbLoading); + this.splitContainer2.Panel2.Controls.Add(this.dgvPriceCheck); + this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); + this.splitContainer2.Size = new System.Drawing.Size(1461, 407); + this.splitContainer2.SplitterDistance = 280; + this.splitContainer2.TabIndex = 0; + // + // pbShopLoading + // + this.pbShopLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbShopLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbShopLoading.Location = new System.Drawing.Point(115, 178); + this.pbShopLoading.Name = "pbShopLoading"; + this.pbShopLoading.Size = new System.Drawing.Size(50, 50); + this.pbShopLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbShopLoading.TabIndex = 676; + this.pbShopLoading.TabStop = false; + this.pbShopLoading.Visible = false; + // + // chkSearchAllShop + // + this.chkSearchAllShop.AutoSize = true; + this.chkSearchAllShop.Location = new System.Drawing.Point(22, 43); + this.chkSearchAllShop.Name = "chkSearchAllShop"; + this.chkSearchAllShop.Size = new System.Drawing.Size(147, 21); + this.chkSearchAllShop.TabIndex = 710; + this.chkSearchAllShop.Text = "二级超管查询所有店铺"; + this.chkSearchAllShop.UseVisualStyleBackColor = true; + this.chkSearchAllShop.Visible = false; + // + // dgvShop + // + this.dgvShop.AllowUserToAddRows = false; + this.dgvShop.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.BackgroundColor = System.Drawing.Color.White; + this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.colUser, + this.colLoginName, + this.colShopId, + this.colShopName, + this.colShopNotes, + this.colLoginStatus, + this.colCanUse, + this.colMessage}); + this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.Name = "dgvShop"; + this.dgvShop.ReadOnly = true; + this.dgvShop.RowHeadersWidth = 25; + this.dgvShop.RowTemplate.Height = 23; + this.dgvShop.Size = new System.Drawing.Size(276, 407); + this.dgvShop.TabIndex = 6; + this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); + // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colUser + // + this.colUser.HeaderText = "店铺账户"; + this.colUser.Name = "colUser"; + this.colUser.ReadOnly = true; + this.colUser.Visible = false; + // + // colLoginName + // + this.colLoginName.HeaderText = "店铺登录名"; + this.colLoginName.Name = "colLoginName"; + this.colLoginName.ReadOnly = true; + this.colLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 70; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "分组"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 70; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 38; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // + // 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(547, 178); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 675; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // dgvPriceCheck + // + this.dgvPriceCheck.AllowUserToAddRows = false; + this.dgvPriceCheck.AllowUserToDeleteRows = false; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvPriceCheck.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvPriceCheck.BackgroundColor = System.Drawing.Color.White; + this.dgvPriceCheck.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvPriceCheck.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + this.dgvPriceCheck.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPriceCheck.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colCheck, + this.colProdIndex, + this.colOrderId, + this.colSupplierId, + this.colSupplierName, + this.colImgUrl, + this.colProductSkcPic, + this.colProductId, + this.colProdSkc, + this.colProdName, + this.colSkuName, + this.colExtCode, + this.colPrcie, + this.colCreatTime, + this.colMsg}); + this.dgvPriceCheck.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvPriceCheck.Location = new System.Drawing.Point(0, 0); + this.dgvPriceCheck.Name = "dgvPriceCheck"; + this.dgvPriceCheck.ReadOnly = true; + this.dgvPriceCheck.RowHeadersWidth = 36; + this.dgvPriceCheck.RowTemplate.Height = 23; + this.dgvPriceCheck.Size = new System.Drawing.Size(1173, 407); + this.dgvPriceCheck.TabIndex = 187; + // + // colCheck + // + this.colCheck.HeaderText = "选择"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCheck.Width = 28; + // + // colProdIndex + // + this.colProdIndex.HeaderText = "序号"; + this.colProdIndex.Name = "colProdIndex"; + this.colProdIndex.ReadOnly = true; + this.colProdIndex.Width = 40; + // + // colOrderId + // + this.colOrderId.HeaderText = "处理单号"; + this.colOrderId.Name = "colOrderId"; + this.colOrderId.ReadOnly = true; + this.colOrderId.Visible = false; + // + // colSupplierId + // + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + this.colSupplierId.Width = 80; + // + // colSupplierName + // + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + this.colSupplierName.Width = 90; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片路径"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colProductSkcPic + // + this.colProductSkcPic.HeaderText = "Skc图片"; + this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colProductSkcPic.Name = "colProductSkcPic"; + this.colProductSkcPic.ReadOnly = true; + this.colProductSkcPic.Width = 60; + // + // colProductId + // + this.colProductId.HeaderText = "商品Id"; + this.colProductId.Name = "colProductId"; + this.colProductId.ReadOnly = true; + this.colProductId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colProductId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colProductId.Width = 85; + // + // colProdSkc + // + this.colProdSkc.FillWeight = 150F; + this.colProdSkc.HeaderText = "商品SKC"; + this.colProdSkc.Name = "colProdSkc"; + this.colProdSkc.ReadOnly = true; + this.colProdSkc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colProdSkc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colProdSkc.Width = 90; + // + // colProdName + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProdName.DefaultCellStyle = dataGridViewCellStyle5; + this.colProdName.HeaderText = "标题"; + this.colProdName.Name = "colProdName"; + this.colProdName.ReadOnly = true; + this.colProdName.Width = 140; + // + // colSkuName + // + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSkuName.DefaultCellStyle = dataGridViewCellStyle6; + this.colSkuName.HeaderText = "规格名称"; + this.colSkuName.Name = "colSkuName"; + this.colSkuName.ReadOnly = true; + this.colSkuName.Width = 90; + // + // colExtCode + // + this.colExtCode.HeaderText = "货号"; + this.colExtCode.Name = "colExtCode"; + this.colExtCode.ReadOnly = true; + this.colExtCode.Width = 160; + // + // colPrcie + // + this.colPrcie.HeaderText = "申报价"; + this.colPrcie.Name = "colPrcie"; + this.colPrcie.ReadOnly = true; + this.colPrcie.Width = 60; + // + // colCreatTime + // + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colCreatTime.DefaultCellStyle = dataGridViewCellStyle7; + this.colCreatTime.HeaderText = "创建时间"; + this.colCreatTime.Name = "colCreatTime"; + this.colCreatTime.ReadOnly = true; + this.colCreatTime.Width = 65; + // + // colMsg + // + this.colMsg.HeaderText = "状态"; + this.colMsg.Name = "colMsg"; + this.colMsg.ReadOnly = true; + this.colMsg.Width = 160; + // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.ucSplitPage1); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.statusBar); + this.splitContainer4.Size = new System.Drawing.Size(1461, 26); + this.splitContainer4.SplitterDistance = 282; + this.splitContainer4.TabIndex = 3; + // + // ucSplitPage1 + // + this.ucSplitPage1.CurrentPage = 1; + this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Left; + this.ucSplitPage1.IsShowPageSize = false; + this.ucSplitPage1.Location = new System.Drawing.Point(0, 0); + this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); + this.ucSplitPage1.Name = "ucSplitPage1"; + this.ucSplitPage1.PageSize = 50; + this.ucSplitPage1.Size = new System.Drawing.Size(282, 26); + this.ucSplitPage1.TabIndex = 5; + this.ucSplitPage1.TotalPage = 1; + this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); + // + // panelEx1 + // + this.panelEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Location = new System.Drawing.Point(1056, 0); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(115, 21); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.TabIndex = 668; + this.panelEx1.Text = "停止当前操作"; + this.panelEx1.Visible = false; + // + // btnClear + // + this.btnClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(962, 0); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(1175, 26); + this.statusBar.TabIndex = 2; + // + // TemuJitForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1461, 571); + this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Name = "TemuJitForm"; + this.Text = "加入Jit"; + this.Load += new System.EventHandler(this.TemuJitForm_Load); + this.VisibleChanged += new System.EventHandler(this.TemuJitForm_VisibleChanged); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ucGroupBoxEx1.ResumeLayout(false); + this.ucGroupBoxEx1.PerformLayout(); + this.splitContainer3.Panel1.ResumeLayout(false); + this.splitContainer3.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); + this.splitContainer3.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbShopLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPriceCheck)).EndInit(); + this.splitContainer4.Panel1.ResumeLayout(false); + this.splitContainer4.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); + this.splitContainer4.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private UserComponent.UcGroupBoxEx ucGroupBoxEx1; + private DevComponents.DotNetBar.PanelEx btnEmpty; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox txtNotes; + private System.Windows.Forms.Label label4; + private DevComponents.DotNetBar.PanelEx btnRefreshShop; + private System.Windows.Forms.TextBox txtShopName; + private System.Windows.Forms.TextBox txtShopId; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.SplitContainer splitContainer3; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.PictureBox pbShopLoading; + private UserComponent.DataGridViewEx dgvShop; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colUser; + private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; + private UserComponent.UcCheckBox chkSearchAllShop; + private System.Windows.Forms.PictureBox pbLoading; + private DevComponents.DotNetBar.PanelEx panelEx1; + private DevComponents.DotNetBar.PanelEx btnClear; + private UserComponent.DataGridViewEx dgvPriceCheck; + private System.Windows.Forms.SplitContainer splitContainer4; + private UserControls.UcSplitPage ucSplitPage1; + private UserControls.StatusBarUserControl statusBar; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colProdIndex; + private System.Windows.Forms.DataGridViewTextBoxColumn colOrderId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewLinkColumn colProductId; + private System.Windows.Forms.DataGridViewLinkColumn colProdSkc; + private System.Windows.Forms.DataGridViewTextBoxColumn colProdName; + private System.Windows.Forms.DataGridViewTextBoxColumn colSkuName; + private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colPrcie; + private System.Windows.Forms.DataGridViewTextBoxColumn colCreatTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; + private DevComponents.DotNetBar.PanelEx btnResetExtCode; + private System.Windows.Forms.TextBox txtExtCode; + private System.Windows.Forms.Label label12; + private UserComponent.UcCheckBox chkSearchTime; + private System.Windows.Forms.DateTimePicker dtpEndTime; + private System.Windows.Forms.DateTimePicker dtpStartTime; + private DevComponents.DotNetBar.PanelEx btnStop; + private DevComponents.DotNetBar.PanelEx btnSearchPrice2; + private System.Windows.Forms.TextBox txtSkcId; + private System.Windows.Forms.Label label7; + } +} \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductForms/TemuJitForm.cs b/TEMUKJD/KJDForms/ProductForms/TemuJitForm.cs new file mode 100644 index 0000000..386b8f1 --- /dev/null +++ b/TEMUKJD/KJDForms/ProductForms/TemuJitForm.cs @@ -0,0 +1,468 @@ +using AllBase; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using TemuKJD.BLL; +using TemuKJD.Extension; +using TemuKJD.KJDForms.AdminForms; +using TemuKJD.KJDForms.ShopForms; +using Work; + +namespace TemuKJD.KJDForms.ProductForms +{ + public partial class TemuJitForm : Form + { + SetJitConfig setJitConfig = null; + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + public List lstAdminShopInfo { get; set; } = new List(); + public List lstCheckPriceInfo = new List(); + + public TemuJitForm() + { + InitializeComponent(); + } + + private void TemuJitForm_Load(object sender, EventArgs e) + { + this.dgvShop.AddSelectorColumn("colSelect"); + this.dgvPriceCheck.AddSelectorColumn("colCheck"); + + this.dtpEndTime.Value = DateTime.Now.Date.AddDays(1).AddMilliseconds(-1); + this.dtpStartTime.Value = DateTime.Now.Date.AddDays(-7); + + setJitConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig("set_jit_config"); + if (setJitConfig == null) + setJitConfig = new SetJitConfig(); + this.txtNotes.Text = setJitConfig.SearchNotes; + this.txtShopId.Text = setJitConfig.SearchShopId; + this.txtShopName.Text = setJitConfig.SearchShopName; + this.chkSearchAllShop.Checked = setJitConfig.SearchAllShop; + + this.txtNotes.TextChanged += Txt_TextChanged; + this.txtShopId.TextChanged += Txt_TextChanged; + this.txtShopName.TextChanged += Txt_TextChanged; + this.chkSearchAllShop.CheckedChanged += Txt_TextChanged; + } + + private void Txt_TextChanged(object sender, EventArgs e) + { + setJitConfig.SearchNotes = this.txtNotes.Text.Trim(); + setJitConfig.SearchShopId = this.txtShopId.Text.Trim(); + setJitConfig.SearchShopName = this.txtShopName.Text.Trim(); + setJitConfig.SearchAllShop = this.chkSearchAllShop.Checked; + + NaiBa.Util.Helper.ConfigHelper.SaveConfig("set_jit_config", setJitConfig); + } + + private void TemuJitForm_VisibleChanged(object sender, EventArgs e) + { + if (this.Visible) + { + this.pbShopLoading.Visible = true; + SearchShop(this.ucSplitPage1.CurrentPage); + } + } + + private void btnRefreshShop_Click(object sender, EventArgs e) + { + + if (this.ucSplitPage1.CurrentPage != 1) + this.ucSplitPage1.CurrentPage = 1; + else + SearchShop(1); + } + private void ucSplitPage1_PageChange(object obj) + { + SearchShop(this.ucSplitPage1.CurrentPage); + } + + private void btnEmpty_Click(object sender, EventArgs e) + { + txtNotes.Text = txtShopId.Text = txtShopName.Text = ""; + } + + public void SearchShop(int page) + { + List userShopIdList = dgvShop.Rows.Cast() + .Where(r => r.Cells["colSelect"].Value.ParseToBool()) + .Select(r => r.Cells["colShopId"].Value.ParseToString() + r.Cells["colUser"].Value.ParseToString()).ToList(); + if (InvokeRequired) + { + Invoke(new Action(() => + { + this.pbShopLoading.Visible = true; + this.dgvShop.Rows.Clear(); + lstAdminShopInfo.Clear(); + })); + } + else + { + this.pbShopLoading.Visible = true; + this.dgvShop.Rows.Clear(); + lstAdminShopInfo.Clear(); + } + Task.Run(() => + { + int pageCount; + var list = AdminGetServerShopLst(out pageCount, page); + lstAdminShopInfo.AddRange(list); + this.ucSplitPage1.TotalPage = pageCount; + + foreach (var shop in lstAdminShopInfo) + { + bool canUse = shop.LoginStatus2 == "国际版在线"; + Invoke(new Action(() => + { + int rowIndex = this.dgvShop.Rows.Add( + userShopIdList.Contains(shop.ShopId + shop.UserName), + shop.UserName, + shop.LoginName, + shop.ShopId, + shop.ShopAccount, + shop.Notes, + canUse ? "在线" : "掉线", + canUse, + string.Empty + ); + displayShopStatus(shop); + })); + } + + Invoke(new Action(() => + { + this.pbShopLoading.Visible = false; + })); + }); + } + + public List AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50) + { + List list = new List(); + pageCount = 1; + + var url = BaseClass.BuildObjString("shop/admin_get_shop_list"); + if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked) + url = BaseClass.BuildObjString("shop/sub_sa_get_select_prod_shop"); + var data = UserLogin.GetSignaturex() + + "&page=" + page + + "&page_size=" + pageSize + + "&shop_ids=" + txtShopId.Text.Trim().Trim(',') + + "&shop_names=" + txtShopName.Text.Trim().Trim(',') + + "&search_notes=" + txtNotes.Text.Trim().Trim(','); + if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked) + data += "&operate_sub_sa_name=" + BaseClass.UserName; + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) + || !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass")) + { + return list; + } + + int count = BaseRegex.GetIntJson(ref html, "count"); + pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt(); + pageCount = Math.Max(pageCount, 1); + + return ShopBLL.DeserializationShop(html); + } + + void displayShopStatus(ShopLoginInfo shop) + { + bool canUse = shop.LoginStatus2 == "国际版在线"; + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName); + foreach (var row in rows) + { + row.Cells["colCanUse"].Value = canUse; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed; + } + } + + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText; + string loginName = dgvShop.Rows[e.RowIndex].Cells["colLoginName"].Value.ParseToString(); + string accountId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString(); + var shop = lstAdminShopInfo.FirstOrDefault(v => v.LoginName == loginName && v.ShopId == accountId); + + switch (headerText) + { + case "登录": + case "状态": + { + AdminShopLoginForm shopLoginForm = new AdminShopLoginForm(shop); + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.SaveComplete += shopLoginForm_SaveComplete; + shopLoginForm.ShowDialog(); + } + break; + default: + dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value; + break; + } + } + private void shopLoginForm_SaveComplete(object obj) + { + var shop = obj as ShopLoginInfo; + if (shop == null) + return; + + displayShopStatus(shop); + } + + private void btnSearchPrice2_Click(object sender, EventArgs e) + { + SearchPrice("待创建首单"); + } + + private void SearchPrice(string type = "待创建首单") + { + var selectShopIdLst = this.dgvShop.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true) + .Select(r => r.Cells["colShopId"].Value.ParseToString()).Distinct().ToList(); + var shops = this.lstAdminShopInfo.Where(s => selectShopIdLst.Contains(s.ShopId)).ToList(); + if (shops.Count == 0) + { + BaseMsgForm.ShowError("没有选择店铺!"); + return; + } + if (chkSearchTime.Checked) + { + if (dtpStartTime.Value.Date.AddMonths(3) < dtpEndTime.Value.Date.AddDays(1).AddMilliseconds(-1)) + { + BaseMsgForm.ShowError("一次最多只支持查询三个月!"); + return; + } + } + + this.dgvPriceCheck.Rows.Clear(); + this.lstCheckPriceInfo.Clear(); + this.pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + int shopIndex = 0; + int totalProdIndex = 0; + foreach (var shopId in selectShopIdLst) + { + shopIndex++; + var shop = this.lstAdminShopInfo.Where(s => shopId == s.ShopId).ToList().FirstOrDefault(); + if (shop == null) + continue; + + AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus2 != "国际版在线") + { + Invoke(new Action(() => + { + displayShopStatus(shop); + })); + } + int page = 0; + int totalPage = 1; + int prodIndex = 0; + while (page < totalPage) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + page++; + long startTime = 0, endTime = 0; + if (chkSearchTime.Checked) + { + startTime = BaseClass.DateTimeToTimestampMilliseconds(dtpStartTime.Value.Date); + endTime = BaseClass.DateTimeToTimestampMilliseconds(dtpEndTime.Value.Date.AddDays(1).AddMilliseconds(-1)); + } + string searchSkcIds = txtSkcId.Text.Trim().Trim(','); + string searchExtCodes = txtExtCode.Text.Trim().Trim(','); + var searchRst = this.SearchForChainSupplier(shop, page, 100, searchSkcIds, searchExtCodes, type, startTime, endTime); + if (searchRst.Contains("登录过期") || searchRst.Contains("Invalid Login State")) + { + AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + Invoke(new Action(() => + { + displayShopStatus(shop); + })); + } + if (searchRst.Contains("\"success\":true")) + { + try + { + int total = BaseRegex.GetStringJson(ref searchRst, "total").ParseToInt(); + totalPage = Math.Ceiling(total / 100.0).ParseToInt(); + + var jObj = JObject.Parse(searchRst); + var jArr = jObj["result"]["dataList"] as JArray; + if (jArr == null) + jArr = new JArray(); + + List extCodeLst = new List(); + List checkPriceInfoTmpLst = new List(); + foreach (var item in jArr) + { + var jStr = JsonHelper.SerializeObject(item); + TemuCheckPriceInfo priceInfo = JsonHelper.DeserializeJsonToObject(jStr); + lstCheckPriceInfo.Add(priceInfo); + checkPriceInfoTmpLst.Add(priceInfo); + extCodeLst.Add(priceInfo.skcList.FirstOrDefault()?.extCode); + } + foreach (var priceInfo in checkPriceInfoTmpLst) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + prodIndex++; + totalProdIndex++; + Invoke(new Action(() => { + this.statusBar.lblTaskStatus.Text = "正在查询" + type + ",店铺:" + shop.ShopAccount + " " + prodIndex + "/" + total + " 件商品"; + this.statusBar.pgbTaskProgress.Maximum = selectShopIdLst.Count; + this.statusBar.UpdateProgressBar(shopIndex); + })); + + string imgUrl = priceInfo.skcList.FirstOrDefault()?.previewImgUrlList.FirstOrDefault(); + if (imgUrl == null) + imgUrl = ""; + imgUrl = imgUrl.Replace("https://", "http://").Replace("img.kwcdn.com", "img.cdnfe.com") + "?imageMogr2/thumbnail/60x"; + //string getImgError = ""; + //var img = GetHtml.GetUrlImg(imgUrl + "?imageMogr2/thumbnail/60x", out getImgError); + + foreach (var reviewInfo in priceInfo.skcList.FirstOrDefault().supplierPriceReviewInfoList) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + if (reviewInfo.status == 3) //放弃调整报价,报价显示已作废 + continue; + + string skuName = ""; + var prodSkuList = reviewInfo.productSkuList; + if (prodSkuList != null) + { + foreach (var sku in prodSkuList) + { + foreach (var prop in sku.productPropertyList) + { + skuName += prop.value + ","; + } + skuName = skuName.TrimEnd(',') + ";"; + skuName += "\r\n"; + } + } + var suggestSupplyPrice = "-"; + //if (type == "待卖家确认") + //{ + // var orderPriceRst = "店铺掉线"; + // if (shop.LoginStatus2 == "国际版在线") + // orderPriceRst = GetCheckPrice(shop, reviewInfo.priceOrderId.ParseToString()); + // if (orderPriceRst.Contains("登录过期") || orderPriceRst.Contains("Invalid Login State")) + // { + // AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + // } + // reviewInfo.suggestSupplyPrice = BaseRegex.GetIntJson(ref orderPriceRst, "suggestSupplyPrice"); + // reviewInfo.supplyPrice = BaseRegex.GetIntJson(ref orderPriceRst, "supplyPrice"); + // suggestSupplyPrice = (reviewInfo.suggestSupplyPrice / 100.0).ToString(); + // if (suggestSupplyPrice == "0") + // suggestSupplyPrice = "获取推荐价格失败,请重试" + orderPriceRst; + // else + // suggestSupplyPrice += "¥"; + //} + var reviewExtCode = priceInfo.skcList.FirstOrDefault()?.extCode; + Thread.Sleep(Randomx.GetId(20, 50)); + + Invoke(new Action(() => + { + int rowId = this.dgvPriceCheck.Rows.Add( + false, + totalProdIndex, + reviewInfo.priceOrderId, + priceInfo.supplierId, + priceInfo.supplierName, + imgUrl, + DataGridViewExtension.defaultBitmap, + priceInfo.productId, + priceInfo.skcList.FirstOrDefault()?.skcId, + priceInfo.productName, + skuName, + reviewExtCode, + "-", //货号价格,jit不需要 + // sku不同价的会被分成多个review,priceInfo此时为价格范围 + reviewInfo.productSkuList.FirstOrDefault()?.supplierPrice, //priceInfo.supplierPrice + BaseClass.StampToDateTime((priceInfo.skcList.FirstOrDefault()?.statusTime.createdTime.ParseToLong() / 1000).ParseToInt()).ToString("yy/MM/dd HH:mm:ss"), + + "" + ); + dgvPriceCheck.Rows[rowId].Height = 60; + })); + } + } + } + catch (Exception ex) + { + BaseMsgForm.ShowError("查询商品失败 " + ex.Message); + break; + } + } + } + + } + Invoke(new Action(() => { + this.pbLoading.Visible = false; + string sRst = type + " 查询结束!"; + if (cancellationTokenSource.IsCancellationRequested) + sRst = type + " 已取消查询!"; + BaseMsgForm.ShowInfo(sRst); + this.statusBar.lblTaskStatus.Text = sRst; + })); + }, cancellationTokenSource.Token); + } + + + private string SearchForChainSupplier(ShopLoginInfo shop, int page, int pageSize = 100, string prodSkcIds = null, string skcExtCode = null, + string type = "待创建首单", long startTime = 0, long endTime = 0) + { + string url = "https://agentseller.temu.com/api/kiana/mms/robin/searchForChainSupplier"; + string body = ""; + body = "{\"pageSize\":" + pageSize + ",\"pageNum\":" + page + ","; + if (!string.IsNullOrEmpty(skcExtCode)) + body += "\"skcExtCodeKeyword\":\"" + skcExtCode + "\","; + if (startTime != 0 && endTime != 0) // 查询创建时间 + body += "\"timeType\":1,\"timeBegin\":" + startTime + ",\"timeEnd\":" + endTime + ","; + if (type == "待卖家确认") + body += "\"priceReviewStatusList\":[1],\"secondarySelectStatusList\":[7],"; + else if (type == "待创建首单") + body += "\"secondarySelectStatusList\":[10],"; + body += "\"supplierTodoTypeList\":[],"; + if (!string.IsNullOrEmpty(prodSkcIds)) + body += "\"productSkcIdList\":[" + prodSkcIds + "],"; + body = body.TrimEnd(','); + body += "}"; + string referer = "https://agentseller.temu.com/newon/product-select"; + return HttpResponseBLL.PostResponse2(shop, url, body, referer); + } + } + + public class SetJitConfig + { + public string SearchShopId { get; set; } = ""; + public string SearchShopName { get; set; } = ""; + public string SearchNotes { get; set; } = ""; + public bool SearchAllShop { get; set; } = true; + } +} diff --git a/TEMUKJD/KJDForms/ProductForms/TemuJitForm.resx b/TEMUKJD/KJDForms/ProductForms/TemuJitForm.resx new file mode 100644 index 0000000..bbce3c5 --- /dev/null +++ b/TEMUKJD/KJDForms/ProductForms/TemuJitForm.resx @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs index 2275305..da52856 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.Designer.cs @@ -30,6 +30,8 @@ { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductEditNotesForm)); this.panel2 = new System.Windows.Forms.Panel(); + this.btnAuto = new DevComponents.DotNetBar.PanelEx(); + this.pnlRestore = new DevComponents.DotNetBar.PanelEx(); this.btnSkuAi = new TemuKJD.UserControls.ButtonEx(); this.label7 = new System.Windows.Forms.Label(); this.txtFissionWords = new DevComponents.DotNetBar.Controls.TextBoxX(); @@ -56,6 +58,8 @@ // panel2 // this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.btnAuto); + this.panel2.Controls.Add(this.pnlRestore); this.panel2.Controls.Add(this.btnSkuAi); this.panel2.Controls.Add(this.label7); this.panel2.Controls.Add(this.txtFissionWords); @@ -81,6 +85,55 @@ this.panel2.Size = new System.Drawing.Size(464, 686); this.panel2.TabIndex = 1; // + // btnAuto + // + this.btnAuto.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnAuto.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAuto.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAuto.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAuto.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAuto.Location = new System.Drawing.Point(348, 353); + this.btnAuto.Name = "btnAuto"; + this.btnAuto.Size = new System.Drawing.Size(35, 23); + this.btnAuto.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAuto.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAuto.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAuto.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAuto.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAuto.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAuto.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAuto.Style.GradientAngle = 90; + this.btnAuto.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAuto.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAuto.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAuto.TabIndex = 439; + this.btnAuto.Text = "自动"; + this.btnAuto.Click += new System.EventHandler(this.btnAuto_Click); + // + // pnlRestore + // + this.pnlRestore.CanvasColor = System.Drawing.SystemColors.Control; + this.pnlRestore.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.pnlRestore.DisabledBackColor = System.Drawing.Color.Empty; + this.pnlRestore.Location = new System.Drawing.Point(388, 353); + this.pnlRestore.Name = "pnlRestore"; + this.pnlRestore.Size = new System.Drawing.Size(39, 23); + this.pnlRestore.Style.Alignment = System.Drawing.StringAlignment.Center; + this.pnlRestore.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.pnlRestore.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.pnlRestore.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.pnlRestore.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.pnlRestore.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.pnlRestore.Style.GradientAngle = 90; + this.pnlRestore.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.pnlRestore.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.pnlRestore.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.pnlRestore.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.pnlRestore.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.pnlRestore.TabIndex = 435; + this.pnlRestore.Text = "还原"; + this.pnlRestore.Click += new System.EventHandler(this.pnlRestore_Click); + // // btnSkuAi // this.btnSkuAi.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -135,25 +188,25 @@ // this.txtEndWords.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtEndWords.Location = new System.Drawing.Point(291, 353); + this.txtEndWords.Location = new System.Drawing.Point(232, 353); this.txtEndWords.Name = "txtEndWords"; - this.txtEndWords.Size = new System.Drawing.Size(136, 23); + this.txtEndWords.Size = new System.Drawing.Size(111, 23); this.txtEndWords.TabIndex = 401; // // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(233, 356); + this.label6.Location = new System.Drawing.Point(201, 356); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(56, 17); + this.label6.Size = new System.Drawing.Size(32, 17); this.label6.TabIndex = 400; - this.label6.Text = "标题后缀"; + this.label6.Text = "后缀"; // // txtHeadWords // this.txtHeadWords.Location = new System.Drawing.Point(90, 353); this.txtHeadWords.Name = "txtHeadWords"; - this.txtHeadWords.Size = new System.Drawing.Size(136, 23); + this.txtHeadWords.Size = new System.Drawing.Size(111, 23); this.txtHeadWords.TabIndex = 399; // // label5 @@ -338,5 +391,7 @@ private System.Windows.Forms.TextBox txtHeadWords; private System.Windows.Forms.Label label5; private UserControls.ButtonEx btnSkuAi; + private DevComponents.DotNetBar.PanelEx pnlRestore; + private DevComponents.DotNetBar.PanelEx btnAuto; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs index b30d6a1..d796437 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductEditNotesForm.cs @@ -38,8 +38,10 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.txtNotes.Text = dbProd.notes; this.txtExtCode.Text = dbProd.ext_code; this.txtFissionWords.Text = dbProd.fission_words; - this.txtHeadWords.Text = string.IsNullOrWhiteSpace(dbProd.head_words) ? "5-99个" : dbProd.head_words; - this.txtEndWords.Text = string.IsNullOrWhiteSpace(dbProd.end_words) ? "适合不同的搭配风格" : dbProd.end_words; + //this.txtHeadWords.Text = string.IsNullOrWhiteSpace(dbProd.head_words) ? "5-99个" : dbProd.head_words; + //this.txtEndWords.Text = string.IsNullOrWhiteSpace(dbProd.end_words) ? "适合不同的搭配风格" : dbProd.end_words; + this.txtHeadWords.Text = dbProd.head_words; + this.txtEndWords.Text = dbProd.end_words; } } @@ -80,5 +82,17 @@ namespace TemuKJD.KJDForms.ProductSelectForms DouBaoImgCefForm doubaoForm = new DouBaoImgCefForm(dbProd); doubaoForm.ShowDialog(); } + + private void btnAuto_Click(object sender, EventArgs e) + { + this.txtHeadWords.Text = "5-99个"; + this.txtEndWords.Text = "适合不同的搭配风格"; + } + + private void pnlRestore_Click(object sender, EventArgs e) + { + this.txtHeadWords.Text = dbProd.head_words; + this.txtEndWords.Text = dbProd.end_words; + } } } diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs index d022a93..bd8058f 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.Designer.cs @@ -36,8 +36,11 @@ namespace TemuKJD.KJDForms.ProductSelectForms System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductListForm)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.btnImportHtml = new DevComponents.DotNetBar.PanelEx(); this.cmbSort = new System.Windows.Forms.ComboBox(); this.btnSelect = new TemuKJD.UserControls.ButtonEx(); this.txtNotes = new System.Windows.Forms.TextBox(); @@ -57,6 +60,23 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.label6 = new System.Windows.Forms.Label(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.pbLoading = new System.Windows.Forms.PictureBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.lblProdName = new System.Windows.Forms.Label(); + this.numCount = new System.Windows.Forms.NumericUpDown(); + this.dgvSelectShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSubUserName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btnCancel = new DevComponents.DotNetBar.PanelEx(); + this.btnAddToSelectDb = new DevComponents.DotNetBar.PanelEx(); + this.btnGetShop = new DevComponents.DotNetBar.PanelEx(); + this.txtShopName = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.txtShopId = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); @@ -71,11 +91,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.col_ext_code = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colAddTimes = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSelectTotalCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProdGetType = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.col_notes = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colHeadWords = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colEndWords = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colFissionWords = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProd = new System.Windows.Forms.DataGridViewLinkColumn(); this.col_edit = new System.Windows.Forms.DataGridViewLinkColumn(); this.col_delete = new System.Windows.Forms.DataGridViewLinkColumn(); this.col_select_product = new System.Windows.Forms.DataGridViewLinkColumn(); @@ -88,6 +110,9 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.splitContainer2.Panel2.SuspendLayout(); this.splitContainer2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectShop)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).BeginInit(); this.SuspendLayout(); // @@ -102,6 +127,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.btnImportHtml); this.splitContainer1.Panel1.Controls.Add(this.cmbSort); this.splitContainer1.Panel1.Controls.Add(this.btnSelect); this.splitContainer1.Panel1.Controls.Add(this.txtNotes); @@ -127,13 +153,37 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.splitContainer1.SplitterDistance = 53; this.splitContainer1.TabIndex = 1; // + // btnImportHtml + // + this.btnImportHtml.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnImportHtml.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnImportHtml.DisabledBackColor = System.Drawing.Color.Empty; + this.btnImportHtml.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnImportHtml.Location = new System.Drawing.Point(1046, 14); + this.btnImportHtml.Name = "btnImportHtml"; + this.btnImportHtml.Size = new System.Drawing.Size(91, 26); + this.btnImportHtml.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnImportHtml.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnImportHtml.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnImportHtml.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnImportHtml.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnImportHtml.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnImportHtml.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnImportHtml.Style.GradientAngle = 90; + this.btnImportHtml.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnImportHtml.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnImportHtml.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnImportHtml.TabIndex = 491; + this.btnImportHtml.Text = "导入html商品"; + this.btnImportHtml.Click += new System.EventHandler(this.btnImportHtml_Click); + // // cmbSort // this.cmbSort.FormattingEnabled = true; this.cmbSort.Items.AddRange(new object[] { "入库时间", "认领总数"}); - this.cmbSort.Location = new System.Drawing.Point(1001, 15); + this.cmbSort.Location = new System.Drawing.Point(929, 15); this.cmbSort.Name = "cmbSort"; this.cmbSort.Size = new System.Drawing.Size(79, 25); this.cmbSort.TabIndex = 448; @@ -159,15 +209,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // txtNotes // - this.txtNotes.Location = new System.Drawing.Point(683, 16); + this.txtNotes.Location = new System.Drawing.Point(653, 16); this.txtNotes.Name = "txtNotes"; - this.txtNotes.Size = new System.Drawing.Size(90, 23); + this.txtNotes.Size = new System.Drawing.Size(85, 23); this.txtNotes.TabIndex = 439; // // lblNotes // this.lblNotes.AutoSize = true; - this.lblNotes.Location = new System.Drawing.Point(649, 19); + this.lblNotes.Location = new System.Drawing.Point(619, 19); this.lblNotes.Name = "lblNotes"; this.lblNotes.Size = new System.Drawing.Size(44, 17); this.lblNotes.TabIndex = 440; @@ -177,7 +227,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms // this.txtSPU.Location = new System.Drawing.Point(44, 16); this.txtSPU.Name = "txtSPU"; - this.txtSPU.Size = new System.Drawing.Size(90, 23); + this.txtSPU.Size = new System.Drawing.Size(85, 23); this.txtSPU.TabIndex = 434; // // label5 @@ -191,15 +241,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // txtSKC // - this.txtSKC.Location = new System.Drawing.Point(171, 16); + this.txtSKC.Location = new System.Drawing.Point(165, 16); this.txtSKC.Name = "txtSKC"; - this.txtSKC.Size = new System.Drawing.Size(90, 23); + this.txtSKC.Size = new System.Drawing.Size(85, 23); this.txtSKC.TabIndex = 432; // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(138, 19); + this.label1.Location = new System.Drawing.Point(132, 19); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(43, 17); this.label1.TabIndex = 433; @@ -210,7 +260,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control; this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty; - this.pnlEmpty.Location = new System.Drawing.Point(843, 14); + this.pnlEmpty.Location = new System.Drawing.Point(805, 14); this.pnlEmpty.Name = "pnlEmpty"; this.pnlEmpty.Size = new System.Drawing.Size(56, 26); this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -236,7 +286,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.btnSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnSearch.ForeColor = System.Drawing.Color.White; - this.btnSearch.Location = new System.Drawing.Point(782, 14); + this.btnSearch.Location = new System.Drawing.Point(744, 14); this.btnSearch.Margin = new System.Windows.Forms.Padding(2); this.btnSearch.Name = "btnSearch"; this.btnSearch.Size = new System.Drawing.Size(56, 26); @@ -247,15 +297,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // txtExtCode // - this.txtExtCode.Location = new System.Drawing.Point(555, 16); + this.txtExtCode.Location = new System.Drawing.Point(531, 16); this.txtExtCode.Name = "txtExtCode"; - this.txtExtCode.Size = new System.Drawing.Size(90, 23); + this.txtExtCode.Size = new System.Drawing.Size(85, 23); this.txtExtCode.TabIndex = 429; // // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(521, 19); + this.label4.Location = new System.Drawing.Point(497, 19); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(44, 17); this.label4.TabIndex = 430; @@ -263,15 +313,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // txtProdName // - this.txtProdName.Location = new System.Drawing.Point(427, 16); + this.txtProdName.Location = new System.Drawing.Point(409, 16); this.txtProdName.Name = "txtProdName"; - this.txtProdName.Size = new System.Drawing.Size(90, 23); + this.txtProdName.Size = new System.Drawing.Size(85, 23); this.txtProdName.TabIndex = 427; // // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(393, 19); + this.label3.Location = new System.Drawing.Point(375, 19); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(44, 17); this.label3.TabIndex = 428; @@ -279,15 +329,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // txtCat // - this.txtCat.Location = new System.Drawing.Point(299, 16); + this.txtCat.Location = new System.Drawing.Point(287, 16); this.txtCat.Name = "txtCat"; - this.txtCat.Size = new System.Drawing.Size(90, 23); + this.txtCat.Size = new System.Drawing.Size(85, 23); this.txtCat.TabIndex = 425; // // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(265, 19); + this.label2.Location = new System.Drawing.Point(253, 19); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(44, 17); this.label2.TabIndex = 426; @@ -296,7 +346,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(944, 19); + this.label6.Location = new System.Drawing.Point(872, 19); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(68, 17); this.label6.TabIndex = 449; @@ -313,6 +363,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms // splitContainer2.Panel1 // this.splitContainer2.Panel1.Controls.Add(this.pbLoading); + this.splitContainer2.Panel1.Controls.Add(this.panel2); this.splitContainer2.Panel1.Controls.Add(this.dgvDbProduct); this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0); // @@ -335,15 +386,59 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.pbLoading.TabIndex = 7; this.pbLoading.TabStop = false; // - // dgvDbProduct + // panel2 // - this.dgvDbProduct.AllowUserToAddRows = false; - this.dgvDbProduct.AllowUserToDeleteRows = false; + this.panel2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel2.Controls.Add(this.lblProdName); + this.panel2.Controls.Add(this.numCount); + this.panel2.Controls.Add(this.dgvSelectShop); + this.panel2.Controls.Add(this.btnCancel); + this.panel2.Controls.Add(this.btnAddToSelectDb); + this.panel2.Controls.Add(this.btnGetShop); + this.panel2.Controls.Add(this.txtShopName); + this.panel2.Controls.Add(this.label7); + this.panel2.Controls.Add(this.txtShopId); + this.panel2.Controls.Add(this.label8); + this.panel2.Location = new System.Drawing.Point(406, 54); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(467, 246); + this.panel2.TabIndex = 8; + this.panel2.Visible = false; + // + // lblProdName + // + this.lblProdName.Location = new System.Drawing.Point(363, 46); + this.lblProdName.Name = "lblProdName"; + this.lblProdName.Size = new System.Drawing.Size(90, 123); + this.lblProdName.TabIndex = 515; + this.lblProdName.Text = "商品名称"; + // + // numCount + // + this.numCount.Location = new System.Drawing.Point(363, 175); + this.numCount.Maximum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + this.numCount.Name = "numCount"; + this.numCount.Size = new System.Drawing.Size(91, 23); + this.numCount.TabIndex = 505; + this.numCount.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // dgvSelectShop + // + this.dgvSelectShop.AllowUserToAddRows = false; + this.dgvSelectShop.AllowUserToDeleteRows = false; dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; - this.dgvDbProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; - this.dgvDbProduct.BackgroundColor = System.Drawing.Color.White; - this.dgvDbProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.dgvSelectShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvSelectShop.BackgroundColor = System.Drawing.Color.White; + this.dgvSelectShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); @@ -351,7 +446,190 @@ namespace TemuKJD.KJDForms.ProductSelectForms dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvDbProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvSelectShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvSelectShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvSelectShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colCheck, + this.colUserName, + this.colSubUserName, + this.colShopId, + this.colShopName, + this.colShopNotes}); + this.dgvSelectShop.Location = new System.Drawing.Point(19, 46); + this.dgvSelectShop.Name = "dgvSelectShop"; + this.dgvSelectShop.ReadOnly = true; + this.dgvSelectShop.RowHeadersWidth = 28; + this.dgvSelectShop.RowTemplate.Height = 23; + this.dgvSelectShop.Size = new System.Drawing.Size(338, 184); + this.dgvSelectShop.TabIndex = 504; + this.dgvSelectShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectShop_CellContentClick); + // + // colCheck + // + this.colCheck.HeaderText = "选择"; + this.colCheck.MinimumWidth = 6; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCheck.Width = 30; + // + // colUserName + // + this.colUserName.HeaderText = "用户名称"; + this.colUserName.MinimumWidth = 6; + this.colUserName.Name = "colUserName"; + this.colUserName.ReadOnly = true; + this.colUserName.Visible = false; + this.colUserName.Width = 125; + // + // colSubUserName + // + this.colSubUserName.HeaderText = "子账户名称"; + this.colSubUserName.Name = "colSubUserName"; + this.colSubUserName.ReadOnly = true; + this.colSubUserName.Visible = false; + this.colSubUserName.Width = 150; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + // + // colShopName + // + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "店铺备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + // + // btnCancel + // + this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control; + this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCancel.Location = new System.Drawing.Point(411, 204); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(42, 26); + this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnCancel.Style.GradientAngle = 90; + this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnCancel.TabIndex = 503; + this.btnCancel.Text = "关闭"; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnAddToSelectDb + // + this.btnAddToSelectDb.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAddToSelectDb.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddToSelectDb.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAddToSelectDb.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddToSelectDb.Location = new System.Drawing.Point(363, 204); + this.btnAddToSelectDb.Name = "btnAddToSelectDb"; + this.btnAddToSelectDb.Size = new System.Drawing.Size(42, 26); + this.btnAddToSelectDb.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddToSelectDb.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddToSelectDb.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddToSelectDb.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAddToSelectDb.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAddToSelectDb.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAddToSelectDb.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAddToSelectDb.Style.GradientAngle = 90; + this.btnAddToSelectDb.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddToSelectDb.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddToSelectDb.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddToSelectDb.TabIndex = 499; + this.btnAddToSelectDb.Text = "直传"; + this.btnAddToSelectDb.Click += new System.EventHandler(this.btnAddToSelectDb_Click); + // + // btnGetShop + // + this.btnGetShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetShop.Location = new System.Drawing.Point(411, 11); + this.btnGetShop.Name = "btnGetShop"; + this.btnGetShop.Size = new System.Drawing.Size(42, 26); + this.btnGetShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetShop.Style.GradientAngle = 90; + this.btnGetShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetShop.TabIndex = 495; + this.btnGetShop.Text = "查找"; + this.btnGetShop.Click += new System.EventHandler(this.btnGetShop_Click); + // + // txtShopName + // + this.txtShopName.Location = new System.Drawing.Point(263, 13); + this.txtShopName.Name = "txtShopName"; + this.txtShopName.Size = new System.Drawing.Size(142, 23); + this.txtShopName.TabIndex = 433; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(206, 16); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(68, 17); + this.label7.TabIndex = 434; + this.label7.Text = "店铺名称:"; + // + // txtShopId + // + this.txtShopId.Location = new System.Drawing.Point(61, 13); + this.txtShopId.Name = "txtShopId"; + this.txtShopId.Size = new System.Drawing.Size(142, 23); + this.txtShopId.TabIndex = 431; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(16, 16); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(56, 17); + this.label8.TabIndex = 432; + this.label8.Text = "店铺Id:"; + // + // dgvDbProduct + // + this.dgvDbProduct.AllowUserToAddRows = false; + this.dgvDbProduct.AllowUserToDeleteRows = false; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvDbProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvDbProduct.BackgroundColor = System.Drawing.Color.White; + this.dgvDbProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvDbProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvDbProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvDbProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colSelect, @@ -365,11 +643,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.col_ext_code, this.colAddTimes, this.colSelectTotalCount, + this.colProdGetType, this.col_notes, this.colHeadWords, this.colEndWords, this.colFissionWords, this.colAddTime, + this.colSelectProd, this.col_edit, this.col_delete, this.col_select_product}); @@ -426,9 +706,9 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // col_product_name // - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.col_product_name.DefaultCellStyle = dataGridViewCellStyle3; - this.col_product_name.FillWeight = 180F; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.col_product_name.DefaultCellStyle = dataGridViewCellStyle5; + this.col_product_name.FillWeight = 160F; this.col_product_name.HeaderText = "标题"; this.col_product_name.Name = "col_product_name"; this.col_product_name.ReadOnly = true; @@ -490,18 +770,25 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.colSelectTotalCount.Name = "colSelectTotalCount"; this.colSelectTotalCount.ReadOnly = true; // + // colProdGetType + // + this.colProdGetType.FillWeight = 60F; + this.colProdGetType.HeaderText = "采集来源"; + this.colProdGetType.Name = "colProdGetType"; + this.colProdGetType.ReadOnly = true; + // // col_notes // - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.col_notes.DefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.col_notes.DefaultCellStyle = dataGridViewCellStyle6; this.col_notes.HeaderText = "备注"; this.col_notes.Name = "col_notes"; this.col_notes.ReadOnly = true; // // colHeadWords // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colHeadWords.DefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colHeadWords.DefaultCellStyle = dataGridViewCellStyle7; this.colHeadWords.HeaderText = "标题前缀"; this.colHeadWords.Name = "colHeadWords"; this.colHeadWords.ReadOnly = true; @@ -509,8 +796,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // colEndWords // - dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colEndWords.DefaultCellStyle = dataGridViewCellStyle6; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colEndWords.DefaultCellStyle = dataGridViewCellStyle8; this.colEndWords.HeaderText = "标题后缀"; this.colEndWords.Name = "colEndWords"; this.colEndWords.ReadOnly = true; @@ -518,8 +805,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // colFissionWords // - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colFissionWords.DefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colFissionWords.DefaultCellStyle = dataGridViewCellStyle9; this.colFissionWords.HeaderText = "裂变词"; this.colFissionWords.Name = "colFissionWords"; this.colFissionWords.ReadOnly = true; @@ -531,6 +818,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.colAddTime.Name = "colAddTime"; this.colAddTime.ReadOnly = true; // + // colSelectProd + // + this.colSelectProd.FillWeight = 60F; + this.colSelectProd.HeaderText = "商品直传"; + this.colSelectProd.Name = "colSelectProd"; + this.colSelectProd.ReadOnly = true; + this.colSelectProd.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProd.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // // col_edit // this.col_edit.FillWeight = 60F; @@ -542,14 +838,14 @@ namespace TemuKJD.KJDForms.ProductSelectForms // // col_delete // - this.col_delete.FillWeight = 40F; + this.col_delete.FillWeight = 38F; this.col_delete.HeaderText = "删除"; this.col_delete.Name = "col_delete"; this.col_delete.ReadOnly = true; // // col_select_product // - this.col_select_product.FillWeight = 40F; + this.col_select_product.FillWeight = 38F; this.col_select_product.HeaderText = "认领"; this.col_select_product.Name = "col_select_product"; this.col_select_product.ReadOnly = true; @@ -579,6 +875,10 @@ namespace TemuKJD.KJDForms.ProductSelectForms ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); this.splitContainer2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectShop)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).EndInit(); this.ResumeLayout(false); @@ -609,6 +909,24 @@ namespace TemuKJD.KJDForms.ProductSelectForms private UserControls.ButtonEx btnSelect; private System.Windows.Forms.ComboBox cmbSort; private System.Windows.Forms.Label label6; + private DevComponents.DotNetBar.PanelEx btnImportHtml; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TextBox txtShopName; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox txtShopId; + private System.Windows.Forms.Label label8; + private DevComponents.DotNetBar.PanelEx btnGetShop; + private DevComponents.DotNetBar.PanelEx btnCancel; + private DevComponents.DotNetBar.PanelEx btnAddToSelectDb; + private UserComponent.DataGridViewEx dgvSelectShop; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colUserName; + private System.Windows.Forms.DataGridViewTextBoxColumn colSubUserName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.NumericUpDown numCount; + private System.Windows.Forms.Label lblProdName; private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; private System.Windows.Forms.DataGridViewTextBoxColumn col_db_id; private System.Windows.Forms.DataGridViewTextBoxColumn col_product_name; @@ -620,11 +938,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms private System.Windows.Forms.DataGridViewTextBoxColumn col_ext_code; private System.Windows.Forms.DataGridViewTextBoxColumn colAddTimes; private System.Windows.Forms.DataGridViewTextBoxColumn colSelectTotalCount; + private System.Windows.Forms.DataGridViewTextBoxColumn colProdGetType; private System.Windows.Forms.DataGridViewTextBoxColumn col_notes; private System.Windows.Forms.DataGridViewTextBoxColumn colHeadWords; private System.Windows.Forms.DataGridViewTextBoxColumn colEndWords; private System.Windows.Forms.DataGridViewTextBoxColumn colFissionWords; private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProd; private System.Windows.Forms.DataGridViewLinkColumn col_edit; private System.Windows.Forms.DataGridViewLinkColumn col_delete; private System.Windows.Forms.DataGridViewLinkColumn col_select_product; diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs index 18a88a7..00bc379 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.cs @@ -1,7 +1,7 @@ using AllBase; using AllBase.Model.Result; +using AllBase.Model.Result.TemuResult; using NaiBa.Util.Extension; -using NaiBa.Util.Winform.Extension; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -13,9 +13,11 @@ using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.BaseForms; +using TemuKJD.Extension; using TemuKJD.KJDForms.ToolForms; using TemuKJD.ToolForms; using Work; @@ -24,8 +26,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms { public partial class DbProductListForm : LRBaseForm { - ShopLoginInfo shop = null; - + ShopLoginInfo shop = null; // 单店认领 + List lstAdminShopInfo = new List(); // 服务端直传店铺列表 List lstTemuDbProduct = new List(); public DbProductListForm() @@ -48,9 +50,12 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.dgvDbProduct.Columns["colHeadWords"].Visible = true; this.dgvDbProduct.Columns["colEndWords"].Visible = true; this.dgvDbProduct.Columns["colFissionWords"].Visible = true; + this.dgvDbProduct.Columns["colSelectProd"].Visible = true; + this.dgvDbProduct.Columns["colProdGetType"].Visible = true; //this.dgvDbProduct.Columns["col_notes"].Visible = true; //this.lblNotes.Visible = true; //this.txtNotes.Visible = true; + this.btnImportHtml.Visible = true; } else { @@ -59,9 +64,12 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.dgvDbProduct.Columns["colHeadWords"].Visible = false; this.dgvDbProduct.Columns["colEndWords"].Visible = false; this.dgvDbProduct.Columns["colFissionWords"].Visible = false; + this.dgvDbProduct.Columns["colSelectProd"].Visible = false; + this.dgvDbProduct.Columns["colProdGetType"].Visible = false; //this.dgvDbProduct.Columns["col_notes"].Visible = false; //this.lblNotes.Visible = false; //this.txtNotes.Visible = false; + this.btnImportHtml.Visible = false; } btnSelect.Visible = false; @@ -76,6 +84,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.ucSplitPage1.PageChange += UcSplitPage1_PageChange; this.dgvDbProduct.AddSelectorColumn("colSelect"); + this.dgvDbProduct.AddImgColumn("colMainImg", "colImgUrl"); } private void btnSearch_Click(object sender, EventArgs e) @@ -110,14 +119,14 @@ namespace TemuKJD.KJDForms.ProductSelectForms lstTemuDbProduct.AddRange(list); this.ucSplitPage1.TotalPage = pageCount; - if (defaultBitmap == null) - defaultBitmap = new Bitmap(80, 80); - // 获取Bitmap的Graphics对象 - using (Graphics g = Graphics.FromImage(defaultBitmap)) - { - // 清除整个Bitmap为蓝色 - g.Clear(Color.White); - } + //if (defaultBitmap == null) + // defaultBitmap = new Bitmap(80, 80); + //// 获取Bitmap的Graphics对象 + //using (Graphics g = Graphics.FromImage(defaultBitmap)) + //{ + // // 清除整个Bitmap为白色 + // g.Clear(Color.White); + //} foreach (var prod in lstTemuDbProduct) { Invoke(new Action(() => @@ -126,19 +135,21 @@ namespace TemuKJD.KJDForms.ProductSelectForms false, prod.id, prod.product_name, - prod?.main_img?.Replace("https", "http"), - defaultBitmap, // prod.main_img, + prod?.main_img?.Replace("https://", "http://").Replace("img.kwcdn.com", "img.cdnfe.com"), + DataGridViewExtension.defaultBitmap, // prod.main_img, prod.spu_id, prod.skc_id, prod.cat_name, prod.ext_code, prod.select_count, prod.select_total_count, + prod.product_get_type == 0 ? "母店采集" : "前端直采", prod.notes, prod.head_words, prod.end_words, prod.fission_words, prod.add_time, + "商品直传", "编辑", "删除", "认领"); @@ -149,68 +160,17 @@ namespace TemuKJD.KJDForms.ProductSelectForms Invoke(new Action(() => { - ShowDgvImg(); this.pbLoading.Visible = false; })); }); } - Bitmap defaultBitmap = null; - void ShowDgvImg() - { - Task.Run(() => - { - foreach (DataGridViewRow row in this.dgvDbProduct.Rows) - { - if (row.Index > 0 && row.Cells["colMainImg"].Displayed == false) - { - try - { - Invoke(new Action(() => - { - row.Cells["colMainImg"].Value = defaultBitmap; - })); - } - catch - { - } - continue; - } - - if (row.Cells["colMainImg"].Value != null && row.Cells["colMainImg"].Value != defaultBitmap) - continue; - - Image image = null; - string imgUrl = row.Cells["colImgUrl"]?.Value.ParseToString(); - string getImgError = ""; - if (!string.IsNullOrWhiteSpace(imgUrl)) - image = GetHtml.GetUrlImg(imgUrl, out getImgError); - if (!string.IsNullOrEmpty(getImgError)) - //BaseMsgForm.ShowError("图片加载失败 " + getImgError); - image = TemuKJD.Properties.Resources.errpic; - - try - { - Invoke(new Action(() => - { - row.Cells["colMainImg"].Value = image; - })); - } - catch - { - } - } - }); - } - public List GetProductList(out int pageCount, int page = 1, int pageSize = 200) { List list = new List(); pageCount = 1; var url = BaseClass.BuildObjString("product/get_product_list"); - if(shop!=null && shop.DbId.ParseToInt()!=0 ) - url = BaseClass.BuildObjString("product/get_product_list"); var data = ""; Invoke(new Action(() => @@ -229,6 +189,11 @@ namespace TemuKJD.KJDForms.ProductSelectForms data += "&get_select_count=true"; data += "&select_shop_id=" + shop.ShopId; } + else if (BaseClass.SaLevel == 1) // 店铺非空管理状态允许查看后台采集和前端采集的所有商品 + { + data += "&product_get_type=all"; + } + if (this.cmbSort.Text == "认领总数") { data += "&sort_field=select_total_count"; @@ -323,7 +288,12 @@ namespace TemuKJD.KJDForms.ProductSelectForms imgFrom.ShowDialog(); break; case "认领": - Task.Run(() => { SelectProduct(new KJDDBProduct[] { dbProduct }); }); + Task.Run(() => { SelectProduct(shop, new KJDDBProduct[] { dbProduct }); }); + break; + case "商品直传": + panel2.Visible = true; + panel2.Tag = dbProduct; + lblProdName.Text = dbProduct.product_name; break; case "": dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value; @@ -333,9 +303,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms } } - private void SelectProduct(KJDDBProduct[] prods) + /// + /// 商品认领或者直传 + /// + /// + /// 商品上传(直传)次数 + /// 数据直传 + private void SelectProduct(ShopLoginInfo selectShop, KJDDBProduct[] prods, int prodSelectCount = 1, bool isDbToDb = false) { - if (shop == null) + if (selectShop == null) { BaseMsgForm.ShowError("店铺不能为空!"); return; @@ -350,7 +326,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms { this.pbLoading.Visible = true; this.statusBar.lblTaskStatus.Text = "正在认领..."; - this.statusBar.pgbTaskProgress.Maximum = prods.Length; + this.statusBar.pgbTaskProgress.Maximum = prods.Length * prodSelectCount; this.statusBar.UpdateProgressBar(0); })); @@ -358,19 +334,22 @@ namespace TemuKJD.KJDForms.ProductSelectForms foreach (var prod in prods) { - Invoke(new Action(() => - { - this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); - })); - if (prod == null) { + Invoke(new Action(() => + { + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + prodSelectCount); + })); errorMsg += "prod null; "; continue; } - if (shop.AddProductRemaining <=0) + if (selectShop.AddProductRemaining <= 0 && !isDbToDb) // 管理员发起的数据直传不消耗次数 { + Invoke(new Action(() => + { + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + prodSelectCount); + })); if (!errorMsg.Contains("本月商品认领限额已用完")) errorMsg += " 本月商品认领限额已用完,请下个月再操作!"; continue; @@ -378,41 +357,52 @@ namespace TemuKJD.KJDForms.ProductSelectForms try { - var fissionProductName = GetFissionProductName(prod); - - var url = BaseClass.BuildObjString("product/add_user_select_product"); - var data = UserLogin.GetSignaturex() + - "&out_product_id=" + prod.id + - "&shop_id=" + shop.ShopId + - "&shop_account=" + shop.ShopAccount + - "&main_user_name=" + shop.UserName + - "&sub_user_name=" + shop.SubUserName + - "&add_product_remaining=" + shop.AddProductRemaining + - "&add_fission_product_name=" + GetHtml.UrlEncodeUtf8(fissionProductName) + - "&status=待上传"; - var html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + for (int i = 0; i < prodSelectCount; i++) { - errorMsg += prod.spu_id + " " + BaseRegex.GetStringJson(ref html, "msg") + "; "; - } - else - { - prod.select_count++; - prod.select_total_count++; Invoke(new Action(() => { - var row = this.dgvDbProduct.Rows.Cast().FirstOrDefault(r => r.Cells["col_db_id"].Value.ParseToInt() == prod.id); - if (row != null) - { - row.Cells["colAddTimes"].Value = prod.select_count; - row.Cells["colSelectTotalCount"].Value = prod.select_total_count; - } + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); })); - shop.AddProductRemaining = shop.AddProductRemaining - 1; + + var fissionProductName = GetFissionProductName(prod); + + var url = BaseClass.BuildObjString("product/add_user_select_product"); + var data = UserLogin.GetSignaturex() + + "&out_product_id=" + prod.id + + "&shop_id=" + selectShop.ShopId + + "&shop_account=" + selectShop.ShopAccount + + "&main_user_name=" + selectShop.UserName + + "&sub_user_name=" + selectShop.SubUserName; + if (!isDbToDb) // 管理员发起的数据直传不消耗次数,不计算认领次数 + data += "&add_product_remaining=" + selectShop.AddProductRemaining; + data += "&add_fission_product_name=" + GetHtml.UrlEncodeUtf8(fissionProductName) + + "&status=待上传"; + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + errorMsg += prod.spu_id + " " + BaseRegex.GetStringJson(ref html, "msg") + "; "; + } + else + { + prod.select_count++; + prod.select_total_count++; + Invoke(new Action(() => + { + var row = this.dgvDbProduct.Rows.Cast().FirstOrDefault(r => r.Cells["col_db_id"].Value.ParseToInt() == prod.id); + if (row != null) + { + row.Cells["colAddTimes"].Value = prod.select_count; + row.Cells["colSelectTotalCount"].Value = prod.select_total_count; + } + })); + if (!isDbToDb) // 管理员发起的数据直传不消耗次数,不计算认领次数 + selectShop.AddProductRemaining = selectShop.AddProductRemaining - 1; + } + Thread.Sleep(50); } } catch (Exception ex) { @@ -520,7 +510,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms { this.btnSelect.Enabled = false; Task.Run(() => { - SelectProduct(prodList); + SelectProduct(shop, prodList); Invoke(new Action(() => { this.btnSelect.Enabled = true; @@ -535,7 +525,574 @@ namespace TemuKJD.KJDForms.ProductSelectForms private void dgvDbProduct_Scroll(object sender, ScrollEventArgs e) { - ShowDgvImg(); + } + + private void btnImportHtml_Click(object sender, EventArgs e) + { + var result = ImportHtmlProd(); + if (result) + SearchDbProd(this.ucSplitPage1.CurrentPage); + } + + bool ImportHtmlProd() + { + bool rst = true; + bool IsOperate = true; + this.btnImportHtml.Enabled = false; + //string text = "请导入保存为html的temu商品文件"; + //BaseMsgForm.ShowInfo(text, "", FormLevel.LARGE); + + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Filter = "html文件(*.html)|*.html"; + openFileDialog.RestoreDirectory = true; + openFileDialog.FilterIndex = 1; + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + using (StreamReader sr = new StreamReader(openFileDialog.FileName, System.Text.Encoding.UTF8)) + { + string fileName = openFileDialog.FileName; + string importStr = sr.ReadToEnd().Trim();; + try + { + // 通用格式 + if (importStr.Contains("window.__CHUNK_DATA__={};window.rawData=") && + importStr.Contains(";document.dispatchEvent(new Event('XRenderInitialPropsLoaded'));")) + { + var jsonStr = importStr.Substring(importStr.IndexOf("window.__CHUNK_DATA__={};window.rawData=") + "window.__CHUNK_DATA__={};window.rawData=".Length); + jsonStr = jsonStr.Substring(0, jsonStr.IndexOf(";document.dispatchEvent(new Event('XRenderInitialPropsLoaded'));")); + var jObj = JObject.Parse(jsonStr); + var storeStr = JsonHelper.SerializeObject(jObj["store"]); + var clientProductInfo = JsonHelper.DeserializeJsonToObject(storeStr); + SaveClientProduct(clientProductInfo); + } + else + { + BaseMsgForm.ShowConfirm("未找到temu商品信息,请重新保存html后导入"); + rst = false; + } + } + catch (Exception ex) + { + BaseMsgForm.ShowConfirm("导入temu商品信息错误:" + ex.Message); + rst = false; + } + } + } + this.btnImportHtml.Enabled = true; + return rst; + } + + void SaveClientProduct(TemuWebClientProductInfo clientProdInfo) + { + TemuDetailProductInfo product = new TemuDetailProductInfo(); + product.canEditSizeTemplate = true; + product.canEditSkuAccessories = true; + product.carouselImageI18nVOList = new List(); + product.carouselImageUrls = new List(); + foreach (var item in clientProdInfo.goods.bannerList) + { + product.carouselImageUrls.Add(item.url); + } + product.carouseVideoVOList = new List(); // todo: 查看带视频的商品主图如何上传 + foreach (var item in clientProdInfo.goods.bannerList) + { + if (item.video != null) + { + string abc = "abcdefghijklmnoqprstuvwxyz123456789"; + string strVid = ""; + while(strVid.Length < 32) + { + strVid += abc[Randomx.GetId(abc.Length)]; + } + product.carouseVideoVOList.Add(new carouseVideoVo() + { + coverUrl = item.video.url, + videoType = 1, + height = item.video.height, + width = item.video.width, + productId = null, + supplierId = clientProdInfo.goods.mallId, + coverUrlDisplay = null, + //vid = "goods-video-tag#pokis7uhk62rriiu46b472pa1azpn5ds", + //vid = "goods-video-tag#" + strVid, + videoUrl = item.video.videoUrl, + videoUrlDisplay = null, + }); + } + } + product.categories = new TemuCategories(); + product.categories.cat1 = new TemuCat() { catId = clientProdInfo.goods.catId1.ParseToLong() }; + product.categories.cat2 = new TemuCat() { catId = clientProdInfo.goods.catId2.ParseToLong() }; + product.categories.cat3 = new TemuCat() { catId = clientProdInfo.goods.catId3.ParseToLong() }; + product.categories.cat4 = new TemuCat() { catId = clientProdInfo.goods.catId4.ParseToLong() }; + product.categories.cat5 = new TemuCat() { catId = clientProdInfo.goods.catId5.ParseToLong() }; + product.categories.cat6 = new TemuCat() { catId = clientProdInfo.goods.catId6.ParseToLong() }; + product.categories.cat7 = new TemuCat() { catId = clientProdInfo.goods.catId7.ParseToLong() }; + product.categories.cat8 = new TemuCat() { catId = clientProdInfo.goods.catId8.ParseToLong() }; + product.categories.cat9 = new TemuCat() { catId = clientProdInfo.goods.catId9.ParseToLong() }; + product.categories.cat10 = new TemuCat() { catId = clientProdInfo.goods.catId10.ParseToLong() }; + var catId = clientProdInfo.goods.catId.ParseToLong(); + if (product.categories.cat1.catId == 0 || product.categories.cat1.catId == catId) + product.categories.cat1.catId = catId; + else if (product.categories.cat2.catId == 0 || product.categories.cat2.catId == catId) + product.categories.cat2.catId = catId; + else if (product.categories.cat3.catId == 0 || product.categories.cat3.catId == catId) + product.categories.cat3.catId = catId; + else if (product.categories.cat4.catId == 0 || product.categories.cat4.catId == catId) + product.categories.cat4.catId = catId; + else if (product.categories.cat5.catId == 0 || product.categories.cat5.catId == catId) + product.categories.cat5.catId = catId; + else if (product.categories.cat6.catId == 0 || product.categories.cat6.catId == catId) + product.categories.cat6.catId = catId; + else if (product.categories.cat7.catId == 0 || product.categories.cat7.catId == catId) + product.categories.cat7.catId = catId; + else if (product.categories.cat8.catId == 0 || product.categories.cat8.catId == catId) + product.categories.cat8.catId = catId; + else if (product.categories.cat9.catId == 0 || product.categories.cat9.catId == catId) + product.categories.cat9.catId = catId; + else if (product.categories.cat10.catId == 0 || product.categories.cat10.catId == catId) + product.categories.cat10.catId = catId; + product.detailVideoVOList = new List(); + product.editTaskSupportI18nLanguages = null; + product.goodsAdvantageLabelVOList = new List(); + product.goodsI18nList = new List(); + product.goodsId = clientProdInfo.goods.goodsId; + product.goodsLayerDecorationCustomizeI18nVOList = new List(); + product.goodsLayerDecorationVOList = new List(); // 详情图 + foreach (var floorItem in clientProdInfo.productDetail.floorList) + { + //if (floorItem.type != 1) + // continue; + + TemuGoodsLayerDecorationVO goodsLayerDecoration = new TemuGoodsLayerDecorationVO + { + floorId = null, + lang = "zh", + key = "DecImage", + //type = item.type == 1 ? "image" : "", + type = "image", + priority = 0, + contentList = new List(), + }; + foreach (var subItem in floorItem.items) + { + goodsLayerDecoration.contentList.Add(new TemuContent() + { + height = subItem.height, + width = subItem.width, + imgUrl = subItem.url, + text = "", + }); + } + product.goodsLayerDecorationVOList.Add(goodsLayerDecoration); + } + //productDetailFlatList + product.goodsModelList = null; + product.guideFilePageImages = new List(); + product.imageLanguageList = null; + product.inProcessAddSizeSpecEditTask = null; + product.inProcessEditTaskList = new List(); + product.isImproveSalesInfo = true; + product.mainParentSpecIds = new List(); + product.materialImgUrl = clientProdInfo.goods.hdThumbUrl; + if (string.IsNullOrEmpty(product.materialImgUrl)) + product.materialImgUrl = clientProdInfo.goods.thumbUrl; + if (string.IsNullOrEmpty(product.materialImgUrl)) + product.materialImgUrl = product.carouselImageUrls.FirstOrDefault(); + product.outerPackageImages = new List(); // 获取不到图片,填第一张主图又会报错,此处不填,到上货时上传第一张主图 + //product.outerPackageImages.Add(new TemuOuterPackageImage() + //{ + // imageUrl = product.carouselImageUrls.FirstOrDefault(), + // signedImageUrl = product.carouselImageUrls.FirstOrDefault(), + //}); + product.productAuditDraftVO = null; + product.productCategoryPredictList = null; + product.productCreateTime = BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now); // 此处获取不到上架时间,直接填写导入时间。 + product.productGuideFileI18nList = new List(); + product.productGuideFileNewVOList = new List(); + product.productGuideFileRejectVO = null; + product.productI18nList = new List(); + product.productId = clientProdInfo.goods.goodsId; // 此处获取不到productId,直接填前台goodsId + product.productImageProcessExtVOList = new List(); // 这个数据好像没用,暂时不填 + product.productLocalExtAttr = new TemuProductLocalExtAttr() { materialMultiLanguages = new List() }; + product.productName = clientProdInfo.goods.goodsName; + product.productNonAuditExtAttr = new TemuProductNonAuditExtAttr() + { + california65WarningInfoVO = new TemuCalifornia65WarningInfoVO() { california65ChemicalNames = null, california65WarningType = null }, + cosmeticInfoVO = new TemuCosmeticInfoVO() { propertyInfoList = null }, + productCatManagement = null, + }; + product.productPropertyList = new List(); + foreach(var prop in clientProdInfo.goodsProperty) + { + foreach (var propVal in prop.values) + { + product.productPropertyList.Add(new TemuProductProperty() // todo: 上货的时候根据 refPid propName propValue 去匹配vid、pid等 + { + refPid = prop.refPid, + propName = prop.key, + propValue = propVal, + valueUnit = "", + valueExtendInfo = "", + numberInputValue = "", + pid = null, + templatePid = null, + vid = null, + }); + } + } + product.productSaleExtAttr = new TemuProductSaleExtAttr(); + product.productSkcList = new List(); + TemuProductSkc skcInfo = new TemuProductSkc(); + product.productSkcList.Add(skcInfo); + skcInfo.bomId = null; + skcInfo.colorImageUrl = null; + skcInfo.extCode = clientProdInfo.goods.itemId; + skcInfo.matchSelected = true; + skcInfo.previewImgUrls = product.carouselImageUrls.Take(1).ToList(); + skcInfo.productSkcCarouselImageI18nVOList = new List(); + skcInfo.productSkcId = clientProdInfo.goods.goodsId; // 此处获取不到SkcId,直接填前台goodsId + skcInfo.productSkcImageExtList = new List(); + skcInfo.productSkcImageExtList.Add(new TemuProductSkcImageExt() + { + imgUrl = skcInfo.previewImgUrls.FirstOrDefault(), + imgTag = 0, + isOcr = null, + }); + skcInfo.productSkcImageProcessExtVOList = new List(); + skcInfo.productSkcImageProcessExtVOList.Add(new TemuProductSkcImageExt() + { + imgUrl = skcInfo.previewImgUrls.FirstOrDefault(), + imgTag = 0, + isOcr = null, + }); + skcInfo.productSkcSpecList = new List(); + skcInfo.productSkcSpecList.Add(new TemuProductSkcSpec + { + parentSpecId = 0, + parentSpecName = "", + specId = 0, + specName = "", + unitSpecName = null, + }); + skcInfo.productSkcWhExtAttr = new TemuProductSkcWhExtAttr() { isBasePlate = 0, }; + skcInfo.productSkuList = new List(); + foreach (var sku in clientProdInfo.sku) + { + TemuProductSku skuInfo = new TemuProductSku(); + skcInfo.productSkuList.Add(skuInfo); + skuInfo.currencyType = "CNY"; + skuInfo.extCode = sku.skuExt.Keys.Contains("skuModel") ? sku.skuExt["skuModel"] : ""; + skuInfo.productSkuId = sku.skuId; + skuInfo.productSkuImageProcessExtVOList = new List(); + skuInfo.productSkuImageProcessExtVOList.Add(new TemuProductSkuImageProcessExtVO() + { + imgTag = 0, + imgUrl = sku.thumbUrl, + isOcr = false + }); + skuInfo.productSkuMultiPack = new TemuProductSkuMultiPack() + { + skuClassification = 1, + numberOfPieces = 1, + pieceUnitCode = 1, + individuallyPacked = null, + mixedType = null, + numberOfPiecesNew = null, + pieceNewUnitCode = null, + productSkuNetContent = null, + totalNetContent = null, + }; + skuInfo.productSkuNonAuditExtAttr = null; + skuInfo.productSkuQuantity = null; + skuInfo.productSkuSaleExtAttr = new TemuProductSkuSaleExtAttr() + { + productSkuAccessories = new TemuProductSkuAccessories() { productSkuAccessories = new List() }, + productSkuNetContent = new TemuProductSkuNetContent(), + }; + skuInfo.productSkuSensitiveApprove = new TemuProductSkuSensitiveApprove + { + productSkuId = sku.skuId, + sensitiveCateProblem = false, + sensitiveLimitProblem = false, + }; + skuInfo.productSkuSpecList = new List(); + foreach(var spec in sku.specs) + { + skuInfo.productSkuSpecList.Add(new TemuProductSkuSpec() + { + parentSpecId = spec.specKeyId, + parentSpecName = spec.specKey, + specId = spec.specValueId, + specName = spec.specValue, + unitSpecName = null, + }); + } + skuInfo.productSkuSuggestedPrice = new TemuProductSkuSuggestedPrice() + { + specialSuggestedPrice = "NA", + }; + skuInfo.productSkuThumbUrlI18nVOList = new List(); + skuInfo.productSkuUsSuggestedPrice = new TemuProductSkuUsSuggestedPrice(); + skuInfo.productSkuWhExtAttr = new TemuProductSkuWhExtAttr() + { + productSkuVolume = new TemuProductSkuVolume() + { + len = 300, + width = 200, + height = 100, + }, + productSkuWeight = new TemuProductSkuWeight() + { + value = 500000, + }, + productSkuBarCodes = new List(), + productSkuSensitiveAttr = new TemuProductSkuSensitiveAttr() + { + isForce2Normal = false, + force2NormalTypes = null, + isSensitive = 0, + sensitiveList = new List(), + sensitiveTypes = new List(), + }, + productSkuSensitiveLimit = new TemuProductSkuSensitiveLimit(), + }; + skuInfo.siteReferPriceList = null; + skuInfo.siteSupplierPrices = null; + skuInfo.supplierPrice = (sku.salePrice * GetExchangeRate(sku.normalPriceStr.ParseToString())).ParseToInt(); + skuInfo.thumbUrl = sku.thumbUrl; + } + skcInfo.skcStatus = 11; + product.productSpecPropertyVOS = new List(); // 此处如果不填商品无法提交到未发布 + foreach (var sku in clientProdInfo.sku) + { + foreach (var spec in sku.specs) + { + if (product.productSpecPropertyVOS.Any(s => s.specId == spec.specValueId && s.parentSpecId == spec.specKeyId)) + continue; + + product.productSpecPropertyVOS.Add(new TemuProductSpecPropertyVO() + { + parentSpecId = spec.specKeyId, + //parentSpecName = spec.specKey, + specId = spec.specValueId, + //specName = spec.specValue, + vid = 0, + refPid = 0, + pid = 0, + templatePid = 0, + propName = spec.specKey, + propValue = spec.specValue, + valueUnit = "", + valueGroupId = 0, + valueGroupName = "", + valueExtendInfo = "", + numberInputValue = "", + }); + } + } + product.productType = 1; + product.productWarehouseRoute = null; + product.productWhExtAttr = new TemuProductWhExtAttr() + { + outerGoodsUrl = "", + productCatConfig = null, + productFragileLabelAttr = new TemuProductFragileLabelAttr() { isFragile = false, }, + sensitiveTransNormalFiles = new List(), + // 包装形状和包装类型 + productOuterPackage = new TemuProductOuterPackage() { packageShape = 0, packageType = 0, }, + // 商品产地 6广东 31浙江 + productOrigin = new TemuProductOrigin() { countryName = "China", countryShortName = "CN", region2Id = 43000000000006, }, + productOriginCertFiles = new List(), + copyFromProductId = null, + personalizationSwitch = null, + newProductCatMisplace = new TemuNewProductCatMisplace() { feedback = null, matchMisplace = false, recCategoriesList = new List(), }, + semiManagedSiteMode = null, + }; + product.showSizeTemplateIds = null; + product.sizeTemplateId = null; + product.sizeTemplateIds = null; + product.skcQcAdjustmentNote = null; + product.sourceType = 0; + product.supplierId = clientProdInfo.goods.mallId; + product.supplierSourceType = 1000; + product.temuSupplier = true; + product.vehicleLibraryRelationDTOList = null; + + + string result = JsonHelper.SerializeObject(product); + string sizeRst = ""; + + + // 读取数据库是否有相同商品 + var url = BaseClass.BuildObjString("product/get_product_list"); + var data = ""; + + data = UserLogin.GetSignaturex() + + "&page=" + 1 + + "&page_size=" + 1; + data += "&search_spu=" + product?.productId; + if (BaseClass.SaLevel == 1) // 店铺非空管理状态允许查看后台采集和前端采集的所有商品 + { + data += "&product_get_type=all"; + } + //data += "&search_skc=" + product?.productSkcList?.FirstOrDefault()?.productSkcId; + + int dbId = 0; + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (!string.IsNullOrEmpty(html) && html.Contains("\"code\":200")) + { + dbId = BaseRegex.GetIntJson(ref html, "id"); + } + + if (dbId > 0 && BaseMsgForm.ShowConfirm("数据库已存在相同ID的商品,是否覆盖?(选择否新增一条数据)").DialogResult == DialogResult.OK) + { + url = BaseClass.BuildObjString("product/mdy_db_product"); + data = UserLogin.GetSignaturex() + + "&db_id=" + dbId; + data += "&product_json=" + HttpUtility.UrlEncode(result, Encoding.UTF8); + data += "&size_json=" + HttpUtility.UrlEncode(sizeRst, Encoding.UTF8); + data += "&original_json=" + HttpUtility.UrlEncode(JsonHelper.SerializeObject(clientProdInfo), Encoding.UTF8); + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + string msg = "商品保存失败!请检查html文件:" + BaseRegex.GetStringJson(ref html, "msg"); + BaseMsgForm.ShowError(msg); + } + else + { + BaseMsgForm.ShowInfo("选品商品保存成功!"); + } + } + else + { + url = BaseClass.BuildObjString("product/add_product"); + data = Work.UserLogin.GetSignaturex() + + "&spu_id=" + product?.productId + + "&skc_id=" + product?.productSkcList?.FirstOrDefault()?.productSkcId + + "&cat_id=" + clientProdInfo.goods.catId.ParseToLong() + + "&cat_name=" + HttpUtility.UrlEncode(clientProdInfo.crumbOptList.LastOrDefault()?.title, Encoding.UTF8) + + "&ext_code=" + HttpUtility.UrlEncode(product?.productSkcList?.FirstOrDefault()?.extCode, Encoding.UTF8) + + "&product_name=" + HttpUtility.UrlEncode(product?.productName, Encoding.UTF8) + + "&product_json=" + HttpUtility.UrlEncode(result, Encoding.UTF8) + + "&size_json=" + HttpUtility.UrlEncode(sizeRst, Encoding.UTF8) + + "&original_json=" + HttpUtility.UrlEncode(JsonHelper.SerializeObject(clientProdInfo), Encoding.UTF8) + + "&main_img=" + HttpUtility.UrlEncode(product?.carouselImageUrls?.FirstOrDefault(), Encoding.UTF8) + + "&product_get_type=1"; // 0母店采集 1前端直采 不填默认0 + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + string msg = "商品保存失败!请检查html文件:" + BaseRegex.GetStringJson(ref html, "msg"); + BaseMsgForm.ShowError(msg); + } + else + { + BaseMsgForm.ShowInfo("选品商品保存成功!"); + } + } + } + + decimal GetExchangeRate(string inputStr) + { + if (inputStr.StartsWith("CA$")) + return 5.1m; + if (inputStr.StartsWith("US$")) + return 7.1m; + return 1; + } + + private void dgvSelectShop_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + + string headerText = dgvSelectShop.Columns[e.ColumnIndex].HeaderText; + if (headerText == "选择") + { + foreach (DataGridViewRow row in dgvSelectShop.Rows) + { + row.Cells["colCheck"].Value = false; + } + dgvSelectShop.Rows[e.RowIndex].Cells["colCheck"].Value = true; + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + panel2.Visible = false; + } + + private void btnGetShop_Click(object sender, EventArgs e) + { + this.pbLoading.Visible = true; + this.dgvSelectShop.Rows.Clear(); + this.lstAdminShopInfo.Clear(); + Task.Run(() => + { + int pageCount; + var list = AdminForms.AdminShopListForm.Instance.AdminGetServerShopLst(out pageCount, "", "", "", + txtShopId.Text.Trim(), txtShopName.Text.Trim(), 1, 10); + lstAdminShopInfo.AddRange(list); + this.ucSplitPage1.TotalPage = pageCount; + + foreach (var shop in lstAdminShopInfo) + { + Invoke(new Action(() => + { + int rowIndex = this.dgvSelectShop.Rows.Add( + false, + shop.UserName, + shop.SubUserName, + shop.ShopId, + shop.ShopAccount, + shop.Notes); + if (rowIndex == 0) + { + this.dgvSelectShop.Rows[rowIndex].Cells["colCheck"].Value = true; + } + })); + } + + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + })); + }); + } + + private void btnAddToSelectDb_Click(object sender, EventArgs e) + { + KJDDBProduct dbProduct = panel2.Tag as KJDDBProduct; + if (dbProduct == null) + return; + var selectShopId = this.dgvSelectShop.Rows.Cast() + .FirstOrDefault(r => r.Cells["colCheck"].Value.ParseToBool() == true)?.Cells["colShopId"].Value.ParseToString(); + var selectShop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == selectShopId); + if (!string.IsNullOrEmpty(selectShopId) && selectShop != null) + { + this.btnSelect.Enabled = false; + Task.Run(() => { + SelectProduct(selectShop, new KJDDBProduct[] { dbProduct }, numCount.Value.ParseToInt(), true); + Invoke(new Action(() => + { + this.btnSelect.Enabled = true; + })); + }); + } + else + { + BaseMsgForm.ShowError("未选择店铺!"); + } } } } diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.resx b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.resx index bcab5c3..d0651d1 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.resx +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductListForm.resx @@ -117,6 +117,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + True @@ -150,6 +168,9 @@ True + + True + True @@ -165,6 +186,9 @@ True + + True + True diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs index a6b28e2..b5ad8c4 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs @@ -37,8 +37,11 @@ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductSelectListManageForm)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.txtNotChangeMainImg = new System.Windows.Forms.TextBox(); + this.chkNotChangeMainImg = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkAiSkuAndMainImg = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkLongTitle = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkSameExtcodeRandomMainImg = new TemuKJD.UserComponent.UcCheckBox(this.components); @@ -130,6 +133,7 @@ this.colLogin = new System.Windows.Forms.DataGridViewLinkColumn(); this.colImportCookies = new System.Windows.Forms.DataGridViewLinkColumn(); this.colCopyCookies = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colProdGetType = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); this.colSkcId = new System.Windows.Forms.DataGridViewLinkColumn(); this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -150,8 +154,6 @@ this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.chkNotChangeMainImg = new TemuKJD.UserComponent.UcCheckBox(this.components); - this.txtNotChangeMainImg = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -235,6 +237,31 @@ this.splitContainer1.SplitterDistance = 125; this.splitContainer1.TabIndex = 2; // + // txtNotChangeMainImg + // + this.txtNotChangeMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtNotChangeMainImg.Location = new System.Drawing.Point(1440, 97); + this.txtNotChangeMainImg.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtNotChangeMainImg.Name = "txtNotChangeMainImg"; + this.txtNotChangeMainImg.ReadOnly = true; + this.txtNotChangeMainImg.Size = new System.Drawing.Size(36, 23); + this.txtNotChangeMainImg.TabIndex = 700; + this.txtNotChangeMainImg.Text = "5"; + // + // chkNotChangeMainImg + // + this.chkNotChangeMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.chkNotChangeMainImg.AutoSize = true; + this.chkNotChangeMainImg.Checked = true; + this.chkNotChangeMainImg.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkNotChangeMainImg.Location = new System.Drawing.Point(1410, 98); + this.chkNotChangeMainImg.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.chkNotChangeMainImg.Name = "chkNotChangeMainImg"; + this.chkNotChangeMainImg.Size = new System.Drawing.Size(151, 21); + this.chkNotChangeMainImg.TabIndex = 699; + this.chkNotChangeMainImg.Text = "第 张主图不替换"; + this.chkNotChangeMainImg.UseVisualStyleBackColor = true; + // // chkAiSkuAndMainImg // this.chkAiSkuAndMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -856,7 +883,7 @@ "核价成功", "核价成功(重复)", "重复"}); - this.cmbNotes.Location = new System.Drawing.Point(917, 5); + this.cmbNotes.Location = new System.Drawing.Point(917, 8); this.cmbNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbNotes.Name = "cmbNotes"; this.cmbNotes.Size = new System.Drawing.Size(65, 25); @@ -881,7 +908,7 @@ "已上传", "草稿箱", "全部"}); - this.cmbStatus.Location = new System.Drawing.Point(814, 5); + this.cmbStatus.Location = new System.Drawing.Point(814, 8); this.cmbStatus.Margin = new System.Windows.Forms.Padding(0); this.cmbStatus.Name = "cmbStatus"; this.cmbStatus.Size = new System.Drawing.Size(65, 25); @@ -1248,7 +1275,7 @@ "全部", "重上", "已买"}); - this.cmbUserNotes.Location = new System.Drawing.Point(1044, 5); + this.cmbUserNotes.Location = new System.Drawing.Point(1044, 8); this.cmbUserNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbUserNotes.Name = "cmbUserNotes"; this.cmbUserNotes.Size = new System.Drawing.Size(65, 25); @@ -1500,6 +1527,7 @@ this.colLogin, this.colImportCookies, this.colCopyCookies, + this.colProdGetType, this.colSpuId, this.colSkcId, this.colImgUrl, @@ -1551,14 +1579,15 @@ this.colSupplierId.HeaderText = "店铺Id"; this.colSupplierId.Name = "colSupplierId"; this.colSupplierId.ReadOnly = true; - this.colSupplierId.Width = 120; + this.colSupplierId.Width = 110; // // colSupplierName // + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle3; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; this.colSupplierName.ReadOnly = true; - this.colSupplierName.Width = 110; // // colInShop // @@ -1576,21 +1605,28 @@ // // colImportCookies // - this.colImportCookies.HeaderText = "导入Cookie"; + this.colImportCookies.HeaderText = "导入Cook"; this.colImportCookies.Name = "colImportCookies"; this.colImportCookies.ReadOnly = true; this.colImportCookies.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.colImportCookies.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colImportCookies.Width = 80; + this.colImportCookies.Width = 70; // // colCopyCookies // - this.colCopyCookies.HeaderText = "复制Cookie"; + this.colCopyCookies.HeaderText = "复制Cook"; this.colCopyCookies.Name = "colCopyCookies"; this.colCopyCookies.ReadOnly = true; this.colCopyCookies.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.colCopyCookies.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCopyCookies.Width = 80; + this.colCopyCookies.Width = 70; + // + // colProdGetType + // + this.colProdGetType.HeaderText = "商品来源"; + this.colProdGetType.Name = "colProdGetType"; + this.colProdGetType.ReadOnly = true; + this.colProdGetType.Width = 65; // // colSpuId // @@ -1628,28 +1664,28 @@ // // colProductName // - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle4; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; - this.colProductName.Width = 160; + this.colProductName.Width = 150; // // colProductCat // - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductCat.DefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle5; this.colProductCat.HeaderText = "商品类目"; this.colProductCat.Name = "colProductCat"; this.colProductCat.ReadOnly = true; - this.colProductCat.Width = 72; + this.colProductCat.Width = 70; // // colExtCode // this.colExtCode.HeaderText = "商品货号"; this.colExtCode.Name = "colExtCode"; this.colExtCode.ReadOnly = true; - this.colExtCode.Width = 125; + this.colExtCode.Width = 122; // // colStatus // @@ -1669,21 +1705,21 @@ // // colAddTime // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colAddTime.DefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle6; this.colAddTime.HeaderText = "认领时间"; this.colAddTime.Name = "colAddTime"; this.colAddTime.ReadOnly = true; - this.colAddTime.Width = 65; + this.colAddTime.Width = 63; // // colMdyTime // - dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle6; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle7; this.colMdyTime.HeaderText = "上传时间"; this.colMdyTime.Name = "colMdyTime"; this.colMdyTime.ReadOnly = true; - this.colMdyTime.Width = 65; + this.colMdyTime.Width = 63; // // colSubSa // @@ -1694,8 +1730,8 @@ // // colSubSaNick // - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSubSaNick.DefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSubSaNick.DefaultCellStyle = dataGridViewCellStyle8; this.colSubSaNick.HeaderText = "二级超管"; this.colSubSaNick.Name = "colSubSaNick"; this.colSubSaNick.ReadOnly = true; @@ -1710,8 +1746,8 @@ // // colNotes // - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colNotes.DefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colNotes.DefaultCellStyle = dataGridViewCellStyle9; this.colNotes.HeaderText = "备注"; this.colNotes.Name = "colNotes"; this.colNotes.ReadOnly = true; @@ -1764,31 +1800,6 @@ this.statusBar.Size = new System.Drawing.Size(1558, 25); this.statusBar.TabIndex = 5; // - // chkNotChangeMainImg - // - this.chkNotChangeMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.chkNotChangeMainImg.AutoSize = true; - this.chkNotChangeMainImg.Checked = true; - this.chkNotChangeMainImg.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkNotChangeMainImg.Location = new System.Drawing.Point(1410, 98); - this.chkNotChangeMainImg.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.chkNotChangeMainImg.Name = "chkNotChangeMainImg"; - this.chkNotChangeMainImg.Size = new System.Drawing.Size(151, 21); - this.chkNotChangeMainImg.TabIndex = 699; - this.chkNotChangeMainImg.Text = "第 张主图不替换"; - this.chkNotChangeMainImg.UseVisualStyleBackColor = true; - // - // txtNotChangeMainImg - // - this.txtNotChangeMainImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.txtNotChangeMainImg.Location = new System.Drawing.Point(1440, 97); - this.txtNotChangeMainImg.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtNotChangeMainImg.Name = "txtNotChangeMainImg"; - this.txtNotChangeMainImg.ReadOnly = true; - this.txtNotChangeMainImg.Size = new System.Drawing.Size(36, 23); - this.txtNotChangeMainImg.TabIndex = 700; - this.txtNotChangeMainImg.Text = "5"; - // // DbProductSelectListManageForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1881,32 +1892,6 @@ private UserComponent.UcCheckBox chkFission; private System.Windows.Forms.ComboBox cmbUserNotes; private System.Windows.Forms.Label label12; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; - private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; - private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; - private System.Windows.Forms.DataGridViewLinkColumn colInShop; - private System.Windows.Forms.DataGridViewLinkColumn colLogin; - private System.Windows.Forms.DataGridViewLinkColumn colImportCookies; - private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies; - private System.Windows.Forms.DataGridViewLinkColumn colSpuId; - private System.Windows.Forms.DataGridViewLinkColumn colSkcId; - private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; - private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; - private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; - private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat; - private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; - private System.Windows.Forms.DataGridViewTextBoxColumn colStatus; - private System.Windows.Forms.DataGridViewLinkColumn colDraftId; - private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; - private System.Windows.Forms.DataGridViewTextBoxColumn colMdyTime; - private System.Windows.Forms.DataGridViewTextBoxColumn colSubSa; - private System.Windows.Forms.DataGridViewTextBoxColumn colSubSaNick; - private System.Windows.Forms.DataGridViewTextBoxColumn colUserNotes; - private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; - private System.Windows.Forms.DataGridViewLinkColumn colEditNotes; - private System.Windows.Forms.DataGridViewLinkColumn colDelete; - private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; private System.Windows.Forms.Label label13; private System.Windows.Forms.ComboBox cmbNotes; private DevComponents.DotNetBar.PanelEx btnDel; @@ -1953,5 +1938,32 @@ private DevComponents.DotNetBar.PanelEx pnlError; private UserComponent.UcCheckBox chkNotChangeMainImg; private System.Windows.Forms.TextBox txtNotChangeMainImg; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewLinkColumn colInShop; + private System.Windows.Forms.DataGridViewLinkColumn colLogin; + private System.Windows.Forms.DataGridViewLinkColumn colImportCookies; + private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies; + private System.Windows.Forms.DataGridViewTextBoxColumn colProdGetType; + private System.Windows.Forms.DataGridViewLinkColumn colSpuId; + private System.Windows.Forms.DataGridViewLinkColumn colSkcId; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat; + private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colStatus; + private System.Windows.Forms.DataGridViewLinkColumn colDraftId; + private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colMdyTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colSubSa; + private System.Windows.Forms.DataGridViewTextBoxColumn colSubSaNick; + private System.Windows.Forms.DataGridViewTextBoxColumn colUserNotes; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewLinkColumn colEditNotes; + private System.Windows.Forms.DataGridViewLinkColumn colDelete; + private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs index 75ef88c..651fe92 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs @@ -121,6 +121,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms { this.ucSplitPage1.PageChange += UcSplitPage1_PageChange; this.dgvSelectProduct.AddSelectorColumn("colSelect"); + this.dgvSelectProduct.AddImgColumn("colProductSkcPic", "colImgUrl"); dgvSelectProduct.Columns["colSubSaNick"].Visible = false; dgvSelectProduct.Columns["colDelete"].Visible = false; @@ -202,14 +203,14 @@ namespace TemuKJD.KJDForms.ProductSelectForms var shopIdLst = list.Select(p => p.shop_id).Distinct().ToList(); shopLst = ShopBLL.AdminGetServerShopLstByIds(shopIdLst); - if (defaultBitmap == null) - defaultBitmap = new Bitmap(80, 80); - // 获取Bitmap的Graphics对象 - using (Graphics g = Graphics.FromImage(defaultBitmap)) - { - // 清除整个Bitmap为蓝色 - g.Clear(Color.White); - } + //if (defaultBitmap == null) + // defaultBitmap = new Bitmap(80, 80); + //// 获取Bitmap的Graphics对象 + //using (Graphics g = Graphics.FromImage(defaultBitmap)) + //{ + // // 清除整个Bitmap为白色 + // g.Clear(Color.White); + //} foreach (var prodSelect in lstAdminTemuDBProductSelect) { Invoke(new Action(() => @@ -223,10 +224,11 @@ namespace TemuKJD.KJDForms.ProductSelectForms shopLst.FirstOrDefault(s=>s.ShopId == prodSelect.shop_id)?.LoginStatus2 == "国际版在线" ? "在线" : "登录", "导入Cookie", "复制Cookie", + prodSelect.product_get_type == 0 ? "母店采集" : "前端直采", prodSelect.spu_id, prodSelect.skc_id, - prodSelect.main_img.Replace("https:","http:"), - defaultBitmap,//prod.main_img, + prodSelect.main_img.Replace("https://","http://").Replace("img.kwcdn.com", "img.cdnfe.com"), + DataGridViewExtension.defaultBitmap,//prod.main_img, prodSelect.fission_product_name, prodSelect.cat_name, prodSelect.ext_code, @@ -248,63 +250,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms Invoke(new Action(() => { - ShowDgvImg(); this.pbLoading.Visible = false; })); }); } - Bitmap defaultBitmap = null; - void ShowDgvImg() - { - Task.Run(() => - { - foreach (DataGridViewRow row in this.dgvSelectProduct.Rows) - { - if (row.Index > 0 && row.Cells["colProductSkcPic"].Displayed == false) - { - try - { - Invoke(new Action(() => - { - row.Cells["colProductSkcPic"].Value = defaultBitmap; - })); - } - catch - { - } - continue; - } - - if (row.Cells["colProductSkcPic"].Value != null && row.Cells["colProductSkcPic"].Value != defaultBitmap) - continue; - - Image image = null; - string imgUrl = row.Cells["colImgUrl"]?.Value.ParseToString(); - string getImgError = ""; - if (!string.IsNullOrWhiteSpace(imgUrl)) - image = GetHtml.GetUrlImg(imgUrl, out getImgError); - if (!string.IsNullOrEmpty(getImgError)) - //BaseMsgForm.ShowError("图片加载失败 " + getImgError); - image = TemuKJD.Properties.Resources.errpic; - - try - { - Invoke(new Action(() => - { - row.Cells["colProductSkcPic"].Value = image; - })); - } - catch - { - } - } - }); - } - private void dgvSelectProduct_Scroll(object sender, ScrollEventArgs e) { - ShowDgvImg(); } public List GetSelectProductList(out int pageCount, int page = 1, int pageSize = 50) @@ -476,6 +428,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms break; case "导入Cookie": + case "导入Cook": { var shop = GetShop(shopId); ShopUpdateCookieForm updateCookieForm = new ShopUpdateCookieForm(shop, SetCookieFromEnum.sa, "国内版"); @@ -484,6 +437,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms } break; case "复制Cookie": + case "复制Cook": { var shop = GetShop(shopId); string cookJs = ""; @@ -961,6 +915,36 @@ namespace TemuKJD.KJDForms.ProductSelectForms return "上传失败 " + html; } + if (dbProd.product_get_type == 1) + { + var catRst = GetCatPathList(shop, prodParam.productDraftId.ParseToString(), catId.ParseToString()); + if (catRst.Contains("\"success\":true")) + { + var regex = BaseRegex.GetMatchRegex(ref catRst, "\\\"catId\\\":\\d{1,10}"); + if (regex.Count > 0) + { + var cats = regex.Cast().Select(m => m.Value.ParseToString().Replace("\"catId\":", "").ParseToLong()).ToList(); + if (!cats.Any(c => c <= 0)) + { + while (cats.Count < 10) + cats.Add(0); + + prodParam.cat1Id = cats[0]; + prodParam.cat2Id = cats[1]; + prodParam.cat3Id = cats[2]; + prodParam.cat4Id = cats[3]; + prodParam.cat5Id = cats[4]; + prodParam.cat6Id = cats[5]; + prodParam.cat7Id = cats[6]; + prodParam.cat8Id = cats[7]; + prodParam.cat9Id = cats[8]; + prodParam.cat10Id = cats[9]; + } + } + } + } + + // 查询获取商品属性模板 List categoryTemplateList = new List(); var propTemplateRst = QueryCategoryTemplate(shop, prodParam.productDraftId.ParseToString(), catId.ParseToString()); if (propTemplateRst.Contains("\"success\":true")) @@ -1067,7 +1051,15 @@ namespace TemuKJD.KJDForms.ProductSelectForms }; goodsLayerDecorationItem.contentList.Add(contentItem); } - prodParam.goodsLayerDecorationReqs.Add(goodsLayerDecorationItem); + if (goodsLayerDecorationItem != null && !(goodsLayerDecorationItem.contentList?.FirstOrDefault()?.imgUrl).ParseToString().IsNullOrEmpty()) + prodParam.goodsLayerDecorationReqs.Add(goodsLayerDecorationItem); + else + { + } + } + for (int i = 0; i < prodParam.goodsLayerDecorationReqs.Count; i++) + { + prodParam.goodsLayerDecorationReqs[i].priority = i; } prodParam.goodsModelReqs = prodInfo.goodsModelList != null ? prodInfo.goodsModelList : new List(); prodParam.materialImgUrl = prodInfo.materialImgUrl; @@ -1080,15 +1072,45 @@ namespace TemuKJD.KJDForms.ProductSelectForms prodInfo.productLocalExtAttr.materialMultiLanguages : new List(); prodParam.personalizationSwitch = prodInfo.productWhExtAttr.personalizationSwitch.ParseToInt(); - var carouseVideoVOList = JsonHelper.SerializeObject(prodInfo.carouseVideoVOList); - prodParam.productCarouseVideoReqList = JsonHelper.DeserializeJsonToList(carouseVideoVOList); + // 主图视频 + var videoList = new List(); + if (prodInfo.carouseVideoVOList != null) + { + videoList = prodInfo.carouseVideoVOList.ToList(); + foreach(var video in videoList) + { + if (video.vid.IsNullOrEmpty() && !video.videoUrl.IsNullOrEmpty() && !video.coverUrl.IsNullOrEmpty()) + { + var downloadPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads\\Video"); + if (!Directory.Exists(downloadPath)) + Directory.CreateDirectory(downloadPath); + var videoUrl = video.videoUrl.Replace("https://", "http://").Replace("goods-vod.kwcdn.com", "goods-vod.cdnfe.com"); + var extName = videoUrl.Split('.').LastOrDefault(); + var videoFullName = downloadPath + "\\MainVideo." + extName; + if (GetHtml.DownloadFile(videoUrl, videoFullName)) + { + var mainVideoRst = UploadMainVideo(shop, prodParam.productDraftId.ParseToString(), videoFullName); + if (mainVideoRst.Contains("\"success\":false")) + return mainVideoRst; + video.videoUrl = BaseRegex.GetStringJson(ref mainVideoRst, "url"); + video.vid = BaseRegex.GetStringJson(ref mainVideoRst, "vid"); + video.coverUrl = BaseRegex.GetStringJson(ref mainVideoRst, "cover"); + } + } + } + videoList = videoList.Where(v => !v.vid.IsNullOrEmpty()).ToList(); + } + var carouseVideoVOListStr = JsonHelper.SerializeObject(videoList); + prodParam.productCarouseVideoReqList = JsonHelper.DeserializeJsonToList(carouseVideoVOListStr); if (prodParam.productCarouseVideoReqList == null) prodParam.productCarouseVideoReqList = new List(); - //此处打开商品编辑详情无法获取到,如何查询存疑 + //此处打开商品编辑详情无法获取到,如何查询存疑,暂时手动填写 prodParam.productComplianceStatementReq = new ProductComplianceStatementReq { - protocolVersion = "V1.0", - protocolUrl = "https://bdl.cdnfe.com/upload_bdl/seller-protocol/00f56a69-7bee-4768-8cef-e1682ffd58e3.html", + //protocolVersion = "V1.0", + //protocolUrl = "https://bdl.cdnfe.com/upload_bdl/seller-protocol/00f56a69-7bee-4768-8cef-e1682ffd58e3.html", + protocolVersion = "V2.0", + protocolUrl = "https://dl.kwcdn.com/seller-public-file-us-tag/2079f603b6/56888d17d8166a6700c9f3e82972e813.html", }; prodParam.productDetailVideoReqList = prodInfo.detailVideoVOList; prodParam.productGuideFileI18nReqs = prodInfo.productGuideFileI18nList; @@ -1205,6 +1227,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms }; //内容存疑 prodParam.productOriginCertFileReqs = new List(); + //产品包装图 prodParam.productOuterPackageImageReqs = new List(); foreach (var picInfo in prodInfo.outerPackageImages) { @@ -1213,6 +1236,24 @@ namespace TemuKJD.KJDForms.ProductSelectForms imageUrl = picInfo.imageUrl, }); } + //如果原商品采集源没有包装图,主图第一张转包装图 + if (prodParam.productOuterPackageImageReqs.Count == 0) + { + //var downloadPath = Application.StartupPath + "\\temp\\downloads\\image"; + var downloadPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads\\Image"); + if (!Directory.Exists(downloadPath)) + Directory.CreateDirectory(downloadPath); + var imgUrl = prodParam.carouselImageUrls.FirstOrDefault().ParseToString().Replace("https://", "http://").Replace("img.kwcdn.com", "img.cdnfe.com"); + var extName = imgUrl.Split('.').LastOrDefault(); + var imgFullName = downloadPath + "\\PackageImage." + extName; + if (GetHtml.DownloadFile(imgUrl, imgFullName)) + { + var packageImgUrl = UploadOuterPackageImg(shop, prodParam.productDraftId.ParseToString(), imgFullName); + if (packageImgUrl.Contains("\"success\":false")) + return packageImgUrl; + prodParam.productOuterPackageImageReqs.Add(new ProductOuterPackageImageReqsItem() { imageUrl = packageImgUrl, }); + } + } prodParam.productOuterPackageReq = new ProductOuterPackageReq() { packageShape = prodInfo.productWhExtAttr.productOuterPackage.packageShape, @@ -1221,7 +1262,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms prodParam.productPropertyReqs = new List(); foreach (var propInfo in prodInfo.productPropertyList) { - prodParam.productPropertyReqs.Add(new ProductPropertyReqsItem + var propReqsItem = new ProductPropertyReqsItem { numberInputValue = propInfo.numberInputValue, pid = propInfo.pid, @@ -1232,57 +1273,100 @@ namespace TemuKJD.KJDForms.ProductSelectForms valueExtendInfo = propInfo.valueExtendInfo, valueUnit = propInfo.valueUnit, vid = propInfo.vid, - }); + }; + // 客户端采集的数据 产地、商品编号等信息的refPid为空不放在后台商品属性 + if (propReqsItem.refPid != null) + prodParam.productPropertyReqs.Add(propReqsItem); } - if (prodParam.productPropertyReqs.Any(p => p.propValue == "织物" && p.propName == "鞋面材料") && - !prodParam.productPropertyReqs.Any(p => p.propName == "织物材质成分")) + foreach(var prop in prodParam.productPropertyReqs) { - prodParam.productPropertyReqs.Add(new ProductPropertyReqsItem + if (prop.pid.IsNullOrEmpty()) { - valueUnit = "", - propValue = "人造纤维", - propName = "织物材质成分", - refPid = 7550, - vid = 329529, - controlType = 1, - pid = 2335, - templatePid = 1580208, - valueExtendInfo = "" - }); + var propTemp = categoryTemplateList.FirstOrDefault(p => p.refPid == prop.refPid); + if (propTemp != null) + { + if (propTemp.templatePid == 882613) // 成分(带%的参数) + { + } + prop.pid = propTemp.pid; + prop.templatePid = propTemp.templatePid; + prop.valueUnit = propTemp.valueUnit.FirstOrDefault().ParseToString(); + if (prop.propValue.Contains("%")) + { + prop.valueUnit = "%"; + + // 获取成分百分比 + string propValueStr = prop.propValue; + var regex = BaseRegex.GetMatchRegex(ref propValueStr, "\\d{1,3}(\\.\\d{1,2})?%"); + string numberValue = BaseRegex.GetMatchRegex(ref propValueStr, "\\d{1,3}%")[0]?.Groups[0]?.Value; + if (!string.IsNullOrEmpty(numberValue)) + { + prop.propValue = propValueStr.Replace(numberValue, "").Trim(); + prop.numberInputValue = numberValue.Replace("%", ""); + } + } + if (propTemp.values != null) + prop.vid = (propTemp.values.FirstOrDefault(v => v.value == prop.propValue)?.vid).ParseToLong(); + //if (prop.vid == null) + // prop.vid = 0; + prop.valueExtendInfo = ""; + } + } } - var prop = categoryTemplateList.FirstOrDefault(p => p.name.Contains("内里是否加绒")); - if (prop != null && prop.required == true && !prodParam.productPropertyReqs.Any(p => p.propName == prop.name)) + prodParam.productPropertyReqs.RemoveAll(p => p.vid == null); + // 处理特殊情况 + if (1 == 1) { - if (lstExtCodeFleeceInShoes.Contains(dbProd.ext_code) || - lstExtCodeFleeceInShoes.Any(c => (dbProd.ext_code.Contains("-" + c)))) + if (prodParam.productPropertyReqs.Any(p => p.propValue == "织物" && p.propName == "鞋面材料") && + !prodParam.productPropertyReqs.Any(p => p.propName == "织物材质成分")) { prodParam.productPropertyReqs.Add(new ProductPropertyReqsItem { valueUnit = "", - propValue = "是", - propName = "内里是否加绒", - refPid = prop.refPid.ParseToLong(), - vid = 404104, + propValue = "人造纤维", + propName = "织物材质成分", + refPid = 7550, + vid = 329529, controlType = 1, - pid = prop.pid.ParseToLong(), - templatePid = prop.templatePid, + pid = 2335, + templatePid = 1580208, valueExtendInfo = "" }); } - else + var propTemp = categoryTemplateList.FirstOrDefault(p => p.name.Contains("内里是否加绒")); + if (propTemp != null && propTemp.required == true && !prodParam.productPropertyReqs.Any(p => p.propName == propTemp.name)) { - prodParam.productPropertyReqs.Add(new ProductPropertyReqsItem + if (lstExtCodeFleeceInShoes.Contains(dbProd.ext_code) || + lstExtCodeFleeceInShoes.Any(c => (dbProd.ext_code.Contains("-" + c)))) { - valueUnit = "", - propValue = "否", - propName = "内里是否加绒", - refPid = prop.refPid.ParseToLong(), - vid = 404105, - controlType = 1, - pid = prop.pid.ParseToLong(), - templatePid = prop.templatePid, - valueExtendInfo = "" - }); + prodParam.productPropertyReqs.Add(new ProductPropertyReqsItem + { + valueUnit = "", + propValue = "是", + propName = "内里是否加绒", + refPid = propTemp.refPid.ParseToLong(), + vid = 404104, + controlType = 1, + pid = propTemp.pid.ParseToLong(), + templatePid = propTemp.templatePid, + valueExtendInfo = "" + }); + } + else + { + prodParam.productPropertyReqs.Add(new ProductPropertyReqsItem + { + valueUnit = "", + propValue = "否", + propName = "内里是否加绒", + refPid = propTemp.refPid.ParseToLong(), + vid = 404105, + controlType = 1, + pid = propTemp.pid.ParseToLong(), + templatePid = propTemp.templatePid, + valueExtendInfo = "" + }); + } } } prodParam.productSaleExtAttrReq = new ProductSaleExtAttrReq @@ -1331,13 +1415,14 @@ namespace TemuKJD.KJDForms.ProductSelectForms skcItem.mainProductSkuSpecReqs = new List(); foreach (var skuSpecInfo in skcInfo.productSkcSpecList) { - skcItem.mainProductSkuSpecReqs.Add(new MainProductSkuSpecReqsItem + var specReqsItem = new MainProductSkuSpecReqsItem { parentSpecId = skuSpecInfo.parentSpecId, parentSpecName = skuSpecInfo.parentSpecName, specId = skuSpecInfo.specId, specName = skuSpecInfo.specName, - }); + }; + skcItem.mainProductSkuSpecReqs.Add(specReqsItem); } skcItem.previewImgUrls = skcInfo.previewImgUrls; skcItem.productSkcCarouselImageI18nReqs = skcInfo.productSkcCarouselImageI18nVOList; @@ -1456,6 +1541,10 @@ namespace TemuKJD.KJDForms.ProductSelectForms JsonHelper.SerializeObject(skuInfo.productSkuMultiPack.totalNetContent)), individuallyPacked = skuInfo.productSkuMultiPack.individuallyPacked, }; + if (skuItem.productSkuMultiPackReq.productSkuNetContentReq == null) + skuItem.productSkuMultiPackReq.productSkuNetContentReq = new ProductSkuNetContentReq(); + if (skuItem.productSkuMultiPackReq.totalNetContent == null) + skuItem.productSkuMultiPackReq.totalNetContent = new ProductSkuNetContentReq(); // 如果母店为多件但没有指定是否独立包装,强制指定非独立包装 var packReq = skuItem.productSkuMultiPackReq as ProductSkuMultiPackReq2; if (packReq.skuClassification > 1 && packReq.individuallyPacked == null) @@ -1490,8 +1579,26 @@ namespace TemuKJD.KJDForms.ProductSelectForms parentSpecName = skuSpecInfo.parentSpecName, specId = skuSpecInfo.specId, specName = skuSpecInfo.specName, - vid = prodParam.productSpecPropertyReqs.FirstOrDefault(p => p.specId == skuSpecInfo.specId)?.vid, + vid = prodParam.productSpecPropertyReqs.FirstOrDefault(p => p.specId == skuSpecInfo.specId)?.vid, //可以不填 }; + if (dbProd.product_get_type == 1) // 直采商品重新生成sku + { + string draftId = prodParam.productDraftId.ParseToString(); + string parentSpecId = skuSpecItem.parentSpecId.ParseToString(); + var rst = QueryOrAddSpec(shop, draftId, parentSpecId, skuSpecItem.specName); + Thread.Sleep(Randomx.GetId(50, 100)); + if (rst.Contains("\"success\":true")) + { + long specId = BaseRegex.GetLongJson(ref rst, "specId"); + if (specId > 0) + { + skuSpecItem.specId = specId; + } + } + } + + + //前后缀映射 if (skuSpecInfo.parentSpecName == "颜色" && skuNameDic[skuSpecItem.specName] != skuSpecItem.specName) { @@ -1624,7 +1731,9 @@ namespace TemuKJD.KJDForms.ProductSelectForms aiSkuImgInfo = aiImgInfoDic[skuInfo.productSkuSpecList[0].specId.ParseToString()]; else { - var aiSkuImgLst = DouBaoImgCefForm.GetSkuImgList(prodInfo.productId.ParseToString(), skuInfo.productSkuSpecList[0].specId.ParseToString()); + string productId = prodInfo.productId.ParseToString(); + string specId = skuInfo.productSkuSpecList[0].specId.ParseToString(); + var aiSkuImgLst = DouBaoImgCefForm.GetSkuImgList(productId, specId, 5, true); if (aiSkuImgLst.Count > 0) { aiImgInfoList.AddRange(aiSkuImgLst); @@ -2201,13 +2310,19 @@ namespace TemuKJD.KJDForms.ProductSelectForms #endregion } + /// + /// 上传自定义图片 + /// + /// + /// + /// string GetCustomImg(ShopLoginInfo shop, string productDraftId) { var sImgPath = this.lstCustomImg[Randomx.GetId(lstCustomImg.Count)]; if (dicCustomImg.Keys.Contains(sImgPath)) return dicCustomImg[sImgPath]; - var md5CheckRst = CheckImgMd5(shop, productDraftId, "", BaseClass.GetFileMd5(sImgPath)); + var md5CheckRst = CheckImgMd5(shop, productDraftId, BaseClass.GetFileMd5(sImgPath)); if (!md5CheckRst.Contains("\"success\":true")) { var error = BaseRegex.GetStringJson(ref md5CheckRst, "errorMsg"); @@ -2215,12 +2330,12 @@ namespace TemuKJD.KJDForms.ProductSelectForms error = BaseRegex.GetStringJson(ref md5CheckRst, "error_msg"); return "{\"success\":false,\"status\":\"未上传\"," + "\"productDraftId\":\"" + productDraftId + "\"," + - "\"errMsg\":\"草稿箱上传失败 " + error + "\"}"; + "\"errMsg\":\"草稿箱上传失败,初始化图片上传失败 " + error + "\"}"; } var materialId = BaseRegex.GetStringJson(ref md5CheckRst, "id"); if (string.IsNullOrEmpty(materialId)) { - var imgUpSignRst = GetImgUpSign(shop, productDraftId); + var imgUpSignRst = GetUploadSign(shop, productDraftId); string signature = BaseRegex.GetStringJson(ref imgUpSignRst, "signature"); if (string.IsNullOrEmpty(signature)) { @@ -2234,7 +2349,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms var uploadImgRst = UploadImage(shop, productDraftId, sImgPath, signature); var imgUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url"); - if (string.IsNullOrEmpty(signature)) + if (string.IsNullOrEmpty(imgUrl)) { var error = BaseRegex.GetStringJson(ref uploadImgRst, "errorMsg"); if (string.IsNullOrEmpty(error)) @@ -2251,7 +2366,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms { var existImgRst = this.GetExistImg(shop, productDraftId, materialId); string imgUrl = BaseRegex.GetStringJson(ref existImgRst, "imgUrl"); - if (string.IsNullOrEmpty(materialId)) + if (string.IsNullOrEmpty(imgUrl)) { var error = BaseRegex.GetStringJson(ref existImgRst, "errorMsg"); if (string.IsNullOrEmpty(error)) @@ -2266,6 +2381,147 @@ namespace TemuKJD.KJDForms.ProductSelectForms } } + /// + /// 上传外包装图片 + /// + /// + /// + /// + /// + string UploadOuterPackageImg(ShopLoginInfo shop, string productDraftId, string sImgPath) + { + var imgUpSignRst = GetUploadSign(shop, productDraftId, "product-material-private-tag"); + string signature = BaseRegex.GetStringJson(ref imgUpSignRst, "signature"); + if (string.IsNullOrEmpty(signature)) + { + var error = BaseRegex.GetStringJson(ref imgUpSignRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref imgUpSignRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,获取图片上传signature失败 " + error + "\"}"; + } + var uploadImgRst = UploadImage(shop, productDraftId, sImgPath, signature, "product-material-private-tag"); + var imgUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url"); + + if (string.IsNullOrEmpty(imgUrl)) + { + var error = BaseRegex.GetStringJson(ref uploadImgRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref uploadImgRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,上传图片失败 " + error + "\"}"; + } + + return imgUrl; + } + + /// + /// 上传主图视频 + /// + /// + /// + /// + /// + string UploadMainVideo(ShopLoginInfo shop, string productDraftId, string sVideoPath) + { + var fileMd5 = BaseClass.GetFileMd5(sVideoPath).ToLower(); + var md5CheckRst = CheckImgMd5(shop, productDraftId, fileMd5, 0); + if (!md5CheckRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref md5CheckRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref md5CheckRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,初始化视频上传失败 " + error + "\"}"; + } + var videoId = BaseRegex.GetStringJson(ref md5CheckRst, "id"); + if (string.IsNullOrEmpty(videoId)) + { + if (sVideoPath == null) + sVideoPath = ""; + string fileName = sVideoPath.Split('\\').LastOrDefault(); + var createMRst = CreateMaterial(shop, productDraftId, fileName, fileMd5); + if (!createMRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref createMRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref createMRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,新建上传视频失败 " + error + "\"}"; + } + videoId = BaseRegex.GetStringJson(ref createMRst, "id"); + + var imgUpSignRst = GetUploadSign(shop, productDraftId, "goods-video-tag"); + string signature = BaseRegex.GetStringJson(ref imgUpSignRst, "signature"); + if (string.IsNullOrEmpty(signature)) + { + var error = BaseRegex.GetStringJson(ref imgUpSignRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref imgUpSignRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,获取视频上传签名失败 " + error + "\"}"; + } + var uploadImgRst = UploadFile(shop, productDraftId, sVideoPath, signature, fileMd5); + Thread.Sleep(Randomx.GetId(50, 100)); + var videoBaseUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url"); + if (string.IsNullOrEmpty(videoBaseUrl)) + { + var error = BaseRegex.GetStringJson(ref videoBaseUrl, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref videoBaseUrl, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,视频文件上传失败 " + error + "\"}"; + } + + var editVideoRst = EditMaterial(shop, productDraftId, videoId, videoBaseUrl, fileName.Split('.').FirstOrDefault().ParseToString()); + if (!editVideoRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref editVideoRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref editVideoRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,编辑上传视频失败 " + error + "\"}"; + } + } + var videoUrl = ""; + var vId = ""; + var videoCover = ""; + for (int i = 0; i < 20; i++) + { + Thread.Sleep(1000); + var existVideoRst = GetExistVideo(shop, productDraftId, videoId); + if (!existVideoRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref existVideoRst, "errorMsg"); + if (string.IsNullOrEmpty(error)) + error = BaseRegex.GetStringJson(ref existVideoRst, "error_msg"); + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,获取上传视频结果失败 " + error + "\"}"; + } + + videoUrl = BaseRegex.GetStringJson(ref existVideoRst, "destMaterialUrl"); + vId = BaseRegex.GetStringJson(ref existVideoRst, "vid"); + videoCover = BaseRegex.GetStringJson(ref existVideoRst, "firstImageUrl"); + if (!string.IsNullOrEmpty(videoUrl) && !string.IsNullOrEmpty(vId) && !string.IsNullOrEmpty(videoCover)) + break; + } + if (string.IsNullOrEmpty(videoUrl) || string.IsNullOrEmpty(vId)) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + productDraftId + "\"," + + "\"errMsg\":\"草稿箱上传失败,获取上传视频结果失败\"}"; + } + return "{\"url\":\"" + videoUrl + "\",\"vid\":\"" + vId + "\",\"cover\":\"" + videoCover + "\"}"; + } + /// /// 上传主图或sku等的Ai图片 /// @@ -2276,7 +2532,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms /// string UploadAiSkuImg(ShopLoginInfo shop, string productDraftId, string imgBase64, string imgMd5) { - var md5CheckRst = CheckImgMd5(shop, productDraftId, "", imgMd5); + var md5CheckRst = CheckImgMd5(shop, productDraftId, imgMd5.ToLower()); if (!md5CheckRst.Contains("\"success\":true")) { var error = BaseRegex.GetStringJson(ref md5CheckRst, "errorMsg"); @@ -2289,7 +2545,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms var materialId = BaseRegex.GetStringJson(ref md5CheckRst, "id"); if (string.IsNullOrEmpty(materialId)) { - var imgUpSignRst = GetImgUpSign(shop, productDraftId); + var imgUpSignRst = GetUploadSign(shop, productDraftId); string signature = BaseRegex.GetStringJson(ref imgUpSignRst, "signature"); if (string.IsNullOrEmpty(signature)) { @@ -2335,7 +2591,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms var uploadImgRst = UploadImage(shop, productDraftId, sImgPath, signature); var imgUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url"); - if (string.IsNullOrEmpty(signature)) + if (string.IsNullOrEmpty(imgUrl)) { var error = BaseRegex.GetStringJson(ref uploadImgRst, "errorMsg"); if (string.IsNullOrEmpty(error)) @@ -2364,6 +2620,23 @@ namespace TemuKJD.KJDForms.ProductSelectForms } } + private string CreateMaterial(ShopLoginInfo shop, string draftId, string materialName, string materialMd5) + { + string url = "https://agentseller.temu.com/phoenix-mms/material/create"; + string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=productDraftList"; + string body = @"{""folderId"":0,""createDetailList"":[{""materialType"":0,""materialMd5"":""" + materialMd5 + @""",""materialName"":""" + + materialName + @"""}]}"; + return HttpResponseBLL.PostResponse2(shop, url, body, refere); + } + private string EditMaterial(ShopLoginInfo shop, string draftId, string materialId, string materialUrl, string materialName) + { + string url = "https://agentseller.temu.com/phoenix-mms/material/edit"; + string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=productDraftList"; + string body = @"{""id"":" + materialId + @",""url"":""" + materialUrl + @""",""materialName"":""" + materialName + + @""",""uploadStatus"":1,""materialType"":0}"; + return HttpResponseBLL.PostResponse2(shop, url, body, refere); + } + private string AddDraft(ShopLoginInfo shop, string catId) { //string url = "https://seller.kuajingmaihuo.com/bg-visage-mms/product/draft/add"; @@ -2374,6 +2647,14 @@ namespace TemuKJD.KJDForms.ProductSelectForms return HttpResponseBLL.PostResponse2(shop, url, body, refere); } + private string GetCatPathList(ShopLoginInfo shop, string draftId, string catId) + { + string url = "https://agentseller.temu.com/anniston-agent-seller/category/path/list"; + string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=productDraftList"; + string body = @"{""catIds"":[" + catId + @"],""showCatEnName"":true}"; + return HttpResponseBLL.PostResponse2(shop, url, body, refere); + } + private string CreateSizeSpec(ShopLoginInfo shop, string draftId, TemuSizeSpecParam sizeParam) { //string url = "https://seller.kuajingmaihuo.com/bg-anniston-mms/sizespec/createSizeSpec"; @@ -2434,10 +2715,10 @@ namespace TemuKJD.KJDForms.ProductSelectForms return HttpResponseBLL.PostResponse2(shop, url, body, refere); } - private string CheckImgMd5(ShopLoginInfo shop, string draftId, string parentSpecId, string fileMd5) + private string CheckImgMd5(ShopLoginInfo shop, string draftId, string fileMd5, int materialType = 1) // 1图片 0视频 { string url = "https://agentseller.temu.com/phoenix-mms/material/queryByMd5"; - string body = @"{""materialType"":1,""md5IdList"":[""" + fileMd5 + @"""]}"; + string body = @"{""materialType"":" + materialType + @",""md5IdList"":[""" + fileMd5 + @"""]}"; string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=menu&st_time=" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now); @@ -2454,29 +2735,47 @@ namespace TemuKJD.KJDForms.ProductSelectForms ""materialIdList"":[" + materialId + @"],""folderId"":0,""minMaterialHeight"":800,""minMaterialWidth"":800,""maxMaterialSize"":2097152, ""proportion"":""1:1"",""proportionList"":[""1:1""],""badTagList"":[""ZH_HANS""]}"; - body = "{\"pageInfo\":{\"pageNo\":1,\"pageSize\":50},\"uploadStatusList\":[3],\"materialIdList\":[250822757735044],\"folderId\":0,\"minMaterialHeight\":800,\"minMaterialWidth\":800,\"maxMaterialSize\":2097152,\"proportion\":\"1:1\",\"proportionList\":[\"1:1\"],\"badTagList\":[\"ZH_HANS\"]}"; + //body = "{\"pageInfo\":{\"pageNo\":1,\"pageSize\":50},\"uploadStatusList\":[3],\"materialIdList\":[250822757735044],\"folderId\":0,\"minMaterialHeight\":800,\"minMaterialWidth\":800,\"maxMaterialSize\":2097152,\"proportion\":\"1:1\",\"proportionList\":[\"1:1\"],\"badTagList\":[\"ZH_HANS\"]}"; string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=menu&st_time=" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now); return HttpResponseBLL.PostResponse2(shop, url, body, refere); } - private string GetImgUpSign(ShopLoginInfo shop, string draftId) + private string GetExistVideo(ShopLoginInfo shop, string draftId, string materialId) { - string url = "https://agentseller.temu.com/general_auth/get_signature?sdk_version=js-0.0.49&tag_name=product-material-tag&scene_id=agent-seller"; - string body = @"{""bucket_tag"":""product-material-tag""}"; + string url = "https://agentseller.temu.com/phoenix-mms/material/pageQuery"; + string body = @"{""pageInfo"":{""pageNo"":1,""pageSize"":1},""videoIdList"":[" + materialId + @"]}"; + + string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=productDraftList"; + return HttpResponseBLL.PostResponse2(shop, url, body, refere); + } + + /// + /// + /// + /// + /// + /// product-material-tag 商品图片; product-material-private-tag 商品包装图 + /// + private string GetUploadSign(ShopLoginInfo shop, string draftId, string bucket_tag = "product-material-tag") + { + string url = "https://agentseller.temu.com/general_auth/get_signature?sdk_version=js-0.0.49&tag_name=" + bucket_tag + "&scene_id=agent-seller"; + string body = @"{""bucket_tag"":""" + bucket_tag + @"""}"; string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=menu&st_time=" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now); + if (bucket_tag == "product-material-private-tag" || bucket_tag == "goods-video-tag") + refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=productDraftList"; return HttpResponseBLL.PostResponse2(shop, url, body, refere); } - private string UploadImage(ShopLoginInfo shop, string draftId, string fileFullName, string uploadSign) + private string UploadImage(ShopLoginInfo shop, string draftId, string fileFullName, string uploadSign, string tag_name = "product-material-tag") { if (fileFullName == null) fileFullName = ""; string fileName = fileFullName.Split('\\').LastOrDefault(); - string url = "https://agentseller.temu.com/api/galerie/v3/store_image?sdk_version=js-0.0.49&tag_name=product-material-tag"; + string url = "https://agentseller.temu.com/api/galerie/v3/store_image?sdk_version=js-0.0.49&tag_name=" + tag_name; string boundary = "----WebKitFormBoundarybJAaZCwJYanqPxhq"; string body = @"------WebKitFormBoundarybJAaZCwJYanqPxhq Content-Disposition: form-data; name=""url_width_height"" @@ -2495,10 +2794,49 @@ Content-Disposition: form-data; name=""upload_sign"" "; string refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=menu&st_time=" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now); + if (tag_name == "product-material-private-tag") + refere = "https://agentseller.temu.com/goods/edit?productDraftId=" + draftId + "&from=productDraftList"; return HttpResponseBLL.PostResponseUpload(shop, url, body, refere, boundary); } + private string UploadFile(ShopLoginInfo shop, string draftId, string fileFullName, string uploadSign, string fileMd5, string tag_name = "goods-video-tag") + { + string abc = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + string boundaryRandom = ""; + while (boundaryRandom.Length < 16) + boundaryRandom += abc[Randomx.GetId(abc.Length)]; + if (fileFullName == null) + fileFullName = ""; + string fileName = fileFullName.Split('\\').LastOrDefault(); + string url = "https://agentseller.temu.com/api/galerie/v1/store_video?sdk_version=js-0.0.49&tag_name=" + tag_name; + string boundary = "----WebKitFormBoundaryeZuqpVO6jYOF5Y6S"; + //boundary = "----WebKitFormBoundary" + boundaryRandom; + string body = @"--" + boundary + @" +Content-Disposition: form-data; name=""file""; filename=""" + fileName + @""" +Content-Type: video/mp4 + +" + fileFullName + @" +--" + boundary + @" +Content-Disposition: form-data; name=""create_media"" + +true +--" + boundary + @" +Content-Disposition: form-data; name=""content_md5"" + +" + fileMd5 + @" +--" + boundary + @" +Content-Disposition: form-data; name=""sign"" + +" + uploadSign + @" +--" + boundary + @"-- +"; + string refere = "https://agentseller.temu.com/goods/edit?productDraftId=8873526416&from=productDraftList"; + + var result = HttpResponseBLL.PostResponseUpload(shop, url, body, refere, boundary); + return result; + } + private string translate(ShopLoginInfo shop, string text) { string url = "https://fanyi.baidu.com/ait/text/translate"; diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.resx b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.resx index 1aab446..dfde30c 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.resx +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.resx @@ -141,6 +141,9 @@ True + + True + True diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs index 71688ec..0f52cc5 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs @@ -39,6 +39,7 @@ 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.label14 = new System.Windows.Forms.Label(); @@ -1475,6 +1476,8 @@ // // colSupplierName // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; this.colSupplierName.HeaderText = "店铺名称"; this.colSupplierName.Name = "colSupplierName"; this.colSupplierName.ReadOnly = true; @@ -1548,8 +1551,8 @@ // // colProductName // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -1557,8 +1560,8 @@ // // colProductCat // - dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductCat.DefaultCellStyle = dataGridViewCellStyle6; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7; this.colProductCat.HeaderText = "商品类目"; this.colProductCat.Name = "colProductCat"; this.colProductCat.ReadOnly = true; @@ -1591,8 +1594,8 @@ // // colAddTime // - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colAddTime.DefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle8; this.colAddTime.HeaderText = "添加时间"; this.colAddTime.Name = "colAddTime"; this.colAddTime.ReadOnly = true; @@ -1600,8 +1603,8 @@ // // colMdyTime // - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMdyTime.DefaultCellStyle = dataGridViewCellStyle9; this.colMdyTime.HeaderText = "上传时间"; this.colMdyTime.Name = "colMdyTime"; this.colMdyTime.ReadOnly = true; @@ -1616,8 +1619,8 @@ // // colSubSaNick // - dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSubSaNick.DefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSubSaNick.DefaultCellStyle = dataGridViewCellStyle10; this.colSubSaNick.HeaderText = "二级超管"; this.colSubSaNick.Name = "colSubSaNick"; this.colSubSaNick.ReadOnly = true; @@ -1632,8 +1635,8 @@ // // colNotes // - dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colNotes.DefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colNotes.DefaultCellStyle = dataGridViewCellStyle11; this.colNotes.HeaderText = "备注"; this.colNotes.Name = "colNotes"; this.colNotes.ReadOnly = true; @@ -1783,32 +1786,6 @@ private System.Windows.Forms.ComboBox cmbNotes; private System.Windows.Forms.ComboBox cmbStatus; private DevComponents.DotNetBar.PanelEx btnDel; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; - private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; - private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; - private System.Windows.Forms.DataGridViewLinkColumn colInShop; - private System.Windows.Forms.DataGridViewLinkColumn colLogin; - private System.Windows.Forms.DataGridViewLinkColumn colImportCookies; - private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies; - private System.Windows.Forms.DataGridViewLinkColumn colSpuId; - private System.Windows.Forms.DataGridViewLinkColumn colSkcId; - private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; - private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; - private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; - private System.Windows.Forms.DataGridViewLinkColumn colProductCat; - private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; - private System.Windows.Forms.DataGridViewTextBoxColumn colStatus; - private System.Windows.Forms.DataGridViewLinkColumn colDraftId; - private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; - private System.Windows.Forms.DataGridViewTextBoxColumn colMdyTime; - private System.Windows.Forms.DataGridViewTextBoxColumn colSubSa; - private System.Windows.Forms.DataGridViewTextBoxColumn colSubSaNick; - private System.Windows.Forms.DataGridViewTextBoxColumn colUserNotes; - private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; - private System.Windows.Forms.DataGridViewLinkColumn colEditNotes; - private System.Windows.Forms.DataGridViewLinkColumn ColDelete; - private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; private DevComponents.DotNetBar.PanelEx btnExport; private DevComponents.DotNetBar.PanelEx btnStop; private System.Windows.Forms.Label label21; @@ -1846,5 +1823,31 @@ private System.Windows.Forms.DataGridViewLinkColumn colToPorductPage; private System.Windows.Forms.DataGridViewLinkColumn colToDraftPage; private UserComponent.UcCheckBox chkSkuRandomLetter; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewLinkColumn colInShop; + private System.Windows.Forms.DataGridViewLinkColumn colLogin; + private System.Windows.Forms.DataGridViewLinkColumn colImportCookies; + private System.Windows.Forms.DataGridViewLinkColumn colCopyCookies; + private System.Windows.Forms.DataGridViewLinkColumn colSpuId; + private System.Windows.Forms.DataGridViewLinkColumn colSkcId; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; + private System.Windows.Forms.DataGridViewLinkColumn colProductCat; + private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colStatus; + private System.Windows.Forms.DataGridViewLinkColumn colDraftId; + private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colMdyTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colSubSa; + private System.Windows.Forms.DataGridViewTextBoxColumn colSubSaNick; + private System.Windows.Forms.DataGridViewTextBoxColumn colUserNotes; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewLinkColumn colEditNotes; + private System.Windows.Forms.DataGridViewLinkColumn ColDelete; + private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs index 1a28bc8..0dbba0f 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs @@ -975,11 +975,13 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms prodParam.productCarouseVideoReqList = JsonHelper.DeserializeJsonToList(carouseVideoVOList); if (prodParam.productCarouseVideoReqList == null) prodParam.productCarouseVideoReqList = new List(); - //此处打开商品编辑详情无法获取到,如何查询存疑 + //此处打开商品编辑详情无法获取到,如何查询存疑,暂时手动填写 prodParam.productComplianceStatementReq = new ProductComplianceStatementReq { - protocolVersion = "V1.0", - protocolUrl = "https://bdl.cdnfe.com/upload_bdl/seller-protocol/00f56a69-7bee-4768-8cef-e1682ffd58e3.html", + //protocolVersion = "V1.0", + //protocolUrl = "https://bdl.cdnfe.com/upload_bdl/seller-protocol/00f56a69-7bee-4768-8cef-e1682ffd58e3.html", + protocolVersion = "V2.0", + protocolUrl = "https://dl.kwcdn.com/seller-public-file-us-tag/2079f603b6/56888d17d8166a6700c9f3e82972e813.html", }; prodParam.productDetailVideoReqList = prodInfo.detailVideoVOList; prodParam.productGuideFileI18nReqs = prodInfo.productGuideFileI18nList; diff --git a/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs b/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs index 99db259..ed29282 100644 --- a/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs +++ b/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs @@ -83,6 +83,7 @@ namespace TemuKJD.KJDForms.ShopForms { endTime = this.dtpEndDate.Value.Date.AddDays(1); startTime = endTime.AddMonths(-1); + startTime = endTime.AddDays(-20); } cancellationTokenSource = new CancellationTokenSource(); var t = Task.Run(() => @@ -430,7 +431,7 @@ namespace TemuKJD.KJDForms.ShopForms string postData = JsonHelper.SerializeObject(packageParam); //634418210534062 测试店铺 html = ReturnPackagePostResponse(shop, url2, postData, referer2, timestamp.ParseToString(), sign); - Thread.Sleep(Randomx.GetId(60)); + Thread.Sleep(Randomx.GetId(150)); string rst = ""; if (html.Contains("\"code\":200")) { diff --git a/TEMUKJD/StartUp.cs b/TEMUKJD/StartUp.cs index 938c956..cf6cf4d 100644 --- a/TEMUKJD/StartUp.cs +++ b/TEMUKJD/StartUp.cs @@ -115,27 +115,42 @@ namespace TemuKJD ReturnPackageDetailForm retrunPackageForm = new ReturnPackageDetailForm(null); retrunPackageForm.Show(); retrunPackageForm.Hide(); - Dictionary dicUpReturn = new Dictionary(); + Dictionary dicGetReturnPackDate = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("get_return_package_date"); + if (dicGetReturnPackDate == null) + dicGetReturnPackDate = new Dictionary(); while (true) { -#if DEBUG -#else +//#if DEBUG +//#else + var url = BaseClass.BuildObjString("user/is_get_return_package"); + var data = Work.UserLogin.GetSignaturex(); + + int r2 = DateTime.Now.Millisecond; + data += "&r2=" + r2; + data += "&c2=" + Work.UserLogin.Encryption(r2); + string rstHtml = GetHtml.PostUtf8(url, data); + var isGet = BaseRegex.GetStringJson(ref rstHtml, "is_get").ParseToBool(); + foreach (var shop in GlobalConfig.ShopLoginList) { + if (!isGet) + break; + if (string.IsNullOrEmpty(shop.ShopId)) continue; - if (dicUpReturn.Keys.Contains(shop) && dicUpReturn[shop] == DateTime.Now.ToString("yyyyMMdd")) //今日已获取过 + if (dicGetReturnPackDate.Keys.Contains(shop.ShopId) && dicGetReturnPackDate[shop.ShopId] == DateTime.Now.ToString("yyyyMMdd")) //今日已获取过 continue; var rst = retrunPackageForm.GetReturnPackage(shop, true); // 后台读取退货信息 if (rst == false && shop.LoginStatus == "登录成功" && shop.LoginStatus2 == "国际版在线") { - dicUpReturn[shop] = DateTime.Now.ToString("yyyyMMdd"); + dicGetReturnPackDate[shop.ShopId] = DateTime.Now.ToString("yyyyMMdd"); + NaiBa.Util.Helper.ConfigHelper.SaveConfig>("get_return_package_date", dicGetReturnPackDate); } } -#endif +//#endif #if DEBUG for (int i = 0; i < 360; i++) { diff --git a/TEMUKJD/ToolForms/DouBaoImgCefForm.cs b/TEMUKJD/ToolForms/DouBaoImgCefForm.cs index f18f3be..d75d0c4 100644 --- a/TEMUKJD/ToolForms/DouBaoImgCefForm.cs +++ b/TEMUKJD/ToolForms/DouBaoImgCefForm.cs @@ -197,12 +197,17 @@ namespace TemuKJD.ToolForms } - public static List GetSkuImgList(string prodId, string specId) + public static List GetSkuImgList(string prodId, string specId, int pageSize = 50, bool isRandom = false) { var url = BaseClass.BuildObjString("product/get_sku_image_list"); var data = UserLogin.GetSignaturex(); data += "&search_product_id=" + prodId; data += "&search_spec_id=" + specId; + data += "&page_size=" + pageSize; + if (isRandom) + { + data += "&is_random=true"; + } var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))