Files
29WxOrder/29WxOrderWpf/Windows/OrderWindows/TransitReturnOrderWindow.xaml.cs
T
2026-08-07 20:04:53 +08:00

216 lines
8.4 KiB
C#

using _29WxOrderWpf.BaseWindows;
using AllBase;
using AllBase.Helper;
using AllBase.Model.DBModel;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Work._29Tools.BLL;
namespace _29WxOrderWpf.Windows.OrderWindows
{
/// <summary>
/// TransitReturnOrderWindow.xaml 的交互逻辑
/// </summary>
public partial class TransitReturnOrderWindow : BaseWindow
{
public static TransitReturnOrderWindow instance { get; set; }
public oms_wei_order_item_info OrderItem { get; set; }
public TransitReturnOrderWindow(oms_wei_order_item_info orderItem)
{
InitializeComponent();
instance = this;
if (orderItem != null)
OrderItem = orderItem;
}
private void mainGrid_Loaded(object sender, RoutedEventArgs e)
{
}
private void TransitAfterSaleWindow_Loaded(object sender, RoutedEventArgs e)
{
this.cmbExpressName.Items.Add("");
this.cmbExpressName.Items.Add("邮政EMS");
this.cmbExpressName.Items.Add("极兔速递");
this.cmbExpressName.Items.Add("申通快递");
this.cmbExpressName.Items.Add("韵达快递");
this.cmbExpressName.Items.Add("圆通快递");
this.cmbExpressName.Items.Add("中通快递");
this.cmbExpressName.Items.Add("百世快运");
this.cmbExpressName.Items.Add("顺丰速运");
this.cmbExpressName.Items.Add("京东快递");
this.cmbExpressName.Items.Add("其他快递");
if (OrderItem != null)
{
//if (OrderItem.ItemTransitOrderAfterSale != null)
//{
// btnAdd.IsEnabled = false;
// this.txtUser.Text = OrderItem.ItemTransitOrderAfterSale.recipient_name;
// this.txtMobile.Text = OrderItem.ItemTransitOrderAfterSale.recipient_phone;
// this.txtDetailAddress.Text = OrderItem.ItemTransitOrderAfterSale.refund_detail_address;
// this.txtProvince.Text = OrderItem.ItemTransitOrderAfterSale.refund_province;
// this.txtCity.Text = OrderItem.ItemTransitOrderAfterSale.refund_city;
// this.txtCounty.Text = OrderItem.ItemTransitOrderAfterSale.refund_county;
//}
// 上海仓默认发货地址
txtSendUser.Text = "29供应链";
txtSendMobile.Text = "13024622251";
txtSendProvince.Text = "上海市";
txtSendCity.Text = "上海市";
txtSendCounty.Text = "普陀区";
txtSendDetailAddress.Text = "真如镇街道真北路2653弄Z区zt";
txtShopOrderId.Text = OrderItem.order_id;
txtShopName.Text = OrderItem.ItemOrder?.shop_name;
txtGoodsName.Text = OrderItem.title;
txtSpuId.Text = OrderItem.product_id.ParseToString();
txtSpecName.Text = OrderItem.sku_attr_str;
txtWaybillId.Text = OrderItem.ItemRefund?.return_waybill_id;
foreach (var cmbItem in cmbExpressName.Items)
{
if (PddBuyerOrderLiteInfo.GetWxExpressCodeToWxExpressName((OrderItem.ItemRefund?.return_delivery_id).ParseToString()) == cmbItem.ParseToString())
{
cmbExpressName.SelectedItem = cmbItem;
}
}
//cmbExpressName.SelectedItem =
if (OrderItem.PddBuyerAfterSale != null)
{
this.txtAddressAnalysis.Text = OrderItem.PddBuyerAfterSale.afterSaleAddress;
btnAddressAnalysis_Click(null, null);
}
}
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
if (OrderItem?.ItemTransitOrder?.warehouse_status != 0 && OrderItem?.ItemTransitOrder?.warehouse_status != 1)
{
BaseMsgWindow.ShowError("当前订单仓库状态不支持售后,请联系买家直接退回总店!");
return;
}
//http://localhost:8088/oms-api/external_procurement/createReturnPackage
//{
// "orderNo": "3737011320735026432",
// "orderCode": "4600000167202606117621000767",
// "refundProvince": "安徽省",
// "refundCity": "合肥市",
// "refundCounty": "瑶海区",
// "refundDetailAddress": "某街道 1”,
// "recipientName": "张三",
// "recipientPhone": "13800138000"
//} post(json)请求方式,如果使用客户端账户扣款增加一个参数account_user
JObject data = new JObject();
data["orderNo"] = OrderItem.order_id;
data["orderCode"] = OrderItem.ItemTransitOrder?.order_code;
data["refundProvince"] = txtProvince.Text.Trim();
data["refundCity"] = txtCity.Text.Trim();
data["refundCounty"] = txtCounty.Text.Trim();
data["refundDetailAddress"] = txtDetailAddress.Text.Trim();
data["recipientName"] = txtUser.Text.Trim();
data["recipientPhone"] = txtMobile.Text.Trim();
data["account_user"] = BaseClass.UserName;
data["accountUser"] = BaseClass.UserName;
//data["platform"] = "WEISHOP";
var getTransitAfterSaleUrl = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/createReturnPackage";
var getTransitAfterSaleStr = JsonHelper.SerializeObject(data);
var getTransitAfterSaleRst = HttpResponseWXBLL.e57PostResponse(getTransitAfterSaleUrl, getTransitAfterSaleStr, "");
if (!getTransitAfterSaleRst.ParseToString().Contains("<code>200</code>") && !getTransitAfterSaleRst.ParseToString().Contains("<code>0</code>"))
{
string msg = BaseRegex.GetStringXml(ref getTransitAfterSaleRst, "msg");
if (msg.IsNullOrEmpty())
msg = getTransitAfterSaleRst;
BaseMsgWindow.ShowError("中转售后添加失败,服务端返回 " + msg, "", this);
}
else
{
//<AjaxResult><msg>创建退货包裹成功</msg><code>0</code></AjaxResult>
MainWindow.Instance.orderListCtrl.GetOrder(OrderItem.order_id);
MainWindow.Instance.orderListCtrl.FilterOrders();
BaseMsgWindow.ShowInfo("添加退货包裹成功", "", this);
this.Close();
}
}
private void btnAddressAnalysis_Click(object sender, RoutedEventArgs e)
{
var txt = txtAddressAnalysis.Text.Trim();
txt = txt.Replace("\r", "").Replace("\n", "");
// 定义座机号的正则表达式
string landlinePattern = @"\d{3}-\d{8}|\d{4}-\d{7}";
// 定义手机号的正则表达式
string mobilePattern = @"1[3-9]\d{9}";
// 使用正则表达式匹配座机号和手机号
Match landlineMatch = Regex.Match(txt, landlinePattern);
Match mobileMatch = Regex.Match(txt, mobilePattern);
var phone = "";
if (landlineMatch.Success)
{
phone = landlineMatch.Value;
txt = txt.Replace(phone, " ");
}
if (mobileMatch.Success)
{
phone = mobileMatch.Value;
txt = txt.Replace(phone, " ");
}
if (!string.IsNullOrEmpty(phone))
{
txtMobile.Text = phone;
}
var province = GlobalConfig.Divisions.FirstOrDefault(d => txt.Contains(d.name));
if (province == null)
return;
txtProvince.Text = province.name;
var city = province.children.FirstOrDefault(c => txt.Contains(c.name));
if (city == null)
return;
txtCity.Text = city.name;
var county = city.children.FirstOrDefault(c => txt.Contains(c.name));
if (county == null)
return;
txtCounty.Text = county.name;
txt = txt.Replace(county.name, " ").Replace(city.name, " ").Replace(province.name, " ");
var tArr = txt.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
tArr = tArr.OrderBy(t => t.Length).ToArray();
this.txtUser.Text = tArr.FirstOrDefault();
this.txtDetailAddress.Text = string.Join("", tArr).Replace(this.txtUser.Text, "");
}
}
}