From 626cc9e68e284d3902cf61860c6bde0dd176edd7 Mon Sep 17 00:00:00 2001 From: wule Date: Wed, 31 Dec 2025 14:34:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=BC=E5=A4=9A=E5=A4=9A=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMUKJD/MainForm.cs | 2 +- .../PDDDBProdUserSelectForm.cs | 685 ++++++++++-------- 2 files changed, 399 insertions(+), 288 deletions(-) diff --git a/TEMUKJD/MainForm.cs b/TEMUKJD/MainForm.cs index d67ef78..ab30c0f 100644 --- a/TEMUKJD/MainForm.cs +++ b/TEMUKJD/MainForm.cs @@ -322,7 +322,7 @@ namespace TemuKJD #else AntiGrabbingMechanism(); #endif - Thread.Sleep(3000); + try { Thread.Sleep(3000); } catch { } } } diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs index b69a6d7..b454142 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs @@ -123,6 +123,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.chkUpperSizeSpec.Checked = pddUploadRule.IsUseUpperSizeSpec; this.chkKeepChanceGoodsImg.Checked = pddUploadRule.IsKeepChanceGoodImg; this.chkActivity.Checked = pddUploadRule.IsSignActivity; + this.chk20981.Checked = pddUploadRule.sign20981; + this.chk15996.Checked = pddUploadRule.sign15996; + this.chk21365.Checked = pddUploadRule.sign21365; + this.chk22347.Checked = pddUploadRule.sign22347; this.txtAddTimesFake.Text = pddUploadRule.ActivityAddPriceTimes.ParseToString(); this.chkLowPriceSku.Checked = pddUploadRule.IsLowPriceSku; this.txtLowPriceSkuName.Text = pddUploadRule.LowPriceSkuName; @@ -1043,9 +1047,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms string chance_id = prodInfo.chance_id; string chance_refere = prodInfo.chance_refere; + int getChanceIdCount = 0; + reGetChanceId: if (string.IsNullOrEmpty(chance_id)) { - var chanceRst = GetChanceGoodsList(shop, searchText); if (!chanceRst.Contains("\"success\":true")) { @@ -1055,6 +1060,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms return "新建查询失败 " + error; } + getChanceIdCount++; chance_id = BaseRegex.GetStringJson(ref chanceRst, "chance_id"); try { @@ -1063,7 +1069,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms var chanceGoodsString = JsonHelper.SerializeObject(chanceGoodJArr); var chanceGoodLst = new NaiBa.Util.ConcurrentList(); chanceGoodLst.AddRange(JsonHelper.DeserializeJsonToList(chanceGoodsString)); - var chanceGood = chanceGoodLst.FirstOrDefault(g => g.cat_id_3 == prodInfo.detail.cat_id || g.cat_id_2 == prodInfo.detail.cat_id); + var chanceGood = chanceGoodLst.OrderBy(g => Randomx.GetId(10000)) + .FirstOrDefault(g => g.cat_id_3 == prodInfo.detail.cat_id || g.cat_id_2 == prodInfo.detail.cat_id); if (chanceGood != null) chance_id = chanceGood.chance_id; } @@ -1090,6 +1097,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms //失败了继续走普通商品上传接口 var draftId = BaseRegex.GetStringJson(ref rst, "draft_id"); var goods_id = BaseRegex.GetLongJson(ref rst, "goods_id"); + if (getChanceIdCount <= 3 && rst.Contains("\"success\":true") && string.IsNullOrEmpty(draftId) && string.IsNullOrEmpty(prodInfo.chance_id)) + { + chance_id = ""; + goto reGetChanceId; + } prodParam.goods_commit_id = draftId; prodParam.goods_id = goods_id; if (prodParam.goods_id <= 0 || prodParam.goods_commit_id.ParseToLong() <= 0) @@ -2656,45 +2668,49 @@ namespace TemuKJD.PDDForms.ProductSelectForms // 复制一份商品使用sku替换图片 var prodParamHighPriceFakeSkuImg = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodParamHighPrice)); var fake_sku_img_dic = new Dictionary(); + bool upLoadFakeImgUrl = false; foreach (var skuParam in prodParamHighPriceFakeSkuImg.skus) { - if (!fake_sku_img_dic.Keys.Contains(skuParam.thumb_url)) + if (upLoadFakeImgUrl) { - string getImgError; - var image = GetHtml.GetUrlImg(fakeImgUrl, out getImgError); - var imageBg = new Bitmap(image.Width, image.Height); - if (!string.IsNullOrEmpty(getImgError) || image == null) + if (!fake_sku_img_dic.Keys.Contains(skuParam.thumb_url)) { - return "设置替换sku失败 图片上传失败"; - } - try - { - using (Graphics g = Graphics.FromImage(imageBg)) + string getImgError; + var image = GetHtml.GetUrlImg(fakeImgUrl, out getImgError); + var imageBg = new Bitmap(image.Width, image.Height); + if (!string.IsNullOrEmpty(getImgError) || image == null) { - g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); + return "设置替换sku失败 图片上传失败"; + } + try + { + using (Graphics g = Graphics.FromImage(imageBg)) + { + g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); + } + } + catch (Exception ex) + { + return "修改替换sku图片失败 " + ex.Message; + } + string uploadUpgradeSkuImgRst = UploadProdSkuImg(shop, imageBg, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab); + if (!uploadUpgradeSkuImgRst.Contains("\"url\":\"https:")) + { + var error = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = uploadUpgradeSkuImgRst; + return "上传替换sku图片失败 " + error; + } + else + { + var fake_thumb_url = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "url"); + fake_sku_img_dic[skuParam.thumb_url] = fake_thumb_url; } } - catch (Exception ex) - { - return "修改替换sku图片失败 " + ex.Message; - } - string uploadUpgradeSkuImgRst = UploadProdSkuImg(shop, imageBg, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab); - if (!uploadUpgradeSkuImgRst.Contains("\"url\":\"https:")) - { - var error = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "error_msg"); - if (string.IsNullOrEmpty(error)) - error = uploadUpgradeSkuImgRst; - return "上传替换sku图片失败 " + error; - } - else - { - var fake_thumb_url = BaseRegex.GetStringJson(ref uploadUpgradeSkuImgRst, "url"); - fake_sku_img_dic[skuParam.thumb_url] = fake_thumb_url; - } + skuParam.thumb_url = fake_sku_img_dic[skuParam.thumb_url]; } - skuParam.thumb_url = fake_sku_img_dic[skuParam.thumb_url]; - - //skuParam.thumb_url = fakeImgUrl; + else + skuParam.thumb_url = fakeImgUrl; skuParam.thumb_url_file_id = null; } #endregion @@ -2800,6 +2816,38 @@ namespace TemuKJD.PDDForms.ProductSelectForms saveProdRst = save_goods_edit(shop, prodParam, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, isChanceApi); for (int i = 0; i < 3 && saveProdRst.Contains("http error:500"); i++) { + PDDShopLoginForm loginForm = null; + if (pddUploadRule.IsSignActivity && 1 == 2) // 测试在网页里面直接修改 不使用截断提交方式一次最多改两个,使用的话最多改一个 + { + Invoke(new Action(() => + { + //this.panel1.SendToBack(); + this.panel1.BringToFront(); + loginForm = new PDDShopLoginForm(shop); + loginForm.prodParam = prodParam; + loginForm.TopLevel = false; + loginForm.openType = EnumOpenType.manage; + loginForm.WindowState = FormWindowState.Maximized; + loginForm.InitUrl = "https://mms.pinduoduo.com/goods/goods_add/index?id=" + prodParamHighPriceFakeSkuImg.goods_commit_id + + "&goods_id=" + prodParamHighPriceFakeSkuImg.goods_id + "&type=edit"; + loginForm.Dock = DockStyle.Fill; + this.panel1.Controls.Add(loginForm); + loginForm.Show(); + loginForm.SetPanelVisible(true); + })); + Thread.Sleep(Randomx.GetId(5000, 10000)); + } + while (true) + { + if (loginForm == null || loginForm.Disposing || loginForm.IsDisposed) + break; + Thread.Sleep(Randomx.GetId(500, 1000)); + } + Invoke(new Action(() => + { + this.panel1.SendToBack(); + })); + Thread.Sleep(Randomx.GetId(2500 * (i+1), 3500 * (i + 1))); if (pddUploadRule.IsSignActivity) saveProdRst = save_goods_edit(shop, prodParamHighPriceFakeSkuImg, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), prodParamHighPriceFakeSkuImg.goods_commit_id, isChanceApi); @@ -2879,7 +2927,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms bool sign20981 = chk20981.Checked; bool sign22347 = chk22347.Checked; bool sign15996 = chk15996.Checked; - bool sign23165 = chk21365.Checked; + bool sign21365 = chk21365.Checked; Thread.Sleep(Randomx.GetId(2000, 6000)); // 判断商品是否上架成功 @@ -2928,48 +2976,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } - PDDShopLoginForm loginForm = null; - if (pddUploadRule.IsSignActivity) - { - Invoke(new Action(() => - { - //this.panel1.SendToBack(); - this.panel1.BringToFront(); - loginForm = new PDDShopLoginForm(shop); - loginForm.TopLevel = false; - loginForm.openType = EnumOpenType.manage; - loginForm.WindowState = FormWindowState.Maximized; - loginForm.InitUrl = "https://mms.pinduoduo.com"; - loginForm.Dock = DockStyle.Fill; - this.panel1.Controls.Add(loginForm); - loginForm.Show(); - })); - Thread.Sleep(Randomx.GetId(4000, 10000)); - if (sign20981) - { - Invoke(new Action(() => - { - loginForm.cefWebBrowser.Load("https://mms.pinduoduo.com/act/multi-act-enroll?activityId=20981&activityType=27&SourceType=PROMO-OwnHome&formInfoSceneType=realBigSaleQuickEnrollMultiActivityScene"); - })); - Thread.Sleep(Randomx.GetId(4000, 10000)); - - Invoke(new Action(() => - { - //https://mms.pinduoduo.com/act/choose_goods/v2?id=20981&SourceType=MMSActicon - loginForm.cefWebBrowser.Load("https://mms.pinduoduo.com/act/goods_price/confirm?activityId=20981&activityType=27&from=chooseGoods&SourceType=MMSActicon"); - })); - Thread.Sleep(Randomx.GetId(4000, 10000)); - } - - Invoke(new Action(() => - { - //if (PDDShopLoginForm.shopLoginInstance != null) - // PDDShopLoginForm.shopLoginInstance.Close(); - if (loginForm != null) - loginForm.Close(); - })); - } - var getProdIdRst = get_prod_commit_id(shop, prodParamHighPriceFakeSkuImg.goods_id.ParseToString(), false); var newCommitId = BaseRegex.GetStringJson(ref getProdIdRst, "goods_commit_id"); prodParamHighPriceFakeSkuImg.goods_commit_id = newCommitId; @@ -3061,9 +3067,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms skuParam.quantity_delta = 0; } - loginForm = null; + PDDShopLoginForm loginForm = null; if (pddUploadRule.IsSignActivity && 1 == 2) // 测试在网页里面直接修改 不使用截断提交方式一次最多改两个,使用的话最多改一个 { + LoadActivityPage(shop); + Invoke(new Action(() => { //this.panel1.SendToBack(); @@ -3106,8 +3114,37 @@ namespace TemuKJD.PDDForms.ProductSelectForms foreach (var specName in spec0NameLst) { + List signLst = new List() { 20981, 15996, 21365, 22347 }; + while (signLst.Count > 0) + { + var signId = signLst[Randomx.GetId(0, signLst.Count)]; + signLst.Remove(signId); + + if (signId == 20981 && sign20981) + { + var activityRst = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 15996 && sign15996) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 21365 && sign21365) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + if (signId == 22347 && sign22347) + { + var activityRst = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27); + Thread.Sleep(Randomx.GetId(2000, 4500)); + } + } + //LoadActivityPage(shop); + var fakeImgskuLst = prodParamHighPriceFakeSkuImg.skus.Where(s => s.spec[0].spec_name == specName).ToList(); - var skuImg = prodParamHighPriceFakeSkuImg.skus.FirstOrDefault(s => s.spec[0].spec_name == specName)?.thumb_url; + var skuImg = prodParam.skus.FirstOrDefault(s => s.spec[0].spec_name == specName)?.thumb_url; foreach (var fakeImgSku in fakeImgskuLst) { fakeImgSku.thumb_url = skuImg; @@ -3180,7 +3217,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms Thread.Sleep(Randomx.GetId(12000, 15000)); } - string activityErr = SignActivity(shop, prodParam, sign22347, sign20981, sign23165, sign15996); + string activityErr = SignActivity(shop, prodParam, sign22347, sign20981, sign21365, sign15996); //Thread.Sleep(Randomx.GetId(4000, 8000)); if (!string.IsNullOrEmpty(activityErr)) @@ -3207,6 +3244,56 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } + public void LoadActivityPage(ShopLoginInfo shop, PDDShopLoginForm loginForm = null) + { + if (pddUploadRule.IsSignActivity) + { + bool sign20981 = chk20981.Checked; + bool sign22347 = chk22347.Checked; + bool sign15996 = chk15996.Checked; + bool sign23165 = chk21365.Checked; + List activityUrlLst = new List(); + if (sign20981) + { + activityUrlLst.Add("https://mms.pinduoduo.com/act/multi-act-enroll?activityId=20981&activityType=27&SourceType=PROMO-OwnHome&formInfoSceneType=realBigSaleQuickEnrollMultiActivityScene"); + //activityUrlLst.Add("https://mms.pinduoduo.com/act/goods_price/confirm?activityId=20981&activityType=27&from=chooseGoods&SourceType=MMSActicon"); + } + if (activityUrlLst.Count <= 0) + return; + + Invoke(new Action(() => + { + //this.panel1.SendToBack(); + this.panel1.BringToFront(); + if (loginForm == null) + { + loginForm = new PDDShopLoginForm(shop); + loginForm.TopLevel = false; + loginForm.openType = EnumOpenType.manage; + loginForm.WindowState = FormWindowState.Maximized; + //loginForm.InitUrl = "https://mms.pinduoduo.com"; + loginForm.InitUrl = activityUrlLst[0]; + activityUrlLst.RemoveAt(0); + loginForm.Dock = DockStyle.Fill; + this.panel1.Controls.Add(loginForm); + loginForm.Show(); + } + })); + Thread.Sleep(Randomx.GetId(4000, 8000)); + while (activityUrlLst.Count > 0) + { + Thread.Sleep(Randomx.GetId(4000, 8000)); + } + + Invoke(new Action(() => + { + if (loginForm != null) + loginForm.Close(); + this.panel1.SendToBack(); + })); + } + } + /// /// 所有活动: 22347直通车加权 20981长期报名入口 21365七折活动 15996两件9块9活动(价格要求低于29.9元) 18586百万爆款(需上架满一天) 23620临时活动(已结束) /// @@ -3217,114 +3304,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms { string activityErr = ""; - //21365 7折活动 + //21365 7折活动 //活动2 if (1 == 1 && sign21365) { - var activityRst2 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); - if (!activityRst2.Contains("\"success\":true")) - { - var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg"); - if (string.IsNullOrEmpty(error)) - error = activityRst2; - activityErr += "\r\n上传错误 365查询失败 " + error; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg2; - } - try - { - var jObj = JObject.Parse(activityRst2); - var jStr = JsonHelper.SerializeObject(jObj["result"]); - var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); - var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); - - if (pddActivitiPriceProd == null) - { - activityErr += "\r\n上传错误 365查询/新建失败 商品未提交成功或不满足参加活动条件"; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg2; - } - foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) - { - if (activitySkuInfo.spec_info_str.Contains("福利款")) - { - } - var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); - if (sku == null || sku.multi_price > activitySkuInfo.require_price) - { - activityErr += "\r\n上传错误 365价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg2; - } - } - - var quantity = prodParam.skus.Sum(s => s.quantity_delta); - PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); - actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; - actSubmitParam.enroll_source_ctx.enroll_type = 3; - actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; - actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; - actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; - - var goods_vo_item = new goods_vo_param(); - goods_vo_item.goods_id = prodParam.goods_id; - var skuSamePrice = prodParam.skus.Max(s => s.multi_price); - foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) - { - var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); - if (sku == null) - { - activityErr += "\r\n上传错误 365价格sku未找到"; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg2; - } - - create_sku_vo_param sku_vo_item = new create_sku_vo_param(); - sku_vo_item.sku_id = activitySkuInfo.sku_id; - sku_vo_item.sku_activity_price = sku.multi_price; - sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() - { - filling_sku_price = sku.multi_price, - gear_rule = activitySkuInfo.gear_rule, - require_price = sku.multi_price, - filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, - }; - goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); - } - goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity = - Math.Min(quantity.ParseToInt(), 300); // 7折活动库存上限300 - actSubmitParam.goods_volist.Add(goods_vo_item); - actSubmitParam.create_protocol_vo.need_create_cost_template = true; - - var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27); - if (addActivityRst.Contains("频繁")) - { - Thread.Sleep(Randomx.GetId(3000, 7000)); - addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27); - } - var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); - if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) - { - var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); - if (string.IsNullOrEmpty(error)) - error = addActivityRst; - activityErr += "\r\n上传错误 365新建失败 " + error; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg2; - } - } - catch (Exception ex) - { - activityErr += "\r\n上传错误 365查询/新建失败 " + ex.Message; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg2; - } - } //活动2结束 + SignActivity21365(shop, prodParam); + } restoreSkuImg2: //活动5 18586 百万爆款 必须上架一天以上的sku才能报名暂时注释 @@ -3541,115 +3525,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms } //活动4 restoreSkuImg4: - // 20981 长期活动 + // 20981 长期活动 //活动1 if (1 == 1 && sign20981) { activityErr += SignActivity20981(shop, prodParam); - goto restoreSkuImg1; } - restoreSkuImg1: - //15996 9块9 (价格要求低于29.9元) + //15996 9块9 (价格要求低于29.9元) //活动3 if (1 == 1 && sign15996 && !prodParam.skus.Any(s => s.multi_price > 2990)) { - Thread.Sleep(Randomx.GetId(500, 1500)); - var activityRst3 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); - if (!activityRst3.Contains("\"success\":true")) - { - var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg"); - if (string.IsNullOrEmpty(error)) - error = activityRst3; - activityErr += "\r\n上传错误 996查询失败 " + error; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg3; - } - try - { - var jObj = JObject.Parse(activityRst3); - var jStr = JsonHelper.SerializeObject(jObj["result"]); - var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); - var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); - - if (pddActivitiPriceProd == null) - { - activityErr += "\r\n上传错误 996查询/新建失败 商品未提交成功或不满足参加活动条件"; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg3; - } - foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_resource_price.sku_info_list) - { - var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); - if (sku == null || sku.multi_price > 2990 /*activitySkuInfo.require_price*/) - { - activityErr += "\r\n上传错误 996价格低于产品价"; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg3; - } - } - - PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); - actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; - actSubmitParam.enroll_source_ctx.enroll_type = 3; - actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; - actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; - actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; - - var goods_vo_item = new goods_vo_param(); - goods_vo_item.goods_id = prodParam.goods_id; - foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_resource_price.sku_info_list) - { - var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); - if (sku == null) - { - activityErr += "\r\n上传错误 996价格sku未找到"; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg3; - } - - create_sku_vo_param sku_vo_item = new create_sku_vo_param(); - sku_vo_item.sku_id = activitySkuInfo.sku_id; - sku_vo_item.sku_activity_price = sku.multi_price; - sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() - { - filling_sku_price = sku.multi_price, - gear_rule = activitySkuInfo.gear_rule, - require_price = sku.multi_price, - filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, - }; - goods_vo_item.create_discount_vo = new create_discount_vo_param(); - goods_vo_item.create_discount_vo.hit_multi_percent = true; - goods_vo_item.create_discount_vo.multi_percent_discount = 99; - goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); - } - actSubmitParam.goods_volist.Add(goods_vo_item); - actSubmitParam.create_protocol_vo.need_create_cost_template = true; - - var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 15996, 18); - var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); - if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) - { - var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); - if (string.IsNullOrEmpty(error)) - error = addActivityRst; - activityErr += "\r\n上传错误 996新建失败 " + error; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg3; - } - } - catch (Exception ex) - { - activityErr = "\r\n上传错误 996查询/新建失败 " + ex.Message; - if (BaseClass.SaLevel != 1 && 1 != 1) - activityErr = "上传错误"; - goto restoreSkuImg3; - } - } //活动3 - restoreSkuImg3: + activityErr += SignActivity15996(shop, prodParam); + } // 22347 直通车加权 if (1 == 1 && sign22347) @@ -3660,6 +3546,116 @@ namespace TemuKJD.PDDForms.ProductSelectForms return activityErr; } + string SignActivity21365(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + var activityRst2 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27); + if (!activityRst2.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst2; + activityErr += "\r\n上传错误 365查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst2); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 365查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + if (activitySkuInfo.spec_info_str.Contains("福利款")) + { + } + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > activitySkuInfo.require_price) + { + activityErr += "\r\n上传错误 365价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + + var quantity = prodParam.skus.Sum(s => s.quantity_delta); + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 3; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; + actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + var skuSamePrice = prodParam.skus.Max(s => s.multi_price); + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 365价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity = + Math.Min(quantity.ParseToInt(), 300); // 7折活动库存上限300 + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27); + if (addActivityRst.Contains("频繁")) + { + Thread.Sleep(Randomx.GetId(3000, 7000)); + addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27); + } + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 365新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + catch (Exception ex) + { + activityErr += "\r\n上传错误 365查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + return activityErr; + } + string SignActivity20981(ShopLoginInfo shop, PDDProductUploadParam prodParam) { string activityErr = ""; @@ -3786,6 +3782,108 @@ namespace TemuKJD.PDDForms.ProductSelectForms return activityErr; } + string SignActivity15996(ShopLoginInfo shop, PDDProductUploadParam prodParam) + { + string activityErr = ""; + Thread.Sleep(Randomx.GetId(500, 1500)); + var activityRst3 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 15996, 18); + if (!activityRst3.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = activityRst3; + activityErr += "\r\n上传错误 996查询失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + try + { + var jObj = JObject.Parse(activityRst3); + var jStr = JsonHelper.SerializeObject(jObj["result"]); + var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr); + var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(); + + if (pddActivitiPriceProd == null) + { + activityErr += "\r\n上传错误 996查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_resource_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null || sku.multi_price > 2990 /*activitySkuInfo.require_price*/) + { + activityErr += "\r\n上传错误 996价格低于产品价"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + + PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); + actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id; + actSubmitParam.enroll_source_ctx.enroll_type = 3; + actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1"; + actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; + actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; + + var goods_vo_item = new goods_vo_param(); + goods_vo_item.goods_id = prodParam.goods_id; + foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_resource_price.sku_info_list) + { + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str); + if (sku == null) + { + activityErr += "\r\n上传错误 996价格sku未找到"; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + + create_sku_vo_param sku_vo_item = new create_sku_vo_param(); + sku_vo_item.sku_id = activitySkuInfo.sku_id; + sku_vo_item.sku_activity_price = sku.multi_price; + sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param() + { + filling_sku_price = sku.multi_price, + gear_rule = activitySkuInfo.gear_rule, + require_price = sku.multi_price, + filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule, + }; + goods_vo_item.create_discount_vo = new create_discount_vo_param(); + goods_vo_item.create_discount_vo.hit_multi_percent = true; + goods_vo_item.create_discount_vo.multi_percent_discount = 99; + goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); + } + actSubmitParam.goods_volist.Add(goods_vo_item); + actSubmitParam.create_protocol_vo.need_create_cost_template = true; + + var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 15996, 18); + var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)) + { + var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); + if (string.IsNullOrEmpty(error)) + error = addActivityRst; + activityErr += "\r\n上传错误 996新建失败 " + error; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + } + catch (Exception ex) + { + activityErr = "\r\n上传错误 996查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1 && 1 != 1) + activityErr = "上传错误"; + return activityErr; + } + return activityErr; + } + string SignActivity22347(ShopLoginInfo shop, PDDProductUploadParam prodParam) { string activityErr = ""; @@ -5655,6 +5753,14 @@ Content-Type: image/jpeg { if (!chk15996.Checked && !chk20981.Checked && !chk21365.Checked && !chk22347.Checked) chkActivity.Checked = false; + if (IsLoadComplate) + { + pddUploadRule.sign20981 = chk20981.Checked; + pddUploadRule.sign15996 = chk15996.Checked; + pddUploadRule.sign21365 = chk21365.Checked; + pddUploadRule.sign22347 = chk22347.Checked; + NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_upload_rule", pddUploadRule); + } } private void pbSkuImg_Click(object sender, EventArgs e) @@ -5801,5 +5907,10 @@ Content-Type: image/jpeg public decimal UpgradeVersionAddPrice { get; set; } = 1m; public bool IsUseExtCodePrice { get; set; } + + public bool sign20981 { get; set; } + public bool sign22347 { get; set; } + public bool sign15996 { get; set; } + public bool sign21365 { get; set; } } }