1568 lines
56 KiB
C#
1568 lines
56 KiB
C#
using _29WxOrderWpf.BaseWindows;
|
||
using _29WxOrderWpf.Common;
|
||
using _29WxOrderWpf.Converters;
|
||
using _29WxOrderWpf.Ctrls.BuyerCtrls;
|
||
using _29WxOrderWpf.UserControls;
|
||
using _29WxOrderWpf.Windows.OrderWindows;
|
||
using AllBase;
|
||
using AllBase.Helper;
|
||
using AllBase.Model;
|
||
using AllBase.Model.DBModel;
|
||
using AllBase.Model.Result;
|
||
using CefSharp.DevTools.DOM;
|
||
using NaiBa.Util.Extension;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Security.Policy;
|
||
using System.Text;
|
||
using System.Threading;
|
||
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.Media;
|
||
using System.Windows.Media.Animation;
|
||
using System.Windows.Media.Imaging;
|
||
using System.Windows.Navigation;
|
||
using System.Windows.Shapes;
|
||
using System.Windows.Threading;
|
||
using TemuKJD.ToolForms;
|
||
using Work;
|
||
using Work._29Tools.BLL;
|
||
using Work._29Tools.Forms.ShopForms;
|
||
using Work._29Tools.Forms.ToolForms;
|
||
using Work.BaseForms;
|
||
using static _29WxOrderWpf.Services.ShipGiftService;
|
||
using static System.Net.WebRequestMethods;
|
||
|
||
namespace _29WxOrderWpf.Ctrls.OrderCtrls
|
||
{
|
||
/// <summary>
|
||
/// OrderListRowItemCtrl.xaml 的交互逻辑
|
||
/// </summary>
|
||
public partial class OrderListRowItemCtrl : UserControl
|
||
{
|
||
public OrderListRowItemCtrl()
|
||
{
|
||
InitializeComponent();
|
||
txtTransitOrderBuyerStr.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtTransitOrderNumStr_MouseLeftButtonUp), true);
|
||
txtTransitOrderNumStr.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtTransitOrderNumStr_MouseLeftButtonUp), true);
|
||
txtDirectBuyer.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtDirectOrderNumStr_MouseLeftButtonUp), true);
|
||
txtDirectBuyerOrderNo.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtDirectOrderNumStr_MouseLeftButtonUp), true);
|
||
txtRefundId.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtRefundId_MouseLeftButtonUp), true);
|
||
|
||
txtWarehouseStatus.AddHandler(TextBox.MouseEnterEvent, new MouseEventHandler(txtWarehouseStatus_MouseEnter), true);
|
||
}
|
||
|
||
private void txtRefundId_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == order_item.shop_id.ParseToString());
|
||
if (shop != null)
|
||
{
|
||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
|
||
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
|
||
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||
|
||
{
|
||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/aftersale/detail?orderid=" + order_item.ItemRefund.after_sale_order_id;
|
||
}
|
||
shopLoginForm.Show();
|
||
}
|
||
}
|
||
}
|
||
|
||
private async void btnSeeAddressDetail_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
return;
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop == null)
|
||
return;
|
||
ShowOrderAddress(shop, orderItem.order_id);
|
||
}
|
||
|
||
void ShowOrderAddress(ShopLoginInfo shop, string orderId, bool ShowErrorDialog = true)
|
||
{
|
||
//var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
|
||
var order = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == orderId);
|
||
var deRst = "测试地址写入{\"code\"0}";
|
||
deRst = decryptOrder(shop, orderId);
|
||
if (deRst.Contains("\"code\":0"))
|
||
{
|
||
var url = BaseClass.Build29WxObjString("shop/wx_add_mdy_order_address");
|
||
var data = UserLogin.GetSignaturex();
|
||
data += "&shop_id=" + shop.ShopId;
|
||
data += "&order_id=" + orderId;
|
||
data += "&order_address=" + GetHtml.UrlEncodeUtf8(deRst);
|
||
var html = GetHtml.PostUtf8(url, data);
|
||
if (!html.Contains("\"code\":200"))
|
||
html = GetHtml.PostUtf8(url, data);
|
||
if (!html.Contains("\"code\":200"))
|
||
{
|
||
var errMsg = BaseRegex.GetStringJsonByRegs(ref html, html, "msg");
|
||
if (order != null)
|
||
{
|
||
this.Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
GetDecryptOrder(deRst, order);
|
||
GlobalConfig.DicDecryptOrderAddress[order.order_id] = order;
|
||
if (ShowErrorDialog)
|
||
BaseMsgWindow.ShowAnimateMessage("查看地址成功但保存到服务端失败:" + errMsg, "Error", 5);
|
||
}));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (order != null)
|
||
{
|
||
this.Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
GetDecryptOrder(deRst, order);
|
||
GlobalConfig.DicDecryptOrderAddress[order.order_id] = order;
|
||
BaseMsgWindow.ShowAnimateMessage("查看地址成功");
|
||
}));
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var error = BaseRegex.GetStringJsonByRegs(ref deRst, deRst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
|
||
if (error.Contains("\"code\":17899002") || error.Contains("\"code\":10020123"))
|
||
{
|
||
if (error.Contains("\"code\":17899002"))
|
||
error = "基于用户隐私保护,无法查看收货信息";
|
||
if (error.Contains("\"code\":10020123"))
|
||
error = "今日查看次数已用完";
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
if (ShowErrorDialog)
|
||
BaseMsgWindow.ShowAnimateMessage("查看地址失败:" + error, "Error", 5);
|
||
}));
|
||
}
|
||
else
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
if (ShowErrorDialog)
|
||
BaseMsgWindow.ShowAnimateMessage("查看地址失败:" + error, "Error", 5);
|
||
}));
|
||
}
|
||
}
|
||
}
|
||
public string GetDecryptOrder(string sourceOrderAddressStr, oms_wei_order_info order)
|
||
{
|
||
//黄颖飞(4559),18466134204-4559,广西壮族自治区柳州市柳南区福柳宏都8-1-701 (拨打请输入分机号4559)
|
||
var userName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "userName"); // 黄颖飞
|
||
var extension = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "extension"); // 4559
|
||
var virtualNumber = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "virtualNumber"); // 18466134204
|
||
var provinceName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "provinceName"); // 广西壮族自治区
|
||
var cityName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "cityName"); // 柳州市
|
||
var countyName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "countyName"); // 柳南区
|
||
var detailInfo = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "detailInfo"); // 福柳宏都8-1-701
|
||
if (userName.IsNullOrEmpty() || extension.IsNullOrEmpty() || virtualNumber.IsNullOrEmpty() || provinceName.IsNullOrEmpty() || cityName.IsNullOrEmpty() ||
|
||
countyName.IsNullOrEmpty() || detailInfo.IsNullOrEmpty())
|
||
{
|
||
return sourceOrderAddressStr;
|
||
}
|
||
|
||
order.user_name = userName + "(" + extension + ")";
|
||
order.tel_number = virtualNumber;
|
||
order.tel_number_ext_info = extension;
|
||
order.province_name = provinceName;
|
||
order.city_name = cityName;
|
||
order.county_name = countyName;
|
||
order.detail_info = detailInfo;
|
||
|
||
//return userName + "(" + extension + ")," + virtualNumber + "-" + extension + "," + provinceName + cityName + countyName + detailInfo + "(拨打请输入分机号" + extension + ")";
|
||
order.AddressStr = userName + "(" + extension + ")" + "," + virtualNumber + "," + provinceName + cityName + countyName + detailInfo;
|
||
return order.AddressStr;
|
||
}
|
||
|
||
public static string decryptOrder(ShopLoginInfo shop, string orderId)
|
||
{
|
||
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/common/cgi/decryptOrder?token=&lang=zh_CN";
|
||
string body = @"{""id"":""" + orderId + @"""}";
|
||
|
||
string refere = "https://store.weixin.qq.com/shop/order/list";
|
||
var result = HttpResponseWXBLL.WeiXinPostResponse(shop, url, body, refere);
|
||
return result;
|
||
}
|
||
|
||
private void btnGetRefundAddress_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
var order = this.DataContext as oms_wei_order_item_info;
|
||
if (order == null)
|
||
return;
|
||
}
|
||
|
||
private void CheckBox_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void btnEditShopRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop == null)
|
||
return;
|
||
|
||
if (btnEditShopRemark.Content.ParseToString() == "保存")
|
||
{
|
||
var notesRst = OrderListCtrl.addNotes(shop, orderItem.order_id, txtShopRemark.Text);
|
||
if (!notesRst.Contains("\"code\":0"))
|
||
{
|
||
ShopBLL.CheckShopLogin(shop);
|
||
BaseMsgForm.ShowError("保存失败请重试");
|
||
return;
|
||
}
|
||
|
||
btnCancelEditShopRemark.Visibility = Visibility.Collapsed;
|
||
btnEditShopRemark.Content = "编辑";
|
||
txtShopRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtShopRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtShopRemark.IsReadOnly = true;
|
||
}
|
||
else
|
||
{
|
||
btnCancelEditShopRemark.Visibility = Visibility.Visible;
|
||
btnEditShopRemark.Content = "保存";
|
||
txtShopRemark.SetValue(WidthProperty, 135.0);
|
||
txtShopRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(50, 0, 50, 150));
|
||
txtShopRemark.IsReadOnly = false;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnCancelEditShopRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
btnCancelEditShopRemark.Visibility = Visibility.Collapsed;
|
||
btnEditShopRemark.Content = "编辑";
|
||
txtShopRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtShopRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtShopRemark.IsReadOnly = true;
|
||
}
|
||
|
||
private void btnEditAppRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop == null)
|
||
return;
|
||
|
||
if (btnEditAppRemark.Content.ParseToString() == "保存")
|
||
{
|
||
var url = BaseClass.Build29WxObjString("order/wx_update_erp_soft_remark");
|
||
var data = UserLogin.GetSignaturex();
|
||
data += "&order_id=" + orderItem.order_id;
|
||
data += "&soft_remark=" + txtAppRemark.Text;
|
||
var html = GetHtml.PostUtf8(url, data);
|
||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||
html = GetHtml.PostUtf8(url, data);
|
||
|
||
if (!html.Contains("\"code\":200"))
|
||
{
|
||
BaseMsgForm.ShowError("保存失败请重试");
|
||
return;
|
||
}
|
||
if (BaseRegex.GetIntJson(ref html, "affected_rows") == 0)
|
||
{
|
||
BaseMsgForm.ShowError("未找到指定订单");
|
||
return;
|
||
}
|
||
orderItem.ItemOrder.soft_remark = txtAppRemark.Text;
|
||
|
||
btnCancelEditAppRemark.Visibility = Visibility.Collapsed;
|
||
btnEditAppRemark.Content = "编辑";
|
||
txtAppRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtAppRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtAppRemark.IsReadOnly = true;
|
||
}
|
||
else
|
||
{
|
||
btnCancelEditAppRemark.Visibility = Visibility.Visible;
|
||
btnEditAppRemark.Content = "保存";
|
||
txtAppRemark.SetValue(WidthProperty, 135.0);
|
||
txtAppRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(50, 0, 50, 150));
|
||
txtAppRemark.IsReadOnly = false;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnCancelEditAppRemark_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
btnCancelEditAppRemark.Visibility = Visibility.Collapsed;
|
||
btnEditAppRemark.Content = "编辑";
|
||
txtAppRemark.SetValue(WidthProperty, Double.NaN);
|
||
txtAppRemark.BorderBrush = new SolidColorBrush(Color.FromArgb(0, 0, 50, 150));
|
||
txtAppRemark.IsReadOnly = true;
|
||
}
|
||
|
||
private void btnBuyOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
BuyOrder();
|
||
}
|
||
|
||
public void BuyOrder(bool isAbnormalOrder = false)
|
||
{
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("请选择买手号");
|
||
return;
|
||
}
|
||
if (orderItem.ItemOrder.orderItems.Count > 1)
|
||
{
|
||
BaseMsgWindow.ShowError("多子单订单中转仓暂不支持");
|
||
return;
|
||
}
|
||
|
||
if (!GetIsAbnormalOrderRebuy(orderItem) && GlobalConfig.lstOrder.Any(o => o.orderItems
|
||
.Any(oi => oi.ItemTransitOrder?.order_no == orderItem.order_id && oi.ItemTransitOrder?.order_sku_id == orderItem.sku_id)))
|
||
{
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder);
|
||
BaseMsgWindow.ShowError("已存在中转拍单信息,请核对后再拍单");
|
||
return;
|
||
}
|
||
|
||
btnBuyOrder.Cursor = Cursors.Wait;
|
||
btnBuyOrder.IsEnabled = false;
|
||
Task.Run(() =>
|
||
{
|
||
Thread.Sleep(2000);
|
||
Dispatcher.Invoke(new Action(() => { btnBuyOrder.IsEnabled = true; }));
|
||
});
|
||
Task.Run(() =>
|
||
{
|
||
// 拍单前查询订单是否退款
|
||
var orderId = orderItem.order_id;
|
||
var skuId = orderItem.sku_id;
|
||
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
|
||
if (newOrder.orderItems.Count == 1)
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault();
|
||
else
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
|
||
if (orderItem == null)
|
||
return;
|
||
|
||
if (!isAbnormalOrder && orderItem.ItemTransitOrder != null)
|
||
{
|
||
// 正常单有未作废订单的,不可再拍单
|
||
BaseMsgWindow.ShowAnimateMessage("该订单已有采购记录", "Error", 5);
|
||
return;
|
||
}
|
||
if (isAbnormalOrder && (orderItem.ItemOrder.status <= 21 || orderItem.ItemTransitOrder == null || orderItem.ItemTransitOrder.refund_status != "买手退款成功"))
|
||
{
|
||
// 异常单不是被拼多多买家秒退的且已取号的,不可异常重拍
|
||
BaseMsgWindow.ShowAnimateMessage("该异常单不符合重拍条件", "Error", 5);
|
||
return;
|
||
}
|
||
|
||
// 如果是退款单,弹出退款窗口
|
||
if (CheckIsRefund(orderItem))
|
||
return;
|
||
|
||
// 拍单前检测买手号是否在线
|
||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||
{
|
||
PddMobileLoginForm.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
return;
|
||
}
|
||
|
||
orderRetry:
|
||
// 拍单前查询账户余额
|
||
if (!isAbnormalOrder)
|
||
{
|
||
if (GlobalConfig.BuyConfig.IsUseAppBalance)
|
||
{
|
||
if (BaseClass.Balance < 10)
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("软件快递余额不足(剩余" + BaseClass.Balance.ToString("0.00") + "元,拍单至少需保留10元),无法中转拍单,请先充值!");
|
||
}));
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var url = BaseClass.Build29WxObjString("shop/get_shop_erp_merchant");
|
||
var data = UserLogin.GetSignaturex();
|
||
data += "&corporate_account_user_id=" + orderItem.Shop.ErpCorporateAccountUserId;
|
||
data += "&manage_user_id=" + orderItem.Shop.ErpManageUserId;
|
||
data += "&shop_id=" + orderItem.Shop.ErpShopId;
|
||
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"))
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
GlobalConfig.BuyConfig.IsUseAppBalance = true;
|
||
StartUp.SaveBuyConfig();
|
||
BaseMsgWindow.ShowError("未找到店铺账户!" + BaseRegex.GetStringJson(ref html, "msg") + ",自动切换为快递余额拍单。");
|
||
goto orderRetry;
|
||
}
|
||
if (!string.IsNullOrEmpty(html) && html.Contains("\"code\":200"))
|
||
{
|
||
try
|
||
{
|
||
var erpMs = JsonHelper.DeserializeJsonToList<ErpMerchantInfo>(JsonHelper.JObjectParse(html)["data"].ParseToString());
|
||
var erpM = erpMs.FirstOrDefault();
|
||
if (erpM == null)
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
GlobalConfig.BuyConfig.IsUseAppBalance = true;
|
||
StartUp.SaveBuyConfig();
|
||
BaseMsgWindow.ShowError("未找到店铺账户!自动切换为快递余额拍单。");
|
||
goto orderRetry;
|
||
}
|
||
|
||
var balance = erpM.balance.ParseToDecimal();
|
||
if (balance < 10)
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
GlobalConfig.BuyConfig.IsUseAppBalance = true;
|
||
StartUp.SaveBuyConfig();
|
||
BaseMsgWindow.ShowError("ERP账户余额不足(剩余" + balance.ToString("0.00") + "元,拍单至少需保留10元),无法中转拍单,自动切换为快递余额拍单。");
|
||
goto orderRetry;
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("拍单校验出错,请稍后重试");
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (orderItem.BuyGoodsBtnTxt == "去店铺后台绑定代发")
|
||
{
|
||
if (orderItem.Shop != null)
|
||
{
|
||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(orderItem.Shop);
|
||
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
|
||
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/supply/consignmentOrderList";
|
||
shopLoginForm.IsGetSupplierPage = true;
|
||
shopLoginForm.ShowDialog();
|
||
|
||
// 不是立即生效的,不用立即刷新
|
||
//var is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierList(orderItem.Shop);
|
||
//if (!is29SupplierRst.Contains("\"code\":0"))
|
||
// is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierList(orderItem.Shop);
|
||
//if (is29SupplierRst.Contains("\"code\":0") && is29SupplierRst.Contains("\"name\":\"29供货商\""))
|
||
//{
|
||
// orderItem.Shop.Is29Supplier = true;
|
||
//}
|
||
//else
|
||
//{
|
||
// ShopBLL.CheckShopLogin(orderItem.Shop);
|
||
// orderItem.Shop.Is29Supplier = false;
|
||
//}
|
||
//foreach (var order in GlobalConfig.lstFilterOrder.Where(o => o.shop_id.ParseToString() == orderItem.Shop.ErpShopId).ToList())
|
||
//{
|
||
// // 更新代发管理情况
|
||
// foreach (var o in order.orderItems)
|
||
// Dispatcher.Invoke(new Action(() => { o.UpdateOrderItemBuyButton(); }));
|
||
//}
|
||
}
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
return;
|
||
}
|
||
|
||
// Api检测是否加入代发
|
||
if (orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder)
|
||
{
|
||
var apiSearchDropship = new WxApiBLL().WxApiDropshipSearch(orderItem.Shop, orderItem.order_id, 100);
|
||
if (!apiSearchDropship.Contains("\"errcode\":0"))
|
||
{
|
||
BaseMsgWindow.ShowError("查询代发失败!" + BaseRegex.GetStringJson(ref apiSearchDropship, "msg"));
|
||
return;
|
||
}
|
||
if (apiSearchDropship.Contains("\"ds_order_id_list\":[]"))
|
||
{
|
||
var apiAddDropship = new WxApiBLL().WxApiDropshipAssign(orderItem.Shop, orderItem.order_id, orderItem.product_id, orderItem.sku_id, orderItem.sku_cnt.ParseToInt());
|
||
if (!apiAddDropship.Contains("\"errcode\":0"))
|
||
{
|
||
BaseMsgWindow.ShowError("设置代发失败!请确商品已加入29供货商代发!" + BaseRegex.GetStringJson(ref apiAddDropship, "msg"));
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 模拟检测是否加入代发
|
||
//if (orderItem.Shop?.LoginStatus == "登录成功" && orderItem.BuyGoodsBtnTxt == "云仓拍单" && !isAbnormalOrder)
|
||
//{
|
||
// var is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierOrderList(orderItem.Shop, orderItem.order_id);
|
||
// if (!is29SupplierRst.Contains("\"code\":0"))
|
||
// is29SupplierRst = WxOrderSupplierBLL.GetWxSupplierOrderList(orderItem.Shop, orderItem.order_id);
|
||
// if (!is29SupplierRst.Contains("\"code\":0"))
|
||
// {
|
||
// ShopBLL.CheckShopLogin(orderItem.Shop);
|
||
// if (orderItem.Shop?.LoginStatus != "登录成功")
|
||
// {
|
||
// Dispatcher.Invoke(new Action(() =>
|
||
// {
|
||
// BaseMsgWindow.ShowAnimateMessage("店铺掉线", "Error", 5);
|
||
// btnBuyOrder.Cursor = Cursors.Hand;
|
||
// }));
|
||
// return;
|
||
// }
|
||
// }
|
||
// if (!is29SupplierRst.Contains("\"supplierName\":\"29供货商\"")) // "supplierName":"29供货商"
|
||
// {
|
||
// Dispatcher.Invoke(new Action(() =>
|
||
// {
|
||
// BaseMsgWindow.ShowError("店铺后台未查询到该代发单,请确认店铺在线且商品加入代发");
|
||
// btnBuyOrder.Cursor = Cursors.Hand;
|
||
// }));
|
||
// return;
|
||
// }
|
||
// orderItem.Shop.Is29Supplier = true;
|
||
//}
|
||
|
||
// 掉线提示重登
|
||
if (orderItem.Shop?.LoginStatus != "登录成功")
|
||
{
|
||
foreach (var ord in GlobalConfig.lstFilterOrder.Where(o => o.shop_id.ParseToString() == orderItem.Shop.ErpShopId).ToList())
|
||
{
|
||
// 更新代发管理情况
|
||
foreach (var oi in ord.orderItems)
|
||
Dispatcher.Invoke(new Action(() => { oi.UpdateOrderItemBuyButton(); }));
|
||
}
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("请登录店铺");
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
return;
|
||
}
|
||
|
||
//BaseMsgWindow.ShowAnimateMessage("触发成功!" + DateTime.Now.ParseToString(), "Msg", 5);
|
||
//return;
|
||
|
||
// 打开拍单窗口
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||
orderItem, GlobalConfig.CurrentPddBuyer, orderItem.BuyMap);
|
||
|
||
buyOrderForm.TitleText = "买手拍单 - 当前买手 " + GlobalConfig.CurrentPddBuyer.buyer_nick;
|
||
|
||
// 未关联拍单的跳到所有订单页面
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/orders.html"; //"?type=0&comment_tab=1&combine_orders=1&main_orders=1&refer_page_name=personal&refer_page_id=10001_1782219035613_a9ulipk4k3&refer_page_sn=10001";
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
// 已有拍单关联的跳的到订单确认界面
|
||
if (orderItem.BuyMap != null)
|
||
{
|
||
//buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.BuyMap.map_sku_id +
|
||
// "&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.BuyMap.map_goods_id + "&goods_number=" + +orderItem.sku_cnt +
|
||
// "&page_from=101&detail_id=" + Randomx.GetNumber(11) + "&_oak_rcto=YW" +
|
||
// Randomx.GetWordNumber("JvLXvJ8Fx9mUIW34yn103TOlATJGk5PaZshD6pY1bsVrsIjWdxWwjCoNX3IGT".Length) + "_VWkP5_q-1QNqGg" +
|
||
// "&order_extra_type=1&refer_page_element=open_btn&source_channel=0&refer_page_name=goods_detail" +
|
||
// "&refer_page_id=10014_" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + Randomx.GetNumber(3) + "_tny5ifswls&refer_page_sn=10014";
|
||
|
||
buyOrderForm.ShowBuyMask = true;
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.BuyMap.map_sku_id +
|
||
"&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.BuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
"&page_from=101";
|
||
|
||
//buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.BuyMap.map_sku_id +
|
||
// "&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.BuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
// "&page_from=0&refer_page_element=open_btn&source_channel=0&refer_page_name=goods_detail&refer_page_id=10014_" +
|
||
// BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + Randomx.GetNumber(3) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10014";
|
||
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
if (isAbnormalOrder)
|
||
buyOrderForm.AbnormalTransitWarehouseOrderInfo = orderItem.ItemTransitOrder;
|
||
buyOrderForm.ShowDialog();
|
||
}));
|
||
});
|
||
}
|
||
|
||
private void UserControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
//btnBuyOrder.Content = "关联拍单";
|
||
|
||
// 显示预估利润
|
||
//if (order_item.BuyMap == null && order_item.ItemOrder.out_amount == 0)
|
||
// txtProfitForecast.Visibility = Visibility.Visible;
|
||
|
||
// 绑定时即刻生效,无需再次手动调用
|
||
//order_item.UpdateOrderItemBuyButton();
|
||
|
||
Task.Run(() =>
|
||
{
|
||
// 异步加载图片防止卡顿
|
||
// 缩略图在有的电脑上无法显示
|
||
//BitmapImage bImg = ImageUrlToBitmapImageConverter.LoadImageFromUrl(order_item.thumb_img + "?imageView2/1/w/100/format/webp|imageMogr2/auto-orient=");
|
||
BitmapImage bImg = AllBase.ImageBuild.LoadBitmipImageFromUrl(order_item.thumb_img);
|
||
Thread.Sleep(Randomx.GetId(1000));
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
imgOrderItem.Source = bImg;
|
||
}));
|
||
});
|
||
|
||
// 作废重拍
|
||
if (order_item.ItemOrder.status == 20 /*&& order_item.refund_status <= 1*/ && order_item.ItemTransitOrder != null)
|
||
{
|
||
btnVoidTransitOrder.Visibility = Visibility.Visible;
|
||
}
|
||
else
|
||
{
|
||
btnVoidTransitOrder.Visibility = Visibility.Collapsed;
|
||
}
|
||
|
||
// 异常重拍
|
||
if (GetIsAbnormalOrderRebuy(order_item))
|
||
{
|
||
btnAbnormalOrderRebuy.Visibility = Visibility.Visible;
|
||
}
|
||
else
|
||
{
|
||
btnAbnormalOrderRebuy.Visibility = Visibility.Collapsed;
|
||
}
|
||
|
||
// 待采购不显示所有采购信息状态(否则会显示作废订单状态)
|
||
if (GlobalConfig.OrderTabHeaderStr.StartsWith("待采购"))
|
||
{
|
||
//wpBuyAccount.Visibility = Visibility.Collapsed;
|
||
//wpBuyOrderId.Visibility = Visibility.Collapsed;
|
||
//wpBuyTime.Visibility = Visibility.Collapsed;
|
||
//wpTransitWaybillStatus.Visibility = Visibility.Collapsed;
|
||
//wpTransitBuyerRefundStatus.Visibility = Visibility.Collapsed;
|
||
|
||
wpBuyAccount.Opacity = 0.5;
|
||
wpBuyOrderId.Opacity = 0.5;
|
||
wpBuyTime.Opacity = 0.5;
|
||
wpTransitWaybillStatus.Opacity = 0.5;
|
||
wpTransitBuyerRefundStatus.Opacity = 0.5;
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 判断中转仓订单是否可以异常重拍
|
||
/// </summary>
|
||
/// <param name="order_item"></param>
|
||
/// <returns></returns>
|
||
bool GetIsAbnormalOrderRebuy(oms_wei_order_item_info order_item)
|
||
{
|
||
// 不是异常单的不可异常重拍
|
||
if (order_item?.ItemOrder?.isAbnormal != true)
|
||
return false;
|
||
// 买手未退款的,中转正式取号以后的,不可异常重拍
|
||
if (order_item.ItemTransitOrder?.refund_status != "买手退款成功" ||
|
||
order_item.WarehouseWaybillStatusStr == "中转已取号" || order_item.WarehouseWaybillStatusStr == "中转已入库" || order_item.WarehouseWaybillStatusStr == "中转已出库")
|
||
return false;
|
||
// 已正式取号的,不可异常重拍
|
||
if (order_item.ItemTransitOrder?.pre_allocated_order_no == 1 || order_item.ItemTransitOrder?.pre_allocated_order_no == 3)
|
||
return false;
|
||
// 仓库异常的异常单不可异常重拍
|
||
List<string> rawMsgKeyWords = new List<string> { "取号异常", "无法调用" };
|
||
if (rawMsgKeyWords.Any(k => (order_item.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains(k)) && order_item.ItemTransitOrderWithVoid?.transfer_warehouse_status != 1)
|
||
return false;
|
||
|
||
return true;
|
||
}
|
||
|
||
private void txtTransitOrderNumStr_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||
{
|
||
var buyerName = txtTransitOrderBuyerStr.Text.Split(':').LastOrDefault();
|
||
var outOrderId = txtTransitOrderNumStr.Text.Split(':').LastOrDefault();
|
||
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
|
||
{
|
||
return;
|
||
}
|
||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_name == buyerName);
|
||
if (buyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||
return;
|
||
}
|
||
//GlobalConfig.CurrentPddBuyer = buyer;
|
||
|
||
var url = "";
|
||
if (buyer != null)
|
||
{
|
||
if (sender == txtTransitOrderBuyerStr)
|
||
url = "https://mobile.yangkeduo.com/index.html";
|
||
else
|
||
url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" +
|
||
"&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032";
|
||
}
|
||
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
// 拍单的时候检测一下买手号
|
||
if (buyer.status == "在线")
|
||
{
|
||
PddMobileLoginForm.CheckBuyerLogin(buyer);
|
||
}
|
||
if (buyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
return;
|
||
}
|
||
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||
orderItem, buyer, orderItem.BuyMap);
|
||
buyOrderForm.TitleText = "订单查看 - 当前买手 " + buyer.buyer_nick;
|
||
|
||
//所有订单页面
|
||
buyOrderForm.InitUrl = url;
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
//已有拍单关联的控制界面显示隐藏
|
||
if (orderItem.BuyMap != null)
|
||
{
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
buyOrderForm.ShowDialog();
|
||
}
|
||
|
||
private void txtDirectOrderNumStr_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||
{
|
||
var buyerName = txtDirectBuyer.Text.Split(':').LastOrDefault();
|
||
var outOrderId = txtDirectBuyerOrderNo.Text.Split(':').LastOrDefault();
|
||
if (string.IsNullOrEmpty(buyerName) || string.IsNullOrEmpty(outOrderId))
|
||
{
|
||
return;
|
||
}
|
||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(p => p.buyer_name == buyerName);
|
||
if (buyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("该订单买手号未在当前账户登录");
|
||
return;
|
||
}
|
||
//GlobalConfig.CurrentPddBuyer = buyer;
|
||
|
||
var url = "";
|
||
if (buyer != null)
|
||
{
|
||
if (sender == txtDirectBuyer)
|
||
url = "https://mobile.yangkeduo.com/index.html";
|
||
else
|
||
url = "https://mobile.yangkeduo.com/order.html?order_sn=" + outOrderId + "&page_from=1&main_orders=1&is_tester=1&refer_page_name=my_order" +
|
||
"&refer_page_id=10032_" + BaseClass.DateTimeToTimestampMilliseconds(DateTime.Now) + "_" + Randomx.GetWordNumber(10) + "&refer_page_sn=10032";
|
||
}
|
||
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
// 拍单的时候检测一下买手号
|
||
if (buyer.status == "在线")
|
||
{
|
||
PddMobileLoginForm.CheckBuyerLogin(buyer);
|
||
}
|
||
if (buyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
return;
|
||
}
|
||
|
||
//PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance, orderItem, buyer, orderItem.BuyMap);
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(null, null, orderItem, buyer, orderItem.BuyMap);
|
||
buyOrderForm.BuyType = "direct";
|
||
buyOrderForm.TitleText = "直发订单查看 - 当前买手 " + buyer.buyer_nick;
|
||
|
||
//所有订单页面
|
||
buyOrderForm.InitUrl = url;
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
//已有拍单关联的控制界面显示隐藏
|
||
if (orderItem.BuyMap != null)
|
||
{
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
buyOrderForm.ShowDialog();
|
||
}
|
||
|
||
private void Path_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(orderItem.ItemTransitOrderWithVoid.out_order_no);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathRefundId_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.ItemRefund.after_sale_order_id);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void imgOrderItem_MouseEnter(object sender, MouseEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void imgOrderItem_MouseLeave(object sender, MouseEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void imgOrderItem_MouseDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
ShowImgForm imgFrom = new ShowImgForm(orderItem.thumb_img);
|
||
imgFrom.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private async void btnVoidTransitOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
VoidOrder(orderItem);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 作废中转仓订单
|
||
/// </summary>
|
||
/// <param name="orderItem"></param>
|
||
/// <param name="isSilent"></param>
|
||
/// <param name="UpdateOrderBeforeVoid">作废前是否更新服务端订单状态</param>
|
||
public static async void VoidOrder(oms_wei_order_item_info orderItem, bool isSilent = false, bool UpdateOrderBeforeVoid = true)
|
||
{
|
||
// 作废前查询订单状态
|
||
var orderId = orderItem.order_id;
|
||
var skuId = orderItem.sku_id;
|
||
await Task.Run(() =>
|
||
{
|
||
if (UpdateOrderBeforeVoid)
|
||
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
|
||
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
|
||
if (newOrder?.orderItems.Count == 1)
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault();
|
||
else
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
|
||
});
|
||
if (orderItem == null)
|
||
{
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowError("订单查询失败,请重试");
|
||
return;
|
||
}
|
||
if (orderItem.ItemTransitOrder == null)
|
||
{
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowError("要作废的中转订单不存在,请确认后重试");
|
||
return;
|
||
}
|
||
|
||
bool noBuyer = false;
|
||
var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_name == orderItem?.ItemTransitOrder?.buyer_account);
|
||
if (buyer == null)
|
||
{
|
||
if (!isSilent)
|
||
if (BaseMsgWindow.ShowConfirm("拍单买手不存在,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
|
||
return;
|
||
noBuyer = true;
|
||
}
|
||
|
||
// 检测一下买手号
|
||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||
{
|
||
await Task.Run(() =>
|
||
{
|
||
PddMobileLoginForm.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||
});
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||
{
|
||
if (!isSilent)
|
||
if (BaseMsgWindow.ShowConfirm("买手号掉线,点击确定直接作废中转单并手动取消买手单,点击取消登录买手后重试").DialogResult != true)
|
||
return;
|
||
noBuyer = true;
|
||
}
|
||
|
||
if (!noBuyer)
|
||
{
|
||
PddBuyerOrderLiteInfo order = null;
|
||
MainWindow.Instance.Dispatcher.Invoke(new Action(() => { }));
|
||
order = PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == orderItem.ItemTransitOrder.out_order_no);
|
||
if (order == null)
|
||
order = new PddBuyerOrderLiteInfo()
|
||
{
|
||
order_status_prompt = "待发货",
|
||
order_amount = orderItem.ItemTransitOrder.out_amount,
|
||
order_sn = orderItem.ItemTransitOrder.out_order_no
|
||
};
|
||
PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite.Add(order);
|
||
var pddAfterRst = PDDBuyerOrderReadCtrl.SimPddAfterSale(buyer, order);
|
||
if (pddAfterRst.Contains("\"after_sales_status\":1") || pddAfterRst.Contains("该订单已全额退款") || pddAfterRst.Contains("订单未付款"))
|
||
{
|
||
// 保存退款成功状态
|
||
order.order_status_prompt = pddAfterRst.Contains("订单未付款") ? "订单未付款" : "退款成功";
|
||
// 中转仓订单买手号售后信息 存到服务端
|
||
var refundRst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(order);
|
||
if (refundRst.Contains("<code>0</code>") || refundRst.Contains("<code>200</code>"))
|
||
{
|
||
order.sendStatus = "退款成功 买手退款信息更新成功";
|
||
}
|
||
else
|
||
{
|
||
var msg = BaseRegex.GetStringXml(ref refundRst, "msg");
|
||
order.sendStatus = "退款成功 买手退款信息更新失败,服务端返回 " + msg;
|
||
}
|
||
NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", PDDBuyerOrderReadCtrl.lstPddBuyerOrderInfoLite);
|
||
}
|
||
else
|
||
{
|
||
if (!isSilent)
|
||
if (BaseMsgWindow.ShowConfirm("买手退款失败,点击确定直接作废中转单并手动取消买手单,点击取消稍候重试").DialogResult != true)
|
||
return;
|
||
}
|
||
}
|
||
|
||
//订单作废接口(作废重拍)
|
||
//postman request POST 'http://localhost:8088/oms-api/external_procurement/discardOrder' \
|
||
// --header 'Content-Type: application/json' \
|
||
// --body '{
|
||
// "orderNo":"12334534534",
|
||
// "outOrderNo":"12312312"
|
||
//}' 成功返回code:0 失败返回code:1
|
||
|
||
string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/discardOrder";
|
||
var data2 = new JObject();
|
||
data2["orderNo"] = orderItem.order_id;
|
||
data2["outOrderNo"] = orderItem.ItemTransitOrder.out_order_no;
|
||
//data2["outOrderNo"] = orderItem.ItemTransitOrder.order_code;
|
||
var dataStr2 = JsonHelper.SerializeObject(data2);
|
||
var discardRst = HttpResponseWXBLL.e57PostResponse(url2, dataStr2, "");
|
||
if (discardRst.Contains("<code>0</code>") || discardRst.Contains("<code>200</code>"))
|
||
{
|
||
//MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
#region 立即更新订单
|
||
orderItem.ItemTransitOrder.order_void_status = 1;
|
||
orderItem.SetOrderItemTextProperty();
|
||
#endregion
|
||
|
||
#region 重新过滤订单
|
||
MainWindow.Instance.orderListCtrl.FilterOrders();
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowInfo("订单作废成功,请重新拍单");
|
||
#endregion
|
||
|
||
#region 更新拍单余额
|
||
StartUp.UpdateBalance();
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
var msg = BaseRegex.GetStringXml(ref discardRst, "msg");
|
||
if (!isSilent)
|
||
BaseMsgWindow.ShowInfo("订单作废失败,服务端返回 " + msg);
|
||
}
|
||
}
|
||
|
||
private void txtWarehouseStatus_MouseEnter(object sender, MouseEventArgs e)
|
||
{
|
||
if (txtWarehouseStatus.ToolTip == null)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
if (orderItem.ItemTransitOrderWithVoid.raw_message != null && orderItem.ItemTransitOrderWithVoid.raw_message.Contains("取号异常"))
|
||
this.txtWarehouseStatus.ToolTip = orderItem.ItemTransitOrderWithVoid.raw_message;
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
orderItem.ItemTransitOrders = OrderListCtrl.GetTransitWarehouseList(orderItem.order_id);
|
||
orderItem.PddBuyerOrders = OrderListCtrl.GetPddBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList();
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
|
||
|
||
if (orderItem.ItemTransitOrder?.warehouse_status == 3)
|
||
{
|
||
BaseMsgWindow.ShowError("商品已拒收或拦截!");
|
||
return;
|
||
}
|
||
if (orderItem.ItemTransitOrder?.warehouse_status == 2)
|
||
{
|
||
BaseMsgWindow.ShowError("商品已出库,请选择退回中转仓!");
|
||
return;
|
||
}
|
||
if (string.IsNullOrEmpty(orderItem.PddBuyerOrder?.order_sn))
|
||
{
|
||
BaseMsgWindow.ShowError("商品未出单,请直接去拼多多买手申请退款");
|
||
return;
|
||
}
|
||
if (orderItem.ItemTransitOrder?.has_reject == 1 || orderItem.ItemTransitOrder?.has_reject == 3)
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("已申请拒收", "Msg", 3);
|
||
return;
|
||
}
|
||
|
||
// 中转仓拒收(已产生物流)
|
||
string url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/rejectApply";
|
||
var dataObj = new JObject();
|
||
dataObj["orderCode"] = orderItem.ItemTransitOrder?.order_code;
|
||
dataObj["orderId"] = orderItem.order_id;
|
||
dataObj["logisticsExpressCode"] = orderItem.PddBuyerOrder?.order_sn;
|
||
var data = JsonHelper.SerializeObject(dataObj);
|
||
var html = HttpResponseWXBLL.e57PostResponse(url, data, "");
|
||
int rejectStatus = 0;
|
||
if (html.Contains("<code>0</code>") || html.Contains("<code>200</code>"))
|
||
{
|
||
rejectStatus = 1;
|
||
BaseMsgWindow.ShowAnimateMessage("申请成功", "Msg", 3);
|
||
}
|
||
else
|
||
{
|
||
rejectStatus = 2;
|
||
var err = BaseRegex.GetStringXmlByRegs(ref html, "msg");
|
||
BaseMsgWindow.ShowAnimateMessage("申请失败", "Error", 3);
|
||
}
|
||
url = BaseClass.Build29WxObjString("order/wx_update_transit_order_reject_status");
|
||
data = UserLogin.GetSignaturex();
|
||
data += "&order_no=" + orderItem.order_id;
|
||
data += "&order_sku_id=" + orderItem.sku_id;
|
||
data += "&has_reject=" + rejectStatus;
|
||
html = GetHtml.PostUtf8(url, data);
|
||
|
||
orderItem.ItemTransitOrderWithVoid.has_reject = rejectStatus;
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
}
|
||
}
|
||
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
if (orderItem.ItemTransitOrder?.warehouse_status != 2 && orderItem.ItemTransitOrder?.warehouse_status != 1 && orderItem.AddEditTransitWarehouseAfterSaleStr == "添加")
|
||
{
|
||
BaseMsgWindow.ShowError("商品未出库,请选择中转仓拒收!");
|
||
return;
|
||
}
|
||
TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem);
|
||
transitAfterSaleWindow.ShowDialog();
|
||
}
|
||
}
|
||
|
||
private void btnAbnormalOrderRebuy_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
if (orderItem.ItemOrder.status > 21 && orderItem.ItemTransitOrder != null && orderItem.ItemTransitOrder.refund_status == "买手退款成功")
|
||
BuyOrder(true);
|
||
}
|
||
}
|
||
|
||
private void pathBuyerAfterSaleAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.PddBuyerAfterSaleAddressStr);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathDirectBuyerAfterSaleAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.DirectPddBuyerAfterSaleAddressStr);
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathCopyAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject((order_item.ItemOrder?.AddressStr).ParseToString());
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnDirectBuyOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
directBuyOrder();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 直发拍单
|
||
/// </summary>
|
||
void directBuyOrder()
|
||
{
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
{
|
||
BaseMsgWindow.ShowError("订单信息为空");
|
||
return;
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer == null)
|
||
{
|
||
BaseMsgWindow.ShowError("请选择买手号");
|
||
return;
|
||
}
|
||
if (/*orderItem.sku_cnt > 1 ||*/ orderItem.ItemOrder.orderItems.Count > 1)
|
||
{
|
||
//BaseMsgWindow.ShowError("多子单或多件商品订单中转仓暂不支持");
|
||
BaseMsgWindow.ShowError("多子单订单中转仓暂不支持");
|
||
return;
|
||
}
|
||
|
||
btnBuyOrder.Cursor = Cursors.Wait;
|
||
btnBuyOrder.IsEnabled = false;
|
||
Task.Run(() =>
|
||
{
|
||
Thread.Sleep(2000);
|
||
Dispatcher.Invoke(new Action(() => { btnBuyOrder.IsEnabled = true; }));
|
||
});
|
||
Task.Run(async() =>
|
||
{
|
||
// 拍单前查询订单是否退款
|
||
var orderId = orderItem.order_id;
|
||
var skuId = orderItem.sku_id;
|
||
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
|
||
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
|
||
if (newOrder.orderItems.Count == 1)
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault();
|
||
else
|
||
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
|
||
if (orderItem == null)
|
||
return;
|
||
|
||
if (!orderItem.ItemOrder.out_order_no.IsNullOrEmpty() && orderItem.ItemOrder.out_after_sale_status != "退款成功")
|
||
{
|
||
// 外采单已存在的,不可再拍单
|
||
BaseMsgWindow.ShowAnimateMessage("该订单已有直发采购记录", "Error", 5);
|
||
return;
|
||
}
|
||
|
||
// 如果是退款单,弹出退款窗口
|
||
if (CheckIsRefund(orderItem))
|
||
return;
|
||
|
||
// 查询订单是否在代发货中,如果代发需要取消代发
|
||
var apiSearchDropship = new WxApiBLL().WxApiDropshipSearch(orderItem.Shop, orderItem.order_id, 100);
|
||
if (!apiSearchDropship.Contains("\"errcode\":0"))
|
||
{
|
||
BaseMsgWindow.ShowError("代发查询失败," + BaseRegex.GetStringJsonByRegs(ref apiSearchDropship, apiSearchDropship, "errmsg"));
|
||
return;
|
||
}
|
||
if (apiSearchDropship.Contains("ds_order_id_list") && !apiSearchDropship.Contains("\"ds_order_id_list\":[]"))
|
||
{
|
||
var dsOrderId = JsonHelper.JObjectParse(apiSearchDropship)["ds_order_id_list"].FirstOrDefault().ParseToString();
|
||
var apiCancelDropship = await new WxApiBLL().WxApiDropshipCancel(orderItem.Shop, orderItem.ItemOrder, dsOrderId);
|
||
|
||
if (!apiCancelDropship.Contains("\"errcode\":0"))
|
||
{
|
||
BaseMsgWindow.ShowError("取消代发失败!请确商品未加入代发!" + BaseRegex.GetStringJsonByRegs(ref apiSearchDropship, apiSearchDropship, "errmsg"));
|
||
return;
|
||
}
|
||
}
|
||
|
||
|
||
// 检测买手号是否掉线
|
||
if (GlobalConfig.CurrentPddBuyer.status == "在线")
|
||
{
|
||
PddMobileLoginForm.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
|
||
}
|
||
if (GlobalConfig.CurrentPddBuyer.status != "在线")
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("买手号掉线");
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
}));
|
||
return;
|
||
}
|
||
|
||
|
||
// 打开拍单窗口
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
btnBuyOrder.Cursor = Cursors.Hand;
|
||
|
||
PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, StartUp.UpdateBalance,
|
||
orderItem, GlobalConfig.CurrentPddBuyer, orderItem.BuyMap);
|
||
|
||
buyOrderForm.TitleText = "买手直发拍单 - 当前买手 " + GlobalConfig.CurrentPddBuyer.buyer_nick;
|
||
buyOrderForm.BuyType = "direct";
|
||
|
||
// 未关联拍单的跳到所有订单页面
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/orders.html";
|
||
//https://mobile.yangkeduo.com/order.html?order_sn=260729-663591339661688
|
||
if (orderItem.ItemTransitOrderWithVoid != null)
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order.html?order_sn=" + orderItem.ItemTransitOrderWithVoid.out_order_no;
|
||
|
||
buyOrderForm.pnlBuy.Visible = false;
|
||
|
||
|
||
// 已有拍单关联的跳的到订单确认界面
|
||
if (orderItem.BuyMap != null)
|
||
{
|
||
buyOrderForm.ShowBuyMask = true;
|
||
buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.BuyMap.map_sku_id +
|
||
"&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.BuyMap.map_goods_id + "&goods_number=" + orderItem.sku_cnt +
|
||
"&page_from=101";
|
||
|
||
buyOrderForm.pnlBuy.Visible = true;
|
||
buyOrderForm.pnlMap.Visible = false;
|
||
}
|
||
buyOrderForm.ShowDialog();
|
||
}));
|
||
});
|
||
}
|
||
|
||
bool CheckIsRefund(oms_wei_order_item_info orderItem)
|
||
{
|
||
if (/*orderItem?.ItemRefund?.count > 0 &&*/ orderItem.refund_status > 1)
|
||
{
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == orderItem.shop_id.ParseToString());
|
||
if (shop != null)
|
||
{
|
||
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
|
||
shopLoginForm.openType = Work._29Tools.Forms.ShopForms.EnumOpenType.manage;
|
||
shopLoginForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/aftersale/detail?orderid=" + orderItem.ItemRefund.after_sale_order_id;
|
||
shopLoginForm.Show();
|
||
}
|
||
else
|
||
{
|
||
BaseMsgWindow.ShowError("订单有售后,请去店铺后台退款");
|
||
}
|
||
}));
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
private void PathCopyDirectBuyerOrderNo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject((order_item.ItemOrder?.out_order_no).ParseToString());
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void pathCopyProdName_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
private void pathCopyRefundAddress_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info order_item)
|
||
{
|
||
try
|
||
{
|
||
Clipboard.SetDataObject(order_item.RefundAddressStr.ParseToString());
|
||
BaseMsgWindow.ShowAnimateMessage("复制成功");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
BaseMsgWindow.ShowError("复制失败 " + ex.Message);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void btnReturnOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem)
|
||
{
|
||
//if (orderItem.ItemTransitOrder?.warehouse_status != 2 && orderItem.AddEditTransitWarehouseAfterSaleStr == "添加")
|
||
//{
|
||
// BaseMsgWindow.ShowError("商品未出库,请选择中转仓拒收!");
|
||
// return;
|
||
//}
|
||
|
||
if (TransitReturnOrderWindow.instance != null)
|
||
TransitReturnOrderWindow.instance.Close();
|
||
|
||
TransitReturnOrderWindow.instance = new TransitReturnOrderWindow(orderItem);
|
||
TransitReturnOrderWindow.instance.Show();
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
private void btn_ShipGiftCommand(object sender, RoutedEventArgs e)
|
||
{
|
||
|
||
btnShipGift.IsEnabled = false;
|
||
var orderItem = this.DataContext as oms_wei_order_item_info;
|
||
if (orderItem == null)
|
||
return;
|
||
|
||
GiftType giftType = GiftType._160;
|
||
if (MainWindow.Instance.orderListCtrl.cb_gift.SelectedIndex == 0)
|
||
{
|
||
giftType = GiftType._155;
|
||
}
|
||
else
|
||
{
|
||
giftType = GiftType._160;
|
||
}
|
||
Task.Run(async () =>
|
||
{
|
||
try
|
||
{
|
||
var rst = await WxApiBLL.WxSearchAndDropshipCancelAsync(orderItem.Shop, orderItem.ItemOrder);
|
||
if (rst == "success")
|
||
{
|
||
var ret = await MainWindow.Instance.orderListCtrl._shipGiftService.Send(orderItem.order_id, giftType);
|
||
if (ret)
|
||
{
|
||
Application.Current.Dispatcher.Invoke(() =>
|
||
{
|
||
orderItem.ItemOrder.gift_order_status = 1;
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder, true);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Application.Current.Dispatcher.Invoke(() =>
|
||
{
|
||
BaseMsgWindow.ShowError("礼品单发货失败\n" + ex.Message ?? "未知错误", "Error");
|
||
});
|
||
}
|
||
finally
|
||
{
|
||
btnShipGift.IsEnabled = true;
|
||
}
|
||
|
||
});
|
||
}
|
||
|
||
private async void btnPddRefundTransitWarehouseRejectOrder_Click(object sender, RoutedEventArgs e)
|
||
{
|
||
if (this.DataContext is oms_wei_order_item_info orderItem && orderItem.ItemTransitOrderWithVoid != null && orderItem.ItemOrder != null)
|
||
{
|
||
await PddRefundTransitRejectOrder(orderItem);
|
||
|
||
// 赋值显示订单元素
|
||
Dispatcher.Invoke(new Action(() =>
|
||
{
|
||
OrderListCtrl.InitOrderItemObservableProp(orderItem);
|
||
MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.ItemOrder);
|
||
}));
|
||
}
|
||
}
|
||
|
||
public static async Task PddRefundTransitRejectOrder(oms_wei_order_item_info orderItem)
|
||
{
|
||
var pddOrderSn = orderItem.ItemTransitOrderWithVoid?.out_order_no;
|
||
if (string.IsNullOrEmpty(pddOrderSn))
|
||
return;
|
||
|
||
BuyerLoginInfo buyer = null;
|
||
buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == orderItem.ItemTransitOrderWithVoid.buyer_account);
|
||
if (buyer == null)
|
||
{
|
||
return;
|
||
}
|
||
// 检测一下买手号
|
||
if (buyer.status == "在线")
|
||
{
|
||
PddMobileLoginForm.CheckBuyerLogin(buyer);
|
||
}
|
||
if (buyer.status != "在线")
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 5);
|
||
return;
|
||
}
|
||
|
||
// 拒收一定是云仓
|
||
string refundStatusStr = (orderItem.TransitRefundStatusStr).ParseToString();
|
||
|
||
PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo();
|
||
pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id;
|
||
pddBuyerOrderLiteInfo.order_sn = pddOrderSn;
|
||
pddBuyerOrderLiteInfo.order_amount = orderItem.ItemTransitOrderWithVoid?.out_amount;
|
||
|
||
order_pdd_buyer_after_sale pddBuyerAfterSale = new order_pdd_buyer_after_sale()
|
||
{
|
||
wx_order_id = orderItem.order_id,
|
||
wx_sku_id = orderItem.sku_id,
|
||
TransitCreateTime = orderItem.ItemTransitOrderWithVoid?.created_time == null ? DateTime.MinValue : orderItem.ItemTransitOrderWithVoid.created_time,
|
||
pre_allocated_order_no = orderItem.ItemTransitOrderWithVoid?.pre_allocated_order_no,
|
||
buyerId = buyer.buyer_id,
|
||
buyerName = buyer.buyer_name,
|
||
orderSn = pddOrderSn,
|
||
orderAmount = pddBuyerOrderLiteInfo.order_amount,
|
||
refundAmount = pddBuyerOrderLiteInfo.order_amount,
|
||
orderDate = pddOrderSn.ParseToString().Split('-').FirstOrDefault().ParseToInt(),
|
||
};
|
||
if (orderItem.PddBuyerAfterSale != null)
|
||
pddBuyerAfterSale = orderItem.PddBuyerAfterSale;
|
||
|
||
if (refundStatusStr.Contains("需手动申请售后")) // 退款失败 // 申请已撤销
|
||
{
|
||
await Task.Run(() =>
|
||
{
|
||
// {\"after_sales_id\":22312641041100,\"after_sales_status\":11,\"after_sales_type\":2,\"not_really_created\":true}
|
||
string rst = "";
|
||
rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithRejected(buyer, pddBuyerOrderLiteInfo, pddBuyerAfterSale);
|
||
|
||
var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status");
|
||
var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id");
|
||
if (afterSalesId.IsNullOrZero())
|
||
return;
|
||
pddBuyerAfterSale.afterSalesId = afterSalesId.ToString();
|
||
// 更新内存数据 ----------------------------------------------------------------
|
||
pddBuyerAfterSale.statusText = "商家处理中";
|
||
orderItem.ItemTransitOrderWithVoid.refund_status = "商家处理中";
|
||
// --------------------------------------------------------------------------//
|
||
|
||
if (afterSalesStatus == 0)
|
||
{
|
||
var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg");
|
||
BaseMsgWindow.ShowAnimateMessage(msg, "Error", 5);
|
||
Thread.Sleep(5000);
|
||
if (msg == "已超过可申请售后的时间")
|
||
{
|
||
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "已超过可申请售后的时间");
|
||
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
|
||
Thread.Sleep(Randomx.GetId(10000, 12001));
|
||
}
|
||
else
|
||
{
|
||
msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "商家处理中");
|
||
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
|
||
{
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功" + orderItem.order_id, "Msg", 3);
|
||
Thread.Sleep(Randomx.GetId(2000, 5001));
|
||
}
|
||
else
|
||
{
|
||
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
|
||
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|