diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index 98dfdce0..5d6a2a0b 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -241,6 +241,7 @@ namespace BBWY.Client.ViewModels public override void Refresh() { + queryShopId = globalContext.User.Shop.ShopId; OrderList.Clear(); if (ToDayOrderAchievement != null) { diff --git a/BBWY.Server.API/Controllers/OrderController.cs b/BBWY.Server.API/Controllers/OrderController.cs index fc1786c1..b0be0659 100644 --- a/BBWY.Server.API/Controllers/OrderController.cs +++ b/BBWY.Server.API/Controllers/OrderController.cs @@ -131,5 +131,16 @@ namespace BBWY.Server.API.Controllers { orderBusiness.EditVenderRemark(editVenderRemarkRequest); } + + /// + /// 刷单组拉取订单 + /// + /// + /// + [HttpPost] + public OrderResponse SDGroupPullOrder([FromBody] SDGroupPullOrderRequest request) + { + return orderBusiness.SDGroupPullOrder(request); + } } } diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 13d7f9cc..4ba81a4e 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -10,6 +10,7 @@ using FreeSql; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; @@ -24,6 +25,10 @@ namespace BBWY.Server.Business private IFreeSql fsql; private IIdGenerator idGenerator; + + private Lazy productBusinessLazy; + private ProductBusiness productBusiness => productBusinessLazy.Value; + private Lazy freeSqlMultiDBManagerLazy; private FreeSqlMultiDBManager freeSqlMultiDBManager => freeSqlMultiDBManagerLazy.Value; @@ -36,6 +41,7 @@ namespace BBWY.Server.Business this.fsql = fsql; this.idGenerator = idGenerator; freeSqlMultiDBManagerLazy = new Lazy(() => serviceProvider.GetService()); + productBusinessLazy = new Lazy(() => serviceProvider.GetService()); } private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest) @@ -977,9 +983,48 @@ namespace BBWY.Server.Business if (orderApiResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException($"获取未付款订单失败 {orderApiResult.Content}"); + var orderJToken = JToken.Parse(orderApiResult.Content); + var orderInfoJToken = orderJToken["Data"]["jingdong_pop_order_notPayOrderById_responce"]["orderDataNotPayInfo"]; + if (orderInfoJToken == null) + throw new BusinessException("未查询到代付款订单"); - } + orderResponse = new OrderResponse() + { + Id = orderInfoJToken["orderId"].ToString(), + ShopId = request.ShopId.ToString(), + OrderStartTime = DateTime.Parse(orderInfoJToken["orderCreated"].ToString()), + ItemList = new List(), + Platform = request.Platform + }; + + var orderSkuIds = string.Join(",", orderInfoJToken["itemList"].Children().Select(j => j.Value("skuId"))); + var skuList = productBusiness.GetProductSkuList(new SearchProductSkuRequest() + { + AppKey = request.AppKey, + AppSecret = request.AppSecret, + AppToken = request.AppToken, + Platform = request.Platform, + Sku = orderSkuIds + }); + foreach (var sku in skuList) + { + if (sku.Price != 0) + { + var num = orderInfoJToken["itemList"].Children().FirstOrDefault(j => j.Value("skuId") == sku.Id)?.Value("num") ?? 1; + orderResponse.ItemList.Add(new OrderSkuResponse() + { + Logo = sku.Logo, + OrderId = request.OrderId, + Price = sku.Price, + Title = sku.Title, + ProductId = sku.ProductId, + Id = sku.Id, + ItemTotal = num + }); + } + } + } return orderResponse; } }