From 4ba6da51103d7305936520c6989c52f40fa71830 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 30 Mar 2023 16:03:55 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=20=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8D=95=E9=87=87=E8=B4=AD=E5=8D=95=E5=8F=B7?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/Order/OrderListViewModel.cs | 71 +++++++++---------- .../ServiceOrder/EditServiceOrderViewModel.cs | 4 +- BBWY.Client/Views/Order/OrderList.xaml | 4 +- .../Views/ServiceOrder/EditServiceOrder.xaml | 17 ++--- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index 541b0364..0710aac1 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -44,7 +44,7 @@ namespace BBWY.Client.ViewModels private bool onlyDF; private bool excludeSD; private bool excludeCanceled; - private bool onlyUnhandle; + //private bool onlyUnhandle; private Random random; public GlobalContext globalContext { get; set; } //private bool? includeAfterOrder; @@ -93,10 +93,7 @@ namespace BBWY.Client.ViewModels //public bool? IncludeAfterOrder { get => includeAfterOrder; set { Set(ref includeAfterOrder, value); } } public string SearchServiceId { get => searchServiceId; set { Set(ref searchServiceId, value); } } - /// - /// 仅显示未处理 - /// - public bool OnlyUnhandle { get => onlyUnhandle; set { Set(ref onlyUnhandle, value); } } + //public bool OnlyUnhandle { get => onlyUnhandle; set { Set(ref onlyUnhandle, value); } } public ToDayOrderAchievement ToDayOrderAchievement { get; set; } @@ -450,39 +447,39 @@ namespace BBWY.Client.ViewModels IsLoading = false; } - private void LoadAfterSaleOrder(int pageIndex) - { - IsLoading = true; - Thread.Sleep(random.Next(0, 1000)); - var response = afterOrderService.GetAfterSaleOrderList(globalContext.User.Shop.ShopId, - SearchOrderId, - StartDate, - EndDate, - SearchProductId, - SearchSku, - SearchServiceId, - OnlyUnhandle, - pageIndex, - pageSize); - - if (!response.Success) - { - IsLoading = false; - App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示")); - return; - } + //private void LoadAfterSaleOrder(int pageIndex) + //{ + // IsLoading = true; + // Thread.Sleep(random.Next(0, 1000)); + // var response = afterOrderService.GetAfterSaleOrderList(globalContext.User.Shop.ShopId, + // SearchOrderId, + // StartDate, + // EndDate, + // SearchProductId, + // SearchSku, + // SearchServiceId, + // OnlyUnhandle, + // pageIndex, + // pageSize); + + // if (!response.Success) + // { + // IsLoading = false; + // App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示")); + // return; + // } - OrderCount = response.Data.Count; - var afterOrderList = response.Data.Items.Map>(); - App.Current.Dispatcher.Invoke(() => - { - AfterSaleOrderList.Clear(); - foreach (var aso in afterOrderList) - AfterSaleOrderList.Add(aso); - Messenger.Default.Send(string.Empty, "AfterSaleOrderList_ScrollToTop"); - }); - IsLoading = false; - } + // OrderCount = response.Data.Count; + // var afterOrderList = response.Data.Items.Map>(); + // App.Current.Dispatcher.Invoke(() => + // { + // AfterSaleOrderList.Clear(); + // foreach (var aso in afterOrderList) + // AfterSaleOrderList.Add(aso); + // Messenger.Default.Send(string.Empty, "AfterSaleOrderList_ScrollToTop"); + // }); + // IsLoading = false; + //} private void LoadTodayAchievement(DateTime startTime, DateTime endTime, long shopId) { diff --git a/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs b/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs index 4fcbee5f..12c9306a 100644 --- a/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs +++ b/BBWY.Client/ViewModels/ServiceOrder/EditServiceOrderViewModel.cs @@ -2,6 +2,7 @@ using BBWY.Client.Models; using GalaSoft.MvvmLight.Command; using HandyControl.Controls; +using System.Collections.Generic; using System.Threading.Tasks; using System.Windows.Input; @@ -29,7 +30,7 @@ namespace BBWY.Client.ViewModels private decimal? reissueProductAmount; private bool isLoading; - + public IList RenewalTypeList { get; set; } public ServiceResult? ServiceResult { get => serviceResult; set { Set(ref serviceResult, value); } } public decimal? SDRefundFreight { get => sdRefundFreight; set { Set(ref sdRefundFreight, value); } } public ReturnDirection? ReturnDirection { get => returnDirection; set { Set(ref returnDirection, value); } } @@ -63,6 +64,7 @@ namespace BBWY.Client.ViewModels { this.serviceOrderService = serviceOrderService; SaveCommand = new RelayCommand(Save); + RenewalTypeList = new List() { StorageType.本地自发, StorageType.代发 }; } public void SetData(ServiceOrder serviceOrder) diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml index a1392a7e..5ba2ce63 100644 --- a/BBWY.Client/Views/Order/OrderList.xaml +++ b/BBWY.Client/Views/Order/OrderList.xaml @@ -398,11 +398,11 @@ - + diff --git a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml index 92078f87..ca2a9df6 100644 --- a/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml +++ b/BBWY.Client/Views/ServiceOrder/EditServiceOrder.xaml @@ -23,11 +23,6 @@ - - - - - @@ -114,7 +109,7 @@ - - + + + + + + + From 59d6e51cdb7fbb0073ed29bf0b3f34277f75b895 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 30 Mar 2023 17:09:48 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E6=8B=B3=E6=8E=A2=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E9=BB=98=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Setting/ShopSettingViewModel.cs | 8 +++ BBWY.Client/Views/Setting/ShopSetting.xaml | 68 ++++++++++++------- 2 files changed, 51 insertions(+), 25 deletions(-) diff --git a/BBWY.Client/ViewModels/Setting/ShopSettingViewModel.cs b/BBWY.Client/ViewModels/Setting/ShopSettingViewModel.cs index ddf919fe..9c8c108e 100644 --- a/BBWY.Client/ViewModels/Setting/ShopSettingViewModel.cs +++ b/BBWY.Client/ViewModels/Setting/ShopSettingViewModel.cs @@ -147,6 +147,14 @@ namespace BBWY.Client.ViewModels MessageBox.Show("店铺密码验证未通过", "保存店铺设置"); return; } + + if (PurchaseAccount.PurchasePlatformId == Platform.拳探) + { + PurchaseAccount.AppKey = "BBWY2023022001"; + PurchaseAccount.AppSecret = "908e131365d5448ca651ba20ed7ddefe"; + PurchaseAccount.AppToken = PurchaseAccount.AccountName; + } + if (string.IsNullOrEmpty(PurchaseAccount.AppKey) || string.IsNullOrEmpty(PurchaseAccount.AppSecret) || string.IsNullOrEmpty(PurchaseAccount.AppToken) || diff --git a/BBWY.Client/Views/Setting/ShopSetting.xaml b/BBWY.Client/Views/Setting/ShopSetting.xaml index 852e73e6..e450b056 100644 --- a/BBWY.Client/Views/Setting/ShopSetting.xaml +++ b/BBWY.Client/Views/Setting/ShopSetting.xaml @@ -88,45 +88,63 @@ Foreground="{Binding PanelIndex,Converter={StaticResource objConverter},ConverterParameter=2:White:#4A4A4A}"/> - - - - - - - - - - - - - - - - + + + + + + + + - - + + + + + + + - - + + + + + + + - - + + + + + + + - - + + + + + + - + + From 28c3cc101905ea6d2840c93ea9fc561527bb768e Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 30 Mar 2023 17:10:31 +0800 Subject: [PATCH 03/16] 10087 --- BBWY.Client/Views/MainWindow.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Client/Views/MainWindow.xaml b/BBWY.Client/Views/MainWindow.xaml index f7e9201a..453ebcc3 100644 --- a/BBWY.Client/Views/MainWindow.xaml +++ b/BBWY.Client/Views/MainWindow.xaml @@ -26,7 +26,7 @@ - + From 1aa9fb57cdc08a9ebcca36d102c112872414df4e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 31 Mar 2023 01:51:39 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8D=95=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs index 1d96f535..8c6e3878 100644 --- a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs +++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs @@ -26,6 +26,7 @@ namespace BBWY.Server.Business .WhereIf(!string.IsNullOrEmpty(request.OrderId), (s, o, osku) => s.OrderId == request.OrderId) .WhereIf(!string.IsNullOrEmpty(request.ServiceId), (s, o, osku) => s.ServiceId == request.ServiceId) .WhereIf(request.ServiceOrderState != null, (s, o, osku) => s.Status == request.ServiceOrderState) + .WhereIf(request.ServiceOrderState == null, (s, o, osku) => s.Status != Model.Enums.ServiceOrderState.已取消) .WhereIf(request.ReturnDirection != null, (s, o, osku) => s.ReturnDirection == request.ReturnDirection) .WhereIf(request.StartDate != null, (s, o, osku) => s.ApplyTime >= request.StartDate) .WhereIf(request.EndDate != null, (s, o, osku) => s.ApplyTime <= request.EndDate) From bfc8afa44b283c17615a2a9b1fe87cbd48637b47 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 2 Apr 2023 00:37:35 +0800 Subject: [PATCH 05/16] 1 --- BBWY.Test/Program.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index d89d7415..fcb6c24b 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -1,12 +1,6 @@ -using Jd.ACES; -using Jd.Api; -using Jd.Api.Request; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; +using Jd.Api; using System; -using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Security.Cryptography; using System.Text; From 8a82beece72b3598035f76407762bea222262a17 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 2 Apr 2023 00:57:57 +0800 Subject: [PATCH 06/16] =?UTF-8?q?1)=20=E8=AE=A2=E5=8D=95=E8=A1=A8=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5IsGift,=E6=98=AF=E5=90=A6=E4=B8=BA?= =?UTF-8?q?=E8=B5=A0=E5=93=81=202)=20=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E8=B5=A0=E5=93=81=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Order/OrderBusiness.cs | 4 +++- BBWY.Server.Model/Db/Order/Order.cs | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 48fa7d9e..59f0c485 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -86,7 +86,8 @@ namespace BBWY.Server.Business } select = select.WhereIf(searchOrderRequest.ShopId != null, (o, ocs, oct, sh) => o.ShopId == searchOrderRequest.ShopId) - .WhereIf(!string.IsNullOrEmpty(searchOrderRequest.SDOperator), (o, ocs, oct, sh) => o.SDOperator == searchOrderRequest.SDOperator); + .WhereIf(!string.IsNullOrEmpty(searchOrderRequest.SDOperator), (o, ocs, oct, sh) => o.SDOperator == searchOrderRequest.SDOperator) + .Where((o, ocs, oct, sh) => o.IsGift == false); //select = select.Where((o, ocs, oct) => o.ShopId == searchOrderRequest.ShopId); @@ -276,6 +277,7 @@ namespace BBWY.Server.Business select = select.WhereIf(searchOrderRequest.ShopId != null, (o, ocs, oct) => o.ShopId == searchOrderRequest.ShopId) .WhereIf(!string.IsNullOrEmpty(searchOrderRequest.SDOperator), (o, ocs, oct) => o.SDOperator == searchOrderRequest.SDOperator) + .Where((o, ocs, oct) => o.IsGift == false) .OrderByDescending((o, ocs, oct) => o.StartTime); var orderSourceList = select.ToList((o, ocs, oct) => new ExportOrderResponse() diff --git a/BBWY.Server.Model/Db/Order/Order.cs b/BBWY.Server.Model/Db/Order/Order.cs index 1ed909df..e6649953 100644 --- a/BBWY.Server.Model/Db/Order/Order.cs +++ b/BBWY.Server.Model/Db/Order/Order.cs @@ -179,6 +179,12 @@ namespace BBWY.Server.Model.Db [Column(DbType = "bit")] public bool IsAfterSaleOrder { get; set; } = false; + /// + /// 是否为赠品 + /// + [Column(DbType = "bit")] + public bool IsGift { get; set; } = false; + #region 订单成本 /// /// 平台扣点金额 From a4112750fea8c9c99eb57236099eddaab4ebd2b9 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 2 Apr 2023 01:01:56 +0800 Subject: [PATCH 07/16] 1 --- BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs index 965ba98f..00b4f497 100644 --- a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs +++ b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs @@ -21,6 +21,7 @@ namespace BBWY.Server.Business request.EndTime = request.EndTime.Date.AddDays(1).AddSeconds(-1); var orderList = fsql.Select() .Where(o => request.ShopIds.Contains(o.ShopId) && o.StartTime >= request.StartTime && o.StartTime <= request.EndTime) + .Where(o => o.IsGift == false) .OrderBy(o => o.StartTime) .ToList(o => new BillCorrectionOrderResponse { @@ -113,7 +114,7 @@ namespace BBWY.Server.Business var currentOrderAfterOrderList = afterOrderList.Where(aso => aso.OrderId == billCorrectionRequest.OrderId).ToList(); orderCost.DeliveryExpressFreight = billCorrectionRequest.NewDeliveryExpressFreight; - + if (order.StorageType != Model.Enums.StorageType.SD) { orderCost.CalculationOrderProfitAndCost(order, currentOrderAfterOrderList); From c09ece6e415ee10acb2b2a89afcd2a94a8e7093d Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 2 Apr 2023 14:47:28 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E7=9A=84=E5=BE=85=E4=BB=98=E6=AC=BE=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderSyncController.cs | 9 ++ .../Sync/OrderSkuSaleDetailSyncBusiness.cs | 80 ------------ .../Sync/OrderSyncBusiness.cs | 123 +++--------------- BBWY.Server.Model/Db/Order/GiftOrder.cs | 34 ----- BBWY.Server.Model/Db/Order/GiftOrderSku.cs | 36 ----- JD.API/Controllers/PlatformSDKController.cs | 2 +- 6 files changed, 29 insertions(+), 255 deletions(-) delete mode 100644 BBWY.Server.Model/Db/Order/GiftOrder.cs delete mode 100644 BBWY.Server.Model/Db/Order/GiftOrderSku.cs diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs index 0661e0c0..3655d8a3 100644 --- a/BBWY.Server.API/Controllers/OrderSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderSyncController.cs @@ -85,5 +85,14 @@ namespace BBWY.Server.API.Controllers { orderSyncBusiness.CheckJDPauseOrder(shopId); } + + /// + /// 删除过期的待付款订单 + /// + [HttpPost] + public void DeleteTimeOutWaitPayOrder() + { + orderSyncBusiness.DeleteTimeOutWaitPayOrder(); + } } } diff --git a/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs index d8d7006e..0252010d 100644 --- a/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs @@ -88,59 +88,6 @@ namespace BBWY.Server.Business CancelItemTotal = (int)g.Sum(g.Value.Item1.ItemTotal) }); - var giftOskuGroups = fsql.Select() - .InnerJoin((gos, go) => gos.GiftOrderId == go.Id) - .WhereIf(shopId != null, (gos, go) => go.ShopId == shopId) - .Where((gos, go) => go.StartTime >= startDate && go.StartTime <= endTime) - //.Where((gos, go) => go.OrderState != Model.Enums.OrderState.已取消) - .GroupBy((gos, go) => new - { - go.Platform, - go.ShopId, - gos.ProductId, - gos.SkuId, - gos.Price, - go.StartTime.Value.Date - }) - .ToList(g => new SkuDailySalesDetail - { - Platform = g.Key.Platform, - ShopId = g.Key.ShopId, - Spu = g.Key.ProductId, - Sku = g.Key.SkuId, - Date = g.Key.Date, - Price = g.Key.Price, - Amount = g.Sum(g.Value.Item1.Price * g.Value.Item1.ItemTotal), - ItemTotal = (int)g.Sum(g.Value.Item1.ItemTotal) - }); - - var cancelGiftOskuGroups = fsql.Select() - .InnerJoin((gos, go) => gos.GiftOrderId == go.Id) - .WhereIf(shopId != null, (gos, go) => go.ShopId == shopId) - .Where((gos, go) => go.ModifyTime >= startDate && go.ModifyTime <= endTime) - .Where((gos, go) => go.OrderState == Model.Enums.OrderState.已取消) - .GroupBy((gos, go) => new - { - go.Platform, - go.ShopId, - gos.ProductId, - gos.SkuId, - gos.Price, - go.ModifyTime.Value.Date - }) - .ToList(g => new SkuDailySalesDetail - { - Platform = g.Key.Platform, - ShopId = g.Key.ShopId, - Spu = g.Key.ProductId, - Sku = g.Key.SkuId, - Date = g.Key.Date, - Price = g.Key.Price, - Amount = 0, - ItemTotal = 0, - CancelItemTotal = (int)g.Sum(g.Value.Item1.ItemTotal) - }); - insertSkuDailySalesDetailList.AddRange(oskuGroups); foreach (var canceloSkuGroup in cancelOskuGroups) @@ -154,33 +101,6 @@ namespace BBWY.Server.Business insertSkuDailySalesDetailList.Add(canceloSkuGroup); } - foreach (var giftOskuGroup in giftOskuGroups) - { - var skuDaily = insertSkuDailySalesDetailList.FirstOrDefault(s => s.ShopId == giftOskuGroup.ShopId && - s.Date == giftOskuGroup.Date && - s.Sku == giftOskuGroup.Sku); - if (skuDaily != null) - { - skuDaily.ItemTotal += giftOskuGroup.ItemTotal; - skuDaily.Amount += giftOskuGroup.Amount; - } - else - insertSkuDailySalesDetailList.Add(giftOskuGroup); - } - - - foreach (var cancelGiftOskuGroup in cancelGiftOskuGroups) - { - var skuDaily = insertSkuDailySalesDetailList.FirstOrDefault(s => s.ShopId == cancelGiftOskuGroup.ShopId && - s.Date == cancelGiftOskuGroup.Date && - s.Sku == cancelGiftOskuGroup.Sku); - if (skuDaily != null) - skuDaily.CancelItemTotal = cancelGiftOskuGroup.CancelItemTotal; - else - insertSkuDailySalesDetailList.Add(cancelGiftOskuGroup); - } - - if (insertSkuDailySalesDetailList.Count() > 0) { var noSpuSkuIds = insertSkuDailySalesDetailList.Where(s => string.IsNullOrEmpty(s.Spu)).Select(s => s.Sku).Distinct().ToList(); diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index f345e429..c6c8ad30 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -192,10 +192,9 @@ namespace BBWY.Server.Business private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) { - //if (shopId == 10388155) - //{ - // nLogManager.GetLogger("订单同步-布莱特玩具专营店").Info(JsonConvert.SerializeObject(orderTokenJArray)); - //} + var validOrders = orderTokenJArray.Where(o => o.Value("orderState") != "NOT_PAY"); + if (validOrders.Count() == 0) + return; #region 数据库操作 List insertOrderList = new List(); @@ -205,91 +204,14 @@ namespace BBWY.Server.Business List insertOrderSkuList = new List(); List insertOrderCouponList = new List(); - List insertGiftOrderList = new List(); - List insertGiftOrderSkuList = new List(); - IList> updateGiftOrderList = new List>(); - IList> updateOrderList = new List>(); IList> updatePurchaseOrderList = new List>(); #endregion - #region 赠品 - var giftOrderJArray = orderTokenJArray.Where(o => o.Value("orderTotalPrice") == 0M); - if (giftOrderJArray.Count() > 0) - { - var giftOrderIds = giftOrderJArray.Select(orderJToken => orderJToken.Value("orderId")).ToArray(); - var dbGiftOrderList = fsql.Select(giftOrderIds).ToList(); - var dbGiftOrderIds = dbGiftOrderList.Select(go => go.Id).ToList(); - - var exceptIds = giftOrderIds.Except(dbGiftOrderIds); - if (exceptIds.Count() > 0) - { - var newGiftOrderJArray = giftOrderJArray.Where(o => exceptIds.Contains(o.Value("orderId"))); - foreach (var orderJToken in newGiftOrderJArray) - { - var orderState = ConvertOrderState(orderJToken); - if (orderState == Enums.OrderState.待付款 || orderState == Enums.OrderState.已取消) - continue; - var orderStartTime = orderJToken.Value("orderStartTime"); - var modifyTime = orderJToken.Value("modified"); - insertGiftOrderList.Add(new GiftOrder() - { - Id = orderJToken.Value("orderId"), - CreateTime = DateTime.Now, - Platform = Enums.Platform.京东, - ShopId = shopId, - StartTime = orderStartTime, - ModifyTime = modifyTime, - OrderState = orderState - }); - - var itemInfoList = orderJToken["itemInfoList"] as JArray; - foreach (var orderSkuJToken in itemInfoList) - { - var itemTotal = orderSkuJToken.Value("itemTotal"); - var jdPrice = orderSkuJToken.Value("jdPrice"); - var wareId = orderSkuJToken.Value("wareId"); - var skuId = orderSkuJToken.Value("skuId"); - insertGiftOrderSkuList.Add(new GiftOrderSku() - { - Id = idGenerator.NewLong(), - CreateTime = DateTime.Now, - GiftOrderId = orderJToken.Value("orderId"), - ItemTotal = itemTotal, - Price = jdPrice, - ProductId = wareId, - ShopId = shopId, - SkuId = skuId - }); - } - } - } - - var intersectIds = giftOrderIds.Intersect(dbGiftOrderIds); - if (intersectIds.Count() > 0) - { - foreach (var intersercId in intersectIds) - { - var orderJToken = giftOrderJArray.FirstOrDefault(o => o.Value("orderId") == intersercId); - var dbGiftOrder = dbGiftOrderList.FirstOrDefault(o => o.Id == intersercId); - var orderState = ConvertOrderState(orderJToken); - if (orderState != null && orderState != dbGiftOrder.OrderState) - { - var modifyTime = orderJToken.Value("modified"); - var update = fsql.Update(intersercId).Set(go => go.OrderState, orderState) - .Set(go => go.ModifyTime, modifyTime); - updateGiftOrderList.Add(update); - } - } - } - } - #endregion - - var noGiftOrderList = orderTokenJArray.Where(o => o.Value("orderTotalPrice") != 0M); - var interfaceOrderIdList = noGiftOrderList.Select(orderJToken => orderJToken.Value("orderId")); - var interfaceCanceledOrderIdList = noGiftOrderList.Where(orderJToken => orderJToken.Value("orderState").Equals("TRADE_CANCELED")) - .Select(orderJToken => orderJToken.Value("orderId")); //接口查询结果中取消状态的订单Id + var interfaceOrderIdList = validOrders.Select(orderJToken => orderJToken.Value("orderId")); + var interfaceCanceledOrderIdList = validOrders.Where(orderJToken => orderJToken.Value("orderState").Equals("TRADE_CANCELED")) + .Select(orderJToken => orderJToken.Value("orderId")); //接口查询结果中取消状态的订单Id var dbOrderList = fsql.Select().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order() { @@ -309,7 +231,7 @@ namespace BBWY.Server.Business } var orderSkuIds = new List(); - foreach (var orderJToken in noGiftOrderList) + foreach (var orderJToken in validOrders) { var itemInfoList = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value("jdPrice") != 0M); foreach (var josku in itemInfoList) @@ -319,13 +241,13 @@ namespace BBWY.Server.Business orderSkuIds.Add(skuId); } } - var dbPurchaseOrderList = fsql.Select().Where(po => po.RemainingQuantity != 0 && orderSkuIds.Contains(po.SkuId)).ToList(); //数据库采购单 + var dbPurchaseOrderList = fsql.Select().Where(po => po.ShopId == shopId && po.RemainingQuantity != 0 && orderSkuIds.Contains(po.SkuId)).ToList(); //数据库采购单 orderSkuIds.Clear(); - foreach (var orderJToken in noGiftOrderList) + foreach (var orderJToken in validOrders) { var orderId = orderJToken.Value("orderId"); - if (insertOrderList.Count(o => o.Id == orderId) > 0) + if (insertOrderList.Any(o => o.Id == orderId)) continue; var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId); var isNewOrder = dbOrder == null; @@ -358,7 +280,8 @@ namespace BBWY.Server.Business //VenderId = orderJToken.Value("venderId"), WaybillNo = waybillNo, StoreOrder = orderJToken.Value("storeOrder") ?? string.Empty, - StoreId = orderJToken.Value("storeId") + StoreId = orderJToken.Value("storeId"), + IsGift = orderJToken.Value("orderTotalPrice") == 0M || orderJToken.Value("orderSellerPrice") == 0M }; if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) @@ -620,6 +543,7 @@ namespace BBWY.Server.Business if (isNewOrder) { dbOrder.OrderState = orderState; + //dbOrder.IsGift = } else if ((orderState != null && orderState != dbOrder.OrderState) || buyerRemark != dbOrder.BuyerRemark || @@ -684,8 +608,6 @@ namespace BBWY.Server.Business } #endregion - - fsql.Transaction(() => { if (insertOrderList.Count() > 0) @@ -701,11 +623,6 @@ namespace BBWY.Server.Business if (insertOrderCouponList.Count() > 0) fsql.Insert(insertOrderCouponList).ExecuteAffrows(); - if (insertGiftOrderList.Count() > 0) - fsql.Insert(insertGiftOrderList).ExecuteAffrows(); - if (insertGiftOrderSkuList.Count() > 0) - fsql.Insert(insertGiftOrderSkuList).ExecuteAffrows(); - if (updatePurchaseOrderList.Count() > 0) { foreach (var update in updatePurchaseOrderList) @@ -717,13 +634,6 @@ namespace BBWY.Server.Business foreach (var update in updateOrderList) update.ExecuteAffrows(); } - - if (updateGiftOrderList.Count() > 0) - { - foreach (var update in updateGiftOrderList) - update.ExecuteAffrows(); - } - }); } @@ -838,7 +748,7 @@ namespace BBWY.Server.Business #region 同步暂停订单 public void CheckJDPauseOrder(long? shopId) { - var shopList = venderBusiness.GetShopList(shopId); + var shopList = venderBusiness.GetShopList(shopId, platform: Enums.Platform.京东); var shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList(); var deleteRow = fsql.Select().Where(wo => shopIds.Contains(wo.ShopId.Value)) @@ -869,6 +779,11 @@ namespace BBWY.Server.Business } } + public void DeleteTimeOutWaitPayOrder() + { + var deleteTime = DateTime.Now.AddHours(-24); + fsql.Delete().Where(w => w.CreateTime <= deleteTime).ExecuteAffrows(); + } #endregion } } diff --git a/BBWY.Server.Model/Db/Order/GiftOrder.cs b/BBWY.Server.Model/Db/Order/GiftOrder.cs deleted file mode 100644 index e10ad540..00000000 --- a/BBWY.Server.Model/Db/Order/GiftOrder.cs +++ /dev/null @@ -1,34 +0,0 @@ -using FreeSql.DataAnnotations; -using System; - -namespace BBWY.Server.Model.Db -{ - - [Table(Name = "giftorder", DisableSyncStructure = true)] - public partial class GiftOrder - { - - [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] - public string Id { get; set; } - - [Column(DbType = "datetime")] - public DateTime? CreateTime { get; set; } - - [Column(DbType = "datetime")] - public DateTime? ModifyTime { get; set; } - - [Column(MapType = typeof(int?))] - public Enums.OrderState? OrderState { get; set; } - - [Column(MapType = typeof(int))] - public Enums.Platform Platform { get; set; } - - - public long ShopId { get; set; } - - [Column(DbType = "datetime")] - public DateTime? StartTime { get; set; } - - } - -} diff --git a/BBWY.Server.Model/Db/Order/GiftOrderSku.cs b/BBWY.Server.Model/Db/Order/GiftOrderSku.cs deleted file mode 100644 index 461039b3..00000000 --- a/BBWY.Server.Model/Db/Order/GiftOrderSku.cs +++ /dev/null @@ -1,36 +0,0 @@ -using FreeSql.DataAnnotations; -using System; - -namespace BBWY.Server.Model.Db -{ - - [Table(Name = "giftordersku", DisableSyncStructure = true)] - public partial class GiftOrderSku { - - [Column(DbType = "datetime")] - public DateTime? CreateTime { get; set; } - - [Column(StringLength = 50)] - public string GiftOrderId { get; set; } - - - public long? Id { get; set; } - - - public int? ItemTotal { get; set; } - - [Column(DbType = "decimal(18,2)")] - public decimal? Price { get; set; } - - [Column(StringLength = 50)] - public string ProductId { get; set; } - - - public long? ShopId { get; set; } - - [Column(StringLength = 50)] - public string SkuId { get; set; } - - } - -} diff --git a/JD.API/Controllers/PlatformSDKController.cs b/JD.API/Controllers/PlatformSDKController.cs index 3e49f5f9..5436dbba 100644 --- a/JD.API/Controllers/PlatformSDKController.cs +++ b/JD.API/Controllers/PlatformSDKController.cs @@ -16,7 +16,7 @@ namespace JD.API.API.Controllers [Produces("application/json")] [Route("Api/[Controller]/[Action]")] [ApiController] - [ServiceFilter(typeof(YunDingFilter))] + //[ServiceFilter(typeof(YunDingFilter))] public class PlatformSDKController : ControllerBase { private IEnumerable platformSDKBusinessList; From b55741f50cb8da3685e5d01363bf8e44ae686e1d Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 3 Apr 2023 14:28:57 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E5=B8=83=E8=8E=B1=E7=89=B9=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderSyncBusiness.cs | 45 +++++++++++++++---- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index c6c8ad30..6f8e37e5 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -125,6 +125,16 @@ namespace BBWY.Server.Business if (orderListResponse.Data == null || orderListResponse.Data.Count == 0) return; + + if (shopId == 10388155) + { + try + { + nLogManager.GetLogger($"订单同步-{shop.ShopName}").Info(orderListApiResult.Content); + } + catch { } + } + syncOrderMethodDic[shop.PlatformId](orderListResponse.Data, shopId, relayAPIHost, shop.AppKey, shop.AppSecret, shop.AppToken, shop.PlatformCommissionRatio ?? 0.05M); } catch (Exception ex) @@ -259,6 +269,12 @@ namespace BBWY.Server.Business var modifyTime = orderJToken.Value("modified"); var endTime = orderJToken.Value("orderEndTime"); var waybillNo = orderJToken.Value("waybill"); + var freightPrice = orderJToken.Value("freightPrice"); + var orderPayment = orderJToken.Value("orderPayment"); + var sellerPreferentialAmount = orderJToken.Value("sellerDiscount"); + var orderSellerPrice = orderJToken.Value("orderSellerPrice"); + var orderTotalPrice = orderJToken.Value("orderTotalPrice"); + if (dbOrder == null) { dbOrder = new Order() @@ -266,14 +282,14 @@ namespace BBWY.Server.Business Id = orderId, BuyerRemark = buyerRemark, VenderRemark = venderRemark, - FreightPrice = orderJToken.Value("freightPrice"), + FreightPrice = freightPrice, EndTime = endTime, StartTime = orderJToken.Value("orderStartTime"), ModifyTime = modifyTime, - OrderPayment = orderJToken.Value("orderPayment"), - SellerPreferentialAmount = orderJToken.Value("sellerDiscount"), - OrderSellerPrice = orderJToken.Value("orderSellerPrice"), - OrderTotalPrice = orderJToken.Value("orderTotalPrice"), + OrderPayment = orderPayment, + SellerPreferentialAmount = sellerPreferentialAmount, + OrderSellerPrice = orderSellerPrice, + OrderTotalPrice = orderTotalPrice, OrderType = (Enums.OrderType)orderJToken.Value("orderType"), Platform = Enums.Platform.京东, ShopId = shopId, @@ -281,7 +297,7 @@ namespace BBWY.Server.Business WaybillNo = waybillNo, StoreOrder = orderJToken.Value("storeOrder") ?? string.Empty, StoreId = orderJToken.Value("storeId"), - IsGift = orderJToken.Value("orderTotalPrice") == 0M || orderJToken.Value("orderSellerPrice") == 0M + IsGift = orderTotalPrice == 0M || orderSellerPrice == 0M }; if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) @@ -415,7 +431,7 @@ namespace BBWY.Server.Business orderState != Enums.OrderState.已取消) { var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); - if (orderCost == null) + if (orderCost == null && orderTotalPrice > 0M) { if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) { @@ -550,14 +566,25 @@ namespace BBWY.Server.Business venderRemark != dbOrder.VenderRemark || modifyTime != dbOrder.ModifyTime || endTime != dbOrder.EndTime || - waybillNo != dbOrder.WaybillNo) + waybillNo != dbOrder.WaybillNo || + freightPrice != dbOrder.FreightPrice || + orderPayment != dbOrder.OrderPayment || + sellerPreferentialAmount != dbOrder.SellerPreferentialAmount || + orderSellerPrice != dbOrder.OrderSellerPrice || + orderTotalPrice != dbOrder.OrderTotalPrice) { var updateSql = fsql.Update(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState) .SetIf(buyerRemark != dbOrder.BuyerRemark, o => o.BuyerRemark, buyerRemark) .SetIf(venderRemark != dbOrder.VenderRemark, o => o.VenderRemark, venderRemark) .SetIf(modifyTime != dbOrder.ModifyTime, o => o.ModifyTime, modifyTime) .SetIf(endTime != dbOrder.EndTime, o => o.EndTime, modifyTime) - .SetIf(waybillNo != dbOrder.WaybillNo, o => o.WaybillNo, waybillNo); + .SetIf(waybillNo != dbOrder.WaybillNo, o => o.WaybillNo, waybillNo) + .SetIf(freightPrice != dbOrder.FreightPrice, o => o.FreightPrice, freightPrice) + .SetIf(orderPayment != dbOrder.OrderPayment, o => o.OrderPayment, orderPayment) + .SetIf(sellerPreferentialAmount != dbOrder.SellerPreferentialAmount, o => o.SellerPreferentialAmount, sellerPreferentialAmount) + .SetIf(orderSellerPrice != dbOrder.OrderSellerPrice, o => o.OrderSellerPrice, orderSellerPrice) + .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice, o => o.OrderTotalPrice, orderTotalPrice) + .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false); updateOrderList.Add(updateSql); } #endregion From 08b3c48cd623214ca544a3c861d701e1ed185ebf Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 3 Apr 2023 16:38:03 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E8=BF=87=E6=BB=A4=E4=B8=8D=E8=AE=A4?= =?UTF-8?q?=E8=AF=86=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 6f8e37e5..6e7cad25 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -28,6 +28,8 @@ namespace BBWY.Server.Business private IMemoryCache memoryCache; + private IList validOrderState; + public OrderSyncBusiness(RestApiService restApiService, IOptions options, @@ -51,6 +53,10 @@ namespace BBWY.Server.Business { { Enums.Platform.京东, SyncJDOrder } }; + this.validOrderState = new List() + { + "WAIT_SELLER_STOCK_OUT","WAIT_GOODS_RECEIVE_CONFIRM","FINISHED_L","LOCKED","TRADE_CANCELED","POP_ORDER_PAUSE","PAUSE" + }; } /// /// 手动同步订单 @@ -202,7 +208,7 @@ namespace BBWY.Server.Business private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) { - var validOrders = orderTokenJArray.Where(o => o.Value("orderState") != "NOT_PAY"); + var validOrders = orderTokenJArray.Where(o => validOrderState.Contains(o.Value("orderState"))); if (validOrders.Count() == 0) return; From 4af0c8934497837da21c7284f7d9f58fa7b6de86 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 3 Apr 2023 17:21:12 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderSyncController.cs | 11 +++++++++++ BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/BBWY.Server.API/Controllers/OrderSyncController.cs b/BBWY.Server.API/Controllers/OrderSyncController.cs index 3655d8a3..9598fd0f 100644 --- a/BBWY.Server.API/Controllers/OrderSyncController.cs +++ b/BBWY.Server.API/Controllers/OrderSyncController.cs @@ -47,6 +47,16 @@ namespace BBWY.Server.API.Controllers orderSyncBusiness.ManualSyncOrder(shopId, orderIds, null, null); } + /// + /// 订单批量删除 + /// + /// + /// + [HttpPost("{shopId}")] + public void OrderDelete([FromRoute]long shopId, [FromBody]IList orderIds) + { + orderSyncBusiness.OrderDelete(shopId, orderIds); + } /// /// 根据日期同步 @@ -94,5 +104,6 @@ namespace BBWY.Server.API.Controllers { orderSyncBusiness.DeleteTimeOutWaitPayOrder(); } + } } diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 6e7cad25..1a15c5c5 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -16,6 +16,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Net.Http; +using System.Security.Cryptography; using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -752,6 +753,20 @@ namespace BBWY.Server.Business return orderState; } + public void OrderDelete(long ShopId, IList orderIds) + { + fsql.Transaction(() => + { + fsql.Delete().Where(o => o.ShopId == ShopId && orderIds.Contains(o.Id)).ExecuteAffrows(); + fsql.Delete().Where(osku => orderIds.Contains(osku.OrderId)).ExecuteAffrows(); + fsql.Delete().Where(ocd => orderIds.Contains(ocd.OrderId)).ExecuteAffrows(); + fsql.Delete().Where(oc => orderIds.Contains(oc.OrderId)).ExecuteAffrows(); + fsql.Delete().Where(ods => orderIds.Contains(ods.OrderId)).ExecuteAffrows(); + fsql.Delete().Where(ocs => orderIds.Contains(ocs.OrderId)).ExecuteAffrows(); + fsql.Delete().Where(oc => orderIds.Contains(oc.OrderId)).ExecuteAffrows(); + }); + } + /// /// 接收订单推送 /// From 92d2701a7c5635a10206f3bcdabb911e319fa25b Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 3 Apr 2023 19:54:22 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E4=BA=AC=E4=BA=91=E4=BB=93=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderSyncBusiness.cs | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 1a15c5c5..88ebb880 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -281,7 +281,7 @@ namespace BBWY.Server.Business var sellerPreferentialAmount = orderJToken.Value("sellerDiscount"); var orderSellerPrice = orderJToken.Value("orderSellerPrice"); var orderTotalPrice = orderJToken.Value("orderTotalPrice"); - + var storeOrder = orderJToken.Value("storeOrder") ?? string.Empty; if (dbOrder == null) { dbOrder = new Order() @@ -302,7 +302,7 @@ namespace BBWY.Server.Business ShopId = shopId, //VenderId = orderJToken.Value("venderId"), WaybillNo = waybillNo, - StoreOrder = orderJToken.Value("storeOrder") ?? string.Empty, + StoreOrder = storeOrder, StoreId = orderJToken.Value("storeId"), IsGift = orderTotalPrice == 0M || orderSellerPrice == 0M }; @@ -320,10 +320,7 @@ namespace BBWY.Server.Business dbOrder.SDPayChannel = sDCalculationCostRequest.SDPayChannel; } - if (dbOrder.StoreOrder.Contains("京仓")) - dbOrder.StorageType = Enums.StorageType.京仓; - else if (dbOrder.StoreOrder.Contains("云仓")) - dbOrder.StorageType = Enums.StorageType.云仓; + dbOrder.StorageType = ConvertStoreOrder(storeOrder); var payType = orderJToken.Value("payType"); if (payType.Contains("-")) @@ -566,7 +563,6 @@ namespace BBWY.Server.Business if (isNewOrder) { dbOrder.OrderState = orderState; - //dbOrder.IsGift = } else if ((orderState != null && orderState != dbOrder.OrderState) || buyerRemark != dbOrder.BuyerRemark || @@ -578,7 +574,8 @@ namespace BBWY.Server.Business orderPayment != dbOrder.OrderPayment || sellerPreferentialAmount != dbOrder.SellerPreferentialAmount || orderSellerPrice != dbOrder.OrderSellerPrice || - orderTotalPrice != dbOrder.OrderTotalPrice) + orderTotalPrice != dbOrder.OrderTotalPrice || + storeOrder != dbOrder.StoreOrder) { var updateSql = fsql.Update(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState) .SetIf(buyerRemark != dbOrder.BuyerRemark, o => o.BuyerRemark, buyerRemark) @@ -591,7 +588,8 @@ namespace BBWY.Server.Business .SetIf(sellerPreferentialAmount != dbOrder.SellerPreferentialAmount, o => o.SellerPreferentialAmount, sellerPreferentialAmount) .SetIf(orderSellerPrice != dbOrder.OrderSellerPrice, o => o.OrderSellerPrice, orderSellerPrice) .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice, o => o.OrderTotalPrice, orderTotalPrice) - .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false); + .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false) + .SetIf(storeOrder != dbOrder.StoreOrder && dbOrder.StorageType == null, o => o.StorageType, ConvertStoreOrder(storeOrder)); updateOrderList.Add(updateSql); } #endregion @@ -671,6 +669,17 @@ namespace BBWY.Server.Business }); } + private Enums.StorageType? ConvertStoreOrder(string storeOrder) + { + if (string.IsNullOrEmpty(storeOrder)) + return null; + if (storeOrder.Contains("京仓")) + return Enums.StorageType.京仓; + else if (storeOrder.Contains("云仓")) + return Enums.StorageType.云仓; + return null; + } + /// /// 同步所有店铺的订单 /// From 2373c8836ff08c9978d77bf559521763e3c6691a Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 4 Apr 2023 00:59:45 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 16 ++++++++++++++-- BBWY.Test/Program.cs | 12 +++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 88ebb880..0af8121b 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -230,11 +230,23 @@ namespace BBWY.Server.Business var interfaceCanceledOrderIdList = validOrders.Where(orderJToken => orderJToken.Value("orderState").Equals("TRADE_CANCELED")) .Select(orderJToken => orderJToken.Value("orderId")); //接口查询结果中取消状态的订单Id - var dbOrderList = fsql.Select().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order() + + var dbOrderList = fsql.Select().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order { Id = o.Id, OrderState = o.OrderState, - StorageType = o.StorageType + StorageType = o.StorageType, + BuyerRemark = o.BuyerRemark, + VenderRemark = o.VenderRemark, + ModifyTime = o.ModifyTime, + EndTime = o.EndTime, + WaybillNo = o.WaybillNo, + FreightPrice = o.FreightPrice, + OrderPayment = o.OrderPayment, + SellerPreferentialAmount = o.SellerPreferentialAmount, + OrderSellerPrice = o.OrderSellerPrice, + OrderTotalPrice = o.OrderTotalPrice, + StoreOrder = o.StoreOrder }); //数据库订单 var dbOrderConsigneeList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单收货信息 var dbOrderCostList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单成本信息 diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index fcb6c24b..f111c6f1 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -1,4 +1,5 @@ using Jd.Api; +using Jd.Api.Request; using System; using System.Linq; using System.Security.Cryptography; @@ -31,13 +32,14 @@ namespace BBWY.Test var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 - var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具 + //var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //布莱特玩具 //var token = "01f5be2cb4d741dda66bce2356941597mdfm"; //布莱特玩具 token2 //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛 //var token = "9fffa982da23446fb035499ae5622f49odjk"; //腾奇 //var token = "c22ff4d37b6c4bbd82cd9e8d0dab42dbziyz"; //森王车品 //var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具 //var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品 + var token = "50a4c0f5c55848b5a8a715709e8d6fe0jntb"; //卿卿玩具专营店 //var dt1 = DateTime.Now; //List list = new List(); @@ -53,7 +55,15 @@ namespace BBWY.Test var jdClient = GetJdClient(appkey, appSecret); + var req = new AscFreightViewRequest(); + req.buId = "11926867"; + req.operatePin = "开发测试"; + req.operateNick = "开发测试"; + req.serviceId = 1701316861; + req.orderId = 264691201058; + + var res = jdClient.Execute(req,token, DateTime.Now.ToLocalTime()); Console.ReadKey(); } From 0bd90a73e2f146db0bc5383e84aef6c8d980b6f4 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 4 Apr 2023 12:31:42 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9StorageType=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 0af8121b..ce214008 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -294,6 +294,7 @@ namespace BBWY.Server.Business var orderSellerPrice = orderJToken.Value("orderSellerPrice"); var orderTotalPrice = orderJToken.Value("orderTotalPrice"); var storeOrder = orderJToken.Value("storeOrder") ?? string.Empty; + var storageType = ConvertStoreOrder(storeOrder); if (dbOrder == null) { dbOrder = new Order() @@ -316,7 +317,8 @@ namespace BBWY.Server.Business WaybillNo = waybillNo, StoreOrder = storeOrder, StoreId = orderJToken.Value("storeId"), - IsGift = orderTotalPrice == 0M || orderSellerPrice == 0M + IsGift = orderTotalPrice == 0M || orderSellerPrice == 0M, + StorageType = storageType }; if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) @@ -332,8 +334,6 @@ namespace BBWY.Server.Business dbOrder.SDPayChannel = sDCalculationCostRequest.SDPayChannel; } - dbOrder.StorageType = ConvertStoreOrder(storeOrder); - var payType = orderJToken.Value("payType"); if (payType.Contains("-")) dbOrder.PayType = (Enums.PayType)Convert.ToInt32(payType.Substring(0, 1)); @@ -370,6 +370,11 @@ namespace BBWY.Server.Business } #endregion } + else + { + if (storageType != null && dbOrder.StorageType != storageType) + dbOrder.StorageType = storageType; + } #endregion #region 收货人信息 @@ -601,7 +606,8 @@ namespace BBWY.Server.Business .SetIf(orderSellerPrice != dbOrder.OrderSellerPrice, o => o.OrderSellerPrice, orderSellerPrice) .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice, o => o.OrderTotalPrice, orderTotalPrice) .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false) - .SetIf(storeOrder != dbOrder.StoreOrder && dbOrder.StorageType == null, o => o.StorageType, ConvertStoreOrder(storeOrder)); + .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StoreOrder, storeOrder) + .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, ConvertStoreOrder(storeOrder)); updateOrderList.Add(updateSql); } #endregion From 4aeefeda8a154482a41efd7e734ffb313ee78d1b Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 4 Apr 2023 12:33:53 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Sync/OrderSyncBusiness.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index ce214008..87fac13c 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -607,7 +607,7 @@ namespace BBWY.Server.Business .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice, o => o.OrderTotalPrice, orderTotalPrice) .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false) .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StoreOrder, storeOrder) - .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, ConvertStoreOrder(storeOrder)); + .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, storageType); updateOrderList.Add(updateSql); } #endregion From 039a451651010bac3191f4640e2ff326a7a17474 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 4 Apr 2023 15:17:15 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=20=E4=BB=93=E5=BA=93Id=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=AC=E4=BA=91?= =?UTF-8?q?=E4=BB=93=E8=B4=9F=E5=88=A9=E6=B6=A6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/OrderCostExtension.cs | 19 +++++++++++ .../Sync/OrderSyncBusiness.cs | 33 +++++++++++-------- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/BBWY.Server.Business/Extensions/OrderCostExtension.cs b/BBWY.Server.Business/Extensions/OrderCostExtension.cs index c980374f..2111990c 100644 --- a/BBWY.Server.Business/Extensions/OrderCostExtension.cs +++ b/BBWY.Server.Business/Extensions/OrderCostExtension.cs @@ -25,6 +25,25 @@ namespace BBWY.Server.Business.Extensions orderCost.RefundPurchaseAmount; } + public static void CalculationOrderProfitAndCost(this OrderCost orderCost, decimal orderSellerPrice,decimal freightPrice, IList afterSaleOrders) + { + orderCost.AfterTotalCost = afterSaleOrders == null || afterSaleOrders.Count == 0 ? 0M : afterSaleOrders.Sum(aso => aso.AfterTotalCost); + orderCost.RefundAmount = afterSaleOrders == null || afterSaleOrders.Count == 0 ? 0M : afterSaleOrders.Sum(aso => aso.RefundAmount ?? 0M); + orderCost.RefundPurchaseAmount = afterSaleOrders == null || afterSaleOrders.Count == 0M ? 0M : afterSaleOrders.Sum(aso => aso.RefundPurchaseAmount ?? 0); + + //退款之后平台扣点 + orderCost.PlatformCommissionAmount = (orderSellerPrice - orderCost.RefundAmount) * (orderCost.PlatformCommissionRatio); + + orderCost.Profit = orderSellerPrice + freightPrice - orderCost.RefundAmount - + orderCost.PurchaseAmount - + orderCost.DeliveryExpressFreight - + orderCost.PlatformCommissionAmount - + orderCost.AfterTotalCost + + orderCost.RefundPurchaseAmount; + } + + + public static void CalculationSDOrderProfitAndCost(this OrderCost orderCost, Order order, IList afterSaleOrders) { orderCost.AfterTotalCost = afterSaleOrders == null || afterSaleOrders.Count == 0 ? 0M : afterSaleOrders.Sum(aso => aso.AfterTotalCost); diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 87fac13c..4655069d 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -246,7 +246,9 @@ namespace BBWY.Server.Business SellerPreferentialAmount = o.SellerPreferentialAmount, OrderSellerPrice = o.OrderSellerPrice, OrderTotalPrice = o.OrderTotalPrice, - StoreOrder = o.StoreOrder + StoreOrder = o.StoreOrder, + PreferentialAmount = o.PreferentialAmount, + StoreId = o.StoreId }); //数据库订单 var dbOrderConsigneeList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单收货信息 var dbOrderCostList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单成本信息 @@ -294,7 +296,9 @@ namespace BBWY.Server.Business var orderSellerPrice = orderJToken.Value("orderSellerPrice"); var orderTotalPrice = orderJToken.Value("orderTotalPrice"); var storeOrder = orderJToken.Value("storeOrder") ?? string.Empty; + var storeId = orderJToken.Value("storeId"); var storageType = ConvertStoreOrder(storeOrder); + var preferentialAmount = 0M; if (dbOrder == null) { dbOrder = new Order() @@ -316,7 +320,7 @@ namespace BBWY.Server.Business //VenderId = orderJToken.Value("venderId"), WaybillNo = waybillNo, StoreOrder = storeOrder, - StoreId = orderJToken.Value("storeId"), + StoreId = storeId, IsGift = orderTotalPrice == 0M || orderSellerPrice == 0M, StorageType = storageType }; @@ -405,7 +409,8 @@ namespace BBWY.Server.Business var couponType = orderCouponJToken.Value("couponType"); if (string.IsNullOrEmpty(couponType)) continue; - dbOrder.PreferentialAmount += orderCouponJToken.Value("couponPrice"); + //dbOrder.PreferentialAmount += orderCouponJToken.Value("couponPrice"); + preferentialAmount += orderCouponJToken.Value("couponPrice"); insertOrderCouponList.Add(new OrderCoupon() { Id = idGenerator.NewLong(), @@ -555,19 +560,17 @@ namespace BBWY.Server.Business { OrderId = orderId, PlatformCommissionRatio = platformCommissionRatio, - PreferentialAmount = dbOrder.PreferentialAmount, + PreferentialAmount = preferentialAmount, Profit = 0, PurchaseAmount = orderCostPurchaseAmount, DeliveryExpressFreight = orderDeliveryExpressFreight, CreateTime = DateTime.Now }; - orderCost.CalculationOrderProfitAndCost(dbOrder, null); - //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio; - //orderCost.Profit = dbOrder.OrderSellerPrice + - // dbOrder.FreightPrice - - // orderCost.PurchaseAmount - - // orderCost.DeliveryExpressFreight - - // orderCost.PlatformCommissionAmount; + if (dbOrder.OrderTotalPrice != 0) + orderCost.CalculationOrderProfitAndCost(dbOrder, null); + else + orderCost.CalculationOrderProfitAndCost(orderSellerPrice, freightPrice, null); + insertOrderCostList.Add(orderCost); #endregion } @@ -592,7 +595,9 @@ namespace BBWY.Server.Business sellerPreferentialAmount != dbOrder.SellerPreferentialAmount || orderSellerPrice != dbOrder.OrderSellerPrice || orderTotalPrice != dbOrder.OrderTotalPrice || - storeOrder != dbOrder.StoreOrder) + storeOrder != dbOrder.StoreOrder || + preferentialAmount != dbOrder.PreferentialAmount || + storeId != dbOrder.StoreId) { var updateSql = fsql.Update(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState) .SetIf(buyerRemark != dbOrder.BuyerRemark, o => o.BuyerRemark, buyerRemark) @@ -607,7 +612,9 @@ namespace BBWY.Server.Business .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice, o => o.OrderTotalPrice, orderTotalPrice) .SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false) .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StoreOrder, storeOrder) - .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, storageType); + .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, storageType) + .SetIf(preferentialAmount != dbOrder.PreferentialAmount, o => o.PreferentialAmount, preferentialAmount) + .SetIf(storeId != dbOrder.StoreId, o => o.StoreId, storeId); updateOrderList.Add(updateSql); } #endregion