店铺优化功能优化

This commit is contained in:
wule committed 2026-04-27 20:38:53 +08:00
1 parent 5e0a54a8ba
commit 16342df70a
22 files changed
+1121 -442

No files matched your search

+1
View File
@@ -287,6 +287,7 @@
<Compile Include="Model\Result\WXResult\GetCateOnShelfInfo.cs" />
<Compile Include="Model\Result\WXResult\GetProdCateInfo.cs" />
<Compile Include="Model\Result\WXResult\WxCatInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOptimizeExpressInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOptimizeOrderAfterSaleInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOptimizeProductEvaluationInfo.cs" />
<Compile Include="Model\Result\WXResult\WxOptrimizeLinerCgiInfo.cs" />
+1 -1
View File
@@ -27,7 +27,7 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 1013;
public static int VersionCount = 1016;
//public static int VersionCount = 613;
/// <summary>
@@ -20,24 +20,31 @@ namespace AllBase.Model.Result.PDDResult
//BTWL 百世快运
//HTKY 百世快递
public static string GetWxExpressCompanyCode(string expressCompanyName)
{
if (expressCompanyName == null || expressCompanyName == "") return "";
if (expressCompanyName.Contains("邮政快递包裹")) return "EMS";
if (expressCompanyName.Contains("邮政电商标快")) return "EMS";
if (expressCompanyName.Contains("邮政EMS")) return "EMS";
if (expressCompanyName.Contains("极兔速递")) return "JTSD";
if (expressCompanyName.Contains("申通快递")) return "STO";
if (expressCompanyName.Contains("韵达快递")) return "YD";
if (expressCompanyName.Contains("圆通快递")) return "YTO";
if (expressCompanyName.Contains("中通快递")) return "ZTO";
if (expressCompanyName.Contains("百世快运")) return "BTWL";
if (expressCompanyName.Contains("百世快递")) return "HTKY";
if (expressCompanyName.Contains("顺丰速运")) return "SF";
if (expressCompanyName.Contains("京东快递")) return "JD";
if (expressCompanyName.Contains("京东快运")) return "JDKY";
return "";
}
public string outExpressCompanyMsg { get; set; } // 物流公司名称,可以尝试直接从列表中匹配
public string outExpressCompanyCode
{
get
{
if (outExpressCompanyMsg == null || outExpressCompanyMsg == "") return "";
if (outExpressCompanyMsg.Contains("邮政快递包裹")) return "EMS";
if (outExpressCompanyMsg.Contains("邮政电商标快")) return "EMS";
if (outExpressCompanyMsg.Contains("邮政EMS")) return "EMS";
if (outExpressCompanyMsg.Contains("极兔速递")) return "JTSD";
if (outExpressCompanyMsg.Contains("申通快递")) return "STO";
if (outExpressCompanyMsg.Contains("韵达快递")) return "YD";
if (outExpressCompanyMsg.Contains("圆通快递")) return "YTO";
if (outExpressCompanyMsg.Contains("中通快递")) return "ZTO";
if (outExpressCompanyMsg.Contains("百世快运")) return "BTWL";
if (outExpressCompanyMsg.Contains("百世快递")) return "HTKY";
if (outExpressCompanyMsg.Contains("顺丰")) return "SF";
return "";
return GetWxExpressCompanyCode(outExpressCompanyName);
}
}
public string outExpressCompanyName
@@ -55,7 +62,9 @@ namespace AllBase.Model.Result.PDDResult
if (outExpressCompanyMsg.Contains("百世快运")) return "百世快运";
if (outExpressCompanyMsg.Contains("百世快递")) return "百世快递";
if (outExpressCompanyMsg.Contains("邮政EMS")) return "邮政EMS";
if (outExpressCompanyMsg.Contains("顺丰")) return "顺丰速运";
if (outExpressCompanyMsg.Contains("顺丰速运")) return "顺丰速运";
if (outExpressCompanyMsg.Contains("京东快递")) return "京东快递";
if (outExpressCompanyMsg.Contains("京东快运")) return "京东快运";
return "物流名称获取失败";
}
}
@@ -10,6 +10,8 @@ namespace AllBase.Model.Result.WXResult
{
public string shopId { get; set; }
public string shopName { get; set; }
public string optimizeWaybillId { get; set; }
public string optimizeTime { get; set; }
public AfterSaleOrderInfo orderInfo { get; set; }
public string reason { get; set; } // "生锈/弯曲变形/钝化不锋利"
@@ -10,6 +10,8 @@ namespace AllBase.Model.Result.WXResult
{
public string shopId { get; set; }
public string shopName { get; set; }
public string optimizeWaybillId { get; set; }
public string optimizeTime { get; set; }
public WayBillOrderInfo orderInfo { get; set; }
public string waybillId { get; set; } // "JT4157662637789",
@@ -10,6 +10,10 @@ namespace AllBase.Model.Result.WXResult
{
public string shopId { get; set; }
public string shopName { get; set; }
public string optimizeWaybillId { get; set; }
public string optimizeTime { get; set; }
public string order_id { get; set; }
public string productEvaluationId { get; set; } // "53890834526",
public OptimizeEvaluationInfo evaluationInfo { get; set; }
@@ -10,6 +10,8 @@ namespace AllBase.Model.Result.WXResult
{
public string shopId { get; set; }
public string shopName { get; set; }
public string optimizeWaybillId { get; set; }
public string optimizeTime { get; set; }
public string receipt_province { get; set; } // "福建省",
public string ship_province { get; set; } // "广东省",
@@ -894,8 +894,8 @@ namespace KJD_Web.BLL.WXXD
sql += where;
sql += " order by id desc limit " + Math.Max(0, page - 1) * page_size + "," + page_size + ";";
dt = mySql.ExecuteDataTable(sql);
mySql.Close();
}
mySql.Close();
if (dt != null)
{
@@ -79,7 +79,8 @@ namespace KJD_Web.BLL.WXXD
var userAuthLst = user.authority.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
if (!main_authority.Contains("积分用户"))
{
user.authority = string.Join(",", userAuthLst.Remove("积分用户"));
userAuthLst.Remove("积分用户");
user.authority = string.Join(",", userAuthLst);
}
else if (!user.authority.Contains("积分用户"))
{
@@ -344,7 +345,8 @@ namespace KJD_Web.BLL.WXXD
var userAuthLst = user.authority.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
if (!main_authority.Contains("积分用户"))
{
user.authority = string.Join(",", userAuthLst.Remove("积分用户"));
userAuthLst.Remove("积分用户");
user.authority = string.Join(",", userAuthLst);
}
else if (!user.authority.Contains("积分用户"))
{
@@ -113,6 +113,7 @@
<Compile Include="BLL\KJD\ToolManage.cs" />
<Compile Include="BLL\KJD\UpadteManage.cs" />
<Compile Include="BLL\KJD\UserManage.cs" />
<Compile Include="BLL\WXXD\WXDeliveryManage.cs" />
<Compile Include="BLL\WXXD\WXProductManage.cs" />
<Compile Include="BLL\WXXD\WXShopManage.cs" />
<Compile Include="BLL\WXXD\WXUserManage.cs" />
@@ -128,6 +129,7 @@
<Compile Include="Model\WXAddressInfo.cs" />
<Compile Include="Model\WxModel\WXClientProductInfoLite.cs" />
<Compile Include="Model\WxModel\WXGetEditProductInfoLite.cs" />
<Compile Include="Model\WxModel\WxOptimizeExpressInfo.cs" />
<Compile Include="Model\WxProdSecretSpuIdShopIdMapParam.cs" />
<Compile Include="Upload\Prod\WXProd.aspx.cs">
<DependentUpon>WXProd.aspx</DependentUpon>
+46 -13
View File
@@ -58,21 +58,21 @@ namespace KJD_Web.Utils
/// </summary>
public bool IsRunning = false;
public bool IsUseTrans { get; set; } = false;
public MySqlTransaction Transaction { get; set; } = null;
/// <summary>
/// 初始化数据库链接
/// </summary>
/// <param name="connString">数据库链接</param>
public MysqlUtils(string connString)
public MysqlUtils(string connString, bool isUseTrans = false)
{
this.IsUseTrans = isUseTrans;
ConnString = connString;
ConnTo();
}
public void BeginTransaction()
{
Conn.BeginTransaction();
}
/// <summary>
/// 去掉SQL中的特殊字符
/// </summary>
@@ -112,6 +112,15 @@ namespace KJD_Web.Utils
return value;
}
///// <summary>
///// 开放一个Conn获取路径,以便外部使用事务提交
///// </summary>
//public MySqlConnection GetConn()
//{
// //Transaction = Conn.BeginTransaction();
// return Conn;
//}
/// <summary>
/// 插入数据
/// </summary>
@@ -662,24 +671,24 @@ namespace KJD_Web.Utils
cmd.Connection = Conn;
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = TimeOut;
}
public MySqlTransaction Transaction { get; set; } = null;
if (Transaction != null)
cmd.Transaction = Transaction;
}
/// <summary>
/// 连接数据库
/// </summary>
private void ConnTo(bool isTransaction = false)
private void ConnTo()
{
Close();
try
{
Conn = new MySqlConnection(ConnString);
Conn.Open();
if (isTransaction)
{
Conn.BeginTransaction();
}
if (IsUseTrans)
this.Transaction = Conn.BeginTransaction();
}
catch (Exception e)
{
@@ -711,6 +720,18 @@ namespace KJD_Web.Utils
}
}
public void Commit()
{
if (Transaction != null)
Transaction.Commit();
}
public void RollBack()
{
if (Transaction != null)
Transaction.Rollback();
}
/// <summary>
/// 关闭数据库链接
/// </summary>
@@ -720,7 +741,9 @@ namespace KJD_Web.Utils
try
{
if (Conn != null && Conn.State == ConnectionState.Open)
{
Conn.Close();
}
Conn = null;
try
@@ -732,6 +755,16 @@ namespace KJD_Web.Utils
{
}
reader = null;
try
{
if (Transaction != null)
Transaction.Dispose();
}
catch
{
}
Transaction = null;
}
catch
{
@@ -205,6 +205,88 @@ namespace KJD_Web
Context.Response.End();
}
[WebMethod]
public void add_waybill()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().AddWaybill(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void del_waybill()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().DelWaybill(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void get_waybill()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().GetWayBill(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void get_waybill_no_user_name()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().GetWayBill(jsontext, true);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void select_and_set_waybill()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().SelectAndSetWaybill(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void select_waybill()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().SelectWaybill(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
/// <summary>
/// 标记已正式使用的运单号
/// </summary>
[WebMethod]
public void update_used_waybill()
{
string jsontext = GetRequestJsonString();
var result = jsontext;
result = new WXDeliveryManage().UpdateUsedWaybill(jsontext);
Context.Response.Write(result);
Context.Response.End();
}
[WebMethod]
public void e57_get_wx_tokens()
{
+9
View File
@@ -262,6 +262,12 @@
<Compile Include="WXForms\AdminForms\WXAdminAddressSyncForm.Designer.cs">
<DependentUpon>WXAdminAddressSyncForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\AdminForms\WXWaybillManageForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="WXForms\AdminForms\WXWaybillManageForm.Designer.cs">
<DependentUpon>WXWaybillManageForm.cs</DependentUpon>
</Compile>
<Compile Include="WXForms\ProductForms\WXUserProdListForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -1298,6 +1304,9 @@
<EmbeddedResource Include="WXForms\AdminForms\WXProdComplateForm.resx">
<DependentUpon>WXProdComplateForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\AdminForms\WXWaybillManageForm.resx">
<DependentUpon>WXWaybillManageForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WXForms\ProductForms\WXUserProdListForm.resx">
<DependentUpon>WXUserProdListForm.cs</DependentUpon>
</EmbeddedResource>
@@ -879,11 +879,12 @@ namespace TemuKJD.PDDForms.ShopForms
break;
case "订单Api":
{
var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
if (currentPddClient != null)
//var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
//if (currentPddClient != null)
{
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/service-detail?detailId=84862";
//shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/service-detail?detailId=84862";
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/service-detail?detailId=79676"; // 小红椒
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
@@ -893,14 +894,15 @@ namespace TemuKJD.PDDForms.ShopForms
break;
case "订单授权":
{
var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
if (currentPddClient != null)
//var currentPddClient = GlobalConfig.PddClentInfoList.FirstOrDefault(c => c.is_current == true);
//if (currentPddClient != null)
{
PDDShopLoginForm shopLoginForm = new PDDShopLoginForm(shop);
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/auth?client_id=" + PddApi.clientId_pi_xiu_guan_jia +
"&redirect_uri=" + GetHtml.UrlEncodeUtf8("http://po.e57.cn/login?source=pdd_code_pixiu") + "&response_type=code";
shopLoginForm.InitUrl = "https://fuwu.pinduoduo.com/service-market/auth?client_id=94d942df626a4a118cc18b05ee7f2e8d&redirect_uri=https%3A%2F%2Fpo.e57.cn%2Flogin%3Fsource%3Dpdd_code_xhj&response_type=code";
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.AuthClientId = currentPddClient.client_id;
//shopLoginForm.AuthClientId = currentPddClient.client_id;
shopLoginForm.SaveComplete += shopLoginForm_SaveComplete;
shopLoginForm.ShowDialog();
btnRefreshCookie_Click(null, null);
+9 -5
View File
@@ -37,7 +37,8 @@
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("随机厂商商品");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("地址管理");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("图片工具");
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] {
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("运单管理");
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
@@ -46,7 +47,8 @@
treeNode6,
treeNode7,
treeNode8,
treeNode9});
treeNode9,
treeNode10});
this.panel1 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
@@ -155,10 +157,12 @@
treeNode8.Text = "地址管理";
treeNode9.Name = "图片工具";
treeNode9.Text = "图片工具";
treeNode10.Name = "超级权限管理";
treeNode10.Text = "超级权限管理";
treeNode10.Name = "运单管理";
treeNode10.Text = "运单管理";
treeNode11.Name = "超级权限管理";
treeNode11.Text = "超级权限管理";
this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode10});
treeNode11});
this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235)))));
this.tv.Size = new System.Drawing.Size(140, 446);
this.tv.TabIndex = 1;
+6 -1
View File
@@ -27,6 +27,7 @@ namespace TemuKJD.WXForms.AdminForms
public Lazy<ImgToolForm> imgToolForm = new Lazy<ImgToolForm>();
public Lazy<GetAddressForm> getAddressForm = new Lazy<GetAddressForm>();
public Lazy<RandomComProductForm> randomComProductForm = new Lazy<RandomComProductForm>();
public Lazy<WXWaybillManageForm> waybillManageForm = new Lazy<WXWaybillManageForm>();
public WXAdminForm()
{
@@ -37,7 +38,8 @@ namespace TemuKJD.WXForms.AdminForms
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "地址管理1", "1688厂家采集1", "图片工具", "Sku采集回传1", "超级用户管理", "超级店铺管理", "PDD产品库", "SKU替换图", "选品加价管理", "认领待上传", "库存上传", "商品核价" };
List<string> hideName = new List<string>() { "运单管理", "地址管理1", "1688厂家采集1", "图片工具", "Sku采集回传1",
"超级用户管理", "超级店铺管理", "PDD产品库", "SKU替换图", "选品加价管理", "认领待上传", "库存上传", "商品核价" };
if (BaseClass.GroupId == 3)
{
@@ -105,6 +107,9 @@ namespace TemuKJD.WXForms.AdminForms
case "随机厂商商品":
SetForm(randomComProductForm.Value);
break;
case "运单管理":
SetForm(waybillManageForm.Value);
break;
}
//}));
//}).Start();
+40 -37
View File
@@ -32,14 +32,14 @@ namespace TemuKJD.WXForms.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();
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();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
this.cmbSaleSort = new System.Windows.Forms.ComboBox();
@@ -905,19 +905,19 @@ namespace TemuKJD.WXForms.AdminForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
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)))));
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;
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;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -935,6 +935,7 @@ namespace TemuKJD.WXForms.AdminForms
this.colMessage});
this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvShop.Location = new System.Drawing.Point(4, 0);
this.dgvShop.MultiSelectCheckBox = true;
this.dgvShop.Name = "dgvShop";
this.dgvShop.ReadOnly = true;
this.dgvShop.RowHeadersWidth = 25;
@@ -1077,19 +1078,19 @@ namespace TemuKJD.WXForms.AdminForms
//
this.dgvSelectProduct.AllowUserToAddRows = false;
this.dgvSelectProduct.AllowUserToDeleteRows = false;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke;
this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
this.dgvSelectProduct.AutoRowNumber = true;
this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
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.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12;
this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1119,6 +1120,7 @@ namespace TemuKJD.WXForms.AdminForms
this.colOpResult});
this.dgvSelectProduct.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvSelectProduct.Location = new System.Drawing.Point(0, 0);
this.dgvSelectProduct.MultiSelectCheckBox = true;
this.dgvSelectProduct.Name = "dgvSelectProduct";
this.dgvSelectProduct.ReadOnly = true;
this.dgvSelectProduct.RowTemplate.Height = 23;
@@ -1152,8 +1154,8 @@ namespace TemuKJD.WXForms.AdminForms
//
// colSupplierName
//
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1241,8 +1243,8 @@ namespace TemuKJD.WXForms.AdminForms
//
// colProductName
//
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductName.DefaultCellStyle = dataGridViewCellStyle14;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1250,8 +1252,8 @@ namespace TemuKJD.WXForms.AdminForms
//
// colProductCat
//
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colProductCat.DefaultCellStyle = dataGridViewCellStyle15;
this.colProductCat.HeaderText = "商品类目";
this.colProductCat.Name = "colProductCat";
this.colProductCat.ReadOnly = true;
@@ -1310,8 +1312,8 @@ namespace TemuKJD.WXForms.AdminForms
//
// colAddTime
//
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colAddTime.DefaultCellStyle = dataGridViewCellStyle8;
dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.colAddTime.DefaultCellStyle = dataGridViewCellStyle16;
this.colAddTime.HeaderText = "上架时间";
this.colAddTime.Name = "colAddTime";
this.colAddTime.ReadOnly = true;
@@ -1420,8 +1422,9 @@ namespace TemuKJD.WXForms.AdminForms
this.ClientSize = new System.Drawing.Size(1424, 641);
this.Controls.Add(this.splitContainer1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.KeyPreview = true;
this.Name = "WXProdComplateForm";
this.Text = "爆单神器";
this.Text = "商品回采 暂时作废";
this.Load += new System.EventHandler(this.UserSelectDbProductForm_Load);
this.VisibleChanged += new System.EventHandler(this.UserSelectDbProductForm_VisibleChanged);
this.splitContainer1.Panel1.ResumeLayout(false);
+7 -7
View File
@@ -420,7 +420,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbCat3.DropDownWidth = 1;
this.cmbCat3.FormattingEnabled = true;
this.cmbCat3.IntegralHeight = false;
this.cmbCat3.Location = new System.Drawing.Point(718, 7);
this.cmbCat3.Location = new System.Drawing.Point(718, 5);
this.cmbCat3.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat3.Name = "cmbCat3";
this.cmbCat3.Size = new System.Drawing.Size(146, 25);
@@ -448,7 +448,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbCat2.DropDownWidth = 1;
this.cmbCat2.FormattingEnabled = true;
this.cmbCat2.IntegralHeight = false;
this.cmbCat2.Location = new System.Drawing.Point(515, 7);
this.cmbCat2.Location = new System.Drawing.Point(515, 5);
this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat2.Name = "cmbCat2";
this.cmbCat2.Size = new System.Drawing.Size(146, 25);
@@ -476,7 +476,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbCat1.DropDownWidth = 1;
this.cmbCat1.FormattingEnabled = true;
this.cmbCat1.IntegralHeight = false;
this.cmbCat1.Location = new System.Drawing.Point(293, 5);
this.cmbCat1.Location = new System.Drawing.Point(293, 7);
this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat1.Name = "cmbCat1";
this.cmbCat1.Size = new System.Drawing.Size(146, 25);
@@ -536,7 +536,7 @@ namespace TemuKJD.WXForms.ProductForms
"安全+未校验",
"安全商品",
"未校验"});
this.cmbWxSafe.Location = new System.Drawing.Point(71, 40);
this.cmbWxSafe.Location = new System.Drawing.Point(71, 42);
this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbWxSafe.Name = "cmbWxSafe";
this.cmbWxSafe.Size = new System.Drawing.Size(146, 25);
@@ -559,7 +559,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.cmbGroupFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbGroupFilter.FormattingEnabled = true;
this.cmbGroupFilter.Location = new System.Drawing.Point(938, 7);
this.cmbGroupFilter.Location = new System.Drawing.Point(938, 5);
this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(146, 25);
@@ -580,7 +580,7 @@ namespace TemuKJD.WXForms.ProductForms
"机会商品",
"以图搜品",
"外部数据"});
this.cmbSourceType.Location = new System.Drawing.Point(718, 42);
this.cmbSourceType.Location = new System.Drawing.Point(718, 40);
this.cmbSourceType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbSourceType.Name = "cmbSourceType";
this.cmbSourceType.Size = new System.Drawing.Size(146, 25);
@@ -610,7 +610,7 @@ namespace TemuKJD.WXForms.ProductForms
"",
"是",
"否"});
this.cmbRelation.Location = new System.Drawing.Point(938, 42);
this.cmbRelation.Location = new System.Drawing.Point(938, 40);
this.cmbRelation.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbRelation.Name = "cmbRelation";
this.cmbRelation.Size = new System.Drawing.Size(146, 25);
+2 -1
View File
@@ -34,11 +34,12 @@ namespace TemuKJD.WXForms.ShopForms
tv.SelectedNode = tv.Nodes[0].Nodes[0];
tv.ExpandGroup(tv.Nodes[0].Name);
List<string> hideName = new List<string>() { "店铺优化1", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" };
List<string> hideName = new List<string>() { "店铺优化", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" };
if (BaseClass.GroupId == 3)
{
hideName.Remove("子账号管理");
hideName.Remove("店铺优化");
}
foreach (var item in hideName)
File diff suppressed because it is too large. Load diff
+452 -96
View File
@@ -30,6 +30,7 @@ using Newtonsoft.Json;
using NaiBa.Util;
using AllBase.Model.Config;
using TemuKJD.WXForms.ProductForms;
using TemuKJD.WXForms.AdminForms;
namespace TemuKJD.WXForms.ShopForms
{
@@ -287,60 +288,6 @@ namespace TemuKJD.WXForms.ShopForms
}
}
private void dgvData3_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvData3.Columns[e.ColumnIndex].HeaderText;
var shopId = dgvData3.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
switch (headerText)
{
case "删除":
break;
case "登录":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
//shopLoginForm.prodUserSelectForm = this;
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
break;
case "进店":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus == "登录成功")
{
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
shopLoginForm.Show();
}
else
{
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
}
break;
case "图片":
{
ShowImgForm imgFrom = new ShowImgForm(dgvData3.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString());
imgFrom.ShowDialog();
break;
}
case "":
dgvData3.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvData3.Rows[e.RowIndex].Cells["colCheck"].Value;
break;
default:
break;
}
}
private void btnStop_Click(object sender, EventArgs e)
{
if (this.cancellationTokenSource != null)
@@ -616,6 +563,7 @@ namespace TemuKJD.WXForms.ShopForms
this.pictureBox1.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在查询品质退款,店铺:" + shop.ShopAccount + " " + page + "/" + totalPage;
}));
var orderAfterSaleInfoLst = new List<WxOptimizeOrderAfterSaleInfo>();
foreach (JObject refundOrderObj in prodObjs["data"])
{
var oStr = JsonHelper.SerializeObject(refundOrderObj);
@@ -626,6 +574,57 @@ namespace TemuKJD.WXForms.ShopForms
refundOrder.shopName = shop.ShopAccount;
lstWxOptimizeOrderAfterSaleInfo.Add(refundOrder);
orderAfterSaleInfoLst.Add(refundOrder);
}
// 查询是否被优化过
var url = BaseClass.BuildObjString("shop/get_waybill_no_user_name");
var data = "";
data = UserLogin.GetSignaturex();
data += "&status=2";
data += "&order_ids=" + string.Join(",", orderAfterSaleInfoLst.Select(w => w.orderInfo.orderId));
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
foreach (var orderAfterSale in orderAfterSaleInfoLst)
{
orderAfterSale.optimizeWaybillId = "查询失败";
orderAfterSale.optimizeTime = "";
}
}
else
{
try
{
var jArr = JObject.Parse(html)["data"];
var sProd = JsonHelper.SerializeObject(jArr);
var optimizeLst = JsonHelper.DeserializeJsonToList<WxOptimizeExpressInfo>(sProd);
foreach (var orderAfterSale in orderAfterSaleInfoLst)
{
var ov = optimizeLst.FirstOrDefault(o => o.order_id == orderAfterSale.orderInfo.orderId);
orderAfterSale.optimizeWaybillId = ov == null ? "" : ov.waybill_id;
orderAfterSale.optimizeTime = ov == null ? "" : ov?.use_time?.ToString("yyyy-MM-dd HH:mm");
if (!string.IsNullOrEmpty(orderAfterSale.optimizeWaybillId))
orderAfterSale.optimizeWaybillId = "已优化";
}
}
catch (Exception ex)
{
foreach (var orderAfterSale in orderAfterSaleInfoLst)
{
orderAfterSale.optimizeWaybillId = "查询失败";
orderAfterSale.optimizeTime = "";
}
}
}
foreach (var refundOrder in orderAfterSaleInfoLst)
{
Invoke(new Action(() =>
{
var rowIndex = this.dgvData1.Rows.Add(
@@ -642,7 +641,10 @@ namespace TemuKJD.WXForms.ShopForms
refundOrder.orderInfo.skuCode,
refundOrder.orderInfo.orderId,
BaseClass.StampToDateTime(refundOrder.orderInfo.createTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
refundOrder.reason);
refundOrder.reason,
refundOrder.optimizeWaybillId + "\r\n" + refundOrder.optimizeTime,
"优化"
);
dgvData1.Rows[rowIndex].Height = 60;
}));
@@ -660,7 +662,10 @@ namespace TemuKJD.WXForms.ShopForms
}
}
/// <summary>
/// 查询差评订单
/// </summary>
/// <param name="shop"></param>
public void SearchData2(ShopLoginInfo shop)
{
if (shop.LoginStatus != "登录成功")
@@ -722,6 +727,8 @@ namespace TemuKJD.WXForms.ShopForms
}));
if (totalPage == 0)
break;
var productEvaluationInfoLst = new List<WxOptimizeProductEvaluationInfo>();
foreach (JObject refundOrderObj in prodObjs["finderProductEvaluationInfoList"])
{
var oStr = JsonHelper.SerializeObject(refundOrderObj);
@@ -732,6 +739,86 @@ namespace TemuKJD.WXForms.ShopForms
prodEvaluationInfo.shopName = shop.ShopAccount;
lstWxOptimizeProductEvaluationInfo.Add(prodEvaluationInfo);
productEvaluationInfoLst.Add(prodEvaluationInfo);
}
foreach (var prodEvaluationInfo in productEvaluationInfoLst)
{
var getOrderRst = ShopOptimize.orderSearch(shop, prodEvaluationInfo.productInfo.spuName, prodEvaluationInfo.evaluationInfo.buyer.identity.nickname);
Thread.Sleep(Randomx.GetId(200, 350));
if (!getOrderRst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJson(ref getData2, "msg");
if (string.IsNullOrEmpty(error))
error = getData2;
prodEvaluationInfo.order_id = error;
}
else
{
prodEvaluationInfo.order_id = "";
while (getOrderRst.Contains("\"orderId\""))
{
prodEvaluationInfo.order_id += (" " + BaseRegex.GetStringJson(ref getOrderRst, "orderId"));
getOrderRst = getOrderRst.Substring(getOrderRst.IndexOf("\"orderId\"") + "\"orderId\"".Length);
}
prodEvaluationInfo.order_id = prodEvaluationInfo.order_id.Trim(' ');
if (prodEvaluationInfo.order_id.IsNullOrEmpty())
prodEvaluationInfo.order_id = "未获取到对应订单号";
if (prodEvaluationInfo.order_id.Contains(" "))
prodEvaluationInfo.order_id += " 获取到多条订单号";
}
}
// 查询是否被优化过
var url = BaseClass.BuildObjString("shop/get_waybill_no_user_name");
var data = "";
data = UserLogin.GetSignaturex();
data += "&status=2";
data += "&order_ids=" + string.Join(",", productEvaluationInfoLst.Select(w => w.order_id).Where(r => !r.IsNullOrEmpty()));
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
foreach (var evaluationInfo in productEvaluationInfoLst)
{
evaluationInfo.optimizeWaybillId = "查询失败";
evaluationInfo.optimizeTime = "";
}
}
else
{
try
{
var jArr = JObject.Parse(html)["data"];
var sProd = JsonHelper.SerializeObject(jArr);
var optimizeLst = JsonHelper.DeserializeJsonToList<WxOptimizeExpressInfo>(sProd);
foreach (var evaluationInfo in productEvaluationInfoLst)
{
var ov = optimizeLst.FirstOrDefault(o => o.order_id == evaluationInfo.order_id);
evaluationInfo.optimizeWaybillId = ov == null ? "" : ov.waybill_id;
evaluationInfo.optimizeTime = ov == null ? "" : ov?.use_time?.ToString("yyyy-MM-dd HH:mm");
if (!string.IsNullOrEmpty(evaluationInfo.optimizeWaybillId))
evaluationInfo.optimizeWaybillId = "已优化";
}
}
catch (Exception ex)
{
foreach (var evaluationInfo in productEvaluationInfoLst)
{
evaluationInfo.optimizeWaybillId = "查询失败";
evaluationInfo.optimizeTime = "";
}
}
}
foreach (var prodEvaluationInfo in productEvaluationInfoLst)
{
var lblLst = prodEvaluationInfo.evaluationInfo?.firstEvaluationInfo?.buyerEvaluationInfo?.labelList;
var content = prodEvaluationInfo.evaluationInfo.firstEvaluationInfo.buyerEvaluationInfo.content + " " +
prodEvaluationInfo.evaluationInfo.firstEvaluationInfo.buyerEvaluationInfo.defaultContent;
@@ -748,11 +835,14 @@ namespace TemuKJD.WXForms.ShopForms
prodEvaluationInfo.productInfo.productId,
prodEvaluationInfo.productInfo.spuName,
prodEvaluationInfo.productInfo.skuName,
"", //spuCode 此处获取不到填空
"", // spuCode 此处获取不到填空
prodEvaluationInfo.productEvaluationId,
prodEvaluationInfo.order_id, // orderId
prodEvaluationInfo.evaluationInfo.buyer.identity.nickname,
BaseClass.StampToDateTime(prodEvaluationInfo.evaluationInfo.firstEvaluationInfo.buyerEvaluationInfo.createTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
(content + " " + (lblLst == null ? "" : string.Join(" ", lblLst.Select(e => e.labelName)))).Trim()
(content + " " + (lblLst == null ? "" : string.Join(" ", lblLst.Select(e => e.labelName)))).Trim(),
prodEvaluationInfo.optimizeWaybillId + "\r\n" + prodEvaluationInfo.optimizeTime,
"优化"
);
dgvData2.Rows[rowIndex].Height = 60;
@@ -801,8 +891,8 @@ namespace TemuKJD.WXForms.ShopForms
if (shopRow != null)
{
shopRow.Cells["colMessage"].Value = "获取揽收时效失败" + error;
//if(error.Contains("\"code\":2") && error.Contains("[194,62,3,176,14,1]"))
// shopRow.Cells["colMessage"].Value = "店铺无评分";
if(error.Contains("\"code\":2") && error.Contains("[194,62,3,176,14,1]"))
shopRow.Cells["colMessage"].Value = "店铺无时效评分";
}
}));
}
@@ -863,6 +953,8 @@ namespace TemuKJD.WXForms.ShopForms
this.pictureBox3.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在查询揽收不达标,店铺:" + shop.ShopAccount + " " + page + "/" + totalPage;
}));
List<WxOptimizeOrderWayBillInfo> waybillLst = new List<WxOptimizeOrderWayBillInfo>();
foreach (JObject refundOrderObj in wayBillObjs["data"])
{
var oStr = JsonHelper.SerializeObject(refundOrderObj);
@@ -885,30 +977,81 @@ namespace TemuKJD.WXForms.ShopForms
{
}
waybillLst.Add(orderWayBill);
}
lstWxOptimizeOrderWayBillInfo.Add(orderWayBill);
// 查询是否被优化过
var url = BaseClass.BuildObjString("shop/get_waybill_no_user_name");
var data = "";
data = UserLogin.GetSignaturex();
data += "&status=2";
data += "&order_ids=" + string.Join(",", waybillLst.Select(w => w.orderInfo.orderId));
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
foreach (var orderWaybill in waybillLst)
{
orderWaybill.optimizeWaybillId = "查询失败";
orderWaybill.optimizeTime = "";
}
}
else
{
try
{
var jArr = JObject.Parse(html)["data"];
var sProd = JsonHelper.SerializeObject(jArr);
var optimizeLst = JsonHelper.DeserializeJsonToList<WxOptimizeExpressInfo>(sProd);
foreach (var orderWaybill in waybillLst)
{
var ov = optimizeLst.FirstOrDefault(o => o.order_id == orderWaybill.orderInfo.orderId);
orderWaybill.optimizeWaybillId = ov == null ? "" : ov.waybill_id;
orderWaybill.optimizeTime = ov == null ? "" : ov?.use_time?.ToString("yyyy-MM-dd HH:mm");
if (!string.IsNullOrEmpty(orderWaybill.optimizeWaybillId))
orderWaybill.optimizeWaybillId = "已优化";
}
}
catch (Exception ex)
{
foreach (var orderWaybill in waybillLst)
{
orderWaybill.optimizeWaybillId = "查询失败";
orderWaybill.optimizeTime = "";
}
}
}
foreach (var orderWaybill in waybillLst)
{
lstWxOptimizeOrderWayBillInfo.Add(orderWaybill);
Invoke(new Action(() =>
{
var rowIndex = this.dgvData3.Rows.Add(
false,
shop.ShopId,
shop.ShopAccount,
"登录",
"进店",
orderWayBill.orderInfo.imgUrl,
DataGridViewExtension.defaultBitmap,
orderWayBill.orderInfo.spuId,
orderWayBill.orderInfo.name,
orderWayBill.orderInfo.skuName + " x" + orderWayBill.orderInfo.productCnt,
orderWayBill.orderInfo.skuCode,
orderWayBill.orderInfo.orderId + "\r\n" + orderWayBill.waybillId,
orderWayBill.delivery.deliveryName,
BaseClass.StampToDateTime(orderWayBill.payTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
orderWayBill.realPickupTime.ParseToInt().IsNullOrZero() ? "" : BaseClass.StampToDateTime(orderWayBill.realPickupTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
(orderWayBill.pickupDuration.ParseToInt().IsNullOrZero() ? "" : (new TimeSpan(orderWayBill.pickupDuration.ParseToLong()).TotalHours.ToString("f2") + "小时" + "\r\n")) + "[" + (is24 ? "次日" : "48小时") + "]"
);
var rowIndex = this.dgvData3.Rows.Add(
false,
shop.ShopId,
shop.ShopAccount,
"登录",
"进店",
orderWaybill.orderInfo.imgUrl,
DataGridViewExtension.defaultBitmap,
orderWaybill.orderInfo.spuId,
orderWaybill.orderInfo.name,
orderWaybill.orderInfo.skuName + " x" + orderWaybill.orderInfo.productCnt,
orderWaybill.orderInfo.skuCode,
orderWaybill.orderInfo.orderId + "\r\n" + orderWaybill.waybillId,
orderWaybill.delivery.deliveryName,
BaseClass.StampToDateTime(orderWaybill.payTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
orderWaybill.realPickupTime.ParseToInt().IsNullOrZero() ? "" : BaseClass.StampToDateTime(orderWaybill.realPickupTime.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
orderWaybill.pickupDuration.ParseToInt().IsNullOrZero() ? "" : ((orderWaybill.pickupDuration.ParseToInt() / 3600.0m).ToString("f2") + "小时" + "\r\n" + "[" + (is24 ? "次日" : "48小时") + "]"),
orderWaybill.optimizeWaybillId + "\r\n" + orderWaybill.optimizeTime,
"优化"
);
dgvData3.Rows[rowIndex].Height = 60;
dgvData3.Rows[rowIndex].Height = 60;
}));
}
}
@@ -955,8 +1098,8 @@ namespace TemuKJD.WXForms.ShopForms
if (shopRow != null)
{
shopRow.Cells["colMessage"].Value = "获取配送时效失败" + error;
//if(error.Contains("\"code\":2") && error.Contains("[194,62,3,176,14,1]"))
// shopRow.Cells["colMessage"].Value = "店铺无评分";
if(error.Contains("\"code\":2") && error.Contains("[194,62,3,176,14,1]"))
shopRow.Cells["colMessage"].Value = "店铺无时效评分";
}
}));
}
@@ -1016,6 +1159,7 @@ namespace TemuKJD.WXForms.ShopForms
this.pictureBox4.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在查询配送不达标,店铺:" + shop.ShopAccount + " " + page + "/" + totalPage;
}));
List<WxOptrimizeLinerCgiInfo> optrimizeLinerCgiLst = new List<WxOptrimizeLinerCgiInfo>();
foreach (JObject refundOrderObj in wayBillObjs["list"])
{
var oStr = JsonHelper.SerializeObject(refundOrderObj);
@@ -1025,14 +1169,58 @@ namespace TemuKJD.WXForms.ShopForms
orderLinerCgiInfo.shopId = shop.ShopId;
orderLinerCgiInfo.shopName = shop.ShopAccount;
//// 24小时揽收率截至第二天
//if (is24 && BaseClass.StampToDateTime(orderLinerCgiInfo.realPickupTime.ParseToInt()).Date <= BaseClass.StampToDateTime(orderLinerCgiInfo.payTime.ParseToInt()).Date.AddDays(1))
// continue;
//// 48小时揽收率按48小时算
//if (!is24 && BaseClass.StampToDateTime(orderLinerCgiInfo.realPickupTime.ParseToInt()) <= BaseClass.StampToDateTime(orderLinerCgiInfo.payTime.ParseToInt()).AddDays(2))
// continue;
optrimizeLinerCgiLst.Add(orderLinerCgiInfo);
lstWxOptrimizeLinerCgiInfo.Add(orderLinerCgiInfo);
}
// 查询是否被优化过
var url = BaseClass.BuildObjString("shop/get_waybill_no_user_name");
var data = "";
data = UserLogin.GetSignaturex();
data += "&status=2";
data += "&order_ids=" + string.Join(",", optrimizeLinerCgiLst.Select(w => w.order_id));
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
foreach (var linerCgi in optrimizeLinerCgiLst)
{
linerCgi.optimizeWaybillId = "查询失败";
linerCgi.optimizeTime = "";
}
}
else
{
try
{
var jArr = JObject.Parse(html)["data"];
var sProd = JsonHelper.SerializeObject(jArr);
var optimizeLst = JsonHelper.DeserializeJsonToList<WxOptimizeExpressInfo>(sProd);
foreach (var linerCgi in optrimizeLinerCgiLst)
{
var ov = optimizeLst.FirstOrDefault(o => o.order_id == linerCgi.order_id);
linerCgi.optimizeWaybillId = ov == null ? "" : ov.waybill_id;
linerCgi.optimizeTime = ov == null ? "" : ov?.use_time?.ToString("yyyy-MM-dd HH:mm");
if (!string.IsNullOrEmpty(linerCgi.optimizeWaybillId))
linerCgi.optimizeWaybillId = "已优化";
}
}
catch (Exception ex)
{
foreach (var linerCgi in optrimizeLinerCgiLst)
{
linerCgi.optimizeWaybillId = "查询失败";
linerCgi.optimizeTime = "";
}
}
}
foreach (var orderLinerCgiInfo in optrimizeLinerCgiLst)
{
Invoke(new Action(() =>
{
var rowIndex = this.dgvData4.Rows.Add(
@@ -1052,7 +1240,9 @@ namespace TemuKJD.WXForms.ShopForms
BaseClass.StampToDateTime(orderLinerCgiInfo.collect_time.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss") + "\r\n" + BaseClass.StampToDateTime(orderLinerCgiInfo.receipt_time.ParseToInt()).ToString("yyyy-MM-dd HH:mm:ss"),
"发货地:" + orderLinerCgiInfo.ship_city + "\r\n" + "收货地:" + orderLinerCgiInfo.ship_province + orderLinerCgiInfo.receipt_city,
(orderLinerCgiInfo.transport_duration.ParseToInt() / 3600) + "小时" + (orderLinerCgiInfo.transport_duration.ParseToInt() % 3600) / 60 + "分" +
"\r\n标准时长" + (orderLinerCgiInfo.transport_std_duration.ParseToInt() / 3600) + "小时" /*+ (orderLinerCgiInfo.transport_std_duration.ParseToInt() % 3600)*/
"\r\n标准时长" + (orderLinerCgiInfo.transport_std_duration.ParseToInt() / 3600) + "小时", /*+ (orderLinerCgiInfo.transport_std_duration.ParseToInt() % 3600)*/
orderLinerCgiInfo.optimizeWaybillId + "\r\n" + orderLinerCgiInfo.optimizeTime,
"优化"
);
dgvData4.Rows[rowIndex].Height = 60;
@@ -1071,17 +1261,167 @@ namespace TemuKJD.WXForms.ShopForms
}
}
private void dgvData1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void btnCancel_Click(object sender, EventArgs e)
{
if (this.cancellationTokenSource != null)
cancellationTokenSource.Cancel();
}
public string OptimizeExpress(ShopLoginInfo shop, string orderId, string productEvaluationId = "")
{
var url = BaseClass.BuildObjString("shop/select_waybill");
var data = "";
data = UserLogin.GetSignaturex();
data += "&shop_id=" + shop.ShopId;
data += "&order_id=" + orderId;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
var errMsg = BaseRegex.GetStringJson(ref html, "msg");
return "优化失败 " + errMsg;
}
var waybill_id = BaseRegex.GetStringJson(ref html, "waybill_id");
var delivery_id = BaseRegex.GetStringJson(ref html, "delivery_id");
var delivery_name = BaseRegex.GetStringJson(ref html, "delivery_name");
JObject body = new JObject();
body["platform"] = "WEISHOP";
//body["shopId"] = shop.ShopId;
body["orderId"] = orderId;
body["expressNo"] = waybill_id;
body["expressName"] = delivery_id;
url = "https://po.e57.cn/prod-api/api/oms-api/order/optimize/optimizeExpressInfo";
var bodyStr = JsonHelper.SerializeObject(body);
var optimizeExpressRst = WXHttpResponseBLL.e57PostResponse(url, bodyStr, "");
if (!optimizeExpressRst.Contains("修改物流信息成功") && !optimizeExpressRst.Contains("<code>200</code>"))
optimizeExpressRst = WXHttpResponseBLL.e57PostResponse(url, bodyStr, "");
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(optimizeExpressRst); //<AjaxResult><msg>订单不存在,orderId:3735398415030708224</msg><code>500</code></AjaxResult>
string msg = xmlDoc["AjaxResult"]["msg"].InnerText;
string code = xmlDoc["AjaxResult"]["code"].InnerText;
url = BaseClass.BuildObjString("shop/update_used_waybill");
data = UserLogin.GetSignaturex();
data += "&shop_id=" + shop.ShopId;
data += "&order_id=" + orderId;
data += "&waybill_id=" + waybill_id;
if (!optimizeExpressRst.Contains("修改物流信息成功") && !optimizeExpressRst.Contains("<code>200</code>"))
data += "&is_rollback=true";
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
var errMsg = BaseRegex.GetStringJson(ref html, "msg");
if (!optimizeExpressRst.Contains("修改物流信息成功") && !optimizeExpressRst.Contains("<code>200</code>"))
return "优化失败,回滚失败\r\n" + errMsg + " " + msg;
else
return "优化失败\r\n" + errMsg;
}
if (!optimizeExpressRst.Contains("修改物流信息成功") && !optimizeExpressRst.Contains("<code>200</code>"))
return "优化失败,已回滚\r\n" + msg;
return "优化成功";
}
private void dgvData_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
var dgvData = sender as DataGridView;
if (dgvData == null)
return;
var dgvNum = dgvData.Name.Replace("dgvData", "");
var row = dgvData.Rows[e.RowIndex];
string headerText = dgvData.Columns[e.ColumnIndex].HeaderText;
var shopId = row.Cells["colDgv" + dgvNum + "ShopId"].Value.ParseToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
switch (headerText)
{
case "删除":
break;
case "登录":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
break;
case "进店":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus == "登录成功")
{
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
shopLoginForm.Show();
}
else
{
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
}
break;
case "图片":
{
ShowImgForm imgFrom = new ShowImgForm(row.Cells["colDgv" + dgvNum + "ImgUrl"].Value.ParseToString());
imgFrom.ShowDialog();
break;
}
case "优化":
{
var orderId = row.Cells[$"colDgv{dgvNum}OrderId"].Value.ParseToString();
if (orderId.Contains("未获取到对应订单号"))
{
BaseMsgForm.ShowError("缺少单编号无法优化!");
return;
}
if (orderId.Contains("获取到多条订单号"))
{
BaseMsgForm.ShowError("订单编号不符合优化条件!");
return;
}
orderId = orderId.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
if (!string.IsNullOrEmpty(orderId))
{
var rst = OptimizeExpress(shop, orderId);
row.Cells[$"colDgv{dgvNum}OptimizeStatus"].Value = rst;
}
else
{
BaseMsgForm.ShowError("缺少单编号无法优化!");
}
break;
}
case "":
row.Cells[$"colDgv{dgvNum}check"].Value = !(bool)row.Cells[$"colDgv{dgvNum}check"].Value;
break;
default:
break;
}
}
private void btnWaybillManage_Click(object sender, EventArgs e)
{
WXWaybillManageForm waybillForm = new WXWaybillManageForm();
waybillForm.ShowDialog();
}
}
public static class ShopOptimize
@@ -1145,5 +1485,21 @@ namespace TemuKJD.WXForms.ShopForms
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer);
return result;
}
public static string orderSearch(ShopLoginInfo shop, string prodTitle, string receiverName)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/list/cgi/orderSearch?token=&lang=zh_CN";
string referer = "https://store.weixin.qq.com/shop/order/list";
string body = @"{""isSearch"":true,""pageSize"":30,""orderId"":"""",""orderTime"":{""type"":0,""time"":[null,null]},
""telNumber"":"""",""title"":""复古刺绣盘扣麻棉衬衫女2022夏新款中式禅意茶服宽松短款v领上衣"",""receiverName"":""浅菊夏離、"",""finderNickName"":"""",
""merchantNotes"":"""",""merchantNotesTagColor"":0,""waybillId"":"""",""productCode"":"""",""inspectStatus"":"""",""finderWay"":0,""searchOrderType"":0,
""payMethod"":0,""orderChannel"":0,""bulkbuyActivityId"":"""",""deliveryNegotiationFlag"":0,""transactionId"":"""",""page"":1,""startCreateTime"":null,
""endCreateTime"":null}";
body = @"{""isSearch"":true,""pageSize"":30,""orderId"":"""",""orderTime"":{""type"":0,""time"":[null,null]},
""telNumber"":"""",""title"":""" + prodTitle + @""",""receiverName"":""" + receiverName + @""",""finderNickName"":"""",""merchantNotes"":"""",""merchantNotesTagColor"":0,""waybillId"":"""",""productCode"":"""",""inspectStatus"":"""",""finderWay"":0,""searchOrderType"":0,""payMethod"":0,""orderChannel"":0,""bulkbuyActivityId"":"""",""deliveryNegotiationFlag"":0,""transactionId"":"""",""page"":1,""startCreateTime"":null,""endCreateTime"":null}";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer);
return result;
}
}
}
@@ -186,7 +186,7 @@
<metadata name="colDgv1OutSn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1OrderSn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv1OrderId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1OrderTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -195,6 +195,12 @@
<metadata name="colDgv1AfterSaleReason.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1OptimizeStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv1Optimize.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv2Check.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -231,6 +237,9 @@
<metadata name="colDgv2EvaluationId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv2OrderId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv2UserNick.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -240,25 +249,31 @@
<metadata name="colDgv2CommentContent.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv2OptimizeStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv2Optimize.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3ShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSupplierName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3ShopName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLogin.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3Login.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colInShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3InShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3ImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3Img.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDraftId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -273,7 +288,7 @@
<metadata name="colExtCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv3OrderId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDeliveryName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -288,19 +303,25 @@
<metadata name="colDuration.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv3OptimizeStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv3Optimize.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv4Check.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv4ShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv4ShopName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewLinkColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv4Login.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewLinkColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv4InShop.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv4ImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -321,7 +342,7 @@
<metadata name="dataGridViewTextBoxColumn7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn8.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colDgv4OrderId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -336,4 +357,10 @@
<metadata name="dataGridViewTextBoxColumn12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv4OptimizeStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDgv4Optimize.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>