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; }
+ }
+}