店铺优化功能优化

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

+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>