diff --git a/BBWY.Server.API/Controllers/OrderController.cs b/BBWY.Server.API/Controllers/OrderController.cs index e9043da4..4fd9affc 100644 --- a/BBWY.Server.API/Controllers/OrderController.cs +++ b/BBWY.Server.API/Controllers/OrderController.cs @@ -50,6 +50,17 @@ namespace BBWY.Server.API.Controllers return orderBusiness.GetOrderById(orderId); } + /// + /// 根据订单Id获取归属店铺 + /// + /// + /// + [HttpPost] + public IList GetOrderBelongShop([FromBody] IList orderIdList) + { + return orderBusiness.GetOrderBelongShop(orderIdList); + } + /// /// 解密收货人信息 /// diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index d3b4dbbc..4ffe5d82 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -4,8 +4,10 @@ using BBWY.Common.Models; using BBWY.Server.Business.PlatformSDK.DataExtension; using BBWY.Server.Model; using BBWY.Server.Model.Db; +using BBWY.Server.Model.Db.Mds; using BBWY.Server.Model.Dto; using FreeSql; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -27,6 +29,8 @@ namespace BBWY.Server.Business private IIdGenerator idGenerator; private TaskSchedulerManager taskSchedulerManager; private MDSBusiness mdsBusiness; + private Lazy freeSqlMultiDBManagerLazy; + private FreeSqlMultiDBManager freeSqlMultiDBManager => freeSqlMultiDBManagerLazy.Value; public OrderBusiness(RestApiService restApiService, ILogger logger, @@ -34,7 +38,8 @@ namespace BBWY.Server.Business IIdGenerator idGenerator, IOptions options, TaskSchedulerManager taskSchedulerManager, - MDSBusiness mdsBusiness) : base(restApiService, options) + MDSBusiness mdsBusiness, + IServiceProvider serviceProvider) : base(restApiService, options) { this.logger = logger; this.fsql = fsql; @@ -45,6 +50,7 @@ namespace BBWY.Server.Business { Enums.Platform.京东, SyncJDOrder } }; this.mdsBusiness = mdsBusiness; + freeSqlMultiDBManagerLazy = new Lazy(() => serviceProvider.GetService()); } public OrderListResponse GetOrderList(SearchOrderRequest searchOrderRequest) @@ -328,6 +334,28 @@ namespace BBWY.Server.Business return orderResponse; } + public IList GetOrderBelongShop(IList orderIdList) + { + var orderGroups = fsql.Select().Where(o => orderIdList.Contains(o.Id)).ToList(o => new { o.ShopId, OrderId = o.Id }).GroupBy(o => o.ShopId); + var shopIdList = orderGroups.Select(o => o.Key.ToString()).ToList(); + var shops = freeSqlMultiDBManager.MDSfsql.Select().Where(s => shopIdList.Contains(s.ShopId)).ToList(s => new { s.ShopId, s.ShopName }); + var list = new List(); + foreach (var orderGroup in orderGroups) + { + var shop = shops.FirstOrDefault(s => s.ShopId == orderGroup.Key.ToString()); + if (shop == null) + continue; + var orderBelongShop = new OrderBelongShopResponse() + { + ShopId = orderGroup.Key, + ShpName = shop.ShopName, + OrderIdList = orderGroup.Select(x => x.OrderId).ToList() + }; + list.Add(orderBelongShop); + } + return list; + } + /// /// 解密 /// diff --git a/BBWY.Server.Model/Dto/Response/Vender/OrderBelongShopResponse.cs b/BBWY.Server.Model/Dto/Response/Vender/OrderBelongShopResponse.cs new file mode 100644 index 00000000..f7cc99f3 --- /dev/null +++ b/BBWY.Server.Model/Dto/Response/Vender/OrderBelongShopResponse.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; + +namespace BBWY.Server.Model.Dto +{ + public class OrderBelongShopResponse + { + public long ShopId { get; set; } + + public string ShpName { get; set; } + + public IList OrderIdList { get; set; } + } +}