diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index c65c837..8a8a80a 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -187,6 +187,8 @@ + + @@ -194,6 +196,7 @@ + diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 0148872..dbf606a 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 596; + public static int VersionCount = 597; //public static int VersionCount = 596; /// diff --git a/AllBase/Model/Param/PDDProdParam/PDDActivityPriceCheckParam.cs b/AllBase/Model/Param/PDDProdParam/PDDActivityPriceCheckParam.cs new file mode 100644 index 0000000..b7b3eef --- /dev/null +++ b/AllBase/Model/Param/PDDProdParam/PDDActivityPriceCheckParam.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Param.PDDProdParam +{ + public class PDDActivityPriceCheckParam + { + public long? activity_id { get; set; } + public int? low_price_check_source_type { get; set; } + public List goods_list { get; set; } + } + + public class GoodsParam + { + public long? goods_id { get; set; } + public List sku_type_list { get; set; } + } + + public class SkuTypeItem + { + public string sku_activity_price_type { get; set; } + public List sku_activity_price_list { get; set; } + } + + public class SkuActivityPriceItem + { + public int? sku_activity_price { get; set; } + public long? sku_id { get; set; } + } +} diff --git a/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs b/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs new file mode 100644 index 0000000..6ae2107 --- /dev/null +++ b/AllBase/Model/Param/PDDProdParam/PDDActivitySubmitParam.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Param.PDDProdParam +{ + public class PDDActivitySubmitParam + { + public long? activity_id { get; set; } = 20981; + public List goods_volist { get; set; } = new List(); + public create_protocol_vo_item create_protocol_vo { get; set; } = new create_protocol_vo_item(); + public create_outer_activity_price_ratio_vo_item create_outer_activity_price_ratio_vo { get; set; } = new create_outer_activity_price_ratio_vo_item(); + public enroll_source_ctx_item enroll_source_ctx { get; set; } = new enroll_source_ctx_item(); + public string behavior_collection_v1_cas_boost_factor { get; set; } = "dXlyaGxldXItNDkwOTQzMTM0LTE3NTgzNzMzNDQwMjE="; + } + + public class enroll_source_ctx_item + { + public int? enroll_type { get; set; } = 34; + public string scene_full_coverage { get; set; } = "mmsActQuickEnrollMultiActivityRealTableV1"; + public string source_type { get; set; } = "PROMO-OwnHome_MultiActEnrollMMS"; + } + + public class create_outer_activity_price_ratio_vo_item + { + public bool? merchant_confirm_outer_activity_price_ratio { get; set; } = true; + } + + public class create_protocol_vo_item + { + public bool? need_create_cost_template { get; set; } = true; + } + + public class goods_vo_param + { + public long? goods_id { get; set; } + public create_material_vo_param create_material_vo { get; set; } = new create_material_vo_param(); + public view_confirmed_goods_protocol_vo_item view_confirmed_goods_protocol_vo { get; set; } = new view_confirmed_goods_protocol_vo_item(); + public create_activity_price_vo_item create_activity_price_vo { get; set; } = new create_activity_price_vo_item(); + } + + public class create_activity_price_vo_item + { + public List create_sku_vos { get; set; } = new List(); + public create_traffic_protect_vo_item create_traffic_protect_vo { get; set; } = new create_traffic_protect_vo_item(); + public object create_quantity_vo { get; set; } = new object(); + } + + public class create_traffic_protect_vo_item + { + public int? max_cut_price_amount { get; set; } = 100; + } + + public class create_sku_vo_item + { + public sku_front_ctx_vo_item sku_front_ctx_vo { get; set; } + public int? sku_activity_price { get; set; } + public long? sku_id { get; set; } + } + + public class sku_front_ctx_vo_item + { + public int? filling_sku_price { get; set; } + public int? gear_rule { get; set; } + public int? require_price { get; set; } + } + + public class view_confirmed_goods_protocol_vo_item + { + public object confirm_hit_cut_price { get; set; } = null; + } + + public class create_material_vo_param + { + public object create_goods_image_vo { get; set; } = new object(); + } +} + diff --git a/AllBase/Model/Param/PDDProdParam/PDDProductUploadParam.cs b/AllBase/Model/Param/PDDProdParam/PDDProductUploadParam.cs index abd438c..ec9a18a 100644 --- a/AllBase/Model/Param/PDDProdParam/PDDProductUploadParam.cs +++ b/AllBase/Model/Param/PDDProdParam/PDDProductUploadParam.cs @@ -164,7 +164,8 @@ namespace AllBase.Model.Param.PDDProdParam public int? is_sku_pre_sale { get; set; } = 0; public int? is_group_pre_sale { get; set; } = 0; - public List goods_properties { get; set; } + //public List goods_properties { get; set; } + public List goods_properties { get; set; } public object is_goods_copy { get; set; } public bool? is_auto_save { get; set; } = false; public string validate_message { get; set; } diff --git a/AllBase/Model/Result/KJDDBProduct.cs b/AllBase/Model/Result/KJDDBProduct.cs index d4c99c4..56c501a 100644 --- a/AllBase/Model/Result/KJDDBProduct.cs +++ b/AllBase/Model/Result/KJDDBProduct.cs @@ -24,6 +24,8 @@ namespace AllBase.Model.Result public string product_name { get; set; } public string product_json { get; set; } public string size_json { get; set; } + public int sku_img_replace_id { get; set; } + public string sku_img_replace_base64 { get; set; } public string main_img { get; set; } public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } diff --git a/AllBase/Model/Result/PDDResult/PDDActivitiInfo.cs b/AllBase/Model/Result/PDDResult/PDDActivitiInfo.cs new file mode 100644 index 0000000..8c7dabf --- /dev/null +++ b/AllBase/Model/Result/PDDResult/PDDActivitiInfo.cs @@ -0,0 +1,184 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result.PDDResult +{ + public class PDDActivitiInfo + { + public long? mall_id { get; set; } + public List theme_activity_quick_enroll_goods_render_form_list { get; set; } + public Dictionary activity_info_map { get; set; } + public PictureRenderingItem page_bottom_picture_rendering_element { get; set; } + } + public class PDDActivitiGoodsRenderFormItem + { + public long? goods_id { get; set; } + public GoodsInfoRenderItem goods_info_render { get; set; } + public GoodsPromotionBenefitRenderItem goods_promotion_benefit_render { get; set; } + public GoodsPromotionProtocolRenderItem goods_promotion_protocol_render { get; set; } + public ActivityPriceRenderItem activity_price_render { get; set; } + public List sku_info_render_list { get; set; } + public ActivityQuantityRenderItem activity_quantity_render { get; set; } + public ActivityMaterialRenderItem activity_material_render { get; set; } + public int? order_number { get; set; } //22 + public GoodsActivityEffectRenderItem goods_activity_effect_render { get; set; } + public long? activity_id { get; set; } + public GoodsTrafficProtectInfoItem goods_traffic_protect_info { get; set; } + public object goods_service_tag_render { get; set; } + public object supply_tool_mms_enroll_form_goods_param_items { get; set; } + public GoodsExtensionInfoItem goods_extension_info { get; set; } + public GoodsShippingConfigRenderItem goods_shipping_config_render { get; set; } + } + + public class GoodsShippingConfigRenderItem + { + public bool? not_default_selection { get; set; } //false, + public bool? need_create_cost_template { get; set; } //false, + public object cost_template_id { get; set; } //null, + public object cost_template_name { get; set; } //null, + public object valuation { get; set; } //null, + public object delivery_region { get; set; } //null, + public object free_shipping_region { get; set; } //null, + public object not_free_shipping_region { get; set; } //null, + public object not_shipping_region { get; set; } //null + + } + + public class GoodsExtensionInfoItem + { + public long? goods_id { get; set; } + public int? cat_id1 { get; set; } + public bool? not_default_selection { get; set; } + } + + public class GoodsTrafficProtectInfoItem + { + public bool? high_sensitive_goods { get; set; } //false, + public int? fill_max_cut_price_amount { get; set; } //100 + + } + + public class GoodsActivityEffectRenderItem + { + public object sold_quantity1m { get; set; } //null + } + public class ActivityMaterialRenderItem + { + public object activity_goods_image_render { get; set; } + } + + public class ActivityQuantityRenderItem + { + public bool? need_goods_activity_quantity { get; set; } // false, + public object min_activity_quantity { get; set; } // null, + public object max_activity_quantity { get; set; } // null + + } + + public class SkuInfoRenderItem + { + public long? sku_id { get; set; } //1788544288237, + public string sku_name { get; set; } // "红格子", + public int? sku_quantity { get; set; } //100, + public int? group_price { get; set; } //5000 + + } + + public class ActivityPriceRenderItem + { + public bool? not_must_check_price_restrict { get; set; } //false + public List sku_activity_price_render_dtolist { get; set; } + } + + public class SkuActivityPriceRenderDtoItem + { + public long? sku_id { get; set; } // 1788544288237 + public string sku_name { get; set; } //"红格子", + public int? sku_quantity { get; set; } // 100, + public int? group_price { get; set; } // 5000, + public int? suggest_price { get; set; } // 3869, + public int? gear_rule { get; set; } // 100, + public int? filling_sku_price { get; set; } // 3860, + public object cur_goods_acty_prc { get; set; } // null + + } + + public class GoodsPromotionProtocolRenderItem + { + public object need_show_cut_price_compensation { get; set; } + public object need_sign_manfan_protocol { get; set; } + public quickEnrollManfanGoodsInfoVoItem quick_enroll_manfan_goods_info_vo { get; set; } + } + + public class quickEnrollManfanGoodsInfoVoItem + { + public object need_join_manfan_act { get; set; } + public object goods_join_manfan_act_info_content { get; set; } + public object protocol_type { get; set; } + } + + public class GoodsPromotionBenefitRenderItem + { + public List goods_promotion_label_render_list { get; set; } + public string benefit_text { get; set; } + public object goods_list_benefit_sales { get; set; } + } + + public class GoodsInfoRenderItem + { + public long? goods_id { get; set; } + public string goods_name { get; set; } + public int? quantity { get; set; } + public string thumb_url { get; set; } + } + + public class PDDActivitiInfoMapValueItem + { + public long? activity_id { get; set; } //20981 + public int? activity_type { get; set; } //27 + public string activity_type_desc { get; set; } //"大促搜索池" + public string icon_url { get; set; } //"https://promotion.pddpic.com/ignore_query/promo-icontest/9cb3674b-ca45-4479-807e-a7e46070fcbd.png" + public MultiActivityMediaMaterialItem multi_activity_media_material { get; set; } + public ActivityQuickEnrollMallRenderFormItem activity_quick_enroll_mall_render_form { get; set; } + public object important_tips { get; set; } //null + } + + public class ActivityQuickEnrollMallRenderFormItem + { + public bool need_promotion_mobile { get; set; } //false + public ActivityProtocolRender activity_protocol_render { get; set; } + public object supply_tool_activity_introduction_list { get; set; } //null + } + + public class ActivityProtocolRender + { + public bool need_show_ten_billion_draw_commission { get; set; } //false + public bool need_show_create_cost_template { get; set; } //true + public bool need_show_agree_auto_white_back_pic { get; set; } //false + public bool need_show_traffic_protect { get; set; } //true + } + public class MultiActivityMediaMaterialItem + { + public string brief_activity_name { get; set; } //"【10周年庆】20981长期报名入口" + public object multi_activity_benefit_labels { get; set; } //null + } + + public class PictureRenderingItem + { + public object pop_up_material { get; set; } + public BottomPictureConfigMapItem page_bottom_picture_rendering_element { get; set; } + public object not_effective_activity_price_adjust_enroll_config_vo { get; set; } + } + + public class BottomPictureConfigMapItem + { + public string texture_picture { get; set; } //"https://commimg.pddpic.com/oms_img_ng/2025-09-12/56cbe3bd-3123-446f-8392-d55d8cfbb657.png" + public string gradient_picture { get; set; } //"https://commimg.pddpic.com/oms_img_ng/2025-09-12/4c020e03-8691-4a59-bd50-58cc351eaf12.png", + public string left_benefit_point_1 { get; set; } //"https://commimg.pddpic.com/oms_img_ng/2025-09-12/2d892518-a486-497b-a824-d93eb275f610.png" + public string left_benefit_point_2 { get; set; } //"https://commimg.pddpic.com/oms_img_ng/2025-09-12/aad5d6f5-3cba-4b17-8558-2e4092a280bc.png" + public string left_benefit_point_3 { get; set; } //"https://commimg.pddpic.com/oms_img_ng/2025-09-12/46b9e65f-c88c-446c-9ddd-c5776b57b64f.png" + } +} diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index 941bec1..046075c 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -1,4 +1,5 @@ using KJD_Web.Model; +using KJD_Web.Model.ShopModel; using KJD_Web.Utils; using MySql.Data.MySqlClient; using NaiBa.Util.Extension; @@ -203,20 +204,21 @@ namespace KJD_Web.BLL.BXX else { if (isDetail) - sql = "select * from bxx.product p where 1=1"; + sql = "select p.*,s.img_base64 from bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id where 1=1"; else if (string.IsNullOrEmpty(get_select_count)) sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,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 bxx.product p where 1=1"; + "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id from bxx.product p where 1=1"; else sql = "SELECT p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,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.sku_img_replace_id,COUNT(s.id) AS select_count " + "FROM bxx.product p LEFT JOIN bxx.product_select s ON p.id=s.out_product_id AND s.shop_id='" + select_shop_id + "' " + "WHERE 1=1"; //where子句 sql += where; - sql += " group by p.id"; + if (!isDetail && !string.IsNullOrEmpty(get_select_count)) + sql += " group by p.id"; if (sort_field == "select_total_count") sql += " order by p.select_total_count desc, p.id desc"; else @@ -243,7 +245,8 @@ namespace KJD_Web.BLL.BXX cat_name = row["cat_name"].ToString(), product_name = row["product_name"].ToString(), main_img = row["main_img"].ToString(), - ext_code = row["ext_code"].ToString(), + ext_code = row["ext_code"].ToString(), + price_text = row["price_text"].ToString(), //product_json = row["product_json"].ToString(), //size_json = row["size_json"].ToString(), add_time = Convert.ToDateTime(row["add_time"]), @@ -253,9 +256,11 @@ namespace KJD_Web.BLL.BXX end_words = row["end_words"].ParseToString(), fission_words = row["fission_words"].ParseToString(), head_words = row["head_words"].ParseToString(), + sku_img_replace_id = row["sku_img_replace_id"].ParseToInt(), }; if (isDetail) { + prod.sku_img_replace_base64 = row["img_base64"].ToString(); prod.product_json = row["product_json"].ToString(); prod.size_json = row["size_json"].ToString(); } @@ -281,6 +286,90 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + /// + /// 查询商品替换sku + /// + /// + /// + /// + public string GetSkuImgReplaceList(string inputData, bool isDetail = false) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); + var sku_img_replace_ids = RegexUtils.GetStringQuery(ref inputData, "sku_img_replace_ids")?.Replace("'", "\\'"); + + int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + + string sql = "select count(id) from bxx.sku_img_replace p where 1=1"; + + string where = ""; + if (!string.IsNullOrEmpty(sku_img_replace_ids)) + where += " and p.id in (" + sku_img_replace_ids + ")"; + sql += where; + + var count = mySql.ExecuteRowCount(sql); + + DataTable dt; + if (count == 0) + { + dt = new DataTable(); + } + else + { + if (isDetail) + sql = "select * from bxx.product p left where 1=1"; + + //where子句 + sql += where; + + sql += " order by p.id desc"; + sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; + dt = mySql.ExecuteDataTable(sql); + } + + mySql.Close(); + if (dt != null) + { + try + { + List skuImgReplaceLst = new List(); + foreach (DataRow row in dt.Rows) + { + sku_img_replace skuImgReplace = new sku_img_replace + { + id = Convert.ToInt32(row["id"]), + img_base64 = row["img_base64"].ToString(), + img_md5 = row["img_md5"].ToString(), + }; + skuImgReplaceLst.Add(skuImgReplace); + } + var data = JsonUtils.SerializerObjectToString(skuImgReplaceLst); + return "{\"code\":200,\"msg\":\"success\",\"data\":" + data + ",\"count\":" + count + "}"; + } + catch (Exception ex) + { + return "{\"code\":500,\"msg\":\"" + ex.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + else + { + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\",\"data\":[],\"count\":" + 0 + "}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + public string GetProductListRandom(string inputData) { if (!string.IsNullOrEmpty(inputData)) @@ -452,6 +541,12 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + /// + /// 编辑商品备注信息、货号、头尾词和分词 + /// + /// + /// + /// public string MdyDBProduct(string inputData, bool isAdmin = false) { if (!string.IsNullOrEmpty(inputData)) @@ -507,7 +602,104 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + public string AddSkuImgReplace(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = 0; + int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name"); + string img_md5 = RegexUtils.GetStringQuery(ref inputData, "img_md5"); + string img_base64 = RegexUtils.GetStringQuery(ref inputData, "img_base64"); + string product_db_id = RegexUtils.GetStringQuery(ref inputData, "product_db_id"); + + if (string.IsNullOrEmpty(user_name)) + { + return "{\"code\":500,\"msg\":\"没有用户名\"}"; + } + + int sku_img_replace_id = 0; + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + string sql = ""; + + sql = "select id from bxx.sku_img_replace where img_md5='" + img_md5 + "';"; + var rst = mySql.ExecuteFirstInt(sql).ParseToLong(); + if (rst <= 0) + { + sql = "insert into bxx.sku_img_replace (img_md5,img_base64) " + + "values ('" + img_md5 + "','" + img_base64 + "');"; + rst = mySql.ExecuteInsertId(sql); + } + if (rst > 0) + { + sku_img_replace_id = (int)rst; + sql = "update bxx.product set sku_img_replace_id= "+ sku_img_replace_id + " where id=" + product_db_id + ";"; + + var bRst = mySql.ExecuteNonQuery(sql); + if (bRst) + return "{\"code\":200,\"msg\":\"success\",\"sku_img_replace_id\":" + rst + "}"; + } + mySql.Close(); + + return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}"; + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + public string MdySkuImgReplace(string inputData) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'"); + string img_md5 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "img_md5")); + string img_base64 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "img_base64")); + + if (string.IsNullOrEmpty(user_name)) + { + return "{\"code\":500,\"msg\":\"没有用户名\"}"; + } + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + string sql = "update bxx.sku_img_replace set"; + if (img_md5 != null) + sql += " img_md5='" + img_md5 + "',"; + if (img_base64 != null) + sql += " img_base64='" + img_base64 + "',"; + sql = sql.TrimEnd(','); + sql += " where id=" + id + ";"; + + var rst = mySql.ExecuteNonQuery(sql); + mySql.Close(); + if (rst) + { + return "{\"code\":200,\"msg\":\"success\"}"; + } + else + { + return "{\"code\":500,\"msg\":\"更新失败:" + mySql.Message + "\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + + /// + /// 添加用户选择商品 + /// + /// + /// + /// public string AddUserSelectProduct(string inputData, bool isAdmin = false) { if (!string.IsNullOrEmpty(inputData)) diff --git a/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs b/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs index be2fead..47f4305 100644 --- a/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs +++ b/KJDService/KJD_WebService/BLL/KJD/ProductManage.cs @@ -133,7 +133,8 @@ namespace KJD_Web.BLL //where子句 sql += where; - sql += " group by p.id"; + if (!isDetail && !string.IsNullOrEmpty(get_select_count)) + sql += " group by p.id"; if (sort_field == "select_total_count") sql += " order by p.select_total_count desc, p.id desc"; else diff --git a/KJDService/KJD_WebService/BXXProductService.asmx.cs b/KJDService/KJD_WebService/BXXProductService.asmx.cs index 10e8b2e..2204078 100644 --- a/KJDService/KJD_WebService/BXXProductService.asmx.cs +++ b/KJDService/KJD_WebService/BXXProductService.asmx.cs @@ -156,6 +156,39 @@ namespace KJD_Web Context.Response.End(); } + [WebMethod] + public void add_sku_img_replace() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().AddSkuImgReplace(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] + public void mdy_sku_img_replace() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().MdySkuImgReplace(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + [WebMethod] + public void get_sku_img_replace_list() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new BXXProductManage().GetSkuImgReplaceList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } [WebMethod] public void add_user_select_product() diff --git a/KJDService/KJD_WebService/KJD_WebService.csproj b/KJDService/KJD_WebService/KJD_WebService.csproj index ba4b05f..35b1800 100644 --- a/KJDService/KJD_WebService/KJD_WebService.csproj +++ b/KJDService/KJD_WebService/KJD_WebService.csproj @@ -112,6 +112,7 @@ + BXXPriceService.asmx diff --git a/KJDService/KJD_WebService/Model/DBProductResultParam.cs b/KJDService/KJD_WebService/Model/DBProductResultParam.cs index cf6ee1e..c746a81 100644 --- a/KJDService/KJD_WebService/Model/DBProductResultParam.cs +++ b/KJDService/KJD_WebService/Model/DBProductResultParam.cs @@ -25,6 +25,8 @@ namespace KJD_Web.Model public string product_name { get; set; } public string product_json { get; set; } public string size_json { get; set; } + public int sku_img_replace_id { get; set; } + public string sku_img_replace_base64 { get; set; } public string main_img { get; set; } public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } diff --git a/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs b/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs new file mode 100644 index 0000000..d2e7160 --- /dev/null +++ b/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace KJD_Web.Model.ShopModel +{ + public class sku_img_replace + { + public int id { get; set; } + public string img_md5 { get; set; } + public string img_base64 { get; set; } + } +} \ No newline at end of file diff --git a/TEMUKJD/BLL/HttpResponseBLL.cs b/TEMUKJD/BLL/HttpResponseBLL.cs index ea6c3c1..6620a0d 100644 --- a/TEMUKJD/BLL/HttpResponseBLL.cs +++ b/TEMUKJD/BLL/HttpResponseBLL.cs @@ -441,7 +441,77 @@ namespace TemuKJD.BLL result = GetProxyHtml.ReadResponse(response); return result; } + + public static string PDDPostResponseUpload(ShopLoginInfo shop, string _url, string _data, string referer, string boundary, string AntiContent = null) + { + if (string.IsNullOrEmpty(AntiContent)) + AntiContent = "0apAfa5e-wCEXaTg0FNtNj4PklUKt0E_FNynruEIx9qGLdY6b5YUhnqi7QxYqQqi2Ugraphm85CrR0oU0XYn0dYX5dqXqXJnqg8npDTnpTJnpAaX9swaKE20Tbw_yKnoaXIXxHGB_IxWWlIXMnxghvniTodnXt2wcA7sxhbV_CEBcCez4H92maXI2d1qgoYswoG4Mf_ojlph0nGig8nqWzXqwTYh0j4W6jYs6PxHjXvJslpHyXjseoqZhfqdydn5_Jj0g2TPpCaGDgSgL1FT_lZPGmxIq9UXkPCQpBhPtTZaqGAq06gXkNxXZPrXO0gQ4SHl0bZSZth9LG_j0dKS54JX1PCPZM4XObhaxYjH0oMqm06oiXHYmpnOkTbo-z4QlrCxT43eEBgmrk8AvVbKI3FKz-FAL4pwdFveGf5c1JO_csO50lnqQNy9909u6zLUrFMiTy"; + string rckk = "Z07QGtUzw1cgd58IPWnC1OAGCW9xcH1m"; + string cookies = ""; + try + { + var cookieLst = JsonHelper.DeserializeJsonToList(shop.Cookies); + foreach (var cook in cookieLst) + { + cookies += cook.Name + "=" + cook.Value + ";"; + } + var rckkCookie = cookieLst.FirstOrDefault(c => c.Name == "rckk"); + if (rckkCookie != null) + rckk = rckkCookie.Value; + } + catch { } + + + HttpWebResponse response = null; + string result; + try + { + string url = _url; + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + + request.KeepAlive = true; + request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0"); + request.Headers.Add("sec-ch-ua-platform", @"""Windows"""); + request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"; + request.Headers.Add("ETag", rckk); + request.Headers.Add("sec-ch-ua", @"""Not;A=Brand"";v=""99"", ""Google Chrome"";v=""139"", ""Chromium"";v=""139"""); + request.ContentType = "multipart/form-data; boundary=" + boundary; + request.Headers.Add("sec-ch-ua-mobile", @"?0"); + request.Accept = "*/*"; + request.Headers.Add("Origin", @"https://mms.pinduoduo.com"); + request.Headers.Set(HttpRequestHeader.Cookie, cookies); + request.Headers.Add("Sec-Fetch-Site", @"same-site"); + request.Headers.Add("Sec-Fetch-Mode", @"cors"); + request.Headers.Add("Sec-Fetch-Dest", @"empty"); + request.Referer = referer; + request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd"); + request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); + + request.Method = "POST"; + request.ServicePoint.Expect100Continue = false; + + string body = _data; + WriteMultipartBodyToRequest(request, body); + + response = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.ProtocolError) + { + response = (HttpWebResponse)ex.Response; + result = GetProxyHtml.ReadResponse(response); + return result; + } + else return ex.Message; + } + catch (Exception e) + { + if (response != null) response.Close(); + return e.Message; + } + result = GetProxyHtml.ReadResponse(response); + return result; + } } - - } diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.Designer.cs index c9b71cf..fa7b134 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.Designer.cs @@ -30,6 +30,8 @@ { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdEditNotesForm)); this.panel2 = new System.Windows.Forms.Panel(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.label9 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.txtFissionWords = new DevComponents.DotNetBar.Controls.TextBoxX(); this.txtEndWords = new System.Windows.Forms.TextBox(); @@ -48,13 +50,18 @@ this.label8 = new System.Windows.Forms.Label(); this.txtNotes = new DevComponents.DotNetBar.Controls.TextBoxX(); this.btnOk = new TemuKJD.UserControls.ButtonEx(); + this.buttonEx1 = new TemuKJD.UserControls.ButtonEx(); this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // panel2 // this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.buttonEx1); + this.panel2.Controls.Add(this.pictureBox2); + this.panel2.Controls.Add(this.label9); this.panel2.Controls.Add(this.label7); this.panel2.Controls.Add(this.txtFissionWords); this.panel2.Controls.Add(this.txtEndWords); @@ -79,10 +86,30 @@ this.panel2.Size = new System.Drawing.Size(464, 686); this.panel2.TabIndex = 1; // + // pictureBox2 + // + this.pictureBox2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.pictureBox2.Location = new System.Drawing.Point(165, 491); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(136, 136); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox2.TabIndex = 405; + this.pictureBox2.TabStop = false; + this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(19, 496); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 17); + this.label9.TabIndex = 404; + this.label9.Text = "SKU替换图"; + // // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(31, 391); + this.label7.Location = new System.Drawing.Point(31, 386); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(56, 17); this.label7.TabIndex = 403; @@ -105,10 +132,10 @@ this.txtFissionWords.Border.PaddingLeft = 2; this.txtFissionWords.Border.PaddingRight = 2; this.txtFissionWords.Border.PaddingTop = 2; - this.txtFissionWords.Location = new System.Drawing.Point(90, 391); + this.txtFissionWords.Location = new System.Drawing.Point(90, 386); this.txtFissionWords.Multiline = true; this.txtFissionWords.Name = "txtFissionWords"; - this.txtFissionWords.Size = new System.Drawing.Size(337, 238); + this.txtFissionWords.Size = new System.Drawing.Size(337, 93); this.txtFissionWords.TabIndex = 402; this.txtFissionWords.WatermarkText = "一行一个"; // @@ -116,7 +143,7 @@ // 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(291, 348); this.txtEndWords.Name = "txtEndWords"; this.txtEndWords.Size = new System.Drawing.Size(136, 23); this.txtEndWords.TabIndex = 401; @@ -124,7 +151,7 @@ // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(233, 356); + this.label6.Location = new System.Drawing.Point(233, 351); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(56, 17); this.label6.TabIndex = 400; @@ -132,7 +159,7 @@ // // txtHeadWords // - this.txtHeadWords.Location = new System.Drawing.Point(90, 353); + this.txtHeadWords.Location = new System.Drawing.Point(90, 348); this.txtHeadWords.Name = "txtHeadWords"; this.txtHeadWords.Size = new System.Drawing.Size(136, 23); this.txtHeadWords.TabIndex = 399; @@ -140,7 +167,7 @@ // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(31, 356); + this.label5.Location = new System.Drawing.Point(31, 351); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(56, 17); this.label5.TabIndex = 398; @@ -150,7 +177,7 @@ // this.txtProductName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtProductName.Location = new System.Drawing.Point(90, 205); + this.txtProductName.Location = new System.Drawing.Point(90, 200); this.txtProductName.Multiline = true; this.txtProductName.Name = "txtProductName"; this.txtProductName.Size = new System.Drawing.Size(337, 46); @@ -160,7 +187,7 @@ // this.txtSkcId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtSkcId.Location = new System.Drawing.Point(291, 171); + this.txtSkcId.Location = new System.Drawing.Point(291, 166); this.txtSkcId.Name = "txtSkcId"; this.txtSkcId.ReadOnly = true; this.txtSkcId.Size = new System.Drawing.Size(136, 23); @@ -168,7 +195,7 @@ // // txtSpuId // - this.txtSpuId.Location = new System.Drawing.Point(90, 171); + this.txtSpuId.Location = new System.Drawing.Point(90, 166); this.txtSpuId.Name = "txtSpuId"; this.txtSpuId.ReadOnly = true; this.txtSpuId.Size = new System.Drawing.Size(136, 23); @@ -178,7 +205,7 @@ // this.txtExtCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtExtCode.Location = new System.Drawing.Point(90, 262); + this.txtExtCode.Location = new System.Drawing.Point(90, 257); this.txtExtCode.Name = "txtExtCode"; this.txtExtCode.Size = new System.Drawing.Size(337, 23); this.txtExtCode.TabIndex = 394; @@ -186,7 +213,7 @@ // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(31, 265); + this.label4.Location = new System.Drawing.Point(31, 260); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(56, 17); this.label4.TabIndex = 393; @@ -195,7 +222,7 @@ // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(31, 209); + this.label3.Location = new System.Drawing.Point(31, 204); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(56, 17); this.label3.TabIndex = 392; @@ -204,7 +231,7 @@ // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(233, 174); + this.label2.Location = new System.Drawing.Point(233, 169); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(56, 17); this.label2.TabIndex = 391; @@ -213,7 +240,7 @@ // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(31, 174); + this.label1.Location = new System.Drawing.Point(31, 169); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(56, 17); this.label1.TabIndex = 390; @@ -228,11 +255,12 @@ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 389; this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); // // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(31, 296); + this.label8.Location = new System.Drawing.Point(31, 291); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(56, 17); this.label8.TabIndex = 386; @@ -255,7 +283,7 @@ this.txtNotes.Border.PaddingLeft = 2; this.txtNotes.Border.PaddingRight = 2; this.txtNotes.Border.PaddingTop = 2; - this.txtNotes.Location = new System.Drawing.Point(90, 296); + this.txtNotes.Location = new System.Drawing.Point(90, 291); this.txtNotes.Multiline = true; this.txtNotes.Name = "txtNotes"; this.txtNotes.Size = new System.Drawing.Size(337, 47); @@ -278,20 +306,38 @@ this.btnOk.UseVisualStyleBackColor = false; this.btnOk.Click += new System.EventHandler(this.btnOk_Click); // - // DbProductEditNotesForm + // buttonEx1 + // + this.buttonEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonEx1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.buttonEx1.Cursor = System.Windows.Forms.Cursors.Hand; + this.buttonEx1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.buttonEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.buttonEx1.ForeColor = System.Drawing.Color.White; + this.buttonEx1.Location = new System.Drawing.Point(90, 491); + this.buttonEx1.Margin = new System.Windows.Forms.Padding(2); + this.buttonEx1.Name = "buttonEx1"; + this.buttonEx1.Size = new System.Drawing.Size(70, 26); + this.buttonEx1.TabIndex = 406; + this.buttonEx1.Text = "上传图片"; + this.buttonEx1.UseVisualStyleBackColor = false; + this.buttonEx1.Click += new System.EventHandler(this.buttonEx1_Click); + // + // PDDDBProdEditNotesForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(466, 720); this.Controls.Add(this.panel2); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "DbProductEditNotesForm"; + this.Name = "PDDDBProdEditNotesForm"; this.Text = "编辑商品备注/货号"; this.TitleText = "编辑商品备注/货号"; this.Load += new System.EventHandler(this.ProductSelectListForm_Load); this.Controls.SetChildIndex(this.panel2, 0); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); @@ -318,5 +364,8 @@ private System.Windows.Forms.Label label6; private System.Windows.Forms.TextBox txtHeadWords; private System.Windows.Forms.Label label5; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Label label9; + private UserControls.ButtonEx buttonEx1; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.cs index ae8120b..74fa6c8 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdEditNotesForm.cs @@ -12,6 +12,10 @@ using System.Threading.Tasks; using System.Windows.Forms; using AllBase; using Work; +using TemuKJD.ToolForms; +using Newtonsoft.Json.Linq; +using System.IO; +using Work.BLL.Tools; namespace TemuKJD.PDDForms.ProductSelectForms { @@ -39,6 +43,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms 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 = dbProd.head_words; + this.txtEndWords.Text = dbProd.end_words; + + var prodTmp = GetProductDetail(dbProd.id.ToString()); + dbProd.sku_img_replace_base64 = prodTmp.sku_img_replace_base64; + if (!string.IsNullOrWhiteSpace(dbProd.sku_img_replace_base64)) + this.pictureBox2.Image = Base64ChangeImgUrl.Base64ToImage(dbProd.sku_img_replace_base64); // Convert.FromBase64String(dbProd.sku_img_replace_base64); } } @@ -73,5 +84,118 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.Close(); } } + + private void pictureBox1_Click(object sender, EventArgs e) + { + ShowImgForm imgFrom = new ShowImgForm(pictureBox1.ImageLocation); + imgFrom.ShowDialog(); + } + + public KJDDBProduct GetProductDetail(string prodDbId) + { + if (string.IsNullOrEmpty(prodDbId)) + return new KJDDBProduct(); + + List list = new List(); + + var url = BaseClass.BuildObjString("product/get_product_detail_list"); + var data = ""; + + data = UserLogin.GetSignaturex() + "&search_db_ids=" + prodDbId; + + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + return null; + } + + var jArr = JObject.Parse(html)["data"]; + if (jArr.Count() == 0) + return null; + var sProd = JsonHelper.SerializeObject(jArr); + + try + { + list = JsonHelper.DeserializeJsonToList(sProd); + var item = list.FirstOrDefault(); + if (item == null) + item = new KJDDBProduct(); + return item; + } + catch (Exception ex) + { + return null; + } + } + + private void buttonEx1_Click(object sender, EventArgs e) + { + string text = ""; + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Multiselect = false; + // 设置过滤条件,只显示文本文件 + openFileDialog.Filter = "图片文件 (*.jepg;*.jpg;*.png)|*.jepg;*.jpg;*.png|All files (*.*)|*.*"; + // 显示对话框并获取结果 + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + try + { + string filePath = openFileDialog.FileName; + //using (Image image = Image.FromFile(filePath)) + //{ + // // 现在你可以使用image对象进行各种操作,比如绘制、保存等 + // //Console.WriteLine("Image loaded successfully."); + // this.pictureBox2.Image = image; + //} + Image image = Image.FromFile(filePath); + this.pictureBox2.Image = image; + + string imgBase64 = ""; + using (MemoryStream memoryStream = new MemoryStream()) + { + image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); + byte[] imageBytes = memoryStream.ToArray(); + imgBase64 = Convert.ToBase64String(imageBytes); + } + string img_md5 = BaseClass.GetMd5(imgBase64); + + var url = BaseClass.BuildObjString("product/add_sku_img_replace"); + var data = UserLogin.GetSignaturex() + + "&product_db_id=" + dbProd.id; + data += "&img_base64=" + imgBase64; + data += "&img_md5=" + img_md5; + 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")) + { + BaseMsgForm.ShowError("商品备注编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg")); + } + else + { + dbProd.sku_img_replace_base64 = imgBase64; + dbProd.sku_img_replace_id = BaseRegex.GetIntJson(ref html, "sku_img_replace_id"); + } + } + catch (Exception ex) + { + //Console.WriteLine("An error occurred: " + ex.Message); + BaseMsgForm.ShowError("打开自定义图片失败 " + ex.Message); + return; + } + } + } + + private void pictureBox2_Click(object sender, EventArgs e) + { + ShowImgForm imgFrom = new ShowImgForm(pictureBox2.Image); + imgFrom.ShowDialog(); + } } } diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs index d645304..07e708b 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.Designer.cs @@ -45,8 +45,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.lblNotes = new System.Windows.Forms.Label(); this.txtSPU = new System.Windows.Forms.TextBox(); this.label5 = new System.Windows.Forms.Label(); - this.txtSKC = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); this.pnlEmpty = new DevComponents.DotNetBar.PanelEx(); this.btnSearch = new TemuKJD.UserControls.ButtonEx(); this.txtExtCode = new System.Windows.Forms.TextBox(); @@ -58,6 +56,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.label6 = new System.Windows.Forms.Label(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.pbLoading = new System.Windows.Forms.PictureBox(); + this.txtSKC = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); @@ -71,6 +71,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.col_skc_id = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.col_cat_name = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.col_ext_code = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPriceText = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colAddTimes = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSelectTotalCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.col_notes = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -209,24 +210,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.label5.TabIndex = 435; this.label5.Text = "商品ID:"; // - // txtSKC - // - this.txtSKC.Location = new System.Drawing.Point(87, 80); - this.txtSKC.Name = "txtSKC"; - this.txtSKC.Size = new System.Drawing.Size(90, 23); - this.txtSKC.TabIndex = 432; - this.txtSKC.Visible = false; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(54, 83); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(43, 17); - this.label1.TabIndex = 433; - this.label1.Text = "SKC:"; - this.label1.Visible = false; - // // pnlEmpty // this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control; @@ -359,6 +342,24 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.pbLoading.TabIndex = 7; this.pbLoading.TabStop = false; // + // txtSKC + // + this.txtSKC.Location = new System.Drawing.Point(87, 80); + this.txtSKC.Name = "txtSKC"; + this.txtSKC.Size = new System.Drawing.Size(90, 23); + this.txtSKC.TabIndex = 432; + this.txtSKC.Visible = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(54, 83); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(43, 17); + this.label1.TabIndex = 433; + this.label1.Text = "SKC:"; + this.label1.Visible = false; + // // dgvDbProduct // this.dgvDbProduct.AllowUserToAddRows = false; @@ -388,6 +389,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.col_skc_id, this.col_cat_name, this.col_ext_code, + this.colPriceText, this.colAddTimes, this.colSelectTotalCount, this.col_notes, @@ -509,6 +511,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.col_ext_code.Name = "col_ext_code"; this.col_ext_code.ReadOnly = true; // + // colPriceText + // + this.colPriceText.FillWeight = 60F; + this.colPriceText.HeaderText = "母店价格"; + this.colPriceText.Name = "colPriceText"; + this.colPriceText.ReadOnly = true; + // // colAddTimes // this.colAddTimes.FillWeight = 52F; @@ -662,6 +671,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.DataGridViewTextBoxColumn col_skc_id; private System.Windows.Forms.DataGridViewTextBoxColumn col_cat_name; private System.Windows.Forms.DataGridViewTextBoxColumn col_ext_code; + private System.Windows.Forms.DataGridViewTextBoxColumn colPriceText; private System.Windows.Forms.DataGridViewTextBoxColumn colAddTimes; private System.Windows.Forms.DataGridViewTextBoxColumn colSelectTotalCount; private System.Windows.Forms.DataGridViewTextBoxColumn col_notes; diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs index f368bbe..ef6169f 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.cs @@ -49,6 +49,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvDbProduct.Columns["colHeadWords"].Visible = true; this.dgvDbProduct.Columns["colEndWords"].Visible = true; this.dgvDbProduct.Columns["colFissionWords"].Visible = true; + this.dgvDbProduct.Columns["colPriceText"].Visible = true; //this.dgvDbProduct.Columns["col_notes"].Visible = true; //this.lblNotes.Visible = true; //this.txtNotes.Visible = true; @@ -64,6 +65,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.dgvDbProduct.Columns["colHeadWords"].Visible = false; this.dgvDbProduct.Columns["colEndWords"].Visible = false; this.dgvDbProduct.Columns["colFissionWords"].Visible = false; + this.dgvDbProduct.Columns["colPriceText"].Visible = false; //this.dgvDbProduct.Columns["col_notes"].Visible = false; //this.lblNotes.Visible = false; //this.txtNotes.Visible = false; @@ -140,6 +142,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms prod.skc_id, prod.cat_name, prod.ext_code, + prod.price_text, prod.select_count, prod.select_total_count, prod.notes, diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.resx b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.resx index bf932f6..837f1da 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.resx +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdListForm.resx @@ -147,6 +147,9 @@ True + + True + True diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.Designer.cs index 50e2f1d..8536cfa 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.Designer.cs @@ -181,6 +181,7 @@ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 389; this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); // // label8 // @@ -208,14 +209,14 @@ this.btnOk.UseVisualStyleBackColor = false; this.btnOk.Click += new System.EventHandler(this.btnOk_Click); // - // DbProductUserSelectEditNotesForm + // PDDDBProdUserSelectEditNotesForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(393, 580); this.Controls.Add(this.panel2); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "DbProductUserSelectEditNotesForm"; + this.Name = "PDDDBProdUserSelectEditNotesForm"; this.Text = "编辑上传备注"; this.TitleText = "编辑上传备注"; this.Load += new System.EventHandler(this.ProductSelectListForm_Load); diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.cs index 31e5ee3..4139fe4 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectEditNotesForm.cs @@ -13,6 +13,7 @@ using System.Windows.Forms; using AllBase; using Work; using TemuKJD.BLL; +using TemuKJD.ToolForms; namespace TemuKJD.PDDForms.ProductSelectForms { @@ -100,5 +101,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms else lblTextCount.ForeColor = Color.Gray; } + + private void pictureBox1_Click(object sender, EventArgs e) + { + ShowImgForm imgFrom = new ShowImgForm(pictureBox1.ImageLocation); + imgFrom.ShowDialog(); + } } } diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs index 1ef01a6..18a0b0c 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs @@ -30,13 +30,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.txtAddTimesFake = new System.Windows.Forms.TextBox(); + this.chkActivity = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.label17 = new System.Windows.Forms.Label(); + this.chkSizeSpec = new TemuKJD.UserComponent.UcCheckBox(this.components); this.chkAddMorePriceFirst = new TemuKJD.UserComponent.UcCheckBox(this.components); this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); this.label14 = new System.Windows.Forms.Label(); @@ -130,7 +134,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); - this.chkSizeSpec = new TemuKJD.UserComponent.UcCheckBox(this.components); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -187,6 +190,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms | System.Windows.Forms.AnchorStyles.Right))); this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx2.Controls.Add(this.txtAddTimesFake); + this.ucGroupBoxEx2.Controls.Add(this.chkActivity); + this.ucGroupBoxEx2.Controls.Add(this.label17); this.ucGroupBoxEx2.Controls.Add(this.chkSizeSpec); this.ucGroupBoxEx2.Controls.Add(this.chkAddMorePriceFirst); this.ucGroupBoxEx2.Controls.Add(this.btnClearDgv); @@ -213,10 +219,57 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucGroupBoxEx2.TabStop = false; this.ucGroupBoxEx2.Text = "商品上传"; // + // txtAddTimesFake + // + this.txtAddTimesFake.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAddTimesFake.Location = new System.Drawing.Point(694, 63); + this.txtAddTimesFake.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtAddTimesFake.Name = "txtAddTimesFake"; + this.txtAddTimesFake.Size = new System.Drawing.Size(31, 23); + this.txtAddTimesFake.TabIndex = 645; + this.txtAddTimesFake.Text = "3"; + // + // chkActivity + // + this.chkActivity.AutoSize = true; + this.chkActivity.Checked = true; + this.chkActivity.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkActivity.Location = new System.Drawing.Point(567, 64); + this.chkActivity.Name = "chkActivity"; + this.chkActivity.Size = new System.Drawing.Size(135, 21); + this.chkActivity.TabIndex = 648; + this.chkActivity.Text = "参加活动并虚拟加价"; + this.chkActivity.UseVisualStyleBackColor = true; + this.chkActivity.CheckedChanged += new System.EventHandler(this.chkActivity_CheckedChanged); + // + // label17 + // + this.label17.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(725, 66); + this.label17.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(20, 17); + this.label17.TabIndex = 647; + this.label17.Text = "倍"; + // + // chkSizeSpec + // + this.chkSizeSpec.AutoSize = true; + this.chkSizeSpec.Checked = true; + this.chkSizeSpec.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkSizeSpec.Location = new System.Drawing.Point(567, 87); + this.chkSizeSpec.Name = "chkSizeSpec"; + this.chkSizeSpec.Size = new System.Drawing.Size(111, 21); + this.chkSizeSpec.TabIndex = 635; + this.chkSizeSpec.Text = "使用上家尺码表"; + this.chkSizeSpec.UseVisualStyleBackColor = true; + this.chkSizeSpec.CheckedChanged += new System.EventHandler(this.chkSizeSpec_CheckedChanged); + // // chkAddMorePriceFirst // this.chkAddMorePriceFirst.AutoSize = true; - this.chkAddMorePriceFirst.Location = new System.Drawing.Point(577, 111); + this.chkAddMorePriceFirst.Location = new System.Drawing.Point(567, 111); this.chkAddMorePriceFirst.Name = "chkAddMorePriceFirst"; this.chkAddMorePriceFirst.Size = new System.Drawing.Size(111, 21); this.chkAddMorePriceFirst.TabIndex = 625; @@ -258,9 +311,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.label14.Location = new System.Drawing.Point(317, 113); this.label14.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(260, 17); + this.label14.Size = new System.Drawing.Size(248, 17); this.label14.TabIndex = 599; - this.label14.Text = "说明:若未勾选或不满足阶梯加价,按默认加价"; + this.label14.Text = "说明:阶梯加价未勾选或不满足,按默认加价"; // // label15 // @@ -738,18 +791,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle16.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle16; + 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))))); - dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle17.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle17.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle17.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle17.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle17.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle17.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle17; + 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, @@ -1167,18 +1220,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle18.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle18; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle19.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle19.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle19.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle19.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle19.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle19.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle19; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1298,8 +1351,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colProductName // - dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle20; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -1466,19 +1519,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucSplitPage1.TabIndex = 675; this.ucSplitPage1.TotalPage = 1; // - // chkSizeSpec - // - this.chkSizeSpec.AutoSize = true; - this.chkSizeSpec.Checked = true; - this.chkSizeSpec.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkSizeSpec.Location = new System.Drawing.Point(577, 87); - this.chkSizeSpec.Name = "chkSizeSpec"; - this.chkSizeSpec.Size = new System.Drawing.Size(111, 21); - this.chkSizeSpec.TabIndex = 635; - this.chkSizeSpec.Text = "使用上家尺码表"; - this.chkSizeSpec.UseVisualStyleBackColor = true; - this.chkSizeSpec.CheckedChanged += new System.EventHandler(this.chkSizeSpec_CheckedChanged); - // // PDDDBProdUserSelectForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1567,7 +1607,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms private UserComponent.UcGroupBoxEx ucGroupBoxEx2; private System.Windows.Forms.Label label11; private System.Windows.Forms.TextBox txtAddMorePrice; - private System.Windows.Forms.Label label10; private System.Windows.Forms.TextBox txtAddTimes; private System.Windows.Forms.Label label9; private System.Windows.Forms.TextBox txtStockNum; @@ -1623,5 +1662,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; private UserComponent.UcCheckBox chkSizeSpec; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox txtAddTimesFake; + private System.Windows.Forms.Label label10; + private UserComponent.UcCheckBox chkActivity; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs index 027494d..7a875b7 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs @@ -33,6 +33,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms public CancellationTokenSource cancellationTokenSource { get; set; } = null; bool isInit = false; + bool isActivityFake = true; bool isChanceApi = false; bool isUseUpperSizeSpec = true; bool isAddMorePriceFirst = false; @@ -108,6 +109,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucSplitPage1.PageChange += UcSplitPage1_PageChange; isChanceApi = chkChance.Checked; + isActivityFake = chkActivity.Checked; } private void UcSplitPage1_PageChange(object obj) @@ -920,7 +922,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms { row.Cells["colDraftId"].Value = productDraftId; // 草稿箱id row.Cells["colAddTime"].Value = DateTime.Now.ToString("yy-MM-dd HH:mm:ss"); - row.Cells["colOpResult"].Value = (prod.status == "已上传" ? "已成功上传" : "已上传草稿箱" + (" " + error).TrimEnd(' ')) + " " + duration.ParseToInt() + "秒"; + row.Cells["colOpResult"].Value = (prod.status == "已上传" ? "已成功上传" : "已上传草稿箱") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒"; row.Cells["colMsg"].Value = prod.status; } })); @@ -1240,7 +1242,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms prodParam.goods_name = prodInfo.detail.goods_name; prodParam.goods_name_prefix = prodInfo.detail.goods_name_prefix; prodParam.goods_pattern = prodInfo.detail.goods_pattern; - prodParam.goods_properties = new List(); // 商品属性,通过接口获取商品模板并做匹配 + //prodParam.goods_properties = new List(); // 商品属性,通过接口获取商品模板并做匹配 + prodParam.goods_properties = new List(); // 商品属性,通过接口获取商品模板并做匹配 //step1(共3个step)通过商品属性获取二级必填属性 foreach (var propInfo in prodInfo.property.goods_properties) { @@ -1322,7 +1325,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms if (propTemp == null) continue; - var prop = new goods_property_param() + //var prop = new goods_property_param() + var prop = new goods_spec_property_param() { template_pid = propTemp.id, template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id, @@ -1343,7 +1347,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms var contentOther = propTemp.values.content.FirstOrDefault(c => c.value == "其他"); if (contentOther != null) { - var prop = new goods_property_param() + //var prop = new goods_property_param() + var prop = new goods_spec_property_param() { template_pid = propTemp.id, template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id, @@ -1524,6 +1529,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } } + //if(isActivity) // 如果是去报活动,把基础价格报到3倍以上 + //{ + // skuParam.multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + + // if (isAddMorePriceFirst) // 先加后乘 + // skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); + // skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + //} if (prodParam.market_price < skuParam.price + 1000) { @@ -1748,6 +1761,158 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } + #region 生成一个fake商品提交参数,价格按照3倍上传,用于参加活动 + + string img_signature = ""; + if (isActivityFake && 1 == 2) + { + var img_signature_rst = get_uploag_img_signature(shop, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); + if (!img_signature_rst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref img_signature_rst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = img_signature_rst; + return "获取上传图片密钥失败 " + error; + } + else + { + img_signature = BaseRegex.GetStringJson(ref img_signature_rst, "signature"); + } + } + + string fakeImgUrlDefault = "https://img.pddpic.com/mms-material-img/2025-09-22/72122dc1-56d8-4265-9212-5bf0edcf72d4.jpeg.a.jpeg"; + //fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-21/4204dcd6-afe0-4090-94fc-a68bf70396da.jpeg.a.jpeg?imageView2/2/w/1700/q/85"; + if (currentCount % 3 == 0) + fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-21/4204dcd6-afe0-4090-94fc-a68bf70396da.jpeg.a.jpeg"; + else if (currentCount % 3 == 1) + fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-21/5ec7192b-3da3-4fc1-88fd-66493a5bc9cf.jpeg.a.jpeg"; + else + fakeImgUrlDefault = "https://img.pddpic.com/open-gw/2025-08-13/97a2999c-0f60-47fb-a62f-21ecc0765cb9.jpeg"; + string fakeImgUrl = fakeImgUrlDefault; + if (isActivityFake && 1==2) + { + string img_base64 = dbProd.sku_img_replace_base64; + if (string.IsNullOrEmpty(img_base64)) + img_base64 = "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"; + byte[] imageBytes = Convert.FromBase64String(img_base64); + // 使用MemoryStream创建图片对象 + using (MemoryStream ms = new MemoryStream(imageBytes)) + { + Image image = Image.FromStream(ms); + // 保存图片到文件系统 + image.Save("C:\\图片1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); + } + string boundary = "----WebKitFormBoundaryi5f9ydbgu8bo3yVD"; + string body = @"------WebKitFormBoundaryi5f9ydbgu8bo3yVD +Content-Disposition: form-data; name=""upload_sign"" + +" + img_signature + @" +------WebKitFormBoundaryi5f9ydbgu8bo3yVD +Content-Disposition: form-data; name=""image""; filename=""图片1.jpg"" +Content-Type: image/jpeg + +C:\图片1.jpg +------WebKitFormBoundaryi5f9ydbgu8bo3yVD +Content-Disposition: form-data; name=""pic_operations"" + +{""rules"":[{""rule"":""imageMogr2/format/jpeg/quality/80|imageView2/2/w/2000/h/2000""}]} +------WebKitFormBoundaryi5f9ydbgu8bo3yVD-- +"; + Thread.Sleep(Randomx.GetId(5, 20)); + var uploadImgRst = uploag_sku_img(shop, body, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, boundary); + if (!uploadImgRst.Contains("\"url\":\"https:")) + { + var error = BaseRegex.GetStringJson(ref uploadImgRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = uploadImgRst; + return "上传图片失败 " + error; + } + else + { + fakeImgUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url"); + } + } + fakeImgUrl = fakeImgUrlDefault; + + var prodParamHighPrice = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodParam)); + prodParamHighPrice.skus = new List(); + foreach (var skuInfo in prodInfo.detail.sku) + { + var skuParam = new sku_param() + { + id = skuInfo.id, + is_onsale = skuInfo.is_onsale, + limit_quantity = skuInfo.limit_quantity, + multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + out_sku_sn = skuInfo.out_sku_sn, + oversea_sku = skuInfo.oversea_sku, + price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity, + shipment_limit_second_list = skuInfo.shipment_limit_second_list, + sku69_code = skuInfo.sku69_code, + sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(), + spec = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(skuInfo.spec)), + thumb_url = skuInfo.thumb_url, + weight = skuInfo.weight, + length = skuInfo.length, + price_in_yuan = "", // 内部计算直接置空 + multi_price_in_yuan = "", // 内部计算直接置空 + pre_sale_time = skuInfo.pre_sale_time, + sku_id = skuInfo.sku_id, + thumb_url_file_id = skuInfo.thumb_url_file_id, + }; + if (isAddMorePriceFirst) // 先加后乘 + skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); + skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + + if (prodParamHighPrice.market_price < skuParam.price + 1000) + { + prodParamHighPrice.market_price = skuParam.price + 1000; + prodParamHighPrice.market_price_in_yuan = (prodParamHighPrice.market_price * 0.01).ParseToString(); + } + prodParamHighPrice.skus.Add(skuParam); + } + + var prodParamHighPriceFakeSkuImg = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodParam)); + prodParamHighPriceFakeSkuImg.skus = new List(); + foreach (var skuInfo in prodInfo.detail.sku) + { + var skuParam = new sku_param() + { + id = skuInfo.id, + is_onsale = skuInfo.is_onsale, + limit_quantity = skuInfo.limit_quantity, + multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + out_sku_sn = skuInfo.out_sku_sn, + oversea_sku = skuInfo.oversea_sku, + price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity, + shipment_limit_second_list = skuInfo.shipment_limit_second_list, + sku69_code = skuInfo.sku69_code, + sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(), + spec = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(skuInfo.spec)), + thumb_url = fakeImgUrl, //skuInfo.thumb_url, + weight = skuInfo.weight, + length = skuInfo.length, + price_in_yuan = "", // 内部计算直接置空 + multi_price_in_yuan = "", // 内部计算直接置空 + pre_sale_time = skuInfo.pre_sale_time, + sku_id = skuInfo.sku_id, + thumb_url_file_id = skuInfo.thumb_url_file_id, + }; + if (isAddMorePriceFirst) // 先加后乘 + skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); + skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); + + if (prodParamHighPriceFakeSkuImg.market_price < skuParam.price + 1000) + { + prodParamHighPriceFakeSkuImg.market_price = skuParam.price + 1000; + prodParamHighPriceFakeSkuImg.market_price_in_yuan = (prodParamHighPriceFakeSkuImg.market_price * 0.01).ParseToString(); + } + prodParamHighPriceFakeSkuImg.skus.Add(skuParam); + } + #endregion + if (cell != null) { Invoke(new Action(() => @@ -1799,6 +1964,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms if (decoration_preview_html.Contains("\"success\":true")) { prodParam.decorationPreview = BaseRegex.GetStringJson(ref decoration_preview_html, "preview_url"); + prodParamHighPriceFakeSkuImg.decorationPreview = prodParam.decorationPreview; } else { @@ -1809,7 +1975,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms } Thread.Sleep(Randomx.GetId(20, 100)); - var saveProdRst = save_goods_edit(shop, prodParam, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); + var saveProdRst = ""; + if (isActivityFake) + saveProdRst = save_goods_edit(shop, prodParamHighPriceFakeSkuImg, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id); + else + saveProdRst = save_goods_edit(shop, prodParam, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); if (!saveProdRst.Contains("\"success\":true")) { var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); @@ -1820,15 +1990,122 @@ namespace TemuKJD.PDDForms.ProductSelectForms Thread.Sleep(Randomx.GetId(20, 100)); //var str = JsonHelper.SerializeObject(prodParam); - var result = submit_goods_edit(shop, prodParam, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); - if (!result.Contains("\"success\":true")) + var uploadRst = submit_goods_edit(shop, null, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); + if (!uploadRst.Contains("\"success\":true")) { - var error = BaseRegex.GetStringJson(ref result, "error_msg"); + var error = BaseRegex.GetStringJson(ref uploadRst, "error_msg"); if (string.IsNullOrEmpty(error)) - error = result; + error = uploadRst; return "上传失败 " + error; } + //如果是活动报高价 + if (isActivityFake) + { + string activityErr = ""; + Thread.Sleep(Randomx.GetId(45000, 60000)); + + var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString()); + if (!activityRst1.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = saveProdRst; + activityErr = "上传失败2 981查询失败 " + error; + goto restoreSkuImg; + } + try + { + var jObj = JObject.Parse(activityRst1); + var jStr = JsonHelper.SerializeObject(jObj["result"]["result"]); + var pddActivitiInfo = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).FirstOrDefault(); + + foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) + { + var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + { + if (sku != null && sku.multi_price > activitySku.suggest_price) + { + activityErr = "上传失败2 981价格更新失败"; + goto restoreSkuImg; + } + } + } + + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = 20981; + var goods_vo_item = new goods_vo_param(); + actSubmitParam.goods_volist.Add(goods_vo_item); + goods_vo_item.goods_id = prodParam.goods_id; + + foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) + { + create_sku_vo_item sku_vo_item = new create_sku_vo_item(); + sku_vo_item.sku_id = activitySku.sku_id; + sku_vo_item.sku_activity_price = activitySku.suggest_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_item() + { + filling_sku_price = activitySku.suggest_price, + gear_rule = activitySku.gear_rule, + require_price = activitySku.suggest_price, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString()); + if (!addActivityRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr = "上传失败2 981新建失败 " + error; + goto restoreSkuImg; + } + } + catch (Exception ex) + { + activityErr = "上传失败2 981查询/新建失败 " + ex.Message; + goto restoreSkuImg; + } + + + restoreSkuImg: + Thread.Sleep(Randomx.GetId(6000, 12000)); + var getProdIdRst = get_prod_commit_id(shop, prodParamHighPrice.goods_id.ParseToString()); + var newCommitId = BaseRegex.GetStringJson(ref getProdIdRst, "goods_commit_id"); + prodParamHighPrice.goods_commit_id = newCommitId; + if (string.IsNullOrEmpty(newCommitId) || !saveProdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = saveProdRst; + return "上传失败2 获取commit_id失败" + error; + } + + + saveProdRst = save_goods_edit(shop, prodParamHighPrice, prodParamHighPrice.goods_id.ParseToString(), prodParamHighPrice.goods_commit_id, "edit"); + if (!saveProdRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = saveProdRst; + return "上传失败2 保存失败" + error; + } + + Thread.Sleep(Randomx.GetId(20, 100)); + //var str = JsonHelper.SerializeObject(prodParam); + uploadRst = submit_goods_edit(shop, null, prodParamHighPrice.goods_id.ParseToString(), prodParamHighPrice.goods_commit_id, "edit"); + if (!uploadRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref uploadRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = uploadRst; + return "上传失败2 提交失败" + error; + } + + if (!string.IsNullOrEmpty(activityErr)) + return "上传失败2 " + activityErr; + } return "{\"success\":true,\"draftId\":" + prodParam.goods_id + ",\"status\":\"已上传\"\"msg\":\"上传成功\"}"; } @@ -1920,6 +2197,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/create_by_sn"; string body = @"{""goods_id"":" + prodId + "}"; string refere = "https://mms.pinduoduo.com/goods/goods_list?msfrom=mms_sidenav"; + if (isChanceApi) + { + refere = "https://mms.pinduoduo.com/goods/category?chance_tab=search"; + } var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) { @@ -2221,6 +2502,62 @@ namespace TemuKJD.PDDForms.ProductSelectForms return result; } + private string get_uploag_img_signature(ShopLoginInfo shop, string goodsId, string commitId) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/galerie/business/get_signature"; + string body = @"{""bucket_tag"":""mms-material-img""}"; + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + "&goods_id=" + goodsId + "&sourcePage=goodsList"; + if (isChanceApi) + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("\\u975E\\u6CD5\\u8BF7\\u6C42") || result.Contains("网络繁忙,请不要频繁操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string uploag_sku_img(ShopLoginInfo shop, string _body, string goodsId, string commitId, string boundary) + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://file.pinduoduo.com/v3/store_image"; + string body = _body; + //string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + // "&goods_id=" + goodsId + "&sourcePage=goodsList"; + //if (isChanceApi) + // refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + // "&goods_id=" + goodsId + "&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; + string refere = "https://mms.pinduoduo.com/"; + var result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti); + for (int i = 0; i < 5 && result.Contains("网络繁忙,请不要频繁操作"); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponseUpload(shop, url, body, refere, boundary, anti); + } + } + return result; + } + + /// /// 保存商品详情图装修列表 /// gorse/mms/goods/decoration/commit/save @@ -2267,20 +2604,20 @@ namespace TemuKJD.PDDForms.ProductSelectForms /// /// /// - private string save_goods_edit(ShopLoginInfo shop, PDDProductUploadParam prod, string prodId, string commitId) + private string save_goods_edit(ShopLoginInfo shop, PDDProductUploadParam prod, string prodId, string commitId, string type="add") { var anti = shop.AntiContents.LastOrDefault().ParseToString(); if (shop.AntiContents.Count > 0) anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; string url = "https://mms.pinduoduo.com/glide/mms/goodsCommit/action/edit"; string body = JsonHelper.SerializeObject(prod); - string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=category&id=" + commitId + "&goods_id=" + prodId + "&sourcePage=goodsList"; if (isChanceApi) { - //refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + //refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + // @"&goods_id=" + prodId + @"&chance_tab=hot_theme&sourcePage=goodsListTopButton_CHANCE"; - refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + @"&goods_id=" + prodId + @"&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; } @@ -2308,7 +2645,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms /// /// /// - private string submit_goods_edit(ShopLoginInfo shop, PDDProductUploadParam prod, string prodId, string commitId) + private string submit_goods_edit(ShopLoginInfo shop, PDDProductUploadParam prod, string prodId, string commitId, string type="add") { var anti = shop.AntiContents.LastOrDefault().ParseToString(); if (shop.AntiContents.Count > 0) @@ -2317,13 +2654,13 @@ namespace TemuKJD.PDDForms.ProductSelectForms string body = @"{""goods_commit_id"":""" + commitId + @""",""goods_id"":" + prodId + @",""is_onsale"":true,""third_type"":0,""if_allow_submit_mall_checking"":true,""crawlerInfo"":""" + anti + @"""}"; - string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=category&id=" + commitId + + string refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=category&id=" + commitId + "&goods_id=" + prodId + "&sourcePage=goodsList"; if (isChanceApi) { - //refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + //refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + // @"&goods_id=" + prodId + @"&chance_tab=hot_theme&sourcePage=goodsListTopButton_CHANCE"; - refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=add&from=chance&id=" + commitId + + refere = "https://mms.pinduoduo.com/goods/goods_add/index?type=" + type + "&from=chance&id=" + commitId + @"&goods_id=" + prodId + @"&chance_tab=search&sourcePage=goodsListTopButton_CHANCE"; } @@ -2344,6 +2681,56 @@ namespace TemuKJD.PDDForms.ProductSelectForms return result; } + private string activity_goods_info(ShopLoginInfo shop, string prodId, string activityId = "20981") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/leekmms/quick_enroll/multi_activity/real_form_info"; + string body = @"{""activity_id"":" + activityId + @",""page_number"":1,""page_size"":10,""goods_id_list"":[" + prodId + @"],""source_type"":""PROMO-OwnHome""}"; + + string refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=" + activityId + "&SourceType=PROMO-OwnHome"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + + private string add_activity_goods(ShopLoginInfo shop, PDDActivitySubmitParam actSubmitParam, string prodId, string activityId = "20981") + { + var anti = shop.AntiContents.LastOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + string url = "https://mms.pinduoduo.com/lakemms/enrollV2"; + string body = JsonHelper.SerializeObject(actSubmitParam); + + string refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=" + activityId + "&SourceType=PROMO-OwnHome"; + + var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + for (int i = 0; i < 5 && (result.Contains("当前请求频繁,请2小时后重试") || result.Contains("网络繁忙,请不要频繁操作") || result.Contains("您的店铺操作过于频繁,请稍后操作")); i++) + { + shop.AntiContents.Remove(anti); + anti = shop.AntiContents.FirstOrDefault().ParseToString(); + if (shop.AntiContents.Count > 0) + { + Thread.Sleep(Randomx.GetId(300, 500)); + anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)]; + result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere, anti); + } + } + return result; + } + private void panel1_Paint(object sender, PaintEventArgs e) { @@ -2811,6 +3198,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms { isUseUpperSizeSpec = chkSizeSpec.Checked; } + + private void chkActivity_CheckedChanged(object sender, EventArgs e) + { + isActivityFake = chkActivity.Checked; + } } public class AddPriceRule diff --git a/TEMUKJD/ToolForms/ShowImgForm.cs b/TEMUKJD/ToolForms/ShowImgForm.cs index 57a209b..7807915 100644 --- a/TEMUKJD/ToolForms/ShowImgForm.cs +++ b/TEMUKJD/ToolForms/ShowImgForm.cs @@ -29,6 +29,16 @@ namespace TemuKJD.ToolForms } } + public ShowImgForm(Image img) + { + InitializeComponent(); + + if (img != null) + { + this.pictureBox1.Image = img; + } + } + private void btnClose_Click(object sender, EventArgs e) { this.Close(); diff --git a/Work/BLL/Tools/Base64ChangeImgUrl.cs b/Work/BLL/Tools/Base64ChangeImgUrl.cs index 8d5f22e..7436be0 100644 --- a/Work/BLL/Tools/Base64ChangeImgUrl.cs +++ b/Work/BLL/Tools/Base64ChangeImgUrl.cs @@ -19,13 +19,15 @@ namespace Work.BLL.Tools /// /// /// - public Bitmap ToImage(string imgBase64) + public static Bitmap Base64ToImage(string imgBase64) { - imgBase64 = imgBase64.Substring("data:image/jpeg;base64,".Length); + if (imgBase64.StartsWith("data:image/jpeg;base64,")) + imgBase64 = imgBase64.Substring("data:image/jpeg;base64,".Length); byte[] bytes = Convert.FromBase64String(imgBase64); MemoryStream ms = new MemoryStream(bytes); Image mImage = Image.FromStream(ms); Bitmap bmpt = new Bitmap(ms); + ms.Dispose(); return bmpt; } @@ -52,7 +54,7 @@ namespace Work.BLL.Tools } } - public string CutZoom(string Base64pic) + public static string CutZoom(string Base64pic) { byte[] arr2 = Convert.FromBase64String(Base64pic); @@ -72,7 +74,7 @@ namespace Work.BLL.Tools /// /// /// - public byte[] GetPictureData(Bitmap Bitmap) + public static byte[] GetPictureData(Bitmap Bitmap) { MemoryStream ms = null; try @@ -93,13 +95,13 @@ namespace Work.BLL.Tools } } - public byte[] Base64ChangeBuffer(String imgBase64) + public static byte[] Base64ChangeBuffer(String imgBase64) { try { if (!string.IsNullOrEmpty(imgBase64)) { - return GetPictureData(ToImage(imgBase64)); + return GetPictureData(Base64ToImage(imgBase64)); } return null; }