1前端采集数据管理端直传上货 2店铺jit 完成15%

This commit is contained in:
wule committed 2025-11-14 19:19:23 +08:00
1 parent 41a3cb3e34
commit 94f933a5e8
32 files changed
+3768 -466

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 669;
public static int VersionCount = 673;
//public static int VersionCount = 613;
/// <summary>
+4
View File
@@ -37,6 +37,10 @@ namespace AllBase.Model.Result
/// </summary>
public int select_count { get; set; }
public int select_total_count { get; set; }
/// <summary>
/// 采集来源 0母店采集 1前端直采
/// </summary>
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; }
@@ -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
}
+38 -15
View File
@@ -28,10 +28,16 @@ namespace AllBase.Model.Result
public List<long?> sizeTemplateIds { get; set; }
public List<long?> showSizeTemplateIds { get; set; }
public object imageLanguageList { get; set; }
/// <summary>
/// 商品主图
/// </summary>
public List<string> carouselImageUrls { get; set; }
public List<object> guideFilePageImages { get; set; }
public List<object> carouselImageI18nVOList { get; set; }
public List<object> carouseVideoVOList { get; set; }
/// <summary>
/// 主图视频
/// </summary>
public List<carouseVideoVo> carouseVideoVOList { get; set; }
public List<object> detailVideoVOList { get; set; }
public string materialImgUrl { get; set; }
public List<TemuOuterPackageImage> outerPackageImages { get; set; }
@@ -44,23 +50,40 @@ namespace AllBase.Model.Result
public TemuProductNonAuditExtAttr productNonAuditExtAttr { get; set; }
public List<TemuProductSkc> productSkcList { get; set; }
public List<object> goodsAdvantageLabelVOList { get; set; }
/// <summary>
/// 详情图
/// </summary>
public List<TemuGoodsLayerDecorationVO> goodsLayerDecorationVOList { get; set; }
public List<object> goodsLayerDecorationCustomizeI18nVOList { get; set; }
public List<object> productGuideFileI18nList { get; set; }
public List<object> productGuideFileNewVOList { get;set; }
public List<TemuProductImageProcessExtVO> 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<object> 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<object> inProcessEditTaskList { get; set; } = new List<object>();
}
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
@@ -6,7 +6,243 @@ using System.Threading.Tasks;
namespace AllBase.Model.Result.TemuResult
{
public class TemuWebClientProductInfo
public class TemuWebClientProductInfo // store
{
/// <summary>
/// 有商品类目名称信息
/// </summary>
public List<crumbOptInfo> crumbOptList { get; set; }
public clientGoodsInfo goods { get; set; }
public List<clientSkuInfo> sku { get; set; }
/// <summary>
/// 详情图简单列表
/// </summary>
public List<productDetailFlatInfo> productDetailFlatList { get; set; }
/// <summary>
/// 详情图完整列表
/// </summary>
public productDetailInfo productDetail { get; set; }
/// <summary>
/// 商品页面左边所有图片列表(可能是主图+sku图)
/// </summary>
public List<string> preloadFirstImgList { get; set; }
public List<goodsPropertyInfo> 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<floorInfo> floorList { get; set; }
}
public class floorInfo
{
public List<productDetailFlatInfo> items { get; set; }
public int? type { get; set; } // 1,
/// <summary>
/// "marginBottom": 5
/// </summary>
public Dictionary<string, object> 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<object> salePriceRich { get; set; }
public List<object> 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",
/// <summary>
/// 购买限量
/// </summary>
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<clientSpec> 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",
/// <summary>
/// 库存数量
/// </summary>
public int? stockQuantity { get; set; } // 635,
public int? priority { get; set; } // 3,
public object reduction { get; set; }
public List<object> sizeDescHoverLists { get; set; }
public object control { get; set; }
/// <summary>
/// "salePrice": "534",
/// "skuModel": "CLeboY2igAQYohM=",
/// "isOnsale": "1",
/// "reduction": "820",
/// "business_reduction": "820",
/// "limitQuantity": "99",
/// "unitMainPrice": "0",
/// "showBestPriceRich": "0"
/// </summary>
public Dictionary<string, string> 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",
/// <summary>
/// "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": "售自"
/// </summary>
public Dictionary<string, string> saleInfo { get; set; }
public string sideSalesTip { get; set; } // "已售 1万件",
public int? isLocalGoods { get; set; } // 0,
public List<long> 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; } // "",
/// <summary>
/// 主图和sku图列表
/// </summary>
public List<galleryInfo> gallery { get; set; }
public List<goodsPropertyInfo> 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; }
/// <summary>
/// 主图列表
/// </summary>
public List<galleryInfo> bannerList { get; set; }
public List<object> detailList { get; set; }
public List<object> customImageList { get; set; }
public List<object> skc { get; set; }
}
public class galleryInfo
{
/// <summary>
/// 主图(含视频)或sku 数字下标, 主图 > 0,sku从-1开始-2,-3依次类推
/// </summary>
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,
/// <summary>
/// 主图或sku图顺序数字从1开始1、2、3依次类推,主图视频为0
/// </summary>
public int? priority { get; set; } // 0,
/// <summary>
/// 1 主图或视频; -1 sku图
/// </summary>
public int? type { get; set; } // 1,
public List<showTextSpecInfo> 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<string> 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
}
}
@@ -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);
}
@@ -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\":\"输入为空\"}";
}
}
}
@@ -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; }
}
}
@@ -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
}
}
@@ -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()
{
+1
View File
@@ -8,6 +8,7 @@
<add name="ConnKJD" connectionString="Max Pool Size=512;Database='kjd';Data Source='nj-cynosdbmysql-grp-hl51pkfr.sql.tencentcdb.com';Port=27660;User Id='kjd';Password='Temukjd0625';Charset=utf8mb4;"/>
<add name="UpdateVersion" connectionString="525"/>
<add name="LowVersion" connectionString="523"/>
<add name="GetReturnPackage" connectionString="true"/>
<add name="UpdateExe" connectionString="http://1.13.195.131:9000/Download/Update.exe"/>
<add name="UpdateFiles" connectionString="http://1.13.195.131:9000/Download/Update525.zip"/>
<add name="UpdateExeChk" connectionString="324527ACE5020DCA77D65A5037718B65"/>
+9
View File
@@ -195,6 +195,12 @@
<Compile Include="KJDForms\ProductForms\TemuAdsForm.Designer.cs">
<DependentUpon>TemuAdsForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductForms\TemuJitForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ProductForms\TemuJitForm.Designer.cs">
<DependentUpon>TemuJitForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ProductSelectForms\DbProductCategorySearch.cs">
<SubType>Form</SubType>
</Compile>
@@ -881,6 +887,9 @@
<EmbeddedResource Include="KJDForms\ProductForms\TemuAdsForm.resx">
<DependentUpon>TemuAdsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductForms\TemuJitForm.resx">
<DependentUpon>TemuJitForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ProductSelectForms\DbProductCategorySearch.resx">
<DependentUpon>DbProductCategorySearch.cs</DependentUpon>
</EmbeddedResource>
+9 -5
View File
@@ -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;
+8 -1
View File
@@ -27,6 +27,7 @@ namespace TemuKJD.KJDForms.AdminForms
public Lazy<ProductThirdSelectListManageForm> productThirdSelectListManageForm = new Lazy<ProductThirdSelectListManageForm>();
public Lazy<AdminProductPriceCheckForm> adminProductPriceCheckForm = new Lazy<AdminProductPriceCheckForm>();
public Lazy<JoinDeliveryFrom> joinDeliveryFrom = new Lazy<JoinDeliveryFrom>();
public Lazy<TemuJitForm> jitForm = new Lazy<TemuJitForm>();
public AdminForm()
{
@@ -38,7 +39,7 @@ namespace TemuKJD.KJDForms.AdminForms
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "超级用户管理", "超级店铺管理", "选品数据库", "选品加价管理", "认领待上传", "库存上传", "商品核价",
"加入发货台" };
"加入发货台", "开通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();
@@ -394,19 +394,26 @@ namespace TemuKJD.KJDForms.AdminForms
}
public List<ShopLoginInfo> 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<ShopLoginInfo> 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<ShopLoginInfo> list = new List<ShopLoginInfo>();
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);
+22 -22
View File
@@ -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;
+945
View File
@@ -0,0 +1,945 @@
namespace TemuKJD.KJDForms.ProductForms
{
partial class TemuJitForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
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<object>(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;
}
}
@@ -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<ShopLoginInfo> lstAdminShopInfo { get; set; } = new List<ShopLoginInfo>();
public List<TemuCheckPriceInfo> lstCheckPriceInfo = new List<TemuCheckPriceInfo>();
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<SetJitConfig>("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<string> userShopIdList = dgvShop.Rows.Cast<DataGridViewRow>()
.Where(r => r.Cells["colSelect"].Value.ParseToBool())
.Select(r => r.Cells["colShopId"].Value.ParseToString() + r.Cells["colUser"].Value.ParseToString()).ToList();
if (InvokeRequired)
{
Invoke(new Action(() =>
{
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<ShopLoginInfo> AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50)
{
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
pageCount = 1;
var url = BaseClass.BuildObjString("shop/admin_get_shop_list");
if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
url = BaseClass.BuildObjString("shop/sub_sa_get_select_prod_shop");
var data = UserLogin.GetSignaturex() +
"&page=" + page +
"&page_size=" + pageSize +
"&shop_ids=" + txtShopId.Text.Trim().Trim(',') +
"&shop_names=" + txtShopName.Text.Trim().Trim(',') +
"&search_notes=" + txtNotes.Text.Trim().Trim(',');
if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
data += "&operate_sub_sa_name=" + BaseClass.UserName;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html)
|| !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
{
return list;
}
int count = BaseRegex.GetIntJson(ref html, "count");
pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
pageCount = Math.Max(pageCount, 1);
return ShopBLL.DeserializationShop(html);
}
void displayShopStatus(ShopLoginInfo shop)
{
bool canUse = shop.LoginStatus2 == "国际版在线";
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName);
foreach (var row in rows)
{
row.Cells["colCanUse"].Value = canUse;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
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<DataGridViewRow>().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<string> extCodeLst = new List<string>();
List<TemuCheckPriceInfo> checkPriceInfoTmpLst = new List<TemuCheckPriceInfo>();
foreach (var item in jArr)
{
var jStr = JsonHelper.SerializeObject(item);
TemuCheckPriceInfo priceInfo = JsonHelper.DeserializeJsonToObject<TemuCheckPriceInfo>(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;
}
}
@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colUser.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCanUse.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMessage.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProdIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colOrderId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductSkcPic.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProdName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSkuName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colExtCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colPrcie.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCreatTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMsg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
@@ -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;
}
}
@@ -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;
}
}
}
@@ -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;
@@ -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<ShopLoginInfo> lstAdminShopInfo = new List<ShopLoginInfo>(); // 服务端直传店铺列表
List<KJDDBProduct> lstTemuDbProduct = new List<KJDDBProduct>();
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<KJDDBProduct> GetProductList(out int pageCount, int page = 1, int pageSize = 200)
{
List<KJDDBProduct> list = new List<KJDDBProduct>();
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)
/// <summary>
/// 商品认领或者直传
/// </summary>
/// <param name="prods"></param>
/// <param name="prodSelectCount">商品上传(直传)次数</param>
/// <param name="isDbToDb">数据直传</param>
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<DataGridViewRow>().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<DataGridViewRow>().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<TemuWebClientProductInfo>(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<object>();
product.carouselImageUrls = new List<string>();
foreach (var item in clientProdInfo.goods.bannerList)
{
product.carouselImageUrls.Add(item.url);
}
product.carouseVideoVOList = new List<carouseVideoVo>(); // 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<object>();
product.editTaskSupportI18nLanguages = null;
product.goodsAdvantageLabelVOList = new List<object>();
product.goodsI18nList = new List<object>();
product.goodsId = clientProdInfo.goods.goodsId;
product.goodsLayerDecorationCustomizeI18nVOList = new List<object>();
product.goodsLayerDecorationVOList = new List<TemuGoodsLayerDecorationVO>(); // 详情图
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<TemuContent>(),
};
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<object>();
product.imageLanguageList = null;
product.inProcessAddSizeSpecEditTask = null;
product.inProcessEditTaskList = new List<object>();
product.isImproveSalesInfo = true;
product.mainParentSpecIds = new List<object>();
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<TemuOuterPackageImage>(); // 获取不到图片,填第一张主图又会报错,此处不填,到上货时上传第一张主图
//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<object>();
product.productGuideFileNewVOList = new List<object>();
product.productGuideFileRejectVO = null;
product.productI18nList = new List<object>();
product.productId = clientProdInfo.goods.goodsId; // 此处获取不到productId,直接填前台goodsId
product.productImageProcessExtVOList = new List<TemuProductImageProcessExtVO>(); // 这个数据好像没用,暂时不填
product.productLocalExtAttr = new TemuProductLocalExtAttr() { materialMultiLanguages = new List<object>() };
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<TemuProductProperty>();
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>();
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<object>();
skcInfo.productSkcId = clientProdInfo.goods.goodsId; // 此处获取不到SkcId,直接填前台goodsId
skcInfo.productSkcImageExtList = new List<TemuProductSkcImageExt>();
skcInfo.productSkcImageExtList.Add(new TemuProductSkcImageExt()
{
imgUrl = skcInfo.previewImgUrls.FirstOrDefault(),
imgTag = 0,
isOcr = null,
});
skcInfo.productSkcImageProcessExtVOList = new List<TemuProductSkcImageExt>();
skcInfo.productSkcImageProcessExtVOList.Add(new TemuProductSkcImageExt()
{
imgUrl = skcInfo.previewImgUrls.FirstOrDefault(),
imgTag = 0,
isOcr = null,
});
skcInfo.productSkcSpecList = new List<TemuProductSkcSpec>();
skcInfo.productSkcSpecList.Add(new TemuProductSkcSpec
{
parentSpecId = 0,
parentSpecName = "",
specId = 0,
specName = "",
unitSpecName = null,
});
skcInfo.productSkcWhExtAttr = new TemuProductSkcWhExtAttr() { isBasePlate = 0, };
skcInfo.productSkuList = new List<TemuProductSku>();
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<TemuProductSkuImageProcessExtVO>();
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<object>() },
productSkuNetContent = new TemuProductSkuNetContent(),
};
skuInfo.productSkuSensitiveApprove = new TemuProductSkuSensitiveApprove
{
productSkuId = sku.skuId,
sensitiveCateProblem = false,
sensitiveLimitProblem = false,
};
skuInfo.productSkuSpecList = new List<TemuProductSkuSpec>();
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<object>();
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<object>(),
productSkuSensitiveAttr = new TemuProductSkuSensitiveAttr()
{
isForce2Normal = false,
force2NormalTypes = null,
isSensitive = 0,
sensitiveList = new List<object>(),
sensitiveTypes = new List<object>(),
},
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<TemuProductSpecPropertyVO>(); // 此处如果不填商品无法提交到未发布
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<object>(),
// 包装形状和包装类型
productOuterPackage = new TemuProductOuterPackage() { packageShape = 0, packageType = 0, },
// 商品产地 6广东 31浙江
productOrigin = new TemuProductOrigin() { countryName = "China", countryShortName = "CN", region2Id = 43000000000006, },
productOriginCertFiles = new List<object>(),
copyFromProductId = null,
personalizationSwitch = null,
newProductCatMisplace = new TemuNewProductCatMisplace() { feedback = null, matchMisplace = false, recCategoriesList = new List<object>(), },
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<DataGridViewRow>()
.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("未选择店铺!");
}
}
}
}
@@ -117,6 +117,24 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colUserName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSubUserName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -150,6 +168,9 @@
<metadata name="colSelectTotalCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProdGetType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_notes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -165,6 +186,9 @@
<metadata name="colAddTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSelectProd.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_edit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -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;
}
}
@@ -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<TemuDBProductSelect> 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<Match>().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<TemuCategoryTemplateInfo> categoryTemplateList = new List<TemuCategoryTemplateInfo>();
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<object>();
prodParam.materialImgUrl = prodInfo.materialImgUrl;
@@ -1080,15 +1072,45 @@ namespace TemuKJD.KJDForms.ProductSelectForms
prodInfo.productLocalExtAttr.materialMultiLanguages : new List<object>();
prodParam.personalizationSwitch = prodInfo.productWhExtAttr.personalizationSwitch.ParseToInt();
var carouseVideoVOList = JsonHelper.SerializeObject(prodInfo.carouseVideoVOList);
prodParam.productCarouseVideoReqList = JsonHelper.DeserializeJsonToList<productCarouseVideoReqItem>(carouseVideoVOList);
// 主图视频
var videoList = new List<carouseVideoVo>();
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<productCarouseVideoReqItem>(carouseVideoVOListStr);
if (prodParam.productCarouseVideoReqList == null)
prodParam.productCarouseVideoReqList = new List<productCarouseVideoReqItem>();
//此处打开商品编辑详情无法获取到,如何查询存疑
//此处打开商品编辑详情无法获取到,如何查询存疑,暂时手动填写
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<object>();
//产品包装图
prodParam.productOuterPackageImageReqs = new List<ProductOuterPackageImageReqsItem>();
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<ProductPropertyReqsItem>();
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<MainProductSkuSpecReqsItem>();
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
}
/// <summary>
/// 上传自定义图片
/// </summary>
/// <param name="shop"></param>
/// <param name="productDraftId"></param>
/// <returns></returns>
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
}
}
/// <summary>
/// 上传外包装图片
/// </summary>
/// <param name="shop"></param>
/// <param name="productDraftId"></param>
/// <param name="sImgPath"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 上传主图视频
/// </summary>
/// <param name="shop"></param>
/// <param name="productDraftId"></param>
/// <param name="sVideoPath"></param>
/// <returns></returns>
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 + "\"}";
}
/// <summary>
/// 上传主图或sku等的Ai图片
/// </summary>
@@ -2276,7 +2532,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms
/// <returns></returns>
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);
}
/// <summary>
///
/// </summary>
/// <param name="shop"></param>
/// <param name="draftId"></param>
/// <param name="bucket_tag">product-material-tag 商品图片; product-material-private-tag 商品包装图</param>
/// <returns></returns>
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";
@@ -141,6 +141,9 @@
<metadata name="colCopyCookies.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProdGetType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSpuId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -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;
}
}
@@ -975,11 +975,13 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
prodParam.productCarouseVideoReqList = JsonHelper.DeserializeJsonToList<productCarouseVideoReqItem>(carouseVideoVOList);
if (prodParam.productCarouseVideoReqList == null)
prodParam.productCarouseVideoReqList = new List<productCarouseVideoReqItem>();
//此处打开商品编辑详情无法获取到,如何查询存疑
//此处打开商品编辑详情无法获取到,如何查询存疑,暂时手动填写
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;
@@ -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"))
{
+21 -6
View File
@@ -115,27 +115,42 @@ namespace TemuKJD
ReturnPackageDetailForm retrunPackageForm = new ReturnPackageDetailForm(null);
retrunPackageForm.Show();
retrunPackageForm.Hide();
Dictionary<ShopLoginInfo, string> dicUpReturn = new Dictionary<ShopLoginInfo, string>();
Dictionary<string, string> dicGetReturnPackDate = NaiBa.Util.Helper.ConfigHelper.LoadConfig<Dictionary<string, string>>("get_return_package_date");
if (dicGetReturnPackDate == null)
dicGetReturnPackDate = new Dictionary<string, string>();
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<Dictionary<string, string>>("get_return_package_date", dicGetReturnPackDate);
}
}
#endif
//#endif
#if DEBUG
for (int i = 0; i < 360; i++)
{
+6 -1
View File
@@ -197,12 +197,17 @@ namespace TemuKJD.ToolForms
}
public static List<AiSkuImgInfo> GetSkuImgList(string prodId, string specId)
public static List<AiSkuImgInfo> 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"))