优化售后单命名规则 产品入库时删除原商品详情内容节约空间

This commit is contained in:
wule committed 2026-06-27 13:37:38 +08:00
1 parent 257262517b
commit 381332b7c8
19 files changed
+636 -49

No files matched your search

+4 -2
View File
@@ -42,7 +42,8 @@ namespace TemuKJD.BLL
KJDDBProduct dbProd = new KJDDBProduct() { size_json = "{}" };
PDDProductInfo prodInfo = new PDDProductInfo()
{
source_json = JsonHelper.JObjectParse(outProdJson),
//source_json = JsonHelper.JObjectParse(outProdJson),
source_json = null,
sale_count = frontProdInfo.goods.sold_quantity.ParseToString(),
sale_count_text = frontProdInfo.goods.side_sales_tip,
};
@@ -423,7 +424,8 @@ namespace TemuKJD.BLL
KJDDBProduct dbProd = new KJDDBProduct() { size_json = "{}" };
PDDProductInfo prodInfo = new PDDProductInfo()
{
source_json = JsonHelper.JObjectParse(outProdJson),
//source_json = JsonHelper.JObjectParse(outProdJson),
source_json = null,
sale_count = frontProdInfo.goods.sold_quantity.ParseToLong().ParseToString(),
sale_count_text = frontProdInfo.goods.side_sales_tip,
};
@@ -250,17 +250,17 @@ namespace TemuKJD.WXForms.AdminForms
{
// 三个参数第一个是物流公司名称
var deliveryName = ExpressArr[0];
var deliverId = PddBuyerOrderInfoLite.GetWxExpressNameToWxExpressCode(deliveryName);
var deliverId = PddBuyerOrderLiteInfo.GetWxExpressNameToWxExpressCode(deliveryName);
if (string.IsNullOrEmpty(deliverId))
deliverId = PddBuyerOrderInfoLite.GetPddToWxExpressCompanyCode(deliveryName);
deliverId = PddBuyerOrderLiteInfo.GetPddToWxExpressCompanyCode(deliveryName);
// 四个参数或则第一个不是物流公司名称的情况下,第一个是订单号,第二个是物流公司名称
if (string.IsNullOrEmpty(deliverId))
{
deliveryName = ExpressArr[1];
deliverId = PddBuyerOrderInfoLite.GetWxExpressNameToWxExpressCode(deliveryName);
deliverId = PddBuyerOrderLiteInfo.GetWxExpressNameToWxExpressCode(deliveryName);
if (string.IsNullOrEmpty(deliverId))
deliverId = PddBuyerOrderInfoLite.GetPddToWxExpressCompanyCode(deliveryName);
deliverId = PddBuyerOrderLiteInfo.GetPddToWxExpressCompanyCode(deliveryName);
if (deliverId.IsNullOrEmpty())
{
errMsg += ", 运单信息不完整";
@@ -23,7 +23,7 @@ namespace TemuKJD.WXForms.TalkForms
public partial class OtherBuyerOrderListForm : BaseForms.BaseGeneralForm
{
public static OtherBuyerOrderListForm Instance { get; set; } = null;
ConcurrentList<PddBuyerOrderInfoLite> lstOtherBuyerOrderInfoLite { get; set; } = new ConcurrentList<PddBuyerOrderInfoLite>();
ConcurrentList<PddBuyerOrderLiteInfo> lstOtherBuyerOrderInfoLite { get; set; } = new ConcurrentList<PddBuyerOrderLiteInfo>();
bool isInitOrder = false;
public OtherBuyerOrderListForm()
@@ -34,9 +34,9 @@ namespace TemuKJD.WXForms.TalkForms
private void OtherBuyerOrderListForm_Load(object sender, EventArgs e)
{
lstOtherBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerOrderInfoLite>>("other_buyer_order_list");
lstOtherBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerOrderLiteInfo>>("other_buyer_order_list");
if (lstOtherBuyerOrderInfoLite == null)
lstOtherBuyerOrderInfoLite = new ConcurrentList<PddBuyerOrderInfoLite>();
lstOtherBuyerOrderInfoLite = new ConcurrentList<PddBuyerOrderLiteInfo>();
lstOtherBuyerOrderInfoLite.RemoveAll(o => o.order_time < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddMonths(-1)));
foreach (var buyer in lstOtherBuyerOrderInfoLite.Select(o => o.buyerName).Where(o => !o.IsNullOrEmpty()).Distinct().ToList())
@@ -65,7 +65,7 @@ namespace TemuKJD.WXForms.TalkForms
//});
}
void ShowOrder(PddBuyerOrderInfoLite order)
void ShowOrder(PddBuyerOrderLiteInfo order)
{
if (order == null)
return;
@@ -162,7 +162,7 @@ namespace TemuKJD.WXForms.TalkForms
private void btnSendOrder_Click(object sender, EventArgs e)
{
PddBuyerOrderInfoLite order = new PddBuyerOrderInfoLite();
PddBuyerOrderLiteInfo order = new PddBuyerOrderLiteInfo();
order.buyerName = cmbBuyerName.Text.Trim();
order.order_amount = (txtOrderAmount.Text.Trim().ParseToDecimal() * 100).ParseToInt();
order.order_sn = txtBuyerOrderSn.Text.Trim();
@@ -198,13 +198,13 @@ namespace TemuKJD.WXForms.TalkForms
SendOrderE57(order, true);
}
ConcurrentList<PddBuyerOrderInfoLite> tempWaitOrderLst = new ConcurrentList<PddBuyerOrderInfoLite>();
ConcurrentList<PddBuyerOrderLiteInfo> tempWaitOrderLst = new ConcurrentList<PddBuyerOrderLiteInfo>();
/// <summary>
/// 调用e57接口更新web端订单数据信息
/// </summary>
/// <param name="order"></param>
/// <param name="resetSendStatus">手动强制重置状态,一定重新发送</param>
public void SendOrderE57(PddBuyerOrderInfoLite order, bool resetSendStatus = false)
public void SendOrderE57(PddBuyerOrderLiteInfo order, bool resetSendStatus = false)
{
if (tempWaitOrderLst.Any(o => o.order_sn == order.order_sn))
return;
@@ -44,8 +44,8 @@ namespace TemuKJD.WXForms.TalkForms
public static PDDBuyerOrderListForm Instance { get { if (instance == null || instance.IsDisposed || instance.Disposing) instance = new PDDBuyerOrderListForm(); return instance; } }
ShopLoginInfo currentShop { get { return this.lblCurrentShop.Tag as ShopLoginInfo; } }
//ConcurrentList<WxOrderInfoLite> lstWxOrderInfoLite { get; set; } = new ConcurrentList<WxOrderInfoLite>();
ConcurrentList<PddBuyerOrderInfoLite> lstPddBuyerOrderInfoLite { get; set; } = new ConcurrentList<PddBuyerOrderInfoLite>();
ConcurrentList<PddBuyerAfterSaleInfoLite> lstPddBuyerAfterSaleInfoLite { get; set; } = new ConcurrentList<PddBuyerAfterSaleInfoLite>();
ConcurrentList<PddBuyerOrderLiteInfo> lstPddBuyerOrderInfoLite { get; set; } = new ConcurrentList<PddBuyerOrderLiteInfo>();
ConcurrentList<PddBuyerAfterSaleLiteInfo> lstPddBuyerAfterSaleInfoLite { get; set; } = new ConcurrentList<PddBuyerAfterSaleLiteInfo>();
public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
//public ChromiumWebBrowser cefWebBrowser = null;
public BuyerOrderConfig buyerOrderConfig = new BuyerOrderConfig();
@@ -55,7 +55,7 @@ namespace TemuKJD.WXForms.TalkForms
bool isInitOrder = false;
bool isInitAfterSale = false;
bool isInitBuyer = false;
bool isReadOrder = false;
bool isReadBuyerOrder = false;
public PDDBuyerOrderListForm()
{
@@ -81,16 +81,16 @@ namespace TemuKJD.WXForms.TalkForms
this.chkPause.Checked = buyerOrderConfig.IsPause;
this.chkAutoAfterSale.Checked = buyerOrderConfig.IsAutoAfterSale;
lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerOrderInfoLite>>("pdd_buyer_order_list");
lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerOrderLiteInfo>>("pdd_buyer_order_list");
if (lstPddBuyerOrderInfoLite == null)
lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerOrderInfoLite>>("pdd_buyer_order");
lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerOrderLiteInfo>>("pdd_buyer_order");
if (lstPddBuyerOrderInfoLite == null)
lstPddBuyerOrderInfoLite = new ConcurrentList<PddBuyerOrderInfoLite>();
lstPddBuyerOrderInfoLite = new ConcurrentList<PddBuyerOrderLiteInfo>();
lstPddBuyerOrderInfoLite.RemoveAll(o => o.order_time < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddMonths(-1)));
lstPddBuyerAfterSaleInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerAfterSaleInfoLite>>("pdd_buyer_after_sale_list");
lstPddBuyerAfterSaleInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig<ConcurrentList<PddBuyerAfterSaleLiteInfo>>("pdd_buyer_after_sale_list");
if (lstPddBuyerAfterSaleInfoLite == null)
lstPddBuyerAfterSaleInfoLite = new ConcurrentList<PddBuyerAfterSaleInfoLite>();
lstPddBuyerAfterSaleInfoLite = new ConcurrentList<PddBuyerAfterSaleLiteInfo>();
lstPddBuyerAfterSaleInfoLite.RemoveAll(o => o.orderDate < DateTime.Now.AddMonths(-1).ToString("yyMMdd").ParseToInt());
GetBuyer();
@@ -116,7 +116,7 @@ namespace TemuKJD.WXForms.TalkForms
while(true)
{
Thread.Sleep(500);
if (isReadOrder || isInitBuyer || isInitOrder || isInitAfterSale)
if (isReadBuyerOrder || isInitBuyer || isInitOrder || isInitAfterSale)
{
Invoke(new Action(() => { pictureBox1.Visible = true; }));
}
@@ -175,7 +175,7 @@ namespace TemuKJD.WXForms.TalkForms
//});
}
void ShowOrder(PddBuyerOrderInfoLite order)
void ShowOrder(PddBuyerOrderLiteInfo order)
{
if (order == null)
return;
@@ -268,7 +268,7 @@ namespace TemuKJD.WXForms.TalkForms
}
}
void ShowAfterSale(PddBuyerAfterSaleInfoLite afterSale)
void ShowAfterSale(PddBuyerAfterSaleLiteInfo afterSale)
{
if (afterSale == null)
return;
@@ -559,14 +559,14 @@ namespace TemuKJD.WXForms.TalkForms
lblMsg.Text = buyer.buyer_name + " 正在获取订单列表 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
var list = JsonHelper.DeserializeJsonToList<PddBuyerOrderInfoLite>(JsonHelper.JObjectParse(data)["orders"].ParseToString());
var list = JsonHelper.DeserializeJsonToList<PddBuyerOrderLiteInfo>(JsonHelper.JObjectParse(data)["orders"].ParseToString());
foreach (var o in list)
{
o.buyerId = buyer.buyer_id;
o.buyerName = buyer.buyer_name;
o.outExpressCompanyMsg = o.extra_info.order_hint?.message; // todo 此处转换
PddBuyerOrderInfoLite order = null;
PddBuyerOrderLiteInfo order = null;
if (!this.lstPddBuyerOrderInfoLite.Any(or => or.order_sn == o.order_sn))
{
order = o;
@@ -649,7 +649,7 @@ namespace TemuKJD.WXForms.TalkForms
lblMsg.Text = buyer.buyer_name + " 正在获取售后列表 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
var list = JsonHelper.DeserializeJsonToList<PddBuyerAfterSaleInfoLite>(JsonHelper.JObjectParse(data)["result"]["listItemVOList"].ParseToString());
var list = JsonHelper.DeserializeJsonToList<PddBuyerAfterSaleLiteInfo>(JsonHelper.JObjectParse(data)["result"]["listItemVOList"].ParseToString());
foreach (var af in list)
{
if (af.orderSn == "260414-035525772830257")
@@ -661,7 +661,7 @@ namespace TemuKJD.WXForms.TalkForms
af.buyerName = buyer.buyer_name;
bool isUpdate = false;
PddBuyerAfterSaleInfoLite afterSale = null;
PddBuyerAfterSaleLiteInfo afterSale = null;
if (!this.lstPddBuyerAfterSaleInfoLite.Any(or => or.afterSalesId == af.afterSalesId))
{
isUpdate = true;
@@ -671,10 +671,10 @@ namespace TemuKJD.WXForms.TalkForms
else
{
afterSale = this.lstPddBuyerAfterSaleInfoLite.FirstOrDefault(aft => aft.afterSalesId == af.afterSalesId);
var afterSaleTmp = JsonHelper.DeserializeJsonToObject<PddBuyerAfterSaleInfoLite>(JsonHelper.SerializeObject(afterSale));
var afterSaleTmp = JsonHelper.DeserializeJsonToObject<PddBuyerAfterSaleLiteInfo>(JsonHelper.SerializeObject(afterSale));
afterSaleTmp.sendStatus = "";
afterSaleTmp.listItemMallVO = new ListItemMallVO();
var afTmp = JsonHelper.DeserializeJsonToObject<PddBuyerAfterSaleInfoLite>(JsonHelper.SerializeObject(af));
var afTmp = JsonHelper.DeserializeJsonToObject<PddBuyerAfterSaleLiteInfo>(JsonHelper.SerializeObject(af));
afTmp.listItemMallVO = new ListItemMallVO();
//"{\"buyerId\":\"9303896321\",\"buyerName\":\"吴镇强\",\"sendStatus\":\"\",\"orderSn\":\"260419-166104962590257\",\"orderDate\":260419,\"afterSalesId\":20379701953346,\"listItemExtraVO\":{\"navToDetailPageUrl\":\"/complaints_new_detail.html?after_sales_id=20379701953346&order_sn=260419-166104962590257\"},\"listItemMallVO\":{\"mallName\":\"喜悦时光婚礼屋\",\"mallLogo\":\"http://t16img.yangkeduo.com/pdd_ims/img_check/v2/F3E6FF9A2BE40120200112155401880/9632a275dd974e9aa2e138cde6d0adf9.png\",\"mallTagLink\":null,\"pddRoute\":\"mall_page.html?mall_id=938572084&msn=zjdvupyguflkhtcgugbw3hbdpm_axbuy&_sop_rcto=YWLr7xLhO9bbI6L9S-r6ALQbTuXTx_3fIjo\"},\"listItemStatusVO\":{\"statusText\":\"待用户发货\"},\"listItemGoodsVO\":{\"goodsImage\":\"https://img.pddpic.com/mms-material-img/2026-03-21/005e0aa1-ad62-4db3-8018-00490ddc0a82.jpeg\",\"goodsName\":\"2026高级可折叠蚊帐家用卧室懒人免安装加高加厚加密学生宿舍蚊帐\",\"spec\":\"免安装/可折叠/网眼加密【可爱粉】+固定器,适用双人1.8m床【190*160*80】\",\"goodsPrice\":1890,\"goodsNumber\":1,\"richTextList\":null},\"listItemAmountVO\":{\"orderAmountTitle\":\"实付:\",\"orderAmount\":1890,\"payLaterAmountTitle\":null,\"payLaterAmount\":null,\"refundAmountTitle\":\"退款金额:\",\"refundAmount\":1890,\"refundAmountText\":null,\"useCoupon\":false}}"
//"{\"buyerId\":\"9303896321\",\"buyerName\":\"吴镇强\",\"sendStatus\":\"\",\"orderSn\":\"260419-166104962590257\",\"orderDate\":260419,\"afterSalesId\":20379701953346,\"listItemExtraVO\":{\"navToDetailPageUrl\":\"/complaints_new_detail.html?after_sales_id=20379701953346&order_sn=260419-166104962590257\"},\"listItemMallVO\":{\"mallName\":\"喜悦时光婚礼屋\",\"mallLogo\":\"http://t16img.yangkeduo.com/pdd_ims/img_check/v2/F3E6FF9A2BE40120200112155401880/9632a275dd974e9aa2e138cde6d0adf9.png\",\"mallTagLink\":null,\"pddRoute\":\"mall_page.html?mall_id=938572084&msn=zjdvupyguflkhtcgugbw3hbdpm_axbuy&_sop_rcto=YWKCoxwbKDHFAaL9S-r6ALQbTuXTx_3fIjo\"},\"listItemStatusVO\":{\"statusText\":\"待用户发货\"},\"listItemGoodsVO\":{\"goodsImage\":\"https://img.pddpic.com/mms-material-img/2026-03-21/005e0aa1-ad62-4db3-8018-00490ddc0a82.jpeg\",\"goodsName\":\"2026高级可折叠蚊帐家用卧室懒人免安装加高加厚加密学生宿舍蚊帐\",\"spec\":\"免安装/可折叠/网眼加密【可爱粉】+固定器,适用双人1.8m床【190*160*80】\",\"goodsPrice\":1890,\"goodsNumber\":1,\"richTextList\":null},\"listItemAmountVO\":{\"orderAmountTitle\":\"实付:\",\"orderAmount\":1890,\"payLaterAmountTitle\":null,\"payLaterAmount\":null,\"refundAmountTitle\":\"退款金额:\",\"refundAmount\":1890,\"refundAmountText\":null,\"useCoupon\":false}}"
@@ -894,7 +894,7 @@ namespace TemuKJD.WXForms.TalkForms
GetPddOrder();
MakeWxToPddAfterSales();
}
if (isReadOrder)
if (isReadBuyerOrder)
{
nextGetOrderTime = DateTime.Now.AddMinutes(25);
}
@@ -910,7 +910,7 @@ namespace TemuKJD.WXForms.TalkForms
void GetPddOrder()
{
isReadOrder = true;
isReadBuyerOrder = true;
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
@@ -1159,7 +1159,7 @@ namespace TemuKJD.WXForms.TalkForms
}
Thread.Sleep(Randomx.GetId(6000, 8000));
}
isReadOrder = false;
isReadBuyerOrder = false;
Invoke(new Action(() => { WxTalkForm.instance.TitleText = "订单读取已结束,等待下次读取"; }));
}, cancellationTokenSource.Token);
@@ -1513,13 +1513,13 @@ namespace TemuKJD.WXForms.TalkForms
}
}
ConcurrentList<PddBuyerOrderInfoLite> tempWaitOrderLst = new ConcurrentList<PddBuyerOrderInfoLite>();
ConcurrentList<PddBuyerOrderLiteInfo> tempWaitOrderLst { get; set; } = new ConcurrentList<PddBuyerOrderLiteInfo>();
/// <summary>
/// 调用e57接口更新web端订单数据信息
/// </summary>
/// <param name="order"></param>
/// <param name="resetSendStatus">手动强制重置状态,一定重新发送</param>
public void SendOrderE57(PddBuyerOrderInfoLite order, bool resetSendStatus = false)
public void SendOrderE57(PddBuyerOrderLiteInfo order, bool resetSendStatus = false)
{
//if (resetSendStatus == true)
//{
@@ -1668,7 +1668,7 @@ namespace TemuKJD.WXForms.TalkForms
{
Task.Run(() =>
{
while (isReadOrder)
while (isReadBuyerOrder)
{
Thread.Sleep(500);
//break;
@@ -1726,7 +1726,7 @@ namespace TemuKJD.WXForms.TalkForms
}
// 通过服务端读取微信售后并触发拼多多售后或显示提示供买手手动退货
public string MakeWxToPddAfterSale(PddBuyerOrderInfoLite order)
public string MakeWxToPddAfterSale(PddBuyerOrderLiteInfo order)
{
//if (isReadOrder)
//{
@@ -1774,11 +1774,12 @@ namespace TemuKJD.WXForms.TalkForms
{
ShowOrder(order);
}));
PddBuyerAfterSaleInfoLite afterSale = new PddBuyerAfterSaleInfoLite();
PddBuyerAfterSaleLiteInfo afterSale = new PddBuyerAfterSaleLiteInfo();
afterSale.listItemStatusVO = new ListItemStatusVO();
afterSale.listItemStatusVO.statusText = "退款成功";
afterSale.listItemExtraVO = new ListItemExtraVO();
afterSale.listItemExtraVO.navToDetailPageUrl = "&order_sn=" + txtForceSendAfterSale.Text.Trim();
//afterSale.listItemExtraVO.navToDetailPageUrl = "&order_sn=" + txtForceSendAfterSale.Text.Trim();
afterSale.listItemExtraVO.navToDetailPageUrl = "&order_sn=" + order.order_sn;
SendAfterSaleE57(afterSale, true);
return "{\"success\":true,\"msg\":\"操作成功\"}";
}
@@ -1792,7 +1793,7 @@ namespace TemuKJD.WXForms.TalkForms
}
// 向服务端更新售后退货信息更新状态
public void SendAfterSaleE57(PddBuyerAfterSaleInfoLite afterSale, bool resetSendStatus = false, bool isManualSendNoRecordCancelOrder = false)
public void SendAfterSaleE57(PddBuyerAfterSaleLiteInfo afterSale, bool resetSendStatus = false, bool isManualSendNoRecordCancelOrder = false)
{
if (resetSendStatus)
afterSale.sendStatus = "";
@@ -2010,7 +2011,7 @@ namespace TemuKJD.WXForms.TalkForms
{
var orderId = txtForceSendAfterSale.Text.Trim();
PddBuyerAfterSaleInfoLite afterSale = new PddBuyerAfterSaleInfoLite();
PddBuyerAfterSaleLiteInfo afterSale = new PddBuyerAfterSaleLiteInfo();
afterSale.listItemStatusVO = new ListItemStatusVO();
afterSale.listItemStatusVO.statusText = "退款成功";
afterSale.listItemExtraVO = new ListItemExtraVO();
@@ -2042,7 +2043,7 @@ namespace TemuKJD.WXForms.TalkForms
return;
}
PddBuyerAfterSaleInfoLite afterSale = new PddBuyerAfterSaleInfoLite();
PddBuyerAfterSaleLiteInfo afterSale = new PddBuyerAfterSaleLiteInfo();
afterSale.listItemStatusVO = new ListItemStatusVO();
afterSale.listItemStatusVO.statusText = "退款成功";
afterSale.listItemExtraVO = new ListItemExtraVO();