商品核价相关功能

This commit is contained in:
wule_5900x committed 2025-08-24 13:12:05 +08:00
1 parent 8135f50686
commit fae59a4c96
8 files changed
+970 -110

No files matched your search

+1
View File
@@ -194,6 +194,7 @@
<Compile Include="Model\Param\TemuProductManage\TemuSizeSpecParam.cs" />
<Compile Include="Model\Result\TemuActivityInfo.cs" />
<Compile Include="Model\Result\TemuActivityMatchProductInfo.cs" />
<Compile Include="Model\Result\TemuCheckPriceInfo.cs" />
<Compile Include="Model\Result\TemuDBPriceInfo.cs" />
<Compile Include="Model\Result\TemuDBProductSelect.cs" />
<Compile Include="Model\Result\TemuGoodsQualityInfo.cs" />
+2 -2
View File
@@ -27,8 +27,8 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 550;
//public static int VersionCount = 550;
public static int VersionCount = 552;
//public static int VersionCount = 552;
/// <summary>
/// 版本号
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result
{
public class TemuCheckPriceInfo
{
public string productName { get; set; }
public long? productId { get; set; }
public string supplierPrice { get; set; }
public long? supplierId { get; set; }
public string supplierName { get; set; }
public List<TemuCheckPriceSkcInfo> skcList { get;set; }
}
public class TemuCheckPriceSkcInfo
{
public long? skcId { get; set; }
public int? sampleType { get; set; }
public int? selectStatus { get; set; }
public TemuStatusTimeInfo statusTime { get; set; }
public List<string> previewImgUrlList { get; set; } // 列表显示图
public string supplierPrice { get; set; }
public List<string> defaultSelectedSkuList { get; set; }
public string extCode { get; set; }
public List<TemuSupplierPriceReviewInfo> supplierPriceReviewInfoList { get; set; }
public long? productCreatedAt { get; set; }
}
public class TemuStatusTimeInfo
{
public long? selectedTime { get; set; }
public long? createdTime { get; set; }
}
public class TemuSupplierPriceReviewInfo
{
public int? orderType { get; set; }
public int? times { get; set; } // 改价次数
public long? priceOrderId { get; set; } // 核价单号
public List<TemuProductSkuInfo> productSkuList { get; set; }
public int? status { get; set; }
// 去查价格和原价后 新申报价格
public int? supplyPrice { get; set; }
public int? suggestSupplyPrice { get; set; }
}
public class TemuProductSkuInfo
{
public string skuPreviewImage { get; set; }
public long? skuId { get; set; }
public int? supplierPriceValue { get; set; }
public string supplierPrice { get; set; }
public List<TemuProductPropertyInfo> productPropertyList { get; set; }
}
public class TemuProductPropertyInfo
{
public bool? important { get; set; }
public string name { get; set; }
public string value { get; set; }
}
}
+2 -2
View File
@@ -48,14 +48,14 @@ namespace TemuKJD.KJDForms.AdminForms
hideName.Remove("选品加价管理");
hideName.Remove("认领待上传");
hideName.Remove("库存上传");
//hideName.Remove("商品核价");
hideName.Remove("商品核价");
}
if (BaseClass.SaLevel==2)
{
hideName.Remove("超级店铺管理");
hideName.Remove("认领待上传");
hideName.Remove("库存上传");
//hideName.Remove("商品核价");
hideName.Remove("商品核价");
}
}
@@ -30,13 +30,21 @@ namespace TemuKJD.KJDForms.AdminForms
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.chkAllShop = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnMutliCancel = new DevComponents.DotNetBar.PanelEx();
this.btnMutliOk = new DevComponents.DotNetBar.PanelEx();
this.panelEx2 = new DevComponents.DotNetBar.PanelEx();
this.txtSkcId = new System.Windows.Forms.TextBox();
this.btnRePrice = new DevComponents.DotNetBar.PanelEx();
this.label6 = new System.Windows.Forms.Label();
this.chkSearchAllShop = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnEmpty = new DevComponents.DotNetBar.PanelEx();
this.label1 = new System.Windows.Forms.Label();
this.btnSearchPrice = new DevComponents.DotNetBar.PanelEx();
@@ -44,19 +52,19 @@ namespace TemuKJD.KJDForms.AdminForms
this.label5 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.txtNotes = new System.Windows.Forms.TextBox();
this.btnRePrice = new DevComponents.DotNetBar.PanelEx();
this.label4 = new System.Windows.Forms.Label();
this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx();
this.txtShopName = new System.Windows.Forms.TextBox();
this.txtShopId = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.pbShopLoading = new System.Windows.Forms.PictureBox();
this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx();
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -68,6 +76,7 @@ namespace TemuKJD.KJDForms.AdminForms
this.btnClear = new DevComponents.DotNetBar.PanelEx();
this.dgvAdjust = new TemuKJD.UserComponent.DataGridViewEx();
this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.colOrderId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -80,13 +89,12 @@ namespace TemuKJD.KJDForms.AdminForms
this.colAdjustPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colNewPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colPriceTimes = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colOk = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCancel = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colOk = new System.Windows.Forms.DataGridViewLinkColumn();
this.colCancel = new System.Windows.Forms.DataGridViewLinkColumn();
this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.splitContainer4 = new System.Windows.Forms.SplitContainer();
this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
this.label6 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -137,9 +145,13 @@ namespace TemuKJD.KJDForms.AdminForms
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
this.ucGroupBoxEx1.Controls.Add(this.btnMutliCancel);
this.ucGroupBoxEx1.Controls.Add(this.btnMutliOk);
this.ucGroupBoxEx1.Controls.Add(this.panelEx2);
this.ucGroupBoxEx1.Controls.Add(this.txtSkcId);
this.ucGroupBoxEx1.Controls.Add(this.btnRePrice);
this.ucGroupBoxEx1.Controls.Add(this.label6);
this.ucGroupBoxEx1.Controls.Add(this.chkAllShop);
this.ucGroupBoxEx1.Controls.Add(this.chkSearchAllShop);
this.ucGroupBoxEx1.Controls.Add(this.btnEmpty);
this.ucGroupBoxEx1.Controls.Add(this.label1);
this.ucGroupBoxEx1.Controls.Add(this.btnSearchPrice);
@@ -153,6 +165,7 @@ namespace TemuKJD.KJDForms.AdminForms
this.ucGroupBoxEx1.Controls.Add(this.txtShopId);
this.ucGroupBoxEx1.Controls.Add(this.label2);
this.ucGroupBoxEx1.Controls.Add(this.label3);
this.ucGroupBoxEx1.Controls.Add(this.label7);
this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2);
this.ucGroupBoxEx1.Name = "ucGroupBoxEx1";
this.ucGroupBoxEx1.Size = new System.Drawing.Size(1235, 120);
@@ -160,15 +173,127 @@ namespace TemuKJD.KJDForms.AdminForms
this.ucGroupBoxEx1.TabStop = false;
this.ucGroupBoxEx1.Text = "参数设置";
//
// chkAllShop
// btnMutliCancel
//
this.chkAllShop.AutoSize = true;
this.chkAllShop.Location = new System.Drawing.Point(277, 59);
this.chkAllShop.Name = "chkAllShop";
this.chkAllShop.Size = new System.Drawing.Size(147, 21);
this.chkAllShop.TabIndex = 710;
this.chkAllShop.Text = "二级超管查询所有店铺";
this.chkAllShop.UseVisualStyleBackColor = true;
this.btnMutliCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnMutliCancel.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnMutliCancel.DisabledBackColor = System.Drawing.Color.Empty;
this.btnMutliCancel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnMutliCancel.Location = new System.Drawing.Point(1114, 66);
this.btnMutliCancel.Name = "btnMutliCancel";
this.btnMutliCancel.Size = new System.Drawing.Size(98, 23);
this.btnMutliCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnMutliCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnMutliCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnMutliCancel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnMutliCancel.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnMutliCancel.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnMutliCancel.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnMutliCancel.Style.GradientAngle = 90;
this.btnMutliCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnMutliCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnMutliCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnMutliCancel.TabIndex = 772;
this.btnMutliCancel.Text = "批量拒绝报价";
this.btnMutliCancel.Click += new System.EventHandler(this.btnMutliCancel_Click);
//
// btnMutliOk
//
this.btnMutliOk.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnMutliOk.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnMutliOk.DisabledBackColor = System.Drawing.Color.Empty;
this.btnMutliOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnMutliOk.Location = new System.Drawing.Point(1114, 37);
this.btnMutliOk.Name = "btnMutliOk";
this.btnMutliOk.Size = new System.Drawing.Size(98, 23);
this.btnMutliOk.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnMutliOk.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnMutliOk.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnMutliOk.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnMutliOk.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnMutliOk.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnMutliOk.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnMutliOk.Style.GradientAngle = 90;
this.btnMutliOk.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnMutliOk.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnMutliOk.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnMutliOk.TabIndex = 768;
this.btnMutliOk.Text = "批量同意报价";
this.btnMutliOk.Click += new System.EventHandler(this.btnMutliOk_Click);
//
// panelEx2
//
this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.panelEx2.Cursor = System.Windows.Forms.Cursors.Hand;
this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.panelEx2.Location = new System.Drawing.Point(653, 66);
this.panelEx2.Name = "panelEx2";
this.panelEx2.Size = new System.Drawing.Size(99, 23);
this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.panelEx2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.panelEx2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.panelEx2.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.panelEx2.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.panelEx2.Style.ForeColor.Color = System.Drawing.Color.White;
this.panelEx2.Style.GradientAngle = 90;
this.panelEx2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.panelEx2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.panelEx2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.panelEx2.TabIndex = 749;
this.panelEx2.Text = "批量还原标题";
this.panelEx2.Click += new System.EventHandler(this.btnReturnProdName_Click);
//
// txtSkcId
//
this.txtSkcId.Location = new System.Drawing.Point(507, 37);
this.txtSkcId.Name = "txtSkcId";
this.txtSkcId.Size = new System.Drawing.Size(99, 23);
this.txtSkcId.TabIndex = 733;
//
// btnRePrice
//
this.btnRePrice.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnRePrice.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnRePrice.DisabledBackColor = System.Drawing.Color.Empty;
this.btnRePrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnRePrice.Location = new System.Drawing.Point(963, 37);
this.btnRePrice.Name = "btnRePrice";
this.btnRePrice.Size = new System.Drawing.Size(98, 23);
this.btnRePrice.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnRePrice.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnRePrice.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnRePrice.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnRePrice.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnRePrice.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnRePrice.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnRePrice.Style.GradientAngle = 90;
this.btnRePrice.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnRePrice.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnRePrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnRePrice.TabIndex = 427;
this.btnRePrice.Text = "批量再次报价";
this.btnRePrice.Click += new System.EventHandler(this.btnRePrice_Click);
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(886, 40);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(80, 17);
this.label6.TabIndex = 723;
this.label6.Text = "元(人民币)";
//
// chkSearchAllShop
//
this.chkSearchAllShop.AutoSize = true;
this.chkSearchAllShop.Location = new System.Drawing.Point(277, 59);
this.chkSearchAllShop.Name = "chkSearchAllShop";
this.chkSearchAllShop.Size = new System.Drawing.Size(147, 21);
this.chkSearchAllShop.TabIndex = 710;
this.chkSearchAllShop.Text = "二级超管查询所有店铺";
this.chkSearchAllShop.UseVisualStyleBackColor = true;
//
// btnEmpty
//
@@ -210,7 +335,7 @@ namespace TemuKJD.KJDForms.AdminForms
this.btnSearchPrice.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearchPrice.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearchPrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSearchPrice.Location = new System.Drawing.Point(590, 37);
this.btnSearchPrice.Location = new System.Drawing.Point(507, 66);
this.btnSearchPrice.Name = "btnSearchPrice";
this.btnSearchPrice.Size = new System.Drawing.Size(99, 23);
this.btnSearchPrice.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -226,6 +351,7 @@ namespace TemuKJD.KJDForms.AdminForms
this.btnSearchPrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnSearchPrice.TabIndex = 427;
this.btnSearchPrice.Text = "读取待核价";
this.btnSearchPrice.Click += new System.EventHandler(this.btnSearchPrice_Click);
//
// txtPriceDown
//
@@ -261,29 +387,6 @@ namespace TemuKJD.KJDForms.AdminForms
this.txtNotes.Size = new System.Drawing.Size(207, 23);
this.txtNotes.TabIndex = 382;
//
// btnRePrice
//
this.btnRePrice.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnRePrice.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnRePrice.DisabledBackColor = System.Drawing.Color.Empty;
this.btnRePrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnRePrice.Location = new System.Drawing.Point(963, 37);
this.btnRePrice.Name = "btnRePrice";
this.btnRePrice.Size = new System.Drawing.Size(98, 23);
this.btnRePrice.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnRePrice.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnRePrice.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnRePrice.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.btnRePrice.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
this.btnRePrice.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
this.btnRePrice.Style.ForeColor.Color = System.Drawing.Color.White;
this.btnRePrice.Style.GradientAngle = 90;
this.btnRePrice.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
this.btnRePrice.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnRePrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.btnRePrice.TabIndex = 427;
this.btnRePrice.Text = "批量再次报价";
//
// label4
//
this.label4.AutoSize = true;
@@ -349,6 +452,15 @@ namespace TemuKJD.KJDForms.AdminForms
this.label3.TabIndex = 381;
this.label3.Text = "店铺名:";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(465, 40);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(52, 17);
this.label7.TabIndex = 734;
this.label7.Text = "SkcId:";
//
// splitContainer3
//
this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -408,22 +520,22 @@ namespace TemuKJD.KJDForms.AdminForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle5.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5;
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)))));
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
this.colShopLoginName,
this.colLoginName,
this.colShopId,
this.colShopName,
this.colShopNotes,
@@ -438,6 +550,7 @@ namespace TemuKJD.KJDForms.AdminForms
this.dgvShop.RowTemplate.Height = 23;
this.dgvShop.Size = new System.Drawing.Size(276, 431);
this.dgvShop.TabIndex = 6;
this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
// colSelect
//
@@ -448,12 +561,12 @@ namespace TemuKJD.KJDForms.AdminForms
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colSelect.Width = 28;
//
// colShopLoginName
// colLoginName
//
this.colShopLoginName.HeaderText = "店铺登录名";
this.colShopLoginName.Name = "colShopLoginName";
this.colShopLoginName.ReadOnly = true;
this.colShopLoginName.Visible = false;
this.colLoginName.HeaderText = "店铺登录名";
this.colLoginName.Name = "colLoginName";
this.colLoginName.ReadOnly = true;
this.colLoginName.Visible = false;
//
// colShopId
//
@@ -569,21 +682,22 @@ namespace TemuKJD.KJDForms.AdminForms
//
this.dgvAdjust.AllowUserToAddRows = false;
this.dgvAdjust.AllowUserToDeleteRows = false;
dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvAdjust.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvAdjust.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.dgvAdjust.BackgroundColor = System.Drawing.Color.White;
this.dgvAdjust.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvAdjust.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8;
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.dgvAdjust.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgvAdjust.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvAdjust.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
this.colOrderId,
this.colSupplierId,
this.colSupplierName,
this.colImgUrl,
@@ -606,6 +720,8 @@ namespace TemuKJD.KJDForms.AdminForms
this.dgvAdjust.RowTemplate.Height = 23;
this.dgvAdjust.Size = new System.Drawing.Size(953, 431);
this.dgvAdjust.TabIndex = 187;
this.dgvAdjust.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvAdjust_CellContentClick);
this.dgvAdjust.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvAdjust_Scroll);
//
// colCheck
//
@@ -616,6 +732,13 @@ namespace TemuKJD.KJDForms.AdminForms
this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colCheck.Width = 30;
//
// colOrderId
//
this.colOrderId.HeaderText = "处理单号";
this.colOrderId.Name = "colOrderId";
this.colOrderId.ReadOnly = true;
this.colOrderId.Visible = false;
//
// colSupplierId
//
this.colSupplierId.HeaderText = "店铺Id";
@@ -665,6 +788,8 @@ namespace TemuKJD.KJDForms.AdminForms
//
// colProdName
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProdName.DefaultCellStyle = dataGridViewCellStyle5;
this.colProdName.HeaderText = "标题";
this.colProdName.Name = "colProdName";
this.colProdName.ReadOnly = true;
@@ -672,6 +797,8 @@ namespace TemuKJD.KJDForms.AdminForms
//
// colSkuName
//
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSkuName.DefaultCellStyle = dataGridViewCellStyle6;
this.colSkuName.HeaderText = "规格名称";
this.colSkuName.Name = "colSkuName";
this.colSkuName.ReadOnly = true;
@@ -710,6 +837,8 @@ namespace TemuKJD.KJDForms.AdminForms
this.colOk.HeaderText = "同意报价";
this.colOk.Name = "colOk";
this.colOk.ReadOnly = true;
this.colOk.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colOk.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colOk.Width = 80;
//
// colCancel
@@ -717,6 +846,8 @@ namespace TemuKJD.KJDForms.AdminForms
this.colCancel.HeaderText = "拒绝报价";
this.colCancel.Name = "colCancel";
this.colCancel.ReadOnly = true;
this.colCancel.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colCancel.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.colCancel.Width = 80;
//
// colMsg
@@ -766,15 +897,6 @@ namespace TemuKJD.KJDForms.AdminForms
this.statusBar.Size = new System.Drawing.Size(955, 26);
this.statusBar.TabIndex = 2;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(886, 40);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(80, 17);
this.label6.TabIndex = 723;
this.label6.Text = "元(人民币)";
//
// AdminProductPriceCheckForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -828,7 +950,32 @@ namespace TemuKJD.KJDForms.AdminForms
private UserControls.StatusBarUserControl statusBar;
private DevComponents.DotNetBar.PanelEx panelEx1;
private DevComponents.DotNetBar.PanelEx btnClear;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtNotes;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtShopName;
private System.Windows.Forms.TextBox txtShopId;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label5;
private DevComponents.DotNetBar.PanelEx btnEmpty;
private System.Windows.Forms.PictureBox pbLoading;
private UserControls.UcSplitPage ucSplitPage1;
private System.Windows.Forms.PictureBox pbShopLoading;
private UserComponent.UcCheckBox chkSearchAllShop;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private System.Windows.Forms.TextBox txtSkcId;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck;
private System.Windows.Forms.DataGridViewTextBoxColumn colOrderId;
private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId;
private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName;
private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl;
@@ -841,30 +988,11 @@ namespace TemuKJD.KJDForms.AdminForms
private System.Windows.Forms.DataGridViewTextBoxColumn colAdjustPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colNewPrice;
private System.Windows.Forms.DataGridViewTextBoxColumn colPriceTimes;
private System.Windows.Forms.DataGridViewTextBoxColumn colOk;
private System.Windows.Forms.DataGridViewTextBoxColumn colCancel;
private System.Windows.Forms.DataGridViewLinkColumn colOk;
private System.Windows.Forms.DataGridViewLinkColumn colCancel;
private System.Windows.Forms.DataGridViewTextBoxColumn colMsg;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtNotes;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtShopName;
private System.Windows.Forms.TextBox txtShopId;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label5;
private DevComponents.DotNetBar.PanelEx btnEmpty;
private System.Windows.Forms.PictureBox pbLoading;
private UserControls.UcSplitPage ucSplitPage1;
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopId;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopName;
private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes;
private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus;
private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse;
private System.Windows.Forms.DataGridViewTextBoxColumn colMessage;
private System.Windows.Forms.PictureBox pbShopLoading;
private UserComponent.UcCheckBox chkAllShop;
private System.Windows.Forms.Label label6;
private DevComponents.DotNetBar.PanelEx panelEx2;
private DevComponents.DotNetBar.PanelEx btnMutliCancel;
private DevComponents.DotNetBar.PanelEx btnMutliOk;
}
}
@@ -2,6 +2,7 @@
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using NaiBa.Util.Winform.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -9,15 +10,20 @@ using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.KJDForms.BaseForms;
using TemuKJD.KJDForms.ShopForms;
using Work;
namespace TemuKJD.KJDForms.AdminForms
{
public partial class AdminProductPriceCheckForm : Form
{
public static List<ShopLoginInfo> lstAdminShopInfo { get; set; } = new List<ShopLoginInfo>();
PriceCheckConfig priceCheckConfig = null;
public List<ShopLoginInfo> lstAdminShopInfo { get; set; } = new List<ShopLoginInfo>();
public List<TemuCheckPriceInfo> lstCheckPriceInfo = new List<TemuCheckPriceInfo>();
public AdminProductPriceCheckForm()
{
@@ -27,6 +33,7 @@ namespace TemuKJD.KJDForms.AdminForms
private void AdminProductPriceCheckForm_Load(object sender, EventArgs e)
{
this.dgvShop.AddSelectorColumn("colSelect");
this.dgvAdjust.AddSelectorColumn("colCheck");
if (BaseClass.SaLevel != 1)
{
@@ -35,6 +42,32 @@ namespace TemuKJD.KJDForms.AdminForms
//dgvShop.Columns["colSubSa"].Visible = false;
//btnSetSubSa.Visible = false;
}
priceCheckConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig<PriceCheckConfig>("price_check_config");
if (priceCheckConfig == null)
priceCheckConfig = new PriceCheckConfig();
this.txtNotes.Text = priceCheckConfig.SearchNotes;
this.txtShopId.Text = priceCheckConfig.SearchShopId;
this.txtShopName.Text = priceCheckConfig.SearchShopName;
this.txtPriceDown.Text = priceCheckConfig.PriceDown;
this.chkSearchAllShop.Checked = priceCheckConfig.SearchAllShop;
this.txtNotes.TextChanged += Txt_TextChanged;
this.txtShopId.TextChanged += Txt_TextChanged;
this.txtShopName.TextChanged += Txt_TextChanged;
this.txtPriceDown.TextChanged += Txt_TextChanged;
this.chkSearchAllShop.CheckedChanged += Txt_TextChanged;
}
private void Txt_TextChanged(object sender, EventArgs e)
{
priceCheckConfig.SearchNotes = this.txtNotes.Text.Trim();
priceCheckConfig.SearchShopId = this.txtShopId.Text.Trim();
priceCheckConfig.SearchShopName = this.txtShopName.Text.Trim();
priceCheckConfig.PriceDown = this.txtPriceDown.Text.Trim();
priceCheckConfig.SearchAllShop = this.chkSearchAllShop.Checked;
NaiBa.Util.Helper.ConfigHelper.SaveConfig("price_check_config", priceCheckConfig);
}
bool firstLoad = true;
@@ -124,20 +157,20 @@ namespace TemuKJD.KJDForms.AdminForms
if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
{
string shopName = dgvShop.Rows[i].Cells["colShopId"].Value.ParseToString();
shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString();
//shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString();
shopNameList.Add(shopName);
}
}
return shopNameList;
}
public List<ShopLoginInfo> AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 500)
public List<ShopLoginInfo> AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50)
{
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
pageCount = 1;
var url = BaseClass.BuildObjString("shop/admin_get_shop_list");
if (BaseClass.SaLevel > 1 && !chkAllShop.Checked)
if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
url = BaseClass.BuildObjString("shop/sub_sa_get_select_prod_shop");
var data = UserLogin.GetSignaturex() +
"&page=" + page +
@@ -145,7 +178,7 @@ namespace TemuKJD.KJDForms.AdminForms
"&shop_ids=" + txtShopId.Text.Trim() +
"&shop_names=" + txtShopName.Text.Trim() +
"&search_notes=" + txtNotes.Text.Trim();
if (BaseClass.SaLevel > 1 && !chkAllShop.Checked)
if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked)
data += "&operate_sub_sa_name=" + BaseClass.UserName;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
@@ -169,5 +202,627 @@ namespace TemuKJD.KJDForms.AdminForms
{
txtNotes.Text = txtShopId.Text = txtShopName.Text = "";
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText;
string loginName = dgvShop.Rows[e.RowIndex].Cells["colLoginName"].Value.ParseToString();
string accountId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString();
var shop = lstAdminShopInfo.FirstOrDefault(v => v.LoginName == loginName && v.ShopId == accountId);
switch (headerText)
{
case "登录":
case "状态":
{
AdminShopLoginForm shopLoginForm = new AdminShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
}
break;
default:
dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value;
break;
}
}
private void shopLoginForm_SaveComplete(object obj)
{
//SearchShop(this.ucSplitPage1.CurrentPage);
var shop = obj as ShopLoginInfo;
if (shop == null)
return;
bool canUse = shop.LoginStatus2 == "国际版在线";
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName);
foreach (var row in rows)
{
row.Cells["colCanUse"].Value = canUse;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
}
private void dgvAdjust_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvAdjust.Columns[e.ColumnIndex].HeaderText;
string orderId = dgvAdjust.Rows[e.RowIndex].Cells["colOrderId"].Value.ParseToString();
string accountId = dgvAdjust.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString();
var shop = lstAdminShopInfo.FirstOrDefault(v => v.ShopId == accountId);
switch (headerText)
{
case "同意报价":
{
applyHighPrice(shop, orderId, dgvAdjust.Rows[e.RowIndex]);
}
break;
case "拒绝报价":
{
cancelLowPrice(shop, orderId, dgvAdjust.Rows[e.RowIndex]);
}
break;
default:
dgvAdjust.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvAdjust.Rows[e.RowIndex].Cells["colCheck"].Value;
break;
}
}
private void applyHighPrice(ShopLoginInfo shop, string orderId, DataGridViewRow row)
{
//{"supplierResult":1,"priceOrderId":2508081200527258,"items":[{ "productSkuId":22954374419,"price":14500},{ "productSkuId":11040177436,"price":14500},{ "productSkuId":47081005481,"price":14500},{ "productSkuId":62542358120,"price":14500},{ "productSkuId":70385131590,"price":14500},{ "productSkuId":19665043575,"price":14500},{ "productSkuId":49890165809,"price":14500},{ "productSkuId":31851005577,"price":14500},{ "productSkuId":77977214817,"price":14500},{ "productSkuId":30313877294,"price":14500},{ "productSkuId":55921323568,"price":14500},{ "productSkuId":61553511772,"price":14500},{ "productSkuId":31344600169,"price":14500},{ "productSkuId":79990531362,"price":14500}],"bargainReasonList":[]}
if (shop == null)
return;
TemuSupplierPriceReviewInfo priceReview = null;
foreach (var price in this.lstCheckPriceInfo)
{
if (priceReview != null)
break;
foreach (var Review in price.skcList.FirstOrDefault()?.supplierPriceReviewInfoList)
{
if (Review.priceOrderId.ParseToString() == orderId)
{
priceReview = Review;
break;
}
}
}
if (priceReview == null)
return;
string data = "{\"supplierResult\":1,\"priceOrderId\":" + priceReview.priceOrderId + ",\"items\":[";
foreach (var sku in priceReview.productSkuList)
{
data += "{\"productSkuId\":" + sku.skuId + ",\"price\":" + priceReview.suggestSupplyPrice + "},";
}
data = data.TrimEnd(',');
data += "],\"bargainReasonList\":[]}";
var rst = applyPrice(shop, orderId, data);
if (row != null)
{
if (rst.Contains("\"success\":true"))
row.Cells["colMsg"].Value = "已核价";
else
row.Cells["colMsg"].Value = "核价失败" + rst;
}
}
private void rePrice(ShopLoginInfo shop, string orderId, DataGridViewRow row)
{
//{"supplierResult":2,"priceOrderId":2508081238454147,"items":[{"productSkuId":70647701317,"price":18490},{"productSkuId":34466033044,"price":18490},{"productSkuId":34464576879,"price":18490},{"productSkuId":34895719118,"price":18490},{"productSkuId":61915282142,"price":18490},{"productSkuId":76031311695,"price":18490},{"productSkuId":93752826474,"price":18490},{"productSkuId":18180751875,"price":18490},{"productSkuId":65333379322,"price":18490},{"productSkuId":71131751234,"price":18490},{"productSkuId":10651693269,"price":18490},{"productSkuId":89672993631,"price":18490},{"productSkuId":38775502377,"price":18490},{"productSkuId":93279836006,"price":18490},{"productSkuId":77125468089,"price":18490}],"bargainReasonList":[]}
if (shop == null)
return;
TemuSupplierPriceReviewInfo priceReview = null;
foreach (var price in this.lstCheckPriceInfo)
{
if (priceReview != null)
break;
foreach (var Review in price.skcList.FirstOrDefault()?.supplierPriceReviewInfoList)
{
if (Review.priceOrderId.ParseToString() == orderId)
{
priceReview = Review;
break;
}
}
}
if (priceReview == null)
return;
int priceDown = (priceReview.times * this.txtPriceDown.Text.ParseToDecimal() * 100).ParseToInt();
string data = "{\"supplierResult\":2,\"priceOrderId\":" + priceReview.priceOrderId + ",\"items\":[";
foreach (var sku in priceReview.productSkuList)
{
data += "{\"productSkuId\":" + sku.skuId + ",\"price\":" + (priceReview.supplyPrice - priceDown) + "},";
}
data = data.TrimEnd(',');
data += "],\"bargainReasonList\":[]}";
var rst = rePrice(shop, orderId, data);
if (row != null)
{
if (rst.Contains("\"success\":true"))
row.Cells["colMsg"].Value = "已重新申请价格";
else
row.Cells["colMsg"].Value = "重新申请价格失败" + rst;
}
}
private void cancelLowPrice(ShopLoginInfo shop, string orderId, DataGridViewRow row)
{
if (shop == null)
return;
var rst = this.cancelPrice(shop, orderId);
if (row != null)
{
if (rst.Contains("\"success\":true"))
row.Cells["colMsg"].Value = "已拒绝报价";
else
row.Cells["colMsg"].Value = "拒绝报价失败" + rst;
}
}
private void btnSearchPrice_Click(object sender, EventArgs e)
{
var selectShopIdLst = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true)
.Select(r => r.Cells["colShopId"].Value.ParseToString()).ToList();
var shops = this.lstAdminShopInfo.Where(s => selectShopIdLst.Contains(s.ShopId)).ToList();
if (shops.Count == 0)
{
BaseMsgForm.ShowError("没有选择店铺!");
return;
}
this.dgvAdjust.Rows.Clear();
this.lstCheckPriceInfo.Clear();
this.pbLoading.Visible = true;
Task.Run(() =>
{
foreach (var shopId in selectShopIdLst)
{
var shop = this.lstAdminShopInfo.Where(s => shopId == s.ShopId).ToList().FirstOrDefault();
if (shop == null)
continue;
AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus2 != "国际版在线")
{
var canUse = false;
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName);
foreach (var row in rows)
{
row.Cells["colCanUse"].Value = canUse;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed;
}
}
int page = 0;
int totalPage = 1;
while (page < totalPage)
{
page++;
var searchRst = this.SearchForChainSupplier(shop, page, txtSkcId.Text.Trim());
if (searchRst.Contains("\"success\":true"))
{
try
{
var jObj = JObject.Parse(searchRst);
var jArr = jObj["result"]["dataList"] as JArray;
if (jArr == null)
jArr = new JArray();
foreach (var item in jArr)
{
var jStr = JsonHelper.SerializeObject(item);
TemuCheckPriceInfo priceInfo = JsonHelper.DeserializeJsonToObject<TemuCheckPriceInfo>(jStr);
lstCheckPriceInfo.Add(priceInfo);
string imgUrl = priceInfo.skcList.FirstOrDefault()?.previewImgUrlList.FirstOrDefault();
if (imgUrl == null)
imgUrl = "";
imgUrl = imgUrl.Replace("https://", "http://") + "?imageMogr2/thumbnail/60x";
//string getImgError = "";
//var img = GetHtml.GetUrlImg(imgUrl + "?imageMogr2/thumbnail/60x", out getImgError);
foreach (var reviewInfo in priceInfo.skcList.FirstOrDefault().supplierPriceReviewInfoList)
{
if (reviewInfo.status == 3) //放弃调整报价,报价显示已作废
continue;
string skuName = "";
var prodSkuList = reviewInfo.productSkuList;
if (prodSkuList != null)
{
foreach (var sku in prodSkuList)
{
foreach (var prop in sku.productPropertyList)
{
skuName += prop.value + ";";
}
//skuName = skuName.TrimEnd(';');
skuName += "\r\n";
}
}
var orderPriceRst = GetCheckPrice(shop, reviewInfo.priceOrderId.ParseToString());
reviewInfo.suggestSupplyPrice = BaseRegex.GetIntJson(ref orderPriceRst, "suggestSupplyPrice");
reviewInfo.supplyPrice = BaseRegex.GetIntJson(ref orderPriceRst, "supplyPrice");
var suggestSupplyPrice = (reviewInfo.suggestSupplyPrice / 100.0).ToString();
if (suggestSupplyPrice == "0")
suggestSupplyPrice = "获取推荐价格失败,请重试";
else
suggestSupplyPrice += "¥";
Thread.Sleep(Randomx.GetId(20, 50));
Invoke(new Action(() =>
{
int rowId = this.dgvAdjust.Rows.Add(
false,
reviewInfo.priceOrderId,
priceInfo.supplierId,
priceInfo.supplierName,
imgUrl,
defaultBitmap,
priceInfo.productId,
priceInfo.skcList.FirstOrDefault()?.skcId,
priceInfo.productName,
skuName,
reviewInfo.productSkuList.FirstOrDefault()?.supplierPrice, //priceInfo.supplierPrice,
suggestSupplyPrice,//核价
"", //新报价
reviewInfo.times, // 修改报价次数
"同意",
"拒绝",
""
);
dgvAdjust.Rows[rowId].Height = 60;
}));
}
this.ShowDgvImg();
}
}
catch (Exception ex)
{
BaseMsgForm.ShowError(ex.Message);
break;
}
}
int total = BaseRegex.GetStringJson(ref searchRst, "total").ParseToInt();
totalPage = Math.Ceiling(total / 100.0).ParseToInt();
}
}
Invoke(new Action(() => {
this.pbLoading.Visible = false;
}));
});
}
private string SearchForChainSupplier (ShopLoginInfo shop, int page, string prodSkcIds = null)
{
string url = "https://agentseller.temu.com/api/kiana/mms/robin/searchForChainSupplier";
string body = @"{""pageSize"":100,""pageNum"":" + page + @",""priceReviewStatusList"":[1],""secondarySelectStatusList"":[7],""supplierTodoTypeList"":[]}";
if (!string.IsNullOrEmpty(prodSkcIds))
body = @"{""pageSize"":50,""pageNum"":" + page + @",""priceReviewStatusList"":[1],""secondarySelectStatusList"":[7],""supplierTodoTypeList"":[],""productSkcIdList"":["+ prodSkcIds + "]}";
string referer = "https://agentseller.temu.com/newon/product-select";
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
private string GetCheckPrice(ShopLoginInfo shop, string orderId)
{
string url = "https://agentseller.temu.com/api/kiana/mms/magneto/api/price-review-order/no-bom/reject-remark";
string body = @"{""orderId"":" + orderId + "}";
string referer = "https://agentseller.temu.com/newon/product-select";
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
private string applyPrice(ShopLoginInfo shop, string orderId, string data)
{
string url = "https://agentseller.temu.com/api/kiana/mms/magneto/price/bargain-no-bom";
string body = data;
string referer = "https://agentseller.temu.com/newon/product-select";
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
private string rePrice(ShopLoginInfo shop, string orderId, string data)
{
string url = "https://agentseller.temu.com/api/kiana/mms/magneto/price/bargain-no-bom";
string body = data;
string referer = "https://agentseller.temu.com/newon/product-select";
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
private string cancelPrice(ShopLoginInfo shop, string orderId)
{
string url = "https://agentseller.temu.com/api/kiana/mms/magneto/api/price-review-order/no-bom/review";
string body = @"{""priceOrderId"":" + orderId + "}";
string referer = "https://agentseller.temu.com/newon/product-select";
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
private string editPriceProductNameBatchAdd(ShopLoginInfo shop, string productId)
{
string url = "https://agentseller.temu.com/lich-mms/audit/edit/task/product/batchAdd";
string body = @"{""bizIdType"":1,""bizIds"":["+ productId + @"],""productEditItems"":[{""editItem"":1,""editAdvice"":""优化""}]}";
string referer = "https://agentseller.temu.com/goods/list?productId=" + productId;
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
private string editPriceProductName(ShopLoginInfo shop, string taskUid, string productId, string productNewName)
{
string url = "https://agentseller.temu.com/visage-agent-seller/product/edit/task/reply";
//string body = @"{""productId"":4432690492,""taskUid"":""8de73095-733e-4cdf-8fbd-3ddd8d9dff18"",""taskVersion"":0,""refuseEdit"":false,""productName"":""男士轻便 EVA 拖鞋,带钩环后跟带 ,舒适的露趾拖鞋,适合室内和室外使用,家居拖鞋,易于使用的魔鬼毡扣带扣,洞洞鞋,家居拖鞋,带钩环扣件,适合室内和室外使用,带扣凉鞋,后厨工专用鞋简约款两用,适合室内/室外使用,春夏凉鞋,EVA 拖鞋,适合19个不同的搭配风格""}";
string body = @"{""productId"":" + productId + @",""taskUid"":""" + taskUid + @""",""taskVersion"":0,""refuseEdit"":false,""productName"":""" + productNewName + @"""}";
string referer = "https://agentseller.temu.com/goods/edit?from=platform&productId=" + productId + "&taskUid=" + taskUid;
return KJDHttpResponse.PostResponse2(shop, url, body, referer);
}
Bitmap defaultBitmap = new Bitmap(80, 80);
void ShowDgvImg()
{
Task.Run(() =>
{
foreach (DataGridViewRow row in this.dgvAdjust.Rows)
{
if (row.Index > 0 && row.Cells["colProductSkcPic"].Displayed == false)
{
try
{
Invoke(new Action(() =>
{
row.Cells["colProductSkcPic"].Value = defaultBitmap;
}));
}
catch
{
}
continue;
}
if (row.Cells["colProductSkcPic"].Value != null && row.Cells["colProductSkcPic"].Value != defaultBitmap)
continue;
Image image = null;
string imgUrl = row.Cells["colImgUrl"]?.Value.ParseToString();
string getImgError = "";
if (!string.IsNullOrWhiteSpace(imgUrl))
image = GetHtml.GetUrlImg(imgUrl, out getImgError);
if (!string.IsNullOrEmpty(getImgError))
BaseMsgForm.ShowError(getImgError);
try
{
Invoke(new Action(() =>
{
row.Cells["colProductSkcPic"].Value = image;
}));
}
catch
{
}
}
});
}
private void dgvAdjust_Scroll(object sender, ScrollEventArgs e)
{
this.ShowDgvImg();
}
private void btnReturnProdName_Click(object sender, EventArgs e)
{
var products = this.dgvAdjust.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true)
.Select(r => r.Cells["colProductId"].Value.ParseToString());
var prices = this.lstCheckPriceInfo.Where(p => products.Contains(p.productId.ParseToString())).ToList();
if (prices.Count == 0)
{
BaseMsgForm.ShowError("未选择商品");
return;
}
this.pbLoading.Visible = true;
Task.Run(() =>
{
foreach (var price in prices)
{
var rows = this.dgvAdjust.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colProductId"].Value.ParseToString() == price.productId.ParseToString()).ToList();
var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == price.supplierId.ParseToString());
var html = editPriceProductNameBatchAdd(shop, price.productId.ParseToString());
//{"success":true,"errorCode":1000000,"errorMsg":null,"result":{"handleFailedList":[{"failedBizId":4432690492,"failedReason":"This product has pending or in-progress modification tasks, cannot initiate again"}],"addFailedList":[{"failedBizId":4432690492,"failedReason":"This product has pending or in-progress modification tasks, cannot initiate again","failedReasonType":8}],"successBizId2TaskUidMap":{}}}
if (html.Contains("This product has pending or in-progress modification tasks"))
{
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colMsg"].Value = "已提交过修改请求";
}));
continue;
}
if (!html.Contains("\"success\":true"))
{
string sErrMsg = BaseRegex.GetStringJson(ref html, "errorMsg").ParseToString();
if (string.IsNullOrEmpty(sErrMsg))
{
sErrMsg = BaseRegex.GetStringJson(ref html, "error_msg").ParseToString();
}
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colMsg"].Value = "修改请求失败 " + sErrMsg;
}));
continue;
}
try
{
JObject jObj = JObject.Parse(html);
var item = jObj["result"]["successBizId2TaskUidMap"].LastOrDefault().LastOrDefault();
var pName = price.productName;
var newPName = pName;
if (pName.EndsWith("适合不同的搭配风格") && pName.IndexOf("个") < 4)
{
var headword = pName.Substring(0, pName.IndexOf("个") + 1);
newPName = pName.Substring(pName.IndexOf("个") + 1);
newPName = newPName.Replace("适合不同的搭配风格", "适合" + headword + "不同的搭配风格");
}
html = editPriceProductName(shop, item.ParseToString(), price.productId.ParseToString(), newPName);
Thread.Sleep(Randomx.GetId(25, 75));
if (html.Contains("\"success\":true"))
{
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colMsg"].Value = "修改请求成功";
}));
}
else
{
string sErrMsg = BaseRegex.GetStringJson(ref html, "errorMsg").ParseToString();
if (string.IsNullOrEmpty(sErrMsg))
{
sErrMsg = BaseRegex.GetStringJson(ref html, "error_msg").ParseToString();
}
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colMsg"].Value = "修改请求失败 " + sErrMsg;
}));
continue;
}
}
catch (Exception ex)
{
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colMsg"].Value = "修改请求失败 " + ex.Message;
}));
continue;
}
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
}));
});
}
private void btnRePrice_Click(object sender, EventArgs e)
{
var rows = this.dgvAdjust.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList();
if (rows.Count == 0)
{
BaseMsgForm.ShowError("未选择要重新报价的商品!");
return;
}
this.pbLoading.Visible = true;
Task.Run(() =>
{
foreach (var row in rows)
{
var orderId = row.Cells["colOrderId"].Value.ParseToString();
var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == row.Cells["colSupplierId"].Value.ParseToString());
if (shop == null)
continue;
this.rePrice(shop, orderId, row);
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
}));
});
}
private void btnMutliOk_Click(object sender, EventArgs e)
{
var rows = this.dgvAdjust.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList();
if (rows.Count == 0)
{
BaseMsgForm.ShowError("未选择要重新报价的商品!");
return;
}
this.pbLoading.Visible = true;
Task.Run(() =>
{
foreach (var row in rows)
{
var orderId = row.Cells["colOrderId"].Value.ParseToString();
var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == row.Cells["colSupplierId"].Value.ParseToString());
if (shop == null)
continue;
this.applyHighPrice(shop, orderId, row);
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
}));
});
}
private void btnMutliCancel_Click(object sender, EventArgs e)
{
var rows = this.dgvAdjust.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList();
if (rows.Count == 0)
{
BaseMsgForm.ShowError("未选择要重新报价的商品!");
return;
}
this.pbLoading.Visible = true;
Task.Run(() =>
{
foreach (var row in rows)
{
var orderId = row.Cells["colOrderId"].Value.ParseToString();
var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == row.Cells["colSupplierId"].Value.ParseToString());
if (shop == null)
continue;
this.cancelLowPrice(shop, orderId, row);
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
}));
});
}
}
public class PriceCheckConfig
{
public string SearchShopId { get; set; } = "";
public string SearchShopName { get; set; } = "";
public string SearchNotes { get; set; } = "";
/// <summary>
/// 价格不合适时,重新设置价格降价金额(人民币)
/// </summary>
public string PriceDown { get; set; } = "0.1";
public bool SearchAllShop { get; set; } = true;
}
}
@@ -120,7 +120,7 @@
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -141,6 +141,9 @@
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colOrderId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -421,6 +421,10 @@ namespace TemuKJD.KJDForms.ShopForms
else
{
rst = BaseRegex.GetStringJson(ref html, "msg");
if (rst == null)
{
rst = "";
}
if ((rst.Contains("此退货包裹号") && rst.Contains("已经存在")) || rst.Contains("店铺系统不存在"))
{
//这些情况直接跳过