拼多多买手直接退款 其他订单逻辑优化

This commit is contained in:
wule committed 2026-07-09 20:08:27 +08:00
1 parent 1669305479
commit b877695e4b
42 files changed
+1958 -1980

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Config
{
public class BuyConfig
{
/// <summary>
/// 使用软件拍单余额拍单
/// </summary>
public bool IsUseAppBalance { get; set; } = true;
/// <summary>
/// 自动修改下单地址到仓库
/// </summary>
public bool IsAutoChangeWarehouseAddress { get; set; } = true;
}
}
+14 -10
View File
@@ -10,7 +10,7 @@ namespace AllBase.Model.Local
public class TransitWarehouseParam
{
/// <summary>
/// 中转仓编码
/// 中转仓编码 XDYYWC XDYJJC...
/// </summary>
public string TransId { get; set; }
/// <summary>
@@ -33,20 +33,22 @@ namespace AllBase.Model.Local
public int province_id { get; set; }
public int city_id { get; set; }
public int district_id { get; set; }
public string province_name { get;set; }
public string city_name { get; set; }
}
public class TransitWarehouseData
{
public static string TransitWarehouseDataStr = @"
XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北苑街道西站大道妈妈商贸6号库3楼中库走到底鸿鹄云仓(康诚楼上) ;31 ;386 ;3409
XDYJJC ;晋江仓 ;安群 ;19905951984 ;福建省泉州市南安市霞美镇温山村431号鸿鹄大厦 ;4 ;58 ;569
XDYBJC ;北京仓 ;胡萍 ;18565773752 ;北京市顺义区光明街道滨河小区七区1号楼 ;2 ;52 ;511
XDYCDC ;成都仓 ;谢春虹 ;15828201479 ;四川省资阳市乐至县仙鹤大道桑都街15-19号仓库(不要放驿站,送到仓库) ;26 ;340 ;2898
XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市从化区太平镇高埔细埔街99号东门4栋3楼 ;6 ;76 ;692
XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市汉阳区洲头街道汉新大道2号鲲鹏公司 ;13 ;180 ;1548
XDYSHANDC ;山东2仓 ;鸿鹄小申 ;13044121239 ;山东省临沂市费县南外环东转盘往东200米顺通快递有限公司(仓库二楼) ;22 ;292 ;2415
XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市普陀区真如镇街道真北路2653弄G区 ;25 ;321 ;2709
XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市东莞市凤岗镇 浸校塘东良巷兔喜生活(云仓);6 ;79 ;732";
XDYYWC ;义乌仓 ;小田 ;19058117371 ;浙江省金华市义乌市北苑街道西站大道妈妈商贸6号库3楼中库走到底鸿鹄云仓(康诚楼上) ;31 ;386 ;3409 ;浙江省 ;金华市
XDYJJC ;晋江仓 ;安群 ;19905951984 ;福建省泉州市南安市霞美镇温山村431号鸿鹄大厦 ;4 ;58 ;569 ;福建省 ;泉州市
XDYBJC ;北京仓 ;胡萍 ;18565773752 ;北京市顺义区光明街道滨河小区七区1号楼 ;2 ;52 ;511 ;北京市 ;北京市
XDYCDC ;成都仓 ;谢春虹 ;15828201479 ;四川省资阳市乐至县仙鹤大道桑都街15-19号仓库(不要放驿站,送到仓库) ;26 ;340 ;2898 ;四川省 ;资阳市
XDYGZC ;广州仓 ;何外华 ;13826339849 ;广州市从化区太平镇高埔细埔街99号东门4栋3楼 ;6 ;76 ;692 ;广东省 ;广州市
XDYWHC ;武汉2仓 ;杨先生 ;13044121071 ;湖北省武汉市汉阳区洲头街道汉新大道2号鲲鹏公司 ;13 ;180 ;1548 ;湖北省 ;武汉市
XDYSHANDC ;山东2仓 ;鸿鹄小申 ;13044121239 ;山东省临沂市费县南外环东转盘往东200米顺通快递有限公司(仓库二楼) ;22 ;292 ;2415 ;山东省 ;临沂市
XDYSHC ;上海新仓 ;纪先生 ;13044121150 ;上海市上海市普陀区真如镇街道真北路2653弄G区 ;25 ;321 ;2709 ;上海市 ;上海市
XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市东莞市凤岗镇 浸校塘东良巷兔喜生活(云仓);6 ;79 ;732 ;广东省 ;东莞市";
//XDYCHONGQC ;重庆2仓 ;翁桂柱 ;18923911055 ;重庆市九龙坡区中梁山街道云飞九龙香山(二纵线东50米)重庆九龙坡区渝州公司 ;32 ;394 ;3339
//XDYHEBC ;哈尔滨仓 ;韩健 ;13044121250 ;黑龙江省哈尔滨市双城区新兴镇钱江路南侧韵达快递分拨中心发出库房84号装车口旁边电梯 ;12 ;167 ;1426
//XDYXA ;西安仓 ;方先生 ;15813526665 ;陕西省西安市雁塔区田马路厨具市场内韵达超市(田马路店);24 ;311 ;2599
@@ -80,6 +82,8 @@ XDYSZC ;深圳仓 ;峰峰 ;15343351331 ;广东省东莞市东莞市凤
province_id = arr[5].Trim().ParseToInt(),
city_id = arr[6].Trim().ParseToInt(),
district_id = arr[7].Trim().ParseToInt(),
province_name = arr[8].Trim(),
city_name = arr[9].Trim(),
};
transitWarehouseList.Add(tw);
}
@@ -43,6 +43,9 @@ namespace AllBase.Model.Local
public DateTime updated_time { get; set; }
public string platform { get; set; }
public string order_platform_code { get; set; }
/// <summary>
/// 唯一值编码,一般为外采单号
/// </summary>
public string order_code { get; set; }
/// <summary>
/// 取号状态 1 正常取号 2提前取号 3已更正 (已修改提前取号为正常取号)
@@ -50,5 +53,8 @@ namespace AllBase.Model.Local
/// </summary>
public int? pre_allocated_order_no { get; set; }
public int? is_transfer_ship { get; set; }
public string random_code { get; set; }
public int? transfer_refund_status { get; set; }
}
}
@@ -39,6 +39,10 @@ namespace AllBase.Model.Local
{
get
{
if (order_id == "3737644875536802048")
{
}
if (orderItems.All(oi => oi.ItemTransitOrder != null)) return false;
if (purchase_status != 0) return false;
if (!out_order_no.IsNullOrEmpty()) return false;
+112 -2
View File
@@ -2,6 +2,7 @@
using AllBase.Model.MvvmBaseClasses;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions;
using Org.BouncyCastle.Asn1.Mozilla;
using System;
using System.Collections.Generic;
@@ -80,10 +81,113 @@ namespace AllBase.Model.Local
public List<oms_wei_external_procurement_log> ItemTransitOrders { get; set; } = new List<oms_wei_external_procurement_log>();
public oms_wei_external_procurement_log ItemTransitOrder
{
get { return ItemTransitOrders.FirstOrDefault(); }
get { return ItemTransitOrders.FirstOrDefault(t => t.transfer_refund_status.IsNullOrZero()); }
set { }
}
/// <summary>
/// 拍单物流
/// </summary>
public string TransitOrderWaybillToWareHouseStr
{
get
{
// 直接取号和更正取号
if (ItemTransitOrder?.pre_allocated_order_no != 1 && ItemTransitOrder?.pre_allocated_order_no != 3)
return null;
return "买手物流:" + ItemTransitOrder.express_1_company + "-" + ItemTransitOrder.express_1_waybill;
}
set { }
}
/// <summary>
/// 提前取号物流
/// </summary>
public string TransitOrderWaybillFakeStr
{
get
{
// 提前取号
if (ItemTransitOrder?.pre_allocated_order_no != 2)
return null;
return "取号物流:" + ItemTransitOrder.express_1_company + "-" + ItemTransitOrder.express_1_waybill;
}
set { }
}
/// <summary>
/// 仓库物流
/// </summary>
public string TransitOrderWaybillFromWareHouseStr
{
get
{
// 仓库下游物流
if (ItemTransitOrder == null || ItemTransitOrder.express_2_company.IsNullOrEmpty() || ItemTransitOrder.express_2_waybill.IsNullOrEmpty())
return null;
return "仓库物流:" + ItemTransitOrder.express_2_company + "-" + ItemTransitOrder.express_2_waybill;
}
set { }
}
public string TransitWaybillStatusStr
{
get
{
if ((ItemTransitOrder?.pre_allocated_order_no == 1 || ItemTransitOrder?.pre_allocated_order_no == 3) && !ItemTransitOrder.express_2_company.IsNullOrEmpty() && !ItemTransitOrder.express_2_waybill.IsNullOrEmpty())
return "仓库已出单";
if (ItemTransitOrder?.pre_allocated_order_no == 1 || ItemTransitOrder?.pre_allocated_order_no == 3)
return "买手已出单";
if (ItemTransitOrder != null)
return "买手未出单";
return "";
}
set { }
}
public SolidColorBrush TransitWaybillStatusStrColor
{
get
{
if (TransitWaybillStatusStr == "仓库已出单")
return new SolidColorBrush(Color.FromRgb(19, 206, 102));
if (TransitWaybillStatusStr == "买手已出单")
return new SolidColorBrush(Color.FromRgb(255, 186, 0));
if (TransitWaybillStatusStr == "买手未出单")
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
}
set { }
}
public SolidColorBrush TransitWaybillStatusBorderColor
{
get
{
if (TransitWaybillStatusStr == "仓库已出单")
return new SolidColorBrush(Color.FromRgb(208, 245, 224));
if (TransitWaybillStatusStr == "买手已出单")
return new SolidColorBrush(Color.FromRgb(255, 241, 204));
if (TransitWaybillStatusStr == "买手未出单")
return new SolidColorBrush(Color.FromRgb(255, 219, 219));
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
}
set { }
}
public SolidColorBrush TransitWaybillStatusBackColor
{
get
{
if (TransitWaybillStatusStr == "仓库已出单")
return new SolidColorBrush(Color.FromRgb(231, 250, 240));
if (TransitWaybillStatusStr == "买手已出单")
return new SolidColorBrush(Color.FromRgb(255, 248, 230));
if (TransitWaybillStatusStr == "买手未出单")
return new SolidColorBrush(Color.FromRgb(255, 237, 237));
return new SolidColorBrush(Color.FromRgb(255, 73, 73));
}
set { }
}
// 仓库采购时间是否达标字段
public string OutOrderTimeQualifiedStr
{
@@ -196,6 +300,12 @@ namespace AllBase.Model.Local
set { }
}
public string ReturnWaybillId
{
get { return ItemRefund?.return_waybill_id; }
set { }
}
/// <summary>
/// 订单退款时间
/// </summary>
@@ -275,7 +385,7 @@ namespace AllBase.Model.Local
/// <summary>
/// 平台服务费
/// </summary>
public string predict_commission_fee_string
public string predict_commission_fee_str
{
//get { return "¥" + (order_items.Sum(oi => oi.predict_commission_fee.ParseToInt()) * 0.01m).ParseToDecimal().ToString("0.00"); }
get { return "¥" + (predict_commission_fee * 0.01m).ParseToDecimal().ToString("0.00"); }
+58 -12
View File
@@ -2,6 +2,7 @@
using AllBase.Model.MvvmBaseClasses;
using NaiBa.Util.Extension;
using NaiBa.Util.Model;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -95,7 +96,6 @@ namespace AllBase.Model.Result
if (expressCompanyName.Contains("其他快递")) return "OTHER";
return "";
}
public string ShopOrderIdStr
{
get { return this.GetValue(x => x.ShopOrderIdStr); }
@@ -176,14 +176,16 @@ namespace AllBase.Model.Result
/// <summary>
/// 处理中, "已取号(更正)", 已取号, 提前取号, 取号失败
/// </summary>
[JsonIgnore]
public string TransitOrderStatus
{
get
{
if (TransferWareHouseStatus == "3")
{
return "处理中";
}
string wareHouseStatusStr = TransferWareHouseStatus == "3" ? " 仓库处理中" : "";
//if (TransferWareHouseStatus == "3")
//{
// return "处理中";
//}
// 不考虑仓库取号失败情况,只要取号状态不是3或者1,且有仓库订单记录,就处理取号
//if (TransferWareHouseStatus == "2")
//{
@@ -198,16 +200,16 @@ namespace AllBase.Model.Result
if (OrderTime >= new DateTime(2026, 6, 29))
return "已取号";
else
return "提前取号";
return "提前取号" + wareHouseStatusStr;
}
if (PreAllocatedOrderNoStr == "2")
{
return "提前取号";
return "提前取号" + wareHouseStatusStr;
}
if (!TransitWarehouseIdStr.IsNullOrEmpty() && OrderTime < new DateTime(2026, 6, 29))
{
return "提前取号(旧订单)";
return "提前取号(旧订单)" + wareHouseStatusStr;
}
if (TransitWarehouseIdStr.IsNullOrEmpty())
{
@@ -250,18 +252,35 @@ namespace AllBase.Model.Result
}
set { }
}
/// <summary>
/// 微信小店订单创建时间
/// </summary>
public DateTime WxOrderCreateTime
{
get { return this.GetValue(x => x.WxOrderCreateTime); }
set { this.SetValue(x => x.WxOrderCreateTime, value); }
}
/// <summary>
/// 中转单创建时间
/// </summary>
public DateTime TransitCreateTime
{
get { return this.GetValue(x => x.TransitCreateTime); }
set { this.SetValue(x => x.TransitCreateTime, value); }
}
/// <summary>
/// 买手订单时间
/// </summary>
[JsonIgnore]
public DateTime OrderTime
{
get { return BaseClass.StampToDateTime(order_time.ParseToInt()); }
set { }
}
[JsonIgnore]
public string OrderTimeStr
{
get { return BaseClass.StampToDateTime(order_time.ParseToInt()).ToString("yy-MM-dd HH:mm:ss"); }
@@ -271,23 +290,37 @@ namespace AllBase.Model.Result
/// <summary>
/// 商品信息
/// </summary>
[JsonIgnore]
public string ProdInfoStr
{
get { return order_Goods == null ? "" : string.Join("\r\n", order_Goods.Select(g => g.goods_name + " x" + g.goods_number)); }
set { }
}
/// <summary>
/// 购买金额
/// </summary>
[JsonIgnore]
public decimal AmoutValue
{
get { return order_amount.ParseToInt() * 0.01m; }
set { }
}
public string outExpressCompanyMsg { get; set; } // 物流公司名称,可以尝试直接从列表中匹配
/// <summary>
/// 中转仓物流公司编码
/// 物流公司名称,可以尝试直接从列表中匹配
/// </summary>
[JsonIgnore]
public string outExpressCompanyMsg
{
get { return extra_info.order_hint?.message; }
set { }
}
/// <summary>
/// 外采订单物流名称对应中转仓物流公司编码
/// </summary>
[JsonIgnore]
public string outExpressCompanyCode
{
get
@@ -330,6 +363,8 @@ namespace AllBase.Model.Result
/// 微信退款单状态
/// </summary>
public string wxRefundStatus { get; set; } = "";
public string buyerId { get; set; } // 买手Id
public string buyerName { get; set; } // 买手名称
/// <summary>
@@ -342,6 +377,9 @@ namespace AllBase.Model.Result
public int? discount_amount { get; set; } // 200,
public int? service_amount { get; set; } // 0,
public string display_amount { get; set; } // 2090 实付款
/// <summary>
/// 买手单创建时间
/// </summary>
public long? order_time { get; set; } // 1775731637
/// <summary>
/// 物流单号
@@ -374,6 +412,14 @@ namespace AllBase.Model.Result
{
public string after_sales_id { get; set; } // "20032511557436",
public int? after_sales_type { get; set; } // 2,
/// <summary>
/// 售后状态
/// 0:无售后 2:买家申请退款,待商家处理 3:退货退款,待商家处理 4:商家同意退款,退款中 5:平台同意退款,退款中 6:驳回退款,待买家处理
/// 7:已同意退货退款,待用户发货 8:平台处理中 9:平台拒绝退款,退款关闭 10:退款成功 11:买家撤销 12:买家逾期未处理,退款失败 13:买家逾期,超过有效期
/// 14:换货补寄待商家处理 15:换货补寄待用户处理 16:换货补寄成功 17:换货补寄失败 18:换货补寄待用户确认完成 21:待商家同意维修 22:待用户确认发货
/// 24:维修关闭 25:维修成功 27:待用户确认收货 31:已同意拒收退款,待用户拒收 32:补寄待商家发货
/// 2, 3, 4, 5, 7, 8, 10, 31 // 售后,不支持修改物流
/// </summary>
public int? after_sales_status { get; set; } // 31 // 待用户拒收商品
}