Files
29WxOrder/AllBase/Model/Result/PddBuyerOrderLiteInfo.cs
T

466 lines
21 KiB
C#

using AllBase.Model.DBModel;
using AllBase.Model.MvvmBaseClasses;
using NaiBa.Util.Extension;
using NaiBa.Util.Model;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace AllBase.Model.Result
{
public class PddBuyerOrderLiteInfo : PropertyNotifyObject
{
/// <summary>
/// 获取中转仓物流公司编码
/// </summary>
/// <param name="expressCompanyName"></param>
/// <returns></returns>
public static string GetPddToTransitWarehouseExpressCompanyCode(string expressCompanyName)
{
if (expressCompanyName == null || expressCompanyName == "") return "";
if (expressCompanyName.Contains("顺丰速运")) return "SF";
if (expressCompanyName.Contains("邮政快递包裹")) return "EMS";
if (expressCompanyName.Contains("邮政电商标快")) return "EMS";
if (expressCompanyName.Contains("邮政EMS")) return "EMS";
if (expressCompanyName.Contains("圆通快递")) return "YTO";
if (expressCompanyName.Contains("中通快递")) return "ZTO";
if (expressCompanyName.Contains("百世快递")) return "HTKY";
if (expressCompanyName.Contains("百世快运")) return "HTKY";
if (expressCompanyName.Contains("申通快递")) return "STO";
if (expressCompanyName.Contains("韵达快递")) return "YUNDA";
if (expressCompanyName.Contains("京东快递")) return "JDKD";
if (expressCompanyName.Contains("京东快运")) return "JDKD";
if (expressCompanyName.Contains("京东大件物流")) return "JDKD";
if (expressCompanyName.Contains("极兔速递")) return "JTSD";
if (expressCompanyName.Contains("极兔快递")) return "JTSD";
return "OTHER";
//SF 顺丰 //EMS 邮政快递 //YTO 圆通 //ZTO 中通 //HTKY 百世 //STO 申通 //YUNDA 韵达 //JDKD 京东快递 //JTSD 极兔
}
// 微信快递编码
//平台快递编码 微信快递名称 PDD
//EMS EMS 邮政快递包裹
//EMS EMS 邮政电商标快
//JTSD 极兔速递 极兔速递
//STO 申通快递 申通快递
//YD 韵达速递 韵达快递
//YTO 圆通速递 圆通快递
//ZTO 中通快递 中通快递
//BTWL 百世快运
//HTKY 百世快递
public static string GetPddToWxExpressCompanyCode(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 "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";
if (expressCompanyName.Contains("京东大件物流")) return "JD";
if (expressCompanyName.Contains("其他快递")) return "OTHER";
return "";
}
public static string GetWxExpressNameToWxExpressCode(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";
if (expressCompanyName.Contains("其他快递")) return "OTHER";
return "";
}
public string ShopOrderIdStr
{
get { return this.GetValue(x => x.ShopOrderIdStr); }
set { this.SetValue(x => x.ShopOrderIdStr, value); }
}
public string ShopOrderSkuIdStr
{
get { return this.GetValue(x => x.ShopOrderSkuIdStr); }
set { this.SetValue(x => x.ShopOrderSkuIdStr, value); }
}
public string ShopOrderSkuNameStr
{
get { return this.GetValue(x => x.ShopOrderSkuNameStr); }
set { this.SetValue(x => x.ShopOrderSkuNameStr, value); }
}
/// <summary>
/// 店铺售后订单状态 无售后或售后关闭为空 否则为"店铺售后"
/// </summary>
public string ShopOrderRefundStr
{
get { return this.GetValue(x => x.ShopOrderRefundStr); }
set { this.SetValue(x => x.ShopOrderRefundStr, value); }
}
public string TransitBuyerOrderRefundStatus
{
get { return this.GetValue(x => x.TransitBuyerOrderRefundStatus); }
set { this.SetValue(x => x.TransitBuyerOrderRefundStatus, value); }
}
/// <summary>
/// 中转仓仓库编号
/// </summary>
public string TransitWarehouseIdStr
{
get { return this.GetValue(x => x.TransitWarehouseIdStr); }
set { this.SetValue(x => x.TransitWarehouseIdStr, value); }
}
/// <summary>
/// 拍单物流公司编码
/// </summary>
public string Express1CompanyStr
{
get { return this.GetValue(x => x.Express1CompanyStr); }
set { this.SetValue(x => x.Express1CompanyStr, value); }
}
/// <summary>
/// 拍单物流
/// </summary>
public string Express1WaybillStr
{
get { return this.GetValue(x => x.Express1WaybillStr); }
set { this.SetValue(x => x.Express1WaybillStr, value); }
}
/// <summary>
/// 中转仓物流公司编码(提前取号)
/// </summary>
public string Express2CompanyStr
{
get { return this.GetValue(x => x.Express2CompanyStr); }
set { this.SetValue(x => x.Express2CompanyStr, value); }
}
/// <summary>
/// 中转仓物流编码(提前取号)
/// </summary>
public string Express2WaybillStr
{
get { return this.GetValue(x => x.Express2WaybillStr); }
set { this.SetValue(x => x.Express2WaybillStr, value); }
}
/// <summary>
/// 中转仓状态:"0" 未使用,"1" 已创建,"2" 创建失败,"3" 处理中(业务方根据此字段处理中转流程)
/// 使用此字段判断中转仓库是否已取号
/// </summary>
public string TransferWareHouseStatus
{
get { return this.GetValue(x => x.TransferWareHouseStatus); }
set { this.SetValue(x => x.TransferWareHouseStatus, value); }
}
/// <summary>
/// 店铺订单作废状态 0 未作废 1已作废 2作废失败
/// </summary>
public string WxOrderVoidStatus
{
get { return this.GetValue(x => x.WxOrderVoidStatus); }
set { this.SetValue(x => x.WxOrderVoidStatus, value); }
}
/// <summary>
/// 1 正常取号 2 提前取号 3 已更正
/// </summary>
public string PreAllocatedOrderNoStr
{
get { return this.GetValue(x => x.PreAllocatedOrderNoStr); }
set { this.SetValue(x => x.PreAllocatedOrderNoStr, value); }
}
/// <summary>
/// 处理中, "已取号(更正)", 已取号, 提前取号, 取号失败
/// </summary>
[JsonIgnore]
public string TransitOrderStatus
{
get
{
string wareHouseStatusStr = TransferWareHouseStatus == "3" ? " 仓库处理中" : "";
//if (TransferWareHouseStatus == "3")
//{
// return "处理中";
//}
// 不考虑仓库取号失败情况,只要取号状态不是3或者1,且有仓库订单记录,就处理取号
//if (TransferWareHouseStatus == "2")
//{
// return "取号失败";
//}
if (PreAllocatedOrderNoStr == "3")
{
return "已取号(更正)";
}
if (PreAllocatedOrderNoStr == "1")
{
if (OrderTime >= new DateTime(2026, 6, 29))
return "已取号";
else
return "提前取号" + wareHouseStatusStr;
}
if (PreAllocatedOrderNoStr == "2")
{
return "提前取号" + wareHouseStatusStr;
}
if (!TransitWarehouseIdStr.IsNullOrEmpty() && OrderTime < new DateTime(2026, 6, 29))
{
return "提前取号(旧订单)" + wareHouseStatusStr;
}
if (TransitWarehouseIdStr.IsNullOrEmpty())
{
return "非中转仓订单";
}
return "";
//if ((TransferWareHouseStatus == "1" || TransferWareHouseStatus == "3") &&
// //Express1CompanyStr == this.outExpressCompanyCode && !this.outExpressCompanyCode.IsNullOrEmpty() &&
// Express1WaybillStr == this.tracking_number && !this.tracking_number.IsNullOrEmpty())
//{
// return "已取号";
//}
//if (string.IsNullOrEmpty(Express1CompanyStr) && string.IsNullOrEmpty(Express1WaybillStr) &&
// !string.IsNullOrEmpty(Express2CompanyStr) && !string.IsNullOrEmpty(Express2WaybillStr))
//{
// return "提前取号";
//}
//if (/*!string.IsNullOrEmpty(Express1CompanyStr) && Express1CompanyStr != this.outExpressCompanyCode && !this.outExpressCompanyCode.IsNullOrEmpty() &&*/
// !string.IsNullOrEmpty(Express1WaybillStr) && Express1WaybillStr != this.tracking_number && !this.tracking_number.IsNullOrEmpty())
//{
// return "提前取号";
//}
//if ((TransferWareHouseStatus == "1" || TransferWareHouseStatus == "3") && (string.IsNullOrEmpty(Express1CompanyStr) || string.IsNullOrEmpty(Express1WaybillStr)))
//{
// return "提前取号";
//}
//if (TransferWareHouseStatus == "0" && !string.IsNullOrEmpty(Express1CompanyStr) && Express1CompanyStr == outExpressCompanyCode &&
// !string.IsNullOrEmpty(Express1WaybillStr) && Express1WaybillStr == tracking_number)
//{
// return "已提交";
//}
//if (TransferWareHouseStatus == "2" && !string.IsNullOrEmpty(Express1CompanyStr) && Express1CompanyStr == outExpressCompanyCode &&
// !string.IsNullOrEmpty(Express1WaybillStr) && Express1WaybillStr == tracking_number)
//{
// return "取号失败";
//}
//return "";
}
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>
public DateTime TransitPickupTime
{
get { return this.GetValue(x => x.TransitPickupTime); }
set { this.SetValue(x => x.TransitPickupTime, 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"); }
set { }
}
/// <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 { }
}
/// <summary>
/// 物流公司名称,可以尝试直接从列表中匹配
/// </summary>
[JsonIgnore]
public string outExpressCompanyMsg
{
get { return extra_info.order_hint?.message; }
set { }
}
/// <summary>
/// 外采订单物流名称对应中转仓物流公司编码
/// </summary>
[JsonIgnore]
public string outExpressCompanyCode
{
get
{
//return GetPddToWxExpressCompanyCode(outExpressCompanyName);
return GetPddToTransitWarehouseExpressCompanyCode(outExpressCompanyName);
}
}
public string outExpressCompanyName
{
get
{
if (outExpressCompanyMsg == null || outExpressCompanyMsg == "") return "";
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 "韵达快递";
if (outExpressCompanyMsg.Contains("圆通快递")) return "圆通快递";
if (outExpressCompanyMsg.Contains("中通快递")) return "中通快递";
if (outExpressCompanyMsg.Contains("百世快运")) return "百世快运";
if (outExpressCompanyMsg.Contains("百世快递")) return "百世快递";
if (outExpressCompanyMsg.Contains("顺丰速运")) return "顺丰速运";
if (outExpressCompanyMsg.Contains("顺丰快递")) return "顺丰速运";
if (outExpressCompanyMsg.Contains("京东快递")) return "京东快递";
if (outExpressCompanyMsg.Contains("京东快运")) return "京东快运";
if (outExpressCompanyMsg.Contains("京东大件物流")) return "京东大件物流";
if (outExpressCompanyMsg.Contains("其他快递")) return "其他快递";
return "物流名称获取失败";
}
}
public string sendStatus
{
get { return this.GetValue(x => x.sendStatus); }
set { this.SetValue(x => x.sendStatus, value); }
}
/// <summary>
/// 微信退款单状态
/// </summary>
public string wxRefundStatus { get; set; } = "";
public string buyerId { get; set; } // 买手Id
public string buyerName { get; set; } // 买手名称
/// <summary>
/// 买手订单号
/// </summary>
public string order_sn { get; set; } // "260409-440915730042665",
public string parent_order_sn { get; set; } // "",
public int? order_amount { get; set; } // 2090,
public int? shipping_amount { get; set; } // 0,
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>
/// 物流单号
/// </summary>
public string tracking_number { get; set; } // "JT5474027114111", 物流单号
public string order_link_url { get; set; } // "order.html?order_sn=260408-386657164922665&page_from=1",
public List<order_good> order_Goods { get; set; }
public after_sales after_sales { get; set; }
public string order_status_prompt { get; set; } // "待收货",
public string order_prompt_color { get; set; } // "#E02E24",
public string activity_type { get; set; } // 3,
//[JsonProperty(PropertyName = "extraInfo")]
public extra_info extra_info { get; set; }
}
public class extra_info
{
public order_hint order_hint { get; set; }
}
public class order_hint
{
public string type { get; set; } // "express_info",
public string message { get; set; } // "商家已发货,正在通知极兔速递取件",
}
public class after_sales
{
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 // 待用户拒收商品
}
public class order_good
{
public string goods_id { get; set; } // "865983669848",
public string sku_id { get; set; } // "1824184724450",
public string goods_name { get; set; } // "新款夏季性感上衣蕾丝吊带带胸垫防走光吊带打底背心女美背内衣女",
public int? goods_price { get; set; } // 2290,
public int? goods_number { get; set; } // 1,
public string thumb_url { get; set; } // "https://img.pddpic.com/mms-goods-image/2026-03-03/bdf06666-5663-4ddf-96a4-cfc09a3ba3aa.jpeg.a.jpeg",
public string spec { get; set; } // "XL(适合140-160斤),白色+可可棕",
public int? event_type { get; set; } // 0,
public int? is_pre_sale { get; set; } // 0,
public int? goods_type { get; set; } // 1,
public long? cat_id_1 { get; set; } // 8583,
public long? cat_id_2 { get; set; } // 8589,
public long? cat_id_3 { get; set; } // 8614,
public long? cat_id_4 { get; set; } // 0
}
}