diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs index 098ccc2..e21bb4d 100644 --- a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderReadCtrl.xaml.cs @@ -1993,7 +1993,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls } } - // 向服务端更新售后退货信息更新状态 + // 向服务端更新售后退货信息更新状态 直发外采信息 public void SendAfterSaleE57(PddBuyerAfterSaleLiteInfo afterSale, bool resetSendStatus = false, bool isManualSendNoRecordCancelOrder = false) { if (resetSendStatus) @@ -2045,6 +2045,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls })); } + // 手动调用直发外采星系 public static string SendAfterSaleE57NeedManual(PddBuyerOrderLiteInfo order, string statusText) { Thread.Sleep(100); diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.Command.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.Command.cs index becbbc4..1b0753e 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.Command.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.Command.cs @@ -87,6 +87,10 @@ public partial class OrderListCtrl { sucessCount++; item.gift_order_status = 1; + foreach (var orderItem in item.orderItems) + { + InitOrderItemObservableProp(orderItem); + } this.FilterOneOrder(item, true); } else diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml index ae1647c..d78c215 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml @@ -412,6 +412,7 @@ VerticalContentAlignment="Center" BorderBrush="Transparent" SelectedIndex="0" + SelectionChanged="cmbFilterRemark_SelectionChanged" Style="{StaticResource RoundedComboBox}" Text="成交时间"> @@ -611,6 +612,13 @@ + - (); orderFilterConfig.lstFilterRemarkText = new ConcurrentList(); + orderFilterConfig.txtFilterShopNameText = ""; dateStart.SelectedDate = DateTime.Now.Date.AddDays(-7); dateEnd.SelectedDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1); @@ -209,6 +210,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls //指定订单id的查询,不再查询店铺id if (string.IsNullOrEmpty(orderIds)) data += "&erp_shop_id_in=" + shop_id; + + Dispatcher.Invoke(new Action(() => { // 按过滤条件读取 已废弃 @@ -240,6 +243,14 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls BaseMsgWindow.ShowError("订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg")); break; } + + var totalCount = BaseRegex.GetIntJson(ref html, "count"); + if (totalCount > 0) + totalPage = Math.Ceiling(1m * totalCount / pageSize).ParseToInt(); + else + { + } + if (html.Contains("3738686976228742912")) { } @@ -391,15 +402,6 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls //Dispatcher.Invoke(new Action(() => { disPlayOrderTabOrderCount(); })); disPlayOrderTabOrderCount(); - - - var totalCount = BaseRegex.GetIntJson(ref html, "count"); - if (totalCount > 0) - totalPage = Math.Ceiling(1m * totalCount / pageSize).ParseToInt(); - else - { - - } } // 处理店铺后台物流异常单 @@ -713,7 +715,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var wxOrderIdIn = string.Join(",", jObj["orderList"].Select(j => j["commonInfo"]["orderId"].ParseToString())); var wxSkuIdIn = string.Join(",", jObj["orderList"].Select(j => (j["orderProductInfo"].FirstOrDefault()?["skuId"]).ParseToString())); - // 异常单 + // 异常单 异常需重拍 List existOrderExtList = new List(); if (!string.IsNullOrEmpty(wxOrderIdIn) && !string.IsNullOrEmpty(wxSkuIdIn)) { @@ -967,8 +969,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { foreach (var orderItem in order.orderItems) { - if (orderItem.order_id == "3738442174434006784") - { + if (orderItem.order_id == "3738598656037525761") + { } if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") @@ -984,7 +986,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var buyer = GlobalConfig.PDDBuyerLoginList.ToList().FirstOrDefault(b => b.buyer_nick == buyerNickName); if (buyer == null) continue; - var afterSalesId = orderItem.PddBuyerAfterSale?.afterSalesId; + var afterSalesId = orderItem.DirectPddBuyerAfterSale?.afterSalesId; if (string.IsNullOrEmpty(afterSalesId)) continue; var waybillId = orderItem.DistribReturnOrderInfo?.real_logistics_express_code; @@ -1002,10 +1004,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls if (result.Contains("\"result\":\"ok\"")) { + orderItem.DirectPddBuyerAfterSale.statusText = "商家处理中"; order.out_after_sale_status = "商家处理中"; } else { + orderItem.DirectPddBuyerAfterSale.statusText = "待用户发货 自动退货失败"; order.out_after_sale_status = "待用户发货 自动退货失败"; } var pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo() @@ -1013,10 +1017,28 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls ShopOrderIdStr = orderItem.order_id, order_sn = orderSn, }; - // 更新中转仓退货信息 + // 更新退货信息 var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, order.out_after_sale_status); if (e57Rst.Contains("0") || e57Rst.Contains("200")) { + var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale"); + var data3 = UserLogin.GetSignaturex(); + data3 += "&wx_order_id=" + orderItem.DirectPddBuyerAfterSale.wx_order_id; + data3 += "&wx_sku_id=" + orderItem.DirectPddBuyerAfterSale.wx_sku_id; + data3 += "&buyerId=" + orderItem.DirectPddBuyerAfterSale.buyerId; + data3 += "&buyerName=" + orderItem.DirectPddBuyerAfterSale.buyerName; + data3 += "&orderAmount=" + orderItem.DirectPddBuyerAfterSale?.orderAmount; + data3 += "&orderSn=" + orderItem.DirectPddBuyerAfterSale.orderSn; + data3 += "&afterSalesId=" + orderItem.DirectPddBuyerAfterSale.afterSalesId; + data3 += "&orderDate=" + orderItem.DirectPddBuyerAfterSale.orderDate; + data3 += "&refundAmount=" + orderItem.DirectPddBuyerAfterSale.refundAmount; + data3 += "&statusText=" + orderItem.DirectPddBuyerAfterSale.statusText; + data3 += "&wx_send_type=" + orderItem.DirectPddBuyerAfterSale.wx_send_type; + + var html3 = GetHtml.PostUtf8(url3, data3); + if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) + html3 = GetHtml.PostUtf8(url3, data3); + BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3); Thread.Sleep(Randomx.GetId(10000, 12001)); } @@ -1146,11 +1168,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var filteLstTmp = userOrderLst.Where(o => !GetOrderIsFilter(o, "退货仓自动售后单")); Dispatcher.Invoke(new Action(() => { tabItem.Header = "退货仓自动售后单(" + userOrderLst.Where(r => r.IsEmergencyDistribReturnOrder).Count() + "|" + filteLstTmp.Count() + ")"; })); } - Dispatcher.Invoke(new Action(() => { tabItem = tabItems.FirstOrDefault(t => t.Header.ParseToString().StartsWith("异常单")); })); + Dispatcher.Invoke(new Action(() => { tabItem = tabItems.FirstOrDefault(t => t.Header.ParseToString().StartsWith("异常需重拍")); })); if (tabItem != null) { - var filteLstTmp = userOrderLst.Where(o => !GetOrderIsFilter(o, "异常单")); - Dispatcher.Invoke(new Action(() => { tabItem.Header = "异常单(" + userOrderLst.Where(r => r.isAbnormal).Count() + "|" + filteLstTmp.Count() + ")"; })); + var filteLstTmp = userOrderLst.Where(o => !GetOrderIsFilter(o, "异常需重拍")); + Dispatcher.Invoke(new Action(() => { tabItem.Header = "异常需重拍(" + userOrderLst.Where(r => r.isAbnormal).Count() + "|" + filteLstTmp.Count() + ")"; })); } Dispatcher.Invoke(new Action(() => { tabItem = tabItems.FirstOrDefault(t => t.Header.ParseToString().StartsWith("全部订单")); })); if (tabItem != null) @@ -1179,7 +1201,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls var orderLstTmp = new List(); if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后单") || GlobalConfig.OrderTabHeaderStr.StartsWith("退货仓自动售后单")) orderLstTmp = GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.RefundDatetime).ToList(); - else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常单")) + else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常需重拍")) orderLstTmp = GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.update_time).ToList(); else orderLstTmp = GlobalConfig.lstOrder.Where(o => !GetOrderIsFilter(o)).OrderByDescending(o => o.create_time).ToList(); @@ -1229,7 +1251,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls oms_wei_order_info nextOrder = null; if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后单") || GlobalConfig.OrderTabHeaderStr.StartsWith("退货仓自动售后单")) nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.RefundDatetime < order.RefundDatetime); - else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常单")) + else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常需重拍")) nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.update_time < order.update_time); else nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time); @@ -1304,7 +1326,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } // 过滤店铺名称 - if (!string.IsNullOrEmpty(orderFilterConfig.txtFilterShopNameText) && !(";" + orderFilterConfig.txtFilterShopNameText + ";").Contains(";" + order.shop_name + ";")) + if (!string.IsNullOrWhiteSpace(orderFilterConfig?.txtFilterShopNameText) && !(";" + orderFilterConfig?.txtFilterShopNameText + ";").Contains(";" + order.shop_name + ";")) { return true; } @@ -1330,20 +1352,14 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls // 过滤备注 if (orderFilterConfig.chkFilterRemarkIsChecked && orderFilterConfig.lstFilterRemarkText != null && orderFilterConfig.lstFilterRemarkText.Count > 0) { - if (cmbFilterRemark.SelectedItem is ComboBoxItem comboBoxItem) - { - if (comboBoxItem.Content is TextBlock tb) - { - if (tb.Text == "店铺备注包含" && !orderFilterConfig.lstFilterRemarkText.Contains(order.shop_remark)) - return true; - else if (tb.Text == "软件备注包含" && !orderFilterConfig.lstFilterRemarkText.Contains(order.soft_remark)) - return true; - else if (tb.Text == "店铺备注不含" && orderFilterConfig.lstFilterRemarkText.Contains(order.shop_remark)) - return true; - else if (tb.Text == "软件备注不含" && orderFilterConfig.lstFilterRemarkText.Contains(order.soft_remark)) - return true; - } - } + if (orderFilterConfig.FilterRemarkType == "店铺备注包含" && !orderFilterConfig.lstFilterRemarkText.Contains(order.shop_remark)) + return true; + else if (orderFilterConfig.FilterRemarkType == "软件备注包含" && !orderFilterConfig.lstFilterRemarkText.Contains(order.soft_remark)) + return true; + else if (orderFilterConfig.FilterRemarkType == "店铺备注不含" && orderFilterConfig.lstFilterRemarkText.Contains(order.shop_remark)) + return true; + else if (orderFilterConfig.FilterRemarkType == "软件备注不含" && orderFilterConfig.lstFilterRemarkText.Contains(order.soft_remark)) + return true; } if (!orderFilterConfig.chkDirectOrderIsChecked == true && order.OrderBuyType == "直发") return true; @@ -1457,7 +1473,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls if (chkWaitReceiveWarehouseIsSendOut.IsChecked == true && order.orderItems.All(oi => oi.WarehouseWaybillStatusStr != "中转已出库")) return true; } - if (filterHeadStr.StartsWith("异常单") && !order.isAbnormal) + if (filterHeadStr.StartsWith("异常需重拍") && !order.isAbnormal) { return true; } @@ -1903,7 +1919,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { foreach (var orderItem in order.orderItems) { - if (order.order_id == "3738480261631214336") + if (order.order_id == "3738564728075491584") { } @@ -1924,12 +1940,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { foreach (var orderItem in tmpOrderItems) { - if (orderItem.order_id == "3738517858745481728") + if (orderItem.order_id == "3738564728075491584") { } // 10元余额才允许自动创建退货仓分销退货 - if (BaseClass.Balance > 10) + if (BaseClass.Balance > 5) { await Task.Run(() => { TransitReturnOrderWindow.AddReturnOrder(orderItem); }); } @@ -2461,11 +2477,24 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } } } + + private void cmbFilterRemark_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + if (cmbFilterRemark.SelectedItem is ComboBoxItem comboBoxItem) + { + if (comboBoxItem.Content is TextBlock tb) + { + if (orderFilterConfig != null) + orderFilterConfig.FilterRemarkType = tb.Text; + } + } + } } public class OrderFilterConfig : PropertyNotifyObject { public string FilterGoodsNameType { get; set; } = "标题包含"; + public string FilterRemarkType { get; set; } = "店铺备注包含"; public List lstFilterGoodsName { get; set; } = new List(); /// /// 隐藏标记 diff --git a/29WxOrderWpf/Windows/OrderWindows/TransitReturnOrderWindow.xaml.cs b/29WxOrderWpf/Windows/OrderWindows/TransitReturnOrderWindow.xaml.cs index 522b03d..7774f24 100644 --- a/29WxOrderWpf/Windows/OrderWindows/TransitReturnOrderWindow.xaml.cs +++ b/29WxOrderWpf/Windows/OrderWindows/TransitReturnOrderWindow.xaml.cs @@ -249,11 +249,16 @@ namespace _29WxOrderWpf.Windows.OrderWindows { aftersaleAddress = OrderItem?.DirectPddBuyerAfterSale?.afterSaleAddress; } - var receiver = AddressAnalysis(aftersaleAddress.ParseToString()); + var receiver = PddAddressAnalysis(aftersaleAddress.ParseToString()); // 单号不存在或者地址识别失败的直接返回 if (wxExpressName.IsNullOrEmpty() || OrderItem.ItemRefund.return_waybill_id.IsNullOrEmpty() || receiver.receiver_name.IsNullOrEmpty() || receiver.receiver_phone.IsNullOrEmpty() || receiver.receiver_province.IsNullOrEmpty() || receiver.receiver_city.IsNullOrEmpty() || receiver.receiver_area.IsNullOrEmpty() || receiver.receiver_address.IsNullOrEmpty()) { + if (!string.IsNullOrWhiteSpace(aftersaleAddress)) + { + // todo 提示地址解析失败请手动提交 + OrderItem.AddEditTransitWarehouseReturnOrderStr = "解析失败请手动添加"; + } return; } @@ -352,7 +357,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows private void btnAddressAnalysis_Click(object sender, RoutedEventArgs e) { - var receiver = AddressAnalysis(txtAddressAnalysis.Text.Trim()); + var receiver = PddAddressAnalysis(txtAddressAnalysis.Text.Trim()); this.txtUser.Text = receiver.receiver_name; this.txtMobile.Text = receiver.receiver_phone; this.txtProvince.Text = receiver.receiver_province; @@ -361,7 +366,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows this.txtDetailAddress.Text = receiver.receiver_address; } - public static distrib_receiver_info AddressAnalysis(string AddressText) + public static distrib_receiver_info WxAddressAnalysis(string AddressText) { distrib_receiver_info receiver = new distrib_receiver_info(); @@ -415,5 +420,60 @@ namespace _29WxOrderWpf.Windows.OrderWindows return receiver; } - } + + public static distrib_receiver_info PddAddressAnalysis(string AddressText) + { + distrib_receiver_info receiver = new distrib_receiver_info(); + + var txt = AddressText; + 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)) + { + receiver.receiver_phone = phone; + } + + var province = GlobalConfig.PddDivisions.FirstOrDefault(d => txt.Contains(d.name)); + if (province == null) + return receiver; + receiver.receiver_province = province.name; + var city = province.children.FirstOrDefault(c => txt.Contains(c.name)); + if (city == null) + return receiver; + receiver.receiver_city = city.name; + var county = city.children.FirstOrDefault(c => txt.Contains(c.name)); + if (county == null) + return receiver; + receiver.receiver_area = 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(); + receiver.receiver_name = tArr.FirstOrDefault(); + receiver.receiver_address = string.Join("", tArr).Replace(receiver.receiver_name, ""); + + return receiver; + } + } } diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index ee16bf1..ab42ac0 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -36,7 +36,7 @@ namespace AllBase /// 版本ID /// - public static int VersionCount = 260; + public static int VersionCount = 262; public static string ServerUrl { get; set; } = "http://1.13.195.131:9000"; public static string DebugUrl { get; set; } = "http://localhost:9000"; diff --git a/AllBase/Model/DBModel/oms_wei_order_info.cs b/AllBase/Model/DBModel/oms_wei_order_info.cs index 2a536e9..1537150 100644 --- a/AllBase/Model/DBModel/oms_wei_order_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_info.cs @@ -138,7 +138,7 @@ namespace AllBase.Model.DBModel set { } } /// - /// 异常单(买手异常退货) + /// 异常单(买手异常退货)异常需重拍 /// public bool isAbnormal { @@ -680,7 +680,7 @@ namespace AllBase.Model.DBModel isAbnormal = GetIsAbnormal(); } - private bool GetIsWaitBuy() + public bool GetIsWaitBuy() { if (order_id == "3738686976228742912") { @@ -744,7 +744,7 @@ namespace AllBase.Model.DBModel return true; } - private bool GetIsAbnormal() + public bool GetIsAbnormal() { if (order_id == "3738000949931831296") { @@ -758,7 +758,7 @@ namespace AllBase.Model.DBModel if (orderItems.Any(oi => oi.refund_status <= 1 && oi.ItemTransitOrder != null && oi.ItemTransitOrder.refund_status == "买手退款成功")) return true; - // 取号异常或无法调用发货也放在异常单 + // 取号异常或无法调用发货也放在异常单(异常需重拍) // 订单不满足鸿浩仓库发货条件,无法调用鸿浩仓库接口发货 else if (orderItems.Any(oi => ((oi.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains("取号异常") || (oi.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains("无法调用")) && diff --git a/AllBase/Model/DBModel/oms_wei_order_item_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_info.cs index 5f8e3f0..c71ad65 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_info.cs @@ -850,10 +850,10 @@ namespace AllBase.Model.DBModel // DirectPddBuyerAfterSale = DirectPddBuyerAfterSales?.FirstOrDefault(); this.DirectPddBuyerAfterSale = DirectPddBuyerAfterSales.FirstOrDefault(p => OrderItemExt?.out_order_id == p.orderSn); // 服务端这个值不会在拍新单后覆盖,在此处使用扩展订单绑定的买手单信息修改掉,后续在拍单的时候覆盖掉 - if (ItemOrder.order_id == "3738114484652896256") - { + if (ItemOrder.order_id == "3738598656037525761") + { - } + } if (!this.ItemOrder.out_after_sale_status.ParseToString().Contains("需手动申请售后")) this.ItemOrder.out_after_sale_status = DirectPddBuyerAfterSale?.statusText; @@ -1093,11 +1093,16 @@ namespace AllBase.Model.DBModel if (rawMsgKeyWords.Any(k => (this.ItemTransitOrderWithVoid?.raw_message).ParseToString().Contains(k)) && this.ItemTransitOrderWithVoid?.transfer_warehouse_status != 1) BtnAbnormalBtnVisibility = Visibility.Collapsed; + if (order_id == "3738706885587395328") + { + + } + // 直拍按钮 BtnDirectBuyOrderVisibility = Visibility.Collapsed; - if (this.ItemOrder?.IsWaitBuy == true && this.BuyGoodsBtnTxt != "关联拍单") + if (this.ItemOrder?.GetIsWaitBuy() == true && this.BuyGoodsBtnTxt != "关联拍单") BtnDirectBuyOrderVisibility = Visibility.Visible; - if (this.ItemOrder?.isAbnormal == true && this.refund_status <= 1) + if (this.ItemOrder?.GetIsAbnormal() == true && this.refund_status <= 1) { //if (BtnAbnormalBtnVisibility == Visibility.Collapsed && (this.ItemOrder.out_order_no.IsNullOrEmpty() || this.ItemOrder.out_after_sale_status == "退款成功")) if (this.ItemOrder.out_order_no.IsNullOrEmpty() || this.ItemOrder.out_after_sale_status == "退款成功")