优化拼多多上传 优化拼多多活动报名

This commit is contained in:
wule committed 2026-04-21 21:08:50 +08:00
1 parent 79a752027a
commit ec559bd6cc
10 files changed
+449 -228

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 999;
public static int VersionCount = 1002;
//public static int VersionCount = 613;
/// <summary>
@@ -29,5 +29,11 @@ namespace AllBase.Model.Result.PDDResult
public string chance_id { get; set; }
public string chance_refere { get; set; } // 记录机会商品提交的refere
public string chance_tab { get; set; } // 记录机会商品提交的tab
// 报名活动批量记录运费
public int ship_price { get; set; } = 0;
}
}
@@ -1107,7 +1107,8 @@ namespace KJD_Web.BLL.BXX
}
int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt();
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50);
int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(200);
var product_get_type = RegexUtils.GetStringQuery(ref inputData, "product_get_type")?.Replace("'", "\\'");
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
MysqlUtils mySql = new MysqlUtils(conn);
@@ -1115,6 +1116,8 @@ namespace KJD_Web.BLL.BXX
string sql = "SELECT DISTINCT p.group FROM `bxx`.`product` p where p.is_del=0";
string where = "";
if (!string.IsNullOrEmpty(product_get_type))
where += " and p.product_get_type ='" + product_get_type + "'";
sql += where;
var dt = mySql.ExecuteDataTable(sql);
+3
View File
@@ -11,4 +11,7 @@
<FallbackCulture>zh-CN</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
</PropertyGroup>
</Project>
@@ -32,16 +32,17 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = 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();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.chkLowPrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.label6 = new System.Windows.Forms.Label();
this.txtMultiCnt = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
@@ -136,7 +137,6 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.btnClear = new DevComponents.DotNetBar.PanelEx();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.panel1 = new System.Windows.Forms.Panel();
this.chkLowPrice = new TemuKJD.UserComponent.UcCheckBox(this.components);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -233,6 +233,18 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "活动价格配置";
//
// chkLowPrice
//
this.chkLowPrice.AutoSize = true;
this.chkLowPrice.Checked = true;
this.chkLowPrice.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkLowPrice.Location = new System.Drawing.Point(662, 90);
this.chkLowPrice.Name = "chkLowPrice";
this.chkLowPrice.Size = new System.Drawing.Size(71, 21);
this.chkLowPrice.TabIndex = 914;
this.chkLowPrice.Text = "低价sku";
this.chkLowPrice.UseVisualStyleBackColor = true;
//
// label6
//
this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@@ -283,7 +295,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.txtSleepTime.Name = "txtSleepTime";
this.txtSleepTime.Size = new System.Drawing.Size(38, 23);
this.txtSleepTime.TabIndex = 891;
this.txtSleepTime.Text = "5";
this.txtSleepTime.Text = "1";
this.txtSleepTime.TextChanged += new System.EventHandler(this.txtSleepTime_TextChanged);
//
// chk23456
@@ -1041,19 +1053,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgvShop.AutoRowNumber = true;
this.dgvShop.BackgroundColor = System.Drawing.Color.White;
this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
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,
@@ -1258,19 +1270,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.dgvActProduct.AllowUserToAddRows = false;
this.dgvActProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvActProduct.AutoRowNumber = true;
this.dgvActProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvActProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle12.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12;
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.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgvActProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvActProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1319,8 +1331,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colSupplierName
//
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1375,8 +1387,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colProductName
//
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle14;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1403,8 +1415,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colUpdateTime
//
dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle15;
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle7;
this.colUpdateTime.FillWeight = 80F;
this.colUpdateTime.HeaderText = "上架时间";
this.colUpdateTime.Name = "colUpdateTime";
@@ -1420,8 +1432,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colOpResult
//
dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colOpResult.DefaultCellStyle = dataGridViewCellStyle16;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colOpResult.DefaultCellStyle = dataGridViewCellStyle8;
this.colOpResult.HeaderText = "操作结果";
this.colOpResult.Name = "colOpResult";
this.colOpResult.ReadOnly = true;
@@ -1518,18 +1530,6 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.panel1.TabIndex = 189;
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
//
// chkLowPrice
//
this.chkLowPrice.AutoSize = true;
this.chkLowPrice.Checked = true;
this.chkLowPrice.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkLowPrice.Location = new System.Drawing.Point(662, 90);
this.chkLowPrice.Name = "chkLowPrice";
this.chkLowPrice.Size = new System.Drawing.Size(71, 21);
this.chkLowPrice.TabIndex = 914;
this.chkLowPrice.Text = "低价sku";
this.chkLowPrice.UseVisualStyleBackColor = true;
//
// PDDAddActivityForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -2973,6 +2973,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
}));
continue;
}
prodInfo.ship_price = shipPrice;
}
#endregion
@@ -3257,25 +3258,33 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
}));
var lowPrice = prodParam.skus.Where(s => s.sku69_code != "yes" && s.quantity_delta != 0).ToList().Min(s => s.multi_price);
var skuTmp = prodParam.skus.Where(s => s.sku69_code != "yes" && s.quantity_delta != 0).ToList().FirstOrDefault(s => s.multi_price == lowPrice);
var skuTmpLst = prodParam.skus.Where(s => s.spec[0].spec_id == skuTmp.spec[0].spec_id && s.multi_price == lowPrice).ToList();
//var skuTmp = prodParam.skus.Where(s => s.sku69_code != "yes" && s.quantity_delta != 0).ToList().FirstOrDefault(s => s.multi_price == lowPrice);
//var skuTmpLst = prodParam.skus.Where(s => s.spec[0].spec_id == skuTmp.spec[0].spec_id && s.multi_price == lowPrice).ToList();
var skuTmpLst = prodParam.skus.Where(s => s.multi_price == lowPrice).ToList();
var prodInfo = lstActListProdInfo.FirstOrDefault(a => a.goods_id == prodParam.goods_id).productInfo;
var skuInfos = prodInfo.detail.sku.Where(s => skuTmpLst.Any(st => st.out_sku_sn == s.out_sku_sn)).ToList();
//var newMultiPrice = skuInfos.Max(s => s.multi_price) + (prodInfo.ship_price * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
var newMultiPrice = skuInfos.Max(s => s.multi_price) + prodInfo.ship_price;
PddEditProdStockQuantity prodQuantity = new PddEditProdStockQuantity();
prodQuantity.data = new List<quantityData>();
int index = 1;
foreach (var sku in skuTmpLst)
{
// 相同低价商品,只有一个设置1个库存,其他0库存
prodQuantity.data.Add(new quantityData()
{
beforeQuantity = sku.quantity_delta,
goodsId = prodParam.goods_id,
quantity = -sku.quantity_delta + 1,
quantity = -sku.quantity_delta + (index == 1 ? 1 : 0),
skuId = sku.sku_id,
});
index++;
var prodInfo = lstActListProdInfo.FirstOrDefault(a => a.goods_id == prodParam.goods_id).productInfo;
var skuInfo = prodInfo.detail.sku.FirstOrDefault(s => s.out_sku_sn == sku.out_sku_sn);
if (skuInfo != null)
sku.multi_price = skuInfo.multi_price;
//var skuInfo = prodInfo.detail.sku.FirstOrDefault(s => s.out_sku_sn == sku.out_sku_sn);
//if (skuInfo != null)
// sku.multi_price = skuInfo.multi_price;
sku.multi_price = newMultiPrice;
}
var mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity);
@@ -3283,8 +3292,10 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
{
Thread.Sleep(Randomx.GetId(500, 1500));
mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity);
if (mdyQuantityRst.Contains("\"errorMsg\":\"库存未修改\""))
break;
}
if (!mdyQuantityRst.Contains("\"success\":true"))
if (!mdyQuantityRst.Contains("\"success\":true") && !mdyQuantityRst.Contains("\"errorMsg\":\"库存未修改\""))
{
goodsIds.Add(prodParam.goods_id);
var error = BaseRegex.GetStringJson(ref mdyQuantityRst, "error_msg");
@@ -3299,6 +3310,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
continue;
}
}
// 移除修改库存失败的商品
prodParamLst.RemoveAll(p => goodsIds.Contains(p.goods_id));
}
string activityRsts = SignActivity(shop, prodParamLst, sign22347, sign20981, sign21365, sign15996, sign23513, sign23730, sign23456);
@@ -3429,7 +3442,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
}
}
public decimal moreSleepTime = 5;
public decimal moreSleepTime = 1;
private void txtSleepTime_TextChanged(object sender, EventArgs e)
{
moreSleepTime = txtSleepTime.Text.Trim().ParseToDecimal();
@@ -777,15 +777,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms
GetPDDProductGroup(new List<ComboBox> { cmbGroup, cmbGroupFilter, });
}
public static void GetPDDProductGroup(ComboBox box)
public static void GetPDDProductGroup(ComboBox box, string get_type = "")
{
GetPDDProductGroup(new List<ComboBox> { box });
GetPDDProductGroup(new List<ComboBox> { box }, get_type);
}
public static void GetPDDProductGroup(List<ComboBox> boxs)
public static void GetPDDProductGroup(List<ComboBox> boxs, string get_type = "")
{
var url = BaseClass.BuildPDDObjString("product/get_product_groups");
var data = UserLogin.GetSignaturex();
if (!string.IsNullOrWhiteSpace(get_type))
data += "&product_get_type=" + get_type;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
@@ -6812,7 +6812,7 @@ Content-Type: image/jpeg
//pddApi.Data["ignore_edit_warn"] = false;
pddApi.Data["image_url"] = prodRstObj["image_url"];
pddApi.Data["invoice_status"] = prodRstObj["invoice_status"];
pddApi.Data["is_customs"] = prodRstObj["is_customs"].ParseToInt() == 1;
pddApi.Data["is_customs"] = prodRstObj["is_customs"].ParseToBool(); // prodRstObj["is_customs"].ParseToInt() == 1;
pddApi.Data["is_folt"] = prodRstObj["is_folt"].ParseToInt() == 1; //是否支持假一赔十,false-不支持,true-支持
pddApi.Data["is_group_pre_sale"] = prodRstObj["is_group_pre_sale"];
pddApi.Data["is_pre_sale"] = prodRstObj["is_pre_sale"].ParseToInt() == 1;
@@ -7682,7 +7682,7 @@ Content-Type: image/jpeg
List<sku_item> addPriceFakeSkuInfoLst = new List<sku_item>();
Dictionary<string, string> skuFakeSpecNameDic1 = new Dictionary<string, string>();
Dictionary<string, string> skuFakeSpecNameDic2 = new Dictionary<string, string>();
int marketPriceFake = prodInfo.detail.market_price.ParseToInt();
int marketPriceFake = 0; // prodInfo.detail.market_price.ParseToInt();
{
var maxPrice1 = 0;
foreach (var sku in prodInfo.detail.sku)
@@ -7708,9 +7708,9 @@ Content-Type: image/jpeg
skuInfo.multi_price = ((new_multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuInfo.price = skuInfo.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
if (marketPriceFake < skuInfo.price + 1000)
if (marketPriceFake < skuInfo.price.ParseToInt() * 2)
{
marketPriceFake = skuInfo.price.ParseToInt() + 1000;
marketPriceFake = skuInfo.price.ParseToInt() * 2;
//pddApi.Data["market_price"] = marketPriceFake;
}
@@ -7778,7 +7778,7 @@ Content-Type: image/jpeg
#region 生成一组正常加价后的sku
List<sku_item> addPriceSkuInfoLst = new List<sku_item>();
int marketPrice = prodInfo.detail.market_price.ParseToInt();
int marketPrice = 0; // prodInfo.detail.market_price.ParseToInt();
{
foreach (var sku in prodInfo.detail.sku)
{
@@ -7919,27 +7919,31 @@ Content-Type: image/jpeg
#endregion
spec_item multiPcsSkuSpec = null; // multiPcsSkuSpec
//spec_item multiPcsSkuSpec = null; // multiPcsSkuSpec
if (chkMultiPcsSku.Checked)
{
#region // 添加一个多件sku
//申请skuSpec
// 申请skuSpec
var multiPcsSku = JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(addPriceSkuInfoLst.OrderByDescending(s => s.multi_price).FirstOrDefault()));
// 双规格有多个sku
var multiPcsSkus = JsonHelper.DeserializeJsonToList<sku_item>(JsonHelper.SerializeObject(addPriceSkuInfoLst.Where(s => s.spec[0].spec_name == multiPcsSku.spec[0].spec_name).ToList()));
int min = txtMultiPcsSku1.Text.Trim().ParseToInt();
int max = txtMultiPcsSku2.Text.Trim().ParseToInt() + 1;
if (max <= min)
max = min + 1;
var oldSpec = multiPcsSku.spec[0];
if (skuFakeSpecNameDic1.Values.Contains(oldSpec.spec_name))
oldSpec.spec_name = skuFakeSpecNameDic1.FirstOrDefault(s => s.Value == oldSpec.spec_name).Key;
multiPcsSku.spec[0].spec_name = oldSpec.spec_name + Randomx.GetId(min, max) + txtMultiPcsSku3.Text.Trim();
multiPcsSkuSpec = multiPcsSku.spec[0];
var multiPcsSpec1 = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(multiPcsSku.spec[0]));
var oldSpecName1 = multiPcsSpec1.spec_name;
if (skuFakeSpecNameDic1.Values.Contains(oldSpecName1))
oldSpecName1 = skuFakeSpecNameDic1.FirstOrDefault(s => s.Value == oldSpecName1).Key;
var newSpecName1 = oldSpecName1 + Randomx.GetId(min, max) + txtMultiPcsSku3.Text.Trim();
multiPcsSku.spec[0].spec_name = newSpecName1;
if (1 == 1)
{
PddApi PddGoodsSpecIdGetApi = new PddApi(shop);
PddGoodsSpecIdGetApi.Data["parent_spec_id"] = multiPcsSkuSpec.parent_id;
PddGoodsSpecIdGetApi.Data["spec_name"] = multiPcsSkuSpec.spec_name;
PddGoodsSpecIdGetApi.Data["parent_spec_id"] = multiPcsSku.spec[0].parent_id;
PddGoodsSpecIdGetApi.Data["spec_name"] = multiPcsSku.spec[0].spec_name;
var PddGoodsSpecIdGetApiRst = PddGoodsSpecIdGetApi.PddGoodsSpecIdGet();
if (!PddGoodsSpecIdGetApiRst.Contains("\"goods_spec_id_get_response\""))
{
@@ -7948,57 +7952,58 @@ Content-Type: image/jpeg
errMsg = PddGoodsSpecIdGetApiRst;
return "设置多件Sku失败 " + errMsg;
}
multiPcsSkuSpec.spec_id = BaseRegex.GetLongJson(ref PddGoodsSpecIdGetApiRst, "spec_id");
multiPcsSku.spec[0].spec_id = BaseRegex.GetLongJson(ref PddGoodsSpecIdGetApiRst, "spec_id");
List<spec_item> first_spec_lst = new List<spec_item>();
List<spec_item> second_spec_lst = new List<spec_item>();
List<sku_item> new_sku_lst = new List<sku_item>();
foreach (var sku in addPriceSkuInfoLst)
//List<spec_item> first_spec_lst = new List<spec_item>();
//List<spec_item> second_spec_lst = new List<spec_item>();
//List<sku_item> new_sku_lst = new List<sku_item>();
//foreach (var sku in addPriceSkuInfoLst)
//{
// if (sku.spec.Count > 0)
// {
// if (sku.spec[0].parent_id != multiPcsSkuSpec.parent_id && !first_spec_lst.Any(s => s.spec_id == sku.spec[0].spec_id))
// {
// first_spec_lst.Add(sku.spec[0]);
// new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(sku)));
// }
// }
// if (sku.spec.Count > 1)
// {
// if (sku.spec[1].parent_id != multiPcsSkuSpec.parent_id && !second_spec_lst.Any(s => s.spec_id == sku.spec[1].spec_id))
// {
// second_spec_lst.Add(sku.spec[1]);
// new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(sku)));
// }
// }
//}
//if (new_sku_lst.Count == 0)
//{
// new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(addPriceSkuInfoLst.LastOrDefault())));
//}
//var maxMultiPcsSkuBasePrice = addPriceSkuInfoLst.Max(s => s.multi_price);
foreach (var sku in multiPcsSkus)
{
if (sku.spec.Count > 0)
{
if (sku.spec[0].parent_id != multiPcsSkuSpec.parent_id && !first_spec_lst.Any(s => s.spec_id == sku.spec[0].spec_id))
{
first_spec_lst.Add(sku.spec[0]);
new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(sku)));
}
}
if (sku.spec.Count > 1)
{
if (sku.spec[1].parent_id != multiPcsSkuSpec.parent_id && !second_spec_lst.Any(s => s.spec_id == sku.spec[1].spec_id))
{
second_spec_lst.Add(sku.spec[1]);
new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(sku)));
}
}
}
if (new_sku_lst.Count == 0)
{
new_sku_lst.Add(JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(addPriceSkuInfoLst.LastOrDefault())));
}
var maxMultiPcsSkuBasePrice = addPriceSkuInfoLst.Max(s => s.multi_price);
foreach (var sku in new_sku_lst)
{
if (sku.spec.Count > 0 && sku.spec[0].parent_id == multiPcsSkuSpec.parent_id)
{
sku.spec[0] = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(multiPcsSkuSpec));
}
else if (sku.spec.Count > 1 && sku.spec[1].parent_id == multiPcsSkuSpec.parent_id)
{
sku.spec[1] = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(multiPcsSkuSpec));
}
sku.thumb_url = multiPcsSku.thumb_url;
sku.thumb_url_file_id = null;
sku.multi_price = (maxMultiPcsSkuBasePrice * txtMultiPcsSku4.Text.ParseToDecimal()).ParseToInt();
//if (sku.spec.Count > 0 && sku.spec[0].parent_id == multiPcsSkuSpec.parent_id)
//{
// sku.spec[0] = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(multiPcsSkuSpec));
//}
//else if (sku.spec.Count > 1 && sku.spec[1].parent_id == multiPcsSkuSpec.parent_id)
//{
// sku.spec[1] = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(multiPcsSkuSpec));
//}
//sku.thumb_url = multiPcsSku.thumb_url; // 反序列化时已获得
//sku.thumb_url_file_id = null;
sku.spec[0].spec_id = multiPcsSku.spec[0].spec_id;
sku.spec[0].spec_name = multiPcsSku.spec[0].spec_name;
sku.multi_price = (sku.multi_price * txtMultiPcsSku4.Text.ParseToDecimal()).ParseToInt();
sku.price = sku.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
sku.quantity_delta = 0;
sku.quantity_delta = 0; // 库存设置为0防止出单
sku.quantity = 0;
addPriceSkuInfoLst.Add(sku);
if (marketPrice < sku.price * 2)
{
marketPrice = sku.price.ParseToInt() * 2;
//pddApi.Data["market_price"] = marketPrice;
}
}
}
@@ -8980,26 +8985,6 @@ Content-Type: image/jpeg
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
cancellationTokenSource = new CancellationTokenSource();
//Task.Run(() =>
//{
// try
// {
// GetShopAndUpProduct(cancellationTokenSource.Token);
// }
// catch (Exception ex)
// {
// BaseMsgForm.ShowError("店铺商品上传分配错误:" + ex.Message);
// }
// Invoke(new Action(() =>
// {
// if (!cancellationTokenSource.IsCancellationRequested)
// BaseMsgForm.ShowConfirm("上传完成");
// else
// BaseMsgForm.ShowConfirm("上传停止");
// this.btnUpload.Enabled = true;
// }));
//}, cancellationTokenSource.Token);
Task.Run(() =>
{
AddProductByChanceImg(shopIdLst);
@@ -9217,10 +9202,10 @@ Content-Type: image/jpeg
continue;
}
// 获取token
// 获取token 纯cef操作不需要
//GetToken(shop);
// 上传商品
// 上传商品 每次关闭上次的cef初始化一个新的cef
InitShopCef(shop);
bool finish = false;
var t = Task.Run(() =>
@@ -9236,8 +9221,9 @@ Content-Type: image/jpeg
{
this.panel2.SendToBack();
}));
Thread.Sleep(Randomx.GetId(60000, 90000));
Thread.Sleep(Randomx.GetId(6000, 9000));
// 显示sku替换图
Invoke(new Action(() =>
{
//if (chkActivity.Checked)
@@ -9401,9 +9387,12 @@ Content-Type: image/jpeg
}
//Dictionary<string, ChromiumWebBrowser> dicShopCef = new Dictionary<string, ChromiumWebBrowser>();
public static bool isCopyImage = false;
string CefUploadProduct(ShopLoginInfo shop, KJDDBProduct dbProd, TemuDBProductSelect selectProd, DataGridViewCell cell, DateTime startTime)
{
// 将当前商品id初始化为空
shop.CurrentProdId = "";
#region 将聚水潭产品数据格式进行转换成pdd格式统一上传,匹配加密的spuCode和skuCoke
if (dbProd.product_get_type_text == "厂商直采" && dbProd.sku_secret_json != null && dbProd.sku_secret_json.Contains("goodsId"))
{
@@ -9464,8 +9453,8 @@ Content-Type: image/jpeg
Invoke(new Action(() =>
{
panel2.BringToFront();
cefWebBrowser.BringToFront();
//panel2.BringToFront();
//cefWebBrowser.BringToFront();
}));
Thread.Sleep(Randomx.GetId(1000, 1500));
@@ -9481,6 +9470,11 @@ Content-Type: image/jpeg
//t.Wait(5000);
}
Invoke(new Action(() =>
{
if (cell != null)
cell.Value = "正在查询以图搜款商品";
}));
// 加载机会商品页面
cefWebBrowser.Load("https://mms.pinduoduo.com/goods/goods_list/chance?sourcePage=goodsListTopButton");
while (cefWebBrowser.IsLoading || !cefWebBrowser.GetMainFrame().IsValid)
@@ -9491,7 +9485,7 @@ Content-Type: image/jpeg
var client = cefWebBrowser.GetDevToolsClient();
if (host == null || client == null)
{
return "设置图片失败 以图搜款网页打开失败";
return "商品发布失败 设置图片页面打开失败";
}
// 点击图片搜索图标
@@ -9509,20 +9503,31 @@ Content-Type: image/jpeg
Thread.Sleep(Randomx.GetId(1500, 3000));
// ctrl + v 复制图片
string getImgError;
var image = GetHtml.GetUrlImg(dbProd.main_img.Replace("https://", "http://"), out getImgError);
if (!string.IsNullOrEmpty(getImgError) || image == null)
while (isCopyImage)
{
return "设置图片失败 图片上传失败";
Thread.Sleep(500);
}
var bitMap = new Bitmap(image.Width, image.Height);
using (Graphics g = Graphics.FromImage(bitMap))
isCopyImage = true;
try
{
g.DrawImage(image, new Rectangle(0, 0, bitMap.Width, bitMap.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
}
Invoke(new Action(() => { Clipboard.SetImage(bitMap); }));
string getImgError;
var image = GetHtml.GetUrlImg(dbProd.main_img.Replace("https://", "http://"), out getImgError);
if (!string.IsNullOrEmpty(getImgError) || image == null)
{
isCopyImage = false;
return "商品发布失败 上传图片获取失败";
}
var bitMap = new Bitmap(image.Width, image.Height);
using (Graphics g = Graphics.FromImage(bitMap))
{
g.DrawImage(image, new Rectangle(0, 0, bitMap.Width, bitMap.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
}
Invoke(new Action(() => { Clipboard.SetImage(bitMap); }));
host.SendKeyEvent(new CefSharp.KeyEvent() { WindowsKeyCode = 86, Type = KeyEventType.RawKeyDown, Modifiers = CefEventFlags.ControlDown });
host.SendKeyEvent(new CefSharp.KeyEvent() { WindowsKeyCode = 86, Type = KeyEventType.RawKeyDown, Modifiers = CefEventFlags.ControlDown });
}
catch { }
isCopyImage = false;
Thread.Sleep(Randomx.GetId(4000, 6000));
// 点击搜索按钮
@@ -9543,10 +9548,15 @@ Content-Type: image/jpeg
ts2.Wait(5000);
if ((ts2.Result?.Result?.Value).ParseToString().IsNullOrEmpty())
{
return "设置图片失败 图片脚本搜索失败";
return "商品发布失败 图片查询失败";
}
Thread.Sleep(Randomx.GetId(7000, 10000));
Invoke(new Action(() =>
{
if (cell != null)
cell.Value = "正在初始化以图搜款商品信息";
}));
// 点击发布同款
var jsStr3 = @"(function() {
var spanElements = document.getElementsByTagName('span');
@@ -9565,14 +9575,21 @@ Content-Type: image/jpeg
ts3.Wait(5000);
if ((ts3.Result?.Result?.Value).ParseToString().IsNullOrEmpty())
{
return "设置图片失败 商品发布失败";
return "商品发布失败 同款发布失败";
}
Thread.Sleep(Randomx.GetId(7000, 10000));
host.SendMouseClickEvent(50, 50, MouseButtonType.Left, false, 1, CefEventFlags.None);
Invoke(new Action(() =>
{
if (cell != null)
cell.Value = "正在设置以图搜款商品详情";
}));
// 点一下获取焦点
int randomX = Randomx.GetId(50, 500);
int randomY = Randomx.GetId(20, 300);
host.SendMouseClickEvent(randomX, randomY, MouseButtonType.Left, false, 1, CefEventFlags.None);
Thread.Sleep(Randomx.GetId(100, 300));
host.SendMouseClickEvent(50, 50, MouseButtonType.Left, true, 1, CefEventFlags.None);
host.SendMouseClickEvent(randomX, randomY, MouseButtonType.Left, true, 1, CefEventFlags.None);
Thread.Sleep(Randomx.GetId(1000, 2000));
// 点击知道了
var jsStr4 = @"(function() {
@@ -9589,9 +9606,143 @@ Content-Type: image/jpeg
})();";
var ts4 = client.Runtime.EvaluateAsync(jsStr4, null, true, null, null, true, null, true);
Thread.Sleep(Randomx.GetId(7000, 10000));
Thread.Sleep(Randomx.GetId(4000, 7000));
for (int i = 0; i < 100; i++)
var jsStr5 = @"(function() {
var inputItems = document.getElementsByTagName('input');
for (i = 0; i < inputItems.length; i++){
var inputItem = inputItems[i];
if (inputItem.outerHTML.indexOf('拼单价') >= 0) {
inputItem.scrollIntoView({
behavior: 'smooth',
block: 'center'
})
return 'success'
}
}
return 'no_item';
})();";
var ts5 = client.Runtime.EvaluateAsync(jsStr5, null, true, null, null, true, null, true);
jsStr5 = @"(function() {
var inputItems = document.getElementsByTagName('input');
var price = 0;
for (i = 0; i < inputItems.length; i++){
var inputItem = inputItems[i];
if (inputItem.outerHTML.indexOf('beast-core-inputNumber-htmlInput') >= 0) {
//price += ',' + inputItem.value;
if (parseFloat(inputItem.value) > price)
price = parseFloat(inputItem.value);
}
}
return price;
})();";
ts5 = client.Runtime.EvaluateAsync(jsStr5, null, true, null, null, true, null, true);
ts5.Wait(3000);
var newMultiPrice = (prodInfo.detail.sku.Max(s => s.multi_price) + 10) * 0.03m; // 最高价加10的三倍
if (ts5.IsCompleted && ts5.Result != null && ts5.Result.Result.Value.ParseToDecimal() * 2m > newMultiPrice)
{
newMultiPrice = ts5.Result.Result.Value.ParseToDecimal() * 2m;
}
Thread.Sleep(Randomx.GetId(2000, 4000));
jsStr5 = PDDShopLoginForm.sInputValueChange2 + @"(function() {
var inputItems = document.getElementsByTagName('input');
for (i = 0; i < inputItems.length; i++){
var inputItem = inputItems[i];
if (inputItem.outerHTML.indexOf('拼单价') >= 0) {
changeReactInputValue(inputItem, '" + newMultiPrice + @"');
return 'success';
}
}
return 'no_item';
})();";
ts5 = client.Runtime.EvaluateAsync(jsStr5, null, true, null, null, true, null, true);
Thread.Sleep(Randomx.GetId(1000, 2500));
jsStr5 = PDDShopLoginForm.sInputValueChange2 + @"(function() {
var inputItems = document.getElementsByTagName('input');
for (i = 0; i < inputItems.length; i++){
var inputItem = inputItems[i];
if (inputItem.outerHTML.indexOf('单买价') >= 0) {
changeReactInputValue(inputItem, '" + (newMultiPrice + 1m) + @"');
return 'success';
}
}
return 'no_item';
})();";
ts5 = client.Runtime.EvaluateAsync(jsStr5, null, true, null, null, true, null, true);
Thread.Sleep(Randomx.GetId(1500, 3000));
jsStr5 = PDDShopLoginForm.sInputValueChange2 + @"(function() {
var spanElements = document.getElementsByTagName('span');
for (i = 0; i < spanElements.length; i++) {
var spanElement = spanElements[i];
if (spanElement.innerHTML.indexOf('批量设置') >= 0) {
spanElement.click();
return 'success';
}
}
return 'no_item';
})();";
ts5 = client.Runtime.EvaluateAsync(jsStr5, null, true, null, null, true, null, true);
Thread.Sleep(Randomx.GetId(1000, 2000));
// 停用尺码表
var jsStr6 = @"(function() {
var spanElements = document.getElementsByTagName('span');
for (i = 0; i < spanElements.length; i++) {
var spanElement = spanElements[i];
if (spanElement.innerHTML.indexOf('停用尺码表') >= 0) {
//var rect = spanElement.getBoundingClientRect();
//return rect.left + ',' + rect.top;
spanElement.click();
return 'success';
}
}
return 'no_item';
})();";
var ts6 = client.Runtime.EvaluateAsync(jsStr6, null, true, null, null, true, null, true);
ts6.Wait(3000);
if (ts6.IsCompleted && ts6.Result != null && ts6.Result.Result.Value.ParseToString() == "success")
{
Thread.Sleep(Randomx.GetId(1000, 2000));
jsStr6 = @"(function() {
var spanElements = document.getElementsByTagName('span');
for (i = 0; i < spanElements.length; i++) {
var spanElement = spanElements[i];
if (spanElement.innerHTML.indexOf('确认停用') >= 0) {
//var rect = spanElement.getBoundingClientRect();
//return rect.left + ',' + rect.top;
spanElement.click();
return 'success';
}
}
return 'no_item';
})();";
ts6 = client.Runtime.EvaluateAsync(jsStr6, null, true, null, null, true, null, true);
}
Thread.Sleep(Randomx.GetId(2000, 3000));
Invoke(new Action(() =>
{
if (cell != null)
cell.Value = "正在提交以图搜款商品";
}));
// 提交并上架
var jsStr7 = @"(function() {
var spanElements = document.getElementsByTagName('span');
for (i = 0; i < spanElements.length; i++) {
var spanElement = spanElements[i];
if (spanElement.innerHTML.indexOf('提交并上架') >= 0) {
var rect = spanElement.getBoundingClientRect();
spanElement.click();
return rect.left + ',' + rect.top;
}
}
return '0,0';
})();";
var ts7 = client.Runtime.EvaluateAsync(jsStr7, null, true, null, null, true, null, true);
Thread.Sleep(Randomx.GetId(4000, 7000));
// 等待获取到商品id
for (int i = 0; i < 50; i++)
{
Thread.Sleep(1000);
if (!shop.CurrentProdId.IsNullOrEmpty())
@@ -9599,10 +9750,14 @@ Content-Type: image/jpeg
break;
}
}
Invoke(new Action(() =>
{
this.panel2.SendToBack();
}));
if (shop.CurrentProdId.IsNullOrEmpty())
{
return "机会商品提交失败";
return "商品发布失败 商品提交失败";
}
Thread.Sleep(Randomx.GetId(10000, 15000));
@@ -9610,20 +9765,32 @@ Content-Type: image/jpeg
var pddApi = new PddApi(shop);
pddApi.Data["goods_id"] = shop.CurrentProdId;
var rst = pddApi.PddGoodsDetailGet();
if (rst.Contains("商品不存在"))
for (int i = 0; i < 2 && rst.Contains("商品不存在"); i++)
{
Thread.Sleep(15000);
Thread.Sleep(10000);
pddApi = new PddApi(shop);
pddApi.Data["goods_id"] = shop.CurrentProdId;
rst = pddApi.PddGoodsDetailGet();
}
if (rst.Contains("商品不存在"))
if (!rst.Contains("\"goods_detail_get_response\""))
{
Thread.Sleep(15000);
return "商品提交失败";
if (rst.Contains("商品不存在"))
return "商品发布失败 商品不存在,可能是审核未通过";
else
{
var error = (BaseRegex.GetStringJson(ref rst, "error_msg") + " " + BaseRegex.GetStringJson(ref rst, "sub_msg")).Trim();
if (string.IsNullOrWhiteSpace(error))
error = rst;
return "商品发布失败 " + error;
}
}
var prodRstObj = JsonHelper.JObjectParse(rst)["goods_detail_get_response"] as JObject;
Invoke(new Action(() =>
{
if (cell != null)
cell.Value = "正在再次编辑商品";
}));
var editRst = ChangeAndUpdateChanceProd(shop, prodRstObj, dbProd, prodInfo, relationLst, cell);
return editRst;
@@ -9667,6 +9834,7 @@ Content-Type: image/jpeg
{
}
// cef机会商品模拟提交后修改商品sku为原商品sku
string ChangeAndUpdateChanceProd(ShopLoginInfo shop, JObject prodRstObj, KJDDBProduct dbProd, PDDProductInfo prodInfo, List<PddRelationParam> relationLst, DataGridViewCell cell)
{
try
@@ -9679,13 +9847,16 @@ Content-Type: image/jpeg
pddApi.Data["carousel_gallery"] = JsonHelper.SerializeObject(prodRstObj["carousel_gallery_list"]);
pddApi.Data["cat_id"] = prodRstObj["cat_id"];
pddApi.Data["cost_template_id"] = prodRstObj["cost_template_id"].ToString();
pddApi.Data["country_id"] = prodRstObj["country_id"];
pddApi.Data["country_id"] = "0"; // prodRstObj["country_id"];
pddApi.Data["customer_num"] = prodRstObj["customer_num"];
pddApi.Data["customs"] = prodRstObj["customs"];
if (!prodRstObj["customs"].IsJTokenNullOrEmpty())
pddApi.Data["customs"] = prodRstObj["customs"];
pddApi.Data["delivery_one_day"] = prodRstObj["delivery_one_day"];
pddApi.Data["delivery_type"] = prodRstObj["delivery_type"];
if (!prodRstObj["delivery_type"].IsJTokenNullOrEmpty())
pddApi.Data["delivery_type"] = prodRstObj["delivery_type"];
pddApi.Data["detail_gallery"] = JsonHelper.SerializeObject(prodRstObj["detail_gallery_list"]);
pddApi.Data["elec_goods_attributes"] = prodRstObj["elec_goods_attributes"];
if (!prodRstObj["elec_goods_attributes"].IsJTokenNullOrEmpty())
pddApi.Data["elec_goods_attributes"] = prodRstObj["elec_goods_attributes"];
pddApi.Data["goods_desc"] = prodRstObj["goods_desc"].ParseToString();
pddApi.Data["goods_id"] = prodRstObj["goods_id"];
pddApi.Data["goods_name"] = prodRstObj["goods_name"].ParseToString();
@@ -9702,13 +9873,15 @@ Content-Type: image/jpeg
}
pddApi.Data["goods_properties"] = "[" + goods_properties.Trim(',') + "]";
pddApi.Data["goods_trade_attr"] = prodRstObj["goods_trade_attr"];
pddApi.Data["goods_travel_attr"] = prodRstObj["goods_travel_attr"];
if (!prodRstObj["goods_trade_attr"].IsJTokenNullOrEmpty())
pddApi.Data["goods_trade_attr"] = prodRstObj["goods_trade_attr"];
if (!prodRstObj["goods_travel_attr"].IsJTokenNullOrEmpty())
pddApi.Data["goods_travel_attr"] = prodRstObj["goods_travel_attr"];
pddApi.Data["goods_type"] = prodRstObj["goods_type"];
//pddApi.Data["ignore_edit_warn"] = false;
pddApi.Data["image_url"] = prodRstObj["image_url"];
pddApi.Data["invoice_status"] = prodRstObj["invoice_status"];
pddApi.Data["is_customs"] = prodRstObj["is_customs"].ParseToInt() == 1;
pddApi.Data["is_customs"] = prodRstObj["is_customs"].ParseToBool();
pddApi.Data["is_folt"] = prodRstObj["is_folt"].ParseToInt() == 1; //是否支持假一赔十,false-不支持,true-支持
pddApi.Data["is_group_pre_sale"] = prodRstObj["is_group_pre_sale"];
pddApi.Data["is_pre_sale"] = prodRstObj["is_pre_sale"].ParseToInt() == 1;
@@ -9722,10 +9895,13 @@ Content-Type: image/jpeg
//pddApi.Data["operate_type"] = 0; // 是否提交草稿,默认提交 0:提交,1:保存
pddApi.Data["order_limit"] = prodRstObj["order_limit"];
pddApi.Data["origin_country_id"] = prodRstObj["origin_country_id"];
pddApi.Data["out_goods_id"] = prodRstObj["out_goods_id"];
pddApi.Data["out_source_goods_id"] = prodRstObj["out_source_goods_id"];
pddApi.Data["out_source_type"] = prodRstObj["out_source_type"];
pddApi.Data["oversea_goods"] = prodRstObj["oversea_goods"];
pddApi.Data["out_goods_id"] = prodInfo.detail.out_goods_sn; //prodRstObj["out_goods_id"];
if (!prodRstObj["out_source_goods_id"].IsJTokenNullOrEmpty())
pddApi.Data["out_source_goods_id"] = prodRstObj["out_source_goods_id"];
if (!prodRstObj["out_source_type"].IsJTokenNullOrEmpty())
pddApi.Data["out_source_type"] = prodRstObj["out_source_type"];
if (!prodRstObj["oversea_goods"].IsJTokenNullOrEmpty())
pddApi.Data["oversea_goods"] = prodRstObj["oversea_goods"];
pddApi.Data["oversea_type"] = prodRstObj["oversea_type"];
pddApi.Data["pre_sale_time"] = prodRstObj["pre_sale_time"];
pddApi.Data["privacy_delivery"] = prodRstObj["privacy_delivery"];
@@ -9733,13 +9909,14 @@ Content-Type: image/jpeg
pddApi.Data["second_hand"] = prodRstObj["second_hand"].ParseToInt() == 1;
//if (!prodRstObj["shang_men_an_zhuang"].IsJTokenNullOrEmpty())
// pddApi.Data["shang_men_an_zhuang"] = prodRstObj["shang_men_an_zhuang"];
pddApi.Data["shipment_limit_second"] = prodRstObj["shipment_limit_second"];
pddApi.Data["shop_group_id"] = prodRstObj["shop_group_id"];
pddApi.Data["shipment_limit_second"] = 172800; //prodRstObj["shipment_limit_second"];
if (!prodRstObj["shop_group_id"].IsJTokenNullOrEmpty())
pddApi.Data["shop_group_id"] = prodRstObj["shop_group_id"];
if (!prodRstObj["size_spec_id"].IsJTokenNullOrEmpty())
pddApi.Data["size_spec_id"] = prodRstObj["size_spec_id"];
pddApi.Data["sku_type"] = prodRstObj["sku_type"];
if (!prodRstObj["sku_type"].IsJTokenNullOrEmpty())
pddApi.Data["sku_type"] = prodRstObj["sku_type"];
//if (!prodRstObj["song_huo_an_zhuang"].IsJTokenNullOrEmpty())
// pddApi.Data["song_huo_an_zhuang"] = prodRstObj["song_huo_an_zhuang"];
//if (!prodRstObj["song_huo_ru_hu"].IsJTokenNullOrEmpty())
@@ -9902,11 +10079,26 @@ Content-Type: image/jpeg
List<sku_item> addPriceFakeSkuInfoLst = new List<sku_item>();
Dictionary<string, string> skuFakeSpecNameDic1 = new Dictionary<string, string>();
Dictionary<string, string> skuFakeSpecNameDic2 = new Dictionary<string, string>();
int marketPriceFake = prodInfo.detail.market_price.ParseToInt();
int marketPriceFake = 0; // prodInfo.detail.market_price.ParseToInt();
{
var maxPrice1 = 0;
var spec0ParentName = "颜色";
if (prodInfo.detail?.sku?.Count > 0 && prodInfo.detail.sku[0].spec?.Count > 0)
{
spec0ParentName = prodInfo.detail.sku[0].spec[0]?.parent_name;
}
var spec1ParentName = "规格";
if (prodInfo.detail?.sku?.Count > 0 && prodInfo.detail.sku[0].spec?.Count > 1)
{
spec1ParentName = prodInfo.detail.sku[0].spec[1]?.parent_name;
}
foreach (var sku in prodInfo.detail.sku)
{
if (sku.spec?.Count > 0)
sku.spec[0].parent_name = spec0ParentName;
if (sku.spec?.Count > 1)
sku.spec[1].parent_name = spec1ParentName;
var skuInfo = JsonHelper.DeserializeJsonToObject<sku_item>(JsonHelper.SerializeObject(sku));
skuInfo.is_onsale = skuInfo.is_onsale != null ? skuInfo.is_onsale : 1;
skuInfo.limit_quantity = 999; // 只入参999
@@ -9928,9 +10120,9 @@ Content-Type: image/jpeg
skuInfo.multi_price = ((new_multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt();
skuInfo.price = skuInfo.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
if (marketPriceFake < skuInfo.price + 1000)
if (marketPriceFake < skuInfo.price.ParseToInt() * 2)
{
marketPriceFake = skuInfo.price.ParseToInt() + 1000;
marketPriceFake = skuInfo.price.ParseToInt() * 2;
//pddApi.Data["market_price"] = marketPriceFake;
}
@@ -9998,7 +10190,7 @@ Content-Type: image/jpeg
#region 生成一组正常加价后的sku
List<sku_item> addPriceSkuInfoLst = new List<sku_item>();
int marketPrice = prodInfo.detail.market_price.ParseToInt();
int marketPrice = 0; // prodInfo.detail.market_price.ParseToInt();
{
foreach (var sku in prodInfo.detail.sku)
{
@@ -10043,9 +10235,9 @@ Content-Type: image/jpeg
//skuInfo.multi_price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
//skuInfo.price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
if (marketPrice < skuInfo.price + 1000)
if (marketPrice < skuInfo.price * 2)
{
marketPrice = skuInfo.price.ParseToInt() + 1000;
marketPrice = skuInfo.price.ParseToInt() * 2;
//pddApi.Data["market_price"] = marketPrice;
}
@@ -10112,8 +10304,8 @@ Content-Type: image/jpeg
}
if (parent_id == 0)
{
parent_id = specNameDic.ToList()[j].Key;
specInfo.parent_name = specNameDic.ToList()[j].Value;
parent_id = specNameDic.ToList().FirstOrDefault(s => !addPriceSkuInfoLst[i].spec.Any(s1 => s1.parent_name == s.Value)).Key; // specNameDic.ToList()[j].Key;
specInfo.parent_name = specNameDic.ToList().FirstOrDefault(s => !addPriceSkuInfoLst[i].spec.Any(s1 => s1.parent_name == s.Value)).Value; // specNameDic.ToList()[j].Value;
}
specInfo.parent_id = parent_id;
@@ -10218,12 +10410,9 @@ Content-Type: image/jpeg
}
pddApi.Data["sku_list"] = "[" + skuApiString.Trim(',') + "]";
if (marketPrice > maxPrice * 5)
marketPrice = (maxPrice * 5).ParseToInt() - 1;
pddApi.Data["market_price"] = marketPrice;
#endregion
// 计算转换列表内是否有符合条件的转换商品
#region 计算转换列表内是否有符合条件的转换商品
var addPriceSkuInfoMinPrice = addPriceSkuInfoLst.Min(s => s.price);
var addPriceSkuInfoMaxPrice = addPriceSkuInfoLst.Max(s => s.price);
var relationData = relationLst?
@@ -10231,37 +10420,9 @@ Content-Type: image/jpeg
.FirstOrDefault(r => r.price_min.ParseToInt() * 1.08m > addPriceSkuInfoMinPrice && r.price_max.ParseToInt() * 1.08m > addPriceSkuInfoMaxPrice);
if (relationData == null)
return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"转换数据获取价格失败\"}";
#endregion
string skuStr = "";
if (1 == 1)
{
for (int i = 0; i < prodRstObj["sku_list"].Count(); i++)
{
var skuObj = JObject.Parse(JsonHelper.SerializeObject(prodRstObj["sku_list"][i]));
skuObj["sku_properties"] = skuObj["sku_property_list"];
skuObj["quantity"] = 0;
string spec = "";
foreach (var specObj in skuObj["spec"])
{
spec += "," + specObj["spec_id"].ParseToString();
}
spec = spec.Trim(',');
skuObj["spec_id_list"] = "[" + spec + "]";
skuObj.Remove("sku_property_list");
//skuObj.Remove("sku_properties");
skuObj.Remove("spec");
skuStr += JsonHelper.SerializeObject(skuObj) + ",";
}
skuStr = skuStr.Trim(',');
}
else
{
}
pddApi.Data["sku_list"] = "[" + skuStr + "]";
// 移除为空的字段,防止误填
foreach (var key in pddApi.Data.Select(d => d.Key).ToList())
{
if (pddApi.Data[key].IsNullOrEmpty())
@@ -10270,6 +10431,13 @@ Content-Type: image/jpeg
}
};
Invoke(new Action(() =>
{
if (cell != null)
cell.Value = "正在提交更新过商品";
}));
var rst = pddApi.PddGoodsInformationUpdate();
if (!rst.Contains("\"is_success\":true"))
@@ -1290,7 +1290,7 @@ event.eventType = 'message';
usernameId.dispatchEvent(event);
";
string sInputValueChange2 = @"
public static string sInputValueChange2 = @"
function changeReactInputValue(inputDom,newText){
let lastValue = inputDom.value;
inputDom.value = newText;
@@ -293,6 +293,11 @@ namespace TemuKJD.WXForms.ProductForms
if (BaseClass.UserAuthority.ParseToString().Contains("货源选择"))
{
cmbSourceType.Visible = true;
if (!string.IsNullOrWhiteSpace(cmbSourceType.Text))
{
lblGroupFilter.Visible = true;
cmbGroupFilter.Visible = true;
}
}
if (BaseClass.UserAuthority.ParseToString().Contains("微信回采"))
{
@@ -460,9 +465,10 @@ namespace TemuKJD.WXForms.ProductForms
private void RefreshDbProdGroupAndCate()
{
string sourceType = cmbSourceType.Text.Trim();
Task.Run(() =>
{
PDDDBProdListForm.GetPDDProductGroup(cmbGroupFilter); // 同时刷新下商品分组
PDDDBProdListForm.GetPDDProductGroup(cmbGroupFilter, sourceType); // 同时刷新下商品分组
GetPddProductCate();
Invoke(new Action(() =>
{
@@ -4793,6 +4799,26 @@ namespace TemuKJD.WXForms.ProductForms
{
cmbJstInitSet.Text = "已设置";
}
string sourceType = cmbSourceType.Text.Trim();
Task.Run(() =>
{
PDDDBProdListForm.GetPDDProductGroup(cmbGroupFilter, sourceType); // 同时刷新下商品分组
});
if (!string.IsNullOrWhiteSpace(cmbSourceType.Text))
{
lblGroupFilter.Visible = true;
cmbGroupFilter.Visible = true;
}
else
{
if (BaseClass.SaLevel != 1)
{
lblGroupFilter.Visible = false;
cmbGroupFilter.Visible = false;
cmbGroupFilter.Text = "";
}
}
}
private void cmbSourceType_TextChanged(object sender, EventArgs e)