From 90b5c1021fd232132da57832768f0b58b5546d96 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 24 Apr 2023 16:52:25 +0800 Subject: [PATCH] 1 --- .../AfterSaleOrder/AfterSaleOrderBusiness.cs | 4 +- BBWY.Server.Business/BaseBusiness.cs | 18 +- .../BillCorrection/BillCorrectionBusiness.cs | 3 +- BBWY.Server.Business/DingDingBusiness.cs | 2 +- .../JD/JDStockNumWarningBusiness.cs | 55 ++- .../FinancialTerminalBusiness.cs | 3 +- BBWY.Server.Business/Order/OrderBusiness.cs | 144 +++--- .../Product/ProductBusiness.cs | 50 +- .../PurchaseOrder/PurchaseOrderBusiness.cs | 6 +- .../BatchPurchase/BatchPurchaseBusiness.cs | 4 +- .../PurchaseScheme/PurchaseSchemeBusiness.cs | 4 +- .../ServiceOrder/ServiceOrderBusiness.cs | 5 +- .../SiNan/GOIWarningBusiness.cs | 11 +- .../JDReportFormStatisticsBusiness.cs | 4 +- .../Statistics/StatisticsBusiness.cs | 2 +- .../Sync/AfterSaleOrderSyncBusiness.cs | 455 +++++++++--------- BBWY.Server.Business/Sync/BaseSyncBusiness.cs | 29 +- ...arizeReportFormAdGroupLevelSyncBusiness.cs | 52 +- ...PopularizeReportFormAdLevelSyncBusiness.cs | 56 ++- ...rizeReportFormCampaignLevelSyncBusiness.cs | 53 +- ...ularizeReportFormOrderLevelSyncBusiness.cs | 55 ++- ...opularizeReportFormSkuLevelSyncBusiness.cs | 73 +-- .../Sync/JD/JDPopularizeSyncBusiness.cs | 68 +-- .../Sync/JD/JDServiceOrderSyncBusiness.cs | 127 +++-- .../Sync/OrderSkuSaleDetailSyncBusiness.cs | 3 +- .../Sync/OrderSyncBusiness.cs | 115 +++-- .../Sync/ProductSyncBusiness.cs | 27 +- .../Sync/StoreHouseSyncBusiness.cs | 40 +- BBWY.Server.Business/Vender/VenderBusiness.cs | 70 ++- 29 files changed, 825 insertions(+), 713 deletions(-) diff --git a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs index 55518038..16899703 100644 --- a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs +++ b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs @@ -3,6 +3,7 @@ using BBWY.Server.Business.Extensions; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; using System; +using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using Yitter.IdGenerator; @@ -11,9 +12,8 @@ namespace BBWY.Server.Business { public class AfterSaleOrderBusiness : BaseBusiness, IDenpendency { - public AfterSaleOrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + public AfterSaleOrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { - } private Expression> GetExpressionField() diff --git a/BBWY.Server.Business/BaseBusiness.cs b/BBWY.Server.Business/BaseBusiness.cs index eef7520d..893b8a03 100644 --- a/BBWY.Server.Business/BaseBusiness.cs +++ b/BBWY.Server.Business/BaseBusiness.cs @@ -1,4 +1,8 @@ -using Yitter.IdGenerator; +using BBWY.Common.Models; +using BBWY.Server.Model; +using System.Collections.Generic; +using System.Linq; +using Yitter.IdGenerator; namespace BBWY.Server.Business { public class BaseBusiness @@ -6,12 +10,22 @@ namespace BBWY.Server.Business protected IFreeSql fsql; protected NLogManager nLogManager; protected IIdGenerator idGenerator; + protected IEnumerable platformSDKBusinessList; - public BaseBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) + public BaseBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) { this.fsql = fsql; this.nLogManager = nLogManager; this.idGenerator = idGenerator; + this.platformSDKBusinessList = platformSDKBusinessList; + } + + public PlatformSDKBusiness GetPlatformSDKBusiness(Enums.Platform platofrm) + { + var pb = platformSDKBusinessList.FirstOrDefault(p => p.Platform == platofrm); + if (pb == null) + throw new BusinessException($"不支持平台{platofrm}"); + return pb; } } } diff --git a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs index 00b4f497..5bc104d9 100644 --- a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs +++ b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs @@ -11,9 +11,8 @@ namespace BBWY.Server.Business { public class BillCorrectionBusiness : BaseBusiness, IDenpendency { - public BillCorrectionBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + public BillCorrectionBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { - } public IList GetBillCorrectionOrderList(QueryBillCorrectionOrderRequest request) diff --git a/BBWY.Server.Business/DingDingBusiness.cs b/BBWY.Server.Business/DingDingBusiness.cs index 91c2a184..ecf70343 100644 --- a/BBWY.Server.Business/DingDingBusiness.cs +++ b/BBWY.Server.Business/DingDingBusiness.cs @@ -14,7 +14,7 @@ namespace BBWY.Server.Business { private RestApiService restApiService; - public DingDingBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, RestApiService restApiService) : base(fsql, nLogManager, idGenerator) + public DingDingBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, RestApiService restApiService, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { this.restApiService = restApiService; } diff --git a/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs b/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs index 2fab3607..38da136a 100644 --- a/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs +++ b/BBWY.Server.Business/EarlyWarning/JD/JDStockNumWarningBusiness.cs @@ -1,15 +1,10 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -22,7 +17,7 @@ namespace BBWY.Server.Business private IList validStorageTypeList; private DingDingBusiness dingDingBusiness; - public JDStockNumWarningBusiness(RestApiService restApiService, IOptions options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness, DingDingBusiness dingDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) + public JDStockNumWarningBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, IEnumerable platformSDKBusinessList, VenderBusiness venderBusiness, DingDingBusiness dingDingBusiness) : base(nLogManager, fsql, idGenerator, taskSchedulerManager, platformSDKBusinessList, venderBusiness) { validStorageTypeList = new List() { Enums.StorageType.云仓, @@ -32,6 +27,16 @@ namespace BBWY.Server.Business this.dingDingBusiness = dingDingBusiness; } + //public JDStockNumWarningBusiness( NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, DingDingBusiness dingDingBusiness, IEnumerable platformSDKBusinessList) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, platformSDKBusinessList) + //{ + // validStorageTypeList = new List() { + // Enums.StorageType.云仓, + // Enums.StorageType.京仓, + // Enums.StorageType.本地自发 + // }; + // this.dingDingBusiness = dingDingBusiness; + //} + public void StartCheckStockNum() { var storeHouseList = fsql.Select().Where(s => s.Platform == Enums.Platform.京东).ToList(); @@ -155,25 +160,35 @@ namespace BBWY.Server.Business } Thread.Sleep(1000); - var restApiResult = restApiService.SendRequest(GetPlatformRelayAPIHost(shop.PlatformId), "api/platformsdk/GetStockNumBySku", new SearchProductSkuRequest() - { - AppKey = shop.AppKey, - AppSecret = shop.AppSecret, - AppToken = shop.AppToken, - Platform = shop.PlatformId, - Sku = sku - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"{sku} {restApiResult.Content}"); - var response = JsonConvert.DeserializeObject>(restApiResult.Content); - if (response.Data == null || response.Data.Count() == 0) + var response = GetPlatformSDKBusiness(Enums.Platform.京东).GetStockNumBySku( + new SearchProductSkuRequest() + { + AppKey = shop.AppKey, + AppSecret = shop.AppSecret, + AppToken = shop.AppToken, + Platform = shop.PlatformId, + Sku = sku + }); + + //var restApiResult = restApiService.SendRequest(GetPlatformRelayAPIHost(shop.PlatformId), "api/platformsdk/GetStockNumBySku", new SearchProductSkuRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // Platform = shop.PlatformId, + // Sku = sku + //}, GetYunDingRequestHeader(), HttpMethod.Post); + //if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"{sku} {restApiResult.Content}"); + //var response = JsonConvert.DeserializeObject>(restApiResult.Content); + if (response == null || response?.Count() == 0) { logContentBuilder.AppendLine("未查询到JD库存数据"); nLogManager.GetLogger(loggerName).Info(logContentBuilder); continue; } - var skuStockNumList = response.Data.Select(j => new + var skuStockNumList = response.Select(j => new { StockNum = j.Value("stockNum"), Store = storeHouseList.FirstOrDefault(s => s.Id == j.Value("storeId")), diff --git a/BBWY.Server.Business/FinancialTerminal/FinancialTerminalBusiness.cs b/BBWY.Server.Business/FinancialTerminal/FinancialTerminalBusiness.cs index be68d149..63c4b285 100644 --- a/BBWY.Server.Business/FinancialTerminal/FinancialTerminalBusiness.cs +++ b/BBWY.Server.Business/FinancialTerminal/FinancialTerminalBusiness.cs @@ -10,9 +10,8 @@ namespace BBWY.Server.Business { public class FinancialTerminalBusiness : BaseBusiness, IDenpendency { - public FinancialTerminalBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + public FinancialTerminalBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { - } public IList GetAuditPayBillList(QueryAuditPayBillRequest request) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 59f0c485..9ac6e109 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -1,5 +1,4 @@ using BBWY.Common.Extensions; -using BBWY.Common.Http; using BBWY.Common.Models; using BBWY.Server.Business.Extensions; using BBWY.Server.Model; @@ -9,24 +8,16 @@ using BBWY.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; -using System.Net.Http; using Yitter.IdGenerator; namespace BBWY.Server.Business { - public class OrderBusiness : BasePlatformRelayBusiness, IDenpendency + public class OrderBusiness : BaseBusiness, IDenpendency { - private IFreeSql fsql; - - private IIdGenerator idGenerator; - private Lazy productBusinessLazy; private ProductBusiness productBusiness => productBusinessLazy.Value; @@ -36,12 +27,12 @@ namespace BBWY.Server.Business private IMemoryCache memoryCache; private static TimeSpan sdGroupExpirationTimeSpan = TimeSpan.FromMinutes(20); - public OrderBusiness(RestApiService restApiService, - IFreeSql fsql, + public OrderBusiness(IFreeSql fsql, IIdGenerator idGenerator, - IOptions options, + NLogManager nLogManager, IServiceProvider serviceProvider, - IMemoryCache memoryCache, YunDingBusiness yunDingBusiness) : base(restApiService, options, yunDingBusiness) + IMemoryCache memoryCache, + IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { this.fsql = fsql; this.idGenerator = idGenerator; @@ -408,28 +399,30 @@ namespace BBWY.Server.Business /// public ConsigneeSimpleResponse DecryptConsignee(DecryptConsigneeRequest decryptConsigneeRequest) { - var relayAPIHost = GetPlatformRelayAPIHost(decryptConsigneeRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/DecryptConsignee", decryptConsigneeRequest, GetYunDingRequestHeader(), HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; + //var relayAPIHost = GetPlatformRelayAPIHost(decryptConsigneeRequest.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/DecryptConsignee", decryptConsigneeRequest, GetYunDingRequestHeader(), HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; + + var response = GetPlatformSDKBusiness(decryptConsigneeRequest.Platform).DecryptConsignee(decryptConsigneeRequest); if (!string.IsNullOrEmpty(decryptConsigneeRequest.PlaintextMobile)) - response.Data.Mobile = decryptConsigneeRequest.PlaintextMobile; + response.Mobile = decryptConsigneeRequest.PlaintextMobile; //将解密后的收货人信息存至数据库 if (decryptConsigneeRequest.SaveDb) { - fsql.Update(decryptConsigneeRequest.OrderId).Set(oc => oc.ContactName, response.Data.ContactName) - .Set(oc => oc.Address, response.Data.Address) - .SetIf(!string.IsNullOrEmpty(response.Data.Mobile), oc => oc.Mobile, response.Data.Mobile) - .SetIf(!string.IsNullOrEmpty(response.Data.TelePhone), oc => oc.TelePhone, response.Data.TelePhone) + fsql.Update(decryptConsigneeRequest.OrderId).Set(oc => oc.ContactName, response.ContactName) + .Set(oc => oc.Address, response.Address) + .SetIf(!string.IsNullOrEmpty(response.Mobile), oc => oc.Mobile, response.Mobile) + .SetIf(!string.IsNullOrEmpty(response.TelePhone), oc => oc.TelePhone, response.TelePhone) .Set(oc => oc.IsDecode, true) .ExecuteAffrows(); } - return response.Data; + return response; } /// @@ -701,9 +694,7 @@ namespace BBWY.Server.Business return; } - //修改平台订单备注 - var relayAPIHost = GetPlatformRelayAPIHost(sdCalculationCostRequest.Platform); - var editApiResult = restApiService.SendRequest(relayAPIHost, "/Api/PlatformSDK/EditVenderRemark", new EditVenderRemarkRequest() + GetPlatformSDKBusiness(sdCalculationCostRequest.Platform).EditVenderRemark(new EditVenderRemarkRequest() { AppKey = sdCalculationCostRequest.AppKey, AppSecret = sdCalculationCostRequest.AppSecret, @@ -712,12 +703,25 @@ namespace BBWY.Server.Business OrderId = sdCalculationCostRequest.OrderId, Platform = sdCalculationCostRequest.Platform, VenderRemark = sdCalculationCostRequest.VenderRemark - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (editApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException($"修改商家备注失败 {editApiResult.Content}") { Code = (int)editApiResult.StatusCode }; - var editResponse = JsonConvert.DeserializeObject(editApiResult.Content); - if (!editResponse.Success) - throw new BusinessException(editResponse.Msg); + }); + + //修改平台订单备注 + //var relayAPIHost = GetPlatformRelayAPIHost(sdCalculationCostRequest.Platform); + //var editApiResult = restApiService.SendRequest(relayAPIHost, "/Api/PlatformSDK/EditVenderRemark", new EditVenderRemarkRequest() + //{ + // AppKey = sdCalculationCostRequest.AppKey, + // AppSecret = sdCalculationCostRequest.AppSecret, + // AppToken = sdCalculationCostRequest.AppToken, + // Flag = sdCalculationCostRequest.Flag, + // OrderId = sdCalculationCostRequest.OrderId, + // Platform = sdCalculationCostRequest.Platform, + // VenderRemark = sdCalculationCostRequest.VenderRemark + //}, GetYunDingRequestHeader(), HttpMethod.Post); + //if (editApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException($"修改商家备注失败 {editApiResult.Content}") { Code = (int)editApiResult.StatusCode }; + //var editResponse = JsonConvert.DeserializeObject(editApiResult.Content); + //if (!editResponse.Success) + // throw new BusinessException(editResponse.Msg); IUpdate orderUpdate = null; IUpdate updateOrderCost = null; @@ -986,13 +990,15 @@ namespace BBWY.Server.Business if (dbOrder.OrderState != Enums.OrderState.待出库) throw new BusinessException($"订单{outStockRequest.OrderId} 只有在待出库时才允许出库"); - var relayAPIHost = GetPlatformRelayAPIHost(outStockRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/OutStock", outStockRequest, GetYunDingRequestHeader(), HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; + GetPlatformSDKBusiness(outStockRequest.Platform).OutStock(outStockRequest); + + //var relayAPIHost = GetPlatformRelayAPIHost(outStockRequest.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/OutStock", outStockRequest, GetYunDingRequestHeader(), HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; fsql.Update(outStockRequest.OrderId).Set(o => o.OrderState, Enums.OrderState.待收货) .Set(o => o.WaybillNo, outStockRequest.WayBillNo) @@ -1006,16 +1012,18 @@ namespace BBWY.Server.Business public void EditVenderRemark(EditVenderRemarkRequest editVenderRemarkRequest) { //修改平台订单备注 - var relayAPIHost = GetPlatformRelayAPIHost(editVenderRemarkRequest.Platform); + //var relayAPIHost = GetPlatformRelayAPIHost(editVenderRemarkRequest.Platform); if (editVenderRemarkRequest.Platform == Enums.Platform.京东) { - var editApiResult = restApiService.SendRequest(relayAPIHost, "/Api/PlatformSDK/EditVenderRemark", editVenderRemarkRequest, GetYunDingRequestHeader(), HttpMethod.Post); - if (editApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException($"修改商家备注失败 {editApiResult.Content}") { Code = (int)editApiResult.StatusCode }; - var editResponse = JsonConvert.DeserializeObject(editApiResult.Content); - if (!editResponse.Success) - throw new BusinessException(editResponse.Msg); + //var editApiResult = restApiService.SendRequest(relayAPIHost, "/Api/PlatformSDK/EditVenderRemark", editVenderRemarkRequest, GetYunDingRequestHeader(), HttpMethod.Post); + //if (editApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException($"修改商家备注失败 {editApiResult.Content}") { Code = (int)editApiResult.StatusCode }; + //var editResponse = JsonConvert.DeserializeObject(editApiResult.Content); + //if (!editResponse.Success) + // throw new BusinessException(editResponse.Msg); + + GetPlatformSDKBusiness(editVenderRemarkRequest.Platform).EditVenderRemark(editVenderRemarkRequest); } else { @@ -1041,19 +1049,29 @@ namespace BBWY.Server.Business if (orderResponse == null) { - var relayAPIHost = GetPlatformRelayAPIHost(request.Platform); - var orderApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetNoPayOrder", new SearchPlatformOrderRequest() - { - OrderId = request.OrderId, - AppKey = request.AppKey, - AppSecret = request.AppSecret, - AppToken = request.AppToken, - Platform = request.Platform, - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (orderApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException($"获取未付款订单失败 {orderApiResult.Content}"); - - var orderJToken = JToken.Parse(orderApiResult.Content); + //var relayAPIHost = GetPlatformRelayAPIHost(request.Platform); + //var orderApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetNoPayOrder", new SearchPlatformOrderRequest() + //{ + // OrderId = request.OrderId, + // AppKey = request.AppKey, + // AppSecret = request.AppSecret, + // AppToken = request.AppToken, + // Platform = request.Platform, + //}, GetYunDingRequestHeader(), HttpMethod.Post); + //if (orderApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException($"获取未付款订单失败 {orderApiResult.Content}"); + + var orderJToken = GetPlatformSDKBusiness(request.Platform).GetNoPayOrder( + new SearchPlatformOrderRequest() + { + OrderId = request.OrderId, + AppKey = request.AppKey, + AppSecret = request.AppSecret, + AppToken = request.AppToken, + Platform = request.Platform, + }); + + //var orderJToken = JToken.Parse(orderApiResult.Content); var orderInfoJToken = orderJToken["Data"]["jingdong_pop_order_notPayOrderById_responce"]["orderDataNotPayInfo"]; if (orderInfoJToken == null || !orderInfoJToken.HasValues) throw new BusinessException("未查询到待付款订单"); diff --git a/BBWY.Server.Business/Product/ProductBusiness.cs b/BBWY.Server.Business/Product/ProductBusiness.cs index eab8beba..e3ab68e5 100644 --- a/BBWY.Server.Business/Product/ProductBusiness.cs +++ b/BBWY.Server.Business/Product/ProductBusiness.cs @@ -1,44 +1,42 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; -using BBWY.Server.Model; +using BBWY.Common.Models; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; using System.Collections.Generic; -using System.Net.Http; +using System.Linq; namespace BBWY.Server.Business { - public class ProductBusiness : BasePlatformRelayBusiness, IDenpendency + public class ProductBusiness : IDenpendency { - public ProductBusiness(RestApiService restApiService, IConfiguration configuration, IOptions options, YunDingBusiness yunDingBusiness) : base(restApiService, options, yunDingBusiness) + private IEnumerable platformSDKBusinessList; + public ProductBusiness(IEnumerable platformSDKBusinessList) { - + this.platformSDKBusinessList = platformSDKBusinessList; } public ProductListResponse GetProductList(SearchProductRequest searchProductRequest) { - var relayAPIHost = GetPlatformRelayAPIHost(searchProductRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetProductList", searchProductRequest, GetYunDingRequestHeader(), HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; - return response.Data; + //var relayAPIHost = GetPlatformRelayAPIHost(searchProductRequest.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetProductList", searchProductRequest, GetYunDingRequestHeader(), HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; + //return response.Data; + return platformSDKBusinessList.FirstOrDefault(p => p.Platform == searchProductRequest.Platform).GetProductList(searchProductRequest); } public IList GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest) { - var relayAPIHost = GetPlatformRelayAPIHost(searchProductSkuRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetProductSkuList", searchProductSkuRequest, GetYunDingRequestHeader(), HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; - return response.Data; + //var relayAPIHost = GetPlatformRelayAPIHost(searchProductSkuRequest.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetProductSkuList", searchProductSkuRequest, GetYunDingRequestHeader(), HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; + //return response.Data; + return platformSDKBusinessList.FirstOrDefault(p => p.Platform == searchProductSkuRequest.Platform).GetProductSkuList(searchProductSkuRequest); } } } diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 302c74ae..c2c9d5b1 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -4,15 +4,12 @@ using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; using FreeSql; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using QuanTan.SDK.Model; using System; using System.Collections.Generic; using System.Linq; -using System.Linq.Expressions; -using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -21,7 +18,6 @@ namespace BBWY.Server.Business { public class PurchaseOrderBusiness : BaseBusiness, IDenpendency { - private IEnumerable platformSDKBusinessList; private TaskSchedulerManager taskSchedulerManager; private OrderBusiness orderBusiness; private MDSBusiness mdsBusiness; @@ -37,7 +33,7 @@ namespace BBWY.Server.Business OrderBusiness orderBusiness, MDSBusiness mdsBusiness, VenderBusiness venderBusiness, - LogisticsCompanyConverter logisticsCompanyConverter) : base(fsql, nLogManager, idGenerator) + LogisticsCompanyConverter logisticsCompanyConverter) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { this.platformSDKBusinessList = platformSDKBusinessList; this.taskSchedulerManager = taskSchedulerManager; diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index 5718e969..931eefc0 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -3,7 +3,6 @@ using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; using FreeSql; -using Jd.Api.Domain; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; @@ -17,13 +16,12 @@ namespace BBWY.Server.Business public class BatchPurchaseBusiness : BaseBusiness, IDenpendency { private ProductBusiness productBusiness; - private IEnumerable platformSDKBusinessList; public BatchPurchaseBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, ProductBusiness productBusiness, - IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator) + IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { this.productBusiness = productBusiness; this.platformSDKBusinessList = platformSDKBusinessList; diff --git a/BBWY.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWY.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index eaf0dcfc..7c80d70c 100644 --- a/BBWY.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWY.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -11,7 +11,9 @@ namespace BBWY.Server.Business { public class PurchaseSchemeBusiness : BaseBusiness, IDenpendency { - public PurchaseSchemeBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) { } + public PurchaseSchemeBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) + { + } private void ExtractNewPurchaser(IList purchaserSchemeList, IList addPurchaserList) where T : InputPurchaseSchemeRequest { diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs index 50a40375..905471b6 100644 --- a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs +++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs @@ -1,18 +1,15 @@ using BBWY.Common.Models; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using System; using System.Collections.Generic; -using System.Text; using Yitter.IdGenerator; namespace BBWY.Server.Business { public class ServiceOrderBusiness : BaseBusiness, IDenpendency { - public ServiceOrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + public ServiceOrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { - } public ServiceOrderResponse GetList(ClientQueryServiceOrderRequest request) diff --git a/BBWY.Server.Business/SiNan/GOIWarningBusiness.cs b/BBWY.Server.Business/SiNan/GOIWarningBusiness.cs index 0c82bb1f..5d1deffa 100644 --- a/BBWY.Server.Business/SiNan/GOIWarningBusiness.cs +++ b/BBWY.Server.Business/SiNan/GOIWarningBusiness.cs @@ -1,6 +1,4 @@ -using BBWY.Common.Extensions; -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Business.Statistics; using BBWY.Server.Model; using BBWY.Server.Model.Db; @@ -8,7 +6,6 @@ using BBWY.Server.Model.Dto; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -23,7 +20,7 @@ namespace BBWY.Server.Business.SiNan private JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness; private DingDingBusiness dingDingBusiness; - public GOIWarningBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness, DingDingBusiness dingDingBusiness) : base(fsql, nLogManager, idGenerator) + public GOIWarningBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness, DingDingBusiness dingDingBusiness, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { this.taskSchedulerManager = taskSchedulerManager; this.venderBusiness = venderBusiness; @@ -509,8 +506,8 @@ namespace BBWY.Server.Business.SiNan #endregion if (dingdingSendBuilderList.Count > 0) - { - foreach(var sendBuilder in dingdingSendBuilderList) + { + foreach (var sendBuilder in dingdingSendBuilderList) dingDingBusiness.SendDingDingBotMessage(shop.SiNanDingDingKey, shop.SiNanDingDingWebHook, sendBuilder.ToString()); } } diff --git a/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs b/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs index 2f98c135..5f93c4c8 100644 --- a/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs @@ -5,16 +5,14 @@ using BBWY.Server.Model.Dto; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using Yitter.IdGenerator; namespace BBWY.Server.Business.Statistics { public class JDReportFormStatisticsBusiness : BaseBusiness, IDenpendency { - public JDReportFormStatisticsBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + public JDReportFormStatisticsBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { - } public IList CalculationCampaignLevelGOI(GOIRequest gOIRequest) diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index e29144b9..65e8f67c 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -16,7 +16,7 @@ namespace BBWY.Server.Business private IList invalidOrderStateList; private FreeSqlMultiDBManager freeSqlMultiDBManager; - public StatisticsBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager freeSqlMultiDBManager) : base(fsql, nLogManager, idGenerator) + public StatisticsBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager freeSqlMultiDBManager, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { invalidOrderStateList = new List() { Enums.OrderState.待付款, Enums.OrderState.已取消 }; this.freeSqlMultiDBManager = freeSqlMultiDBManager; diff --git a/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs index b3a54d7e..e090f065 100644 --- a/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/AfterSaleOrderSyncBusiness.cs @@ -1,244 +1,233 @@ -using BBWY.Common.Extensions; -using BBWY.Common.Http; -using BBWY.Common.Models; -using BBWY.Server.Model; -using BBWY.Server.Model.Db; -using BBWY.Server.Model.Dto; -using FreeSql; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using NLog; -using System; +using BBWY.Common.Models; using System.Collections.Generic; -using System.Linq; -using System.Net.Http; -using System.Threading.Tasks; using Yitter.IdGenerator; namespace BBWY.Server.Business { public class AfterSaleOrderSyncBusiness : BaseSyncBusiness, IDenpendency { - private IDictionary> syncAfterSaleOrderMethodDic; - - private IDictionary processResultDic; - - - public AfterSaleOrderSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, - IFreeSql fsql, - IIdGenerator idGenerator, - TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, - options, - nLogManager, - fsql, - idGenerator, - taskSchedulerManager, - venderBusiness, - yunDingBusiness) + //private IDictionary> syncAfterSaleOrderMethodDic; + + //private IDictionary processResultDic; + + + //public AfterSaleOrderSyncBusiness(RestApiService restApiService, + // IOptions options, + // NLogManager nLogManager, + // IFreeSql fsql, + // IIdGenerator idGenerator, + // TaskSchedulerManager taskSchedulerManager, + // VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, + // options, + // nLogManager, + // fsql, + // idGenerator, + // taskSchedulerManager, + // venderBusiness, + // yunDingBusiness) + //{ + // syncAfterSaleOrderMethodDic = new Dictionary>() + // { + // { Enums.Platform.京东, SyncJDAfterOrder } + // }; + + // processResultDic = new Dictionary() + // { + // { 23,Enums.ServiceResult.换新}, + // { 40,Enums.ServiceResult.退货}, + // { 60,Enums.ServiceResult.原返}, + // { 90,Enums.ServiceResult.线下换新}, + // { 110,Enums.ServiceResult.商品补发} + // }; + //} + + //private void SyncJDAfterOrder(JArray afterOrderTokenJArray, ShopResponse shop) + //{ + // var shopId = long.Parse(shop.ShopId); + // var validAfterOrderJArray = afterOrderTokenJArray.Where(j => (j.Value("serviceStatus") == 10010 || j.Value("serviceStatus") == 10009) && //完成 + // processResultDic.ContainsKey(j.Value("processResult"))); + + + // var orderIds = validAfterOrderJArray.Select(j => j["orderId"].ToString()).Distinct().ToList(); + // var orderSkuIds = validAfterOrderJArray.Select(j => j["skuId"].ToString()).Distinct().ToList(); + + // var updateOrders = fsql.Select().Where(o => orderIds.Contains(o.Id) && o.IsAfterSaleOrder == false).ToList(); + // var dbOrderSkus = fsql.Select().Where(osku => orderIds.Contains(osku.OrderId) && + // orderSkuIds.Contains(osku.SkuId) && + // osku.Price != 0).ToList(); + // var updateOrderSkus = dbOrderSkus.Where(osku => osku.IsRefund == false).ToList(); + + // var afterOrders = fsql.Select().Where(aso => orderIds.Contains(aso.OrderId)).ToList(); + + // List insertAfterSaleOrders = new List(); + // List> updateAfterSaleOrders = new List>(); + + // foreach (var afterOrderJToken in validAfterOrderJArray) + // { + // var orderId = afterOrderJToken.Value("orderId"); + // var skuId = afterOrderJToken.Value("skuId"); + // var serviceId = afterOrderJToken.Value("serviceId"); + // var processResult = processResultDic[afterOrderJToken.Value("processResult")]; + + // var afterOrder = afterOrders.FirstOrDefault(aso => aso.ServiceId == serviceId); + // if (afterOrder == null) + // { + // var dbOrderSku = dbOrderSkus.FirstOrDefault(osku => osku.OrderId == orderId && osku.SkuId == skuId); + // if (dbOrderSku == null) + // continue; + + // decimal refundAmount = 0M; + // try + // { + // if (processResult == Enums.ServiceResult.退货) + // refundAmount = SyncJDRefundOrder(shop, orderId, serviceId); + // } + // catch (Exception ex) + // { + // nLogManager.Default().Error(ex, $"SyncAfterOrder-SyncRefound ServiceId:{serviceId} OrderId:{orderId} ShopData:{JsonConvert.SerializeObject(shop)}"); + // } + + + // insertAfterSaleOrders.Add(new AfterSaleOrder() + // { + // Id = idGenerator.NewLong(), + // CreateTime = DateTime.Now, + // OrderId = dbOrderSku.OrderId, + // ProductId = dbOrderSku.ProductId, + // RefundAmount = refundAmount, + // SkuId = skuId, + // ShopId = shopId, + // ServiceResult = processResult, + // ServiceId = serviceId, + // ApplyTime = afterOrderJToken.Value("applyTime").StampToDateTime() + // }); + // } + // else + // { + // if (afterOrder.ServiceResult == null || + // (afterOrder.ServiceResult != processResult && + // afterOrder.ServiceResult != Enums.ServiceResult.维修 && + // afterOrder.ServiceResult != Enums.ServiceResult.仅退款 && + // afterOrder.ServiceResult != Enums.ServiceResult.SD退货)) + // { + // var update = fsql.Update(afterOrder.Id).Set(aso => aso.ServiceResult, processResult); + // updateAfterSaleOrders.Add(update); + // } + // } + // } + + // fsql.Transaction(() => + // { + // if (updateOrders.Count() > 0) + // foreach (var updateOrder in updateOrders) + // fsql.Update(updateOrder.Id).Set(o => o.IsAfterSaleOrder, true).ExecuteAffrows(); + + // if (updateOrderSkus.Count() > 0) + // foreach (var updateOrderSku in updateOrderSkus) + // fsql.Update(updateOrderSku.Id).Set(osku => osku.IsRefund, true).ExecuteAffrows(); + + // if (insertAfterSaleOrders.Count() > 0) + // fsql.Insert(insertAfterSaleOrders).ExecuteAffrows(); + // if (updateAfterSaleOrders.Count() > 0) + // foreach (var update in updateAfterSaleOrders) + // update.ExecuteAffrows(); + // }); + //} + + //private void SyncAfterOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false) + //{ + // try + // { + // //logger.Info($"售后订单同步 {shop.ShopName} isAuto {isAuto}"); + // if (!syncAfterSaleOrderMethodDic.ContainsKey(shop.PlatformId)) + // throw new Exception("不支持的平台"); + // var shopId = long.Parse(shop.ShopId); + // var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + // var afterOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetAfterOrderList", new SyncAfterOrderRequest() + // { + // StartDate = startTime ?? DateTime.Now.Date.AddDays(-3), + // EndDate = endTime ?? DateTime.Now, + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // PageIndex = 1, + // PageSize = 50, + // Platform = shop.PlatformId, + // SaveResponseLog = true, + // OrderId = orderId, + // VenderId = shop.VenderId + // }, GetYunDingRequestHeader(), HttpMethod.Post); + // if (afterOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取退款订单失败 {afterOrderListApiResult.Content}"); + + // var afterOrderListResponse = JsonConvert.DeserializeObject>(afterOrderListApiResult.Content); + // if (!afterOrderListResponse.Success) + // throw new Exception($"获取退款订单失败 {afterOrderListApiResult.Content}"); + + // if (afterOrderListResponse.Data == null || afterOrderListResponse.Data.Count == 0) + // return; + + // syncAfterSaleOrderMethodDic[shop.PlatformId](afterOrderListResponse.Data, shop); + // } + // catch (Exception ex) + // { + // var shopData = JsonConvert.SerializeObject(shop); + // nLogManager.Default().Error(ex, $"SyncAfterOrder ShopData:{shopData}"); + // } + //} + + //public void SyncAllShopAfterOrder() + //{ + // var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); + // //SyncAfterOrder(shopList.FirstOrDefault(s => s.ShopName == "布莱特玩具专营店"), string.Empty, isAuto: true); + // foreach (var shop in shopList) + // { + // Task.Factory.StartNew(() => SyncAfterOrder(shop, string.Empty, isAuto: true), + // System.Threading.CancellationToken.None, + // TaskCreationOptions.LongRunning, + // taskSchedulerManager.SyncAfterOrderTaskScheduler); + // } + //} + + ///// + ///// 获取退款单 + ///// + ///// + ///// + ///// + ///// + ///// + //private decimal SyncJDRefundOrder(ShopResponse shop, string orderId, string serviceId) + //{ + // var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + // var refundOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetRefundList", new SearchRefundPlatformOrderRequest() + // { + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // PageIndex = 1, + // PageSize = 50, + // Platform = shop.PlatformId, + // SaveResponseLog = false, + // OrderId = orderId + // }, GetYunDingRequestHeader(), HttpMethod.Post); + // if (refundOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取退款订单失败 {refundOrderListApiResult.Content}"); + + // var refundOrderListResponse = JsonConvert.DeserializeObject>(refundOrderListApiResult.Content); + // if (!refundOrderListResponse.Success) + // throw new Exception($"获取退款订单失败 {refundOrderListApiResult.Content}"); + + // if (refundOrderListResponse.Data == null || refundOrderListResponse.Data.Count == 0) + // return 0M; + + // var jtoken = refundOrderListResponse.Data.FirstOrDefault(j => j["sameOrderServiceBill"]["serviceId"].ToString() == serviceId && + // j.Value("status") == 13 && + // j.Value("refoundAmount") != 0M); + // return jtoken == null ? 0M : jtoken.Value("refoundAmount"); + //} + public AfterSaleOrderSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, IEnumerable platformSDKBusinessList, VenderBusiness venderBusiness) : base(nLogManager, fsql, idGenerator, taskSchedulerManager, platformSDKBusinessList, venderBusiness) { - syncAfterSaleOrderMethodDic = new Dictionary>() - { - { Enums.Platform.京东, SyncJDAfterOrder } - }; - - processResultDic = new Dictionary() - { - { 23,Enums.ServiceResult.换新}, - { 40,Enums.ServiceResult.退货}, - { 60,Enums.ServiceResult.原返}, - { 90,Enums.ServiceResult.线下换新}, - { 110,Enums.ServiceResult.商品补发} - }; - } - - private void SyncJDAfterOrder(JArray afterOrderTokenJArray, ShopResponse shop) - { - var shopId = long.Parse(shop.ShopId); - var validAfterOrderJArray = afterOrderTokenJArray.Where(j => (j.Value("serviceStatus") == 10010 || j.Value("serviceStatus") == 10009) && //完成 - processResultDic.ContainsKey(j.Value("processResult"))); - - - var orderIds = validAfterOrderJArray.Select(j => j["orderId"].ToString()).Distinct().ToList(); - var orderSkuIds = validAfterOrderJArray.Select(j => j["skuId"].ToString()).Distinct().ToList(); - - var updateOrders = fsql.Select().Where(o => orderIds.Contains(o.Id) && o.IsAfterSaleOrder == false).ToList(); - var dbOrderSkus = fsql.Select().Where(osku => orderIds.Contains(osku.OrderId) && - orderSkuIds.Contains(osku.SkuId) && - osku.Price != 0).ToList(); - var updateOrderSkus = dbOrderSkus.Where(osku => osku.IsRefund == false).ToList(); - - var afterOrders = fsql.Select().Where(aso => orderIds.Contains(aso.OrderId)).ToList(); - - List insertAfterSaleOrders = new List(); - List> updateAfterSaleOrders = new List>(); - - foreach (var afterOrderJToken in validAfterOrderJArray) - { - var orderId = afterOrderJToken.Value("orderId"); - var skuId = afterOrderJToken.Value("skuId"); - var serviceId = afterOrderJToken.Value("serviceId"); - var processResult = processResultDic[afterOrderJToken.Value("processResult")]; - - var afterOrder = afterOrders.FirstOrDefault(aso => aso.ServiceId == serviceId); - if (afterOrder == null) - { - var dbOrderSku = dbOrderSkus.FirstOrDefault(osku => osku.OrderId == orderId && osku.SkuId == skuId); - if (dbOrderSku == null) - continue; - - decimal refundAmount = 0M; - try - { - if (processResult == Enums.ServiceResult.退货) - refundAmount = SyncJDRefundOrder(shop, orderId, serviceId); - } - catch (Exception ex) - { - nLogManager.Default().Error(ex, $"SyncAfterOrder-SyncRefound ServiceId:{serviceId} OrderId:{orderId} ShopData:{JsonConvert.SerializeObject(shop)}"); - } - - - insertAfterSaleOrders.Add(new AfterSaleOrder() - { - Id = idGenerator.NewLong(), - CreateTime = DateTime.Now, - OrderId = dbOrderSku.OrderId, - ProductId = dbOrderSku.ProductId, - RefundAmount = refundAmount, - SkuId = skuId, - ShopId = shopId, - ServiceResult = processResult, - ServiceId = serviceId, - ApplyTime = afterOrderJToken.Value("applyTime").StampToDateTime() - }); - } - else - { - if (afterOrder.ServiceResult == null || - (afterOrder.ServiceResult != processResult && - afterOrder.ServiceResult != Enums.ServiceResult.维修 && - afterOrder.ServiceResult != Enums.ServiceResult.仅退款 && - afterOrder.ServiceResult != Enums.ServiceResult.SD退货)) - { - var update = fsql.Update(afterOrder.Id).Set(aso => aso.ServiceResult, processResult); - updateAfterSaleOrders.Add(update); - } - } - } - - fsql.Transaction(() => - { - if (updateOrders.Count() > 0) - foreach (var updateOrder in updateOrders) - fsql.Update(updateOrder.Id).Set(o => o.IsAfterSaleOrder, true).ExecuteAffrows(); - - if (updateOrderSkus.Count() > 0) - foreach (var updateOrderSku in updateOrderSkus) - fsql.Update(updateOrderSku.Id).Set(osku => osku.IsRefund, true).ExecuteAffrows(); - - if (insertAfterSaleOrders.Count() > 0) - fsql.Insert(insertAfterSaleOrders).ExecuteAffrows(); - if (updateAfterSaleOrders.Count() > 0) - foreach (var update in updateAfterSaleOrders) - update.ExecuteAffrows(); - }); - } - - private void SyncAfterOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false) - { - try - { - //logger.Info($"售后订单同步 {shop.ShopName} isAuto {isAuto}"); - if (!syncAfterSaleOrderMethodDic.ContainsKey(shop.PlatformId)) - throw new Exception("不支持的平台"); - var shopId = long.Parse(shop.ShopId); - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var afterOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetAfterOrderList", new SyncAfterOrderRequest() - { - StartDate = startTime ?? DateTime.Now.Date.AddDays(-3), - EndDate = endTime ?? DateTime.Now, - AppKey = shop.AppKey, - AppSecret = shop.AppSecret, - AppToken = shop.AppToken, - PageIndex = 1, - PageSize = 50, - Platform = shop.PlatformId, - SaveResponseLog = true, - OrderId = orderId, - VenderId = shop.VenderId - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (afterOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取退款订单失败 {afterOrderListApiResult.Content}"); - - var afterOrderListResponse = JsonConvert.DeserializeObject>(afterOrderListApiResult.Content); - if (!afterOrderListResponse.Success) - throw new Exception($"获取退款订单失败 {afterOrderListApiResult.Content}"); - - if (afterOrderListResponse.Data == null || afterOrderListResponse.Data.Count == 0) - return; - - syncAfterSaleOrderMethodDic[shop.PlatformId](afterOrderListResponse.Data, shop); - } - catch (Exception ex) - { - var shopData = JsonConvert.SerializeObject(shop); - nLogManager.Default().Error(ex, $"SyncAfterOrder ShopData:{shopData}"); - } - } - - public void SyncAllShopAfterOrder() - { - var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); - //SyncAfterOrder(shopList.FirstOrDefault(s => s.ShopName == "布莱特玩具专营店"), string.Empty, isAuto: true); - foreach (var shop in shopList) - { - Task.Factory.StartNew(() => SyncAfterOrder(shop, string.Empty, isAuto: true), - System.Threading.CancellationToken.None, - TaskCreationOptions.LongRunning, - taskSchedulerManager.SyncAfterOrderTaskScheduler); - } - } - - /// - /// 获取退款单 - /// - /// - /// - /// - /// - /// - private decimal SyncJDRefundOrder(ShopResponse shop, string orderId, string serviceId) - { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var refundOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetRefundList", new SearchRefundPlatformOrderRequest() - { - AppKey = shop.AppKey, - AppSecret = shop.AppSecret, - AppToken = shop.AppToken, - PageIndex = 1, - PageSize = 50, - Platform = shop.PlatformId, - SaveResponseLog = false, - OrderId = orderId - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (refundOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取退款订单失败 {refundOrderListApiResult.Content}"); - - var refundOrderListResponse = JsonConvert.DeserializeObject>(refundOrderListApiResult.Content); - if (!refundOrderListResponse.Success) - throw new Exception($"获取退款订单失败 {refundOrderListApiResult.Content}"); - - if (refundOrderListResponse.Data == null || refundOrderListResponse.Data.Count == 0) - return 0M; - - var jtoken = refundOrderListResponse.Data.FirstOrDefault(j => j["sameOrderServiceBill"]["serviceId"].ToString() == serviceId && - j.Value("status") == 13 && - j.Value("refoundAmount") != 0M); - return jtoken == null ? 0M : jtoken.Value("refoundAmount"); } } } diff --git a/BBWY.Server.Business/Sync/BaseSyncBusiness.cs b/BBWY.Server.Business/Sync/BaseSyncBusiness.cs index 6d729648..ed23bf8c 100644 --- a/BBWY.Server.Business/Sync/BaseSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/BaseSyncBusiness.cs @@ -1,34 +1,41 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; -using Microsoft.Extensions.Options; -using NLog; +using System.Collections.Generic; +using System.Linq; using Yitter.IdGenerator; namespace BBWY.Server.Business { - public class BaseSyncBusiness : BasePlatformRelayBusiness, IDenpendency + public class BaseSyncBusiness : IDenpendency { protected NLogManager nLogManager; protected IFreeSql fsql; protected IIdGenerator idGenerator; protected TaskSchedulerManager taskSchedulerManager; + protected IEnumerable platformSDKBusinessList; protected VenderBusiness venderBusiness; - public BaseSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, + public BaseSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, options, yunDingBusiness) + IEnumerable platformSDKBusinessList, + VenderBusiness venderBusiness) { this.nLogManager = nLogManager; this.fsql = fsql; this.idGenerator = idGenerator; - this.venderBusiness = venderBusiness; this.taskSchedulerManager = taskSchedulerManager; + this.platformSDKBusinessList = platformSDKBusinessList; + this.venderBusiness = venderBusiness; + } + + public PlatformSDKBusiness GetPlatformSDKBusiness(Enums.Platform platofrm) + { + var pb = platformSDKBusinessList.FirstOrDefault(p => p.Platform == platofrm); + if (pb == null) + throw new BusinessException($"不支持平台{platofrm}"); + return pb; } } } diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs index a592b94d..c5f513ac 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdGroupLevelSyncBusiness.cs @@ -1,17 +1,12 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; -using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -20,20 +15,19 @@ namespace BBWY.Server.Business.Sync { public class JDPopularizeReportFormAdGroupLevelSyncBusiness : BaseSyncBusiness, IDenpendency { - public JDPopularizeReportFormAdGroupLevelSyncBusiness(RestApiService restApiService, - IOptions options, + public JDPopularizeReportFormAdGroupLevelSyncBusiness( NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, - options, + IEnumerable platformSDKBusinessList, + VenderBusiness venderBusiness) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { } @@ -93,8 +87,7 @@ namespace BBWY.Server.Business.Sync currentCount = 0; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByAdGroupLevel", new SyncJDPopularizeReportFormRequest() + var response = GetPlatformSDKBusiness(Enums.Platform.京东).GetJDSopularizeReportFormByAdGroupLevel(new SyncJDPopularizeReportFormRequest() { AppKey = shop.AppKey, AppSecret = shop.AppSecret, @@ -104,19 +97,32 @@ namespace BBWY.Server.Business.Sync Platform = shop.PlatformId, PageIndex = pageIndex, Business = 2 - }, GetYunDingRequestHeader(), HttpMethod.Post); + }); + + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByAdGroupLevel", new SyncJDPopularizeReportFormRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // EndDate = endDate, + // StartDate = startDate, + // Platform = shop.PlatformId, + // PageIndex = pageIndex, + // Business = 2 + //}, GetYunDingRequestHeader(), HttpMethod.Post); - nLogManager.GetLogger($"单元维度-{shop.ShopName}").Info(httpResult.Content); + nLogManager.GetLogger($"单元维度-{shop.ShopName}").Info(JsonConvert.SerializeObject(response)); - if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取JD推广报表-单元维度失败 {httpResult.Content}"); + //if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取JD推广报表-单元维度失败 {httpResult.Content}"); - var presponse = JsonConvert.DeserializeObject>(httpResult.Content); - if (!presponse.Success) - throw new Exception($"获取JD推广报表-单元维度失败 {presponse.Msg}"); + //var presponse = JsonConvert.DeserializeObject>(httpResult.Content); + //if (!presponse.Success) + // throw new Exception($"获取JD推广报表-单元维度失败 {presponse.Msg}"); - SyncShopPopularizeReportFormAdGroupLevel(long.Parse(shop.ShopId), presponse.Data); - currentCount = presponse.Data?.Count() ?? 0; + SyncShopPopularizeReportFormAdGroupLevel(long.Parse(shop.ShopId), response); + currentCount = response?.Count() ?? 0; } catch (Exception ex) { diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs index 00e3594b..06ff084d 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormAdLevelSyncBusiness.cs @@ -1,16 +1,12 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; @@ -22,20 +18,18 @@ namespace BBWY.Server.Business.Sync { private char[] separator_dx = new char[] { '-' }; - public JDPopularizeReportFormAdLevelSyncBusiness(RestApiService restApiService, - IOptions options, + public JDPopularizeReportFormAdLevelSyncBusiness( NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, - options, + VenderBusiness venderBusiness, IEnumerable platformSDKBusinessList) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { } @@ -95,8 +89,7 @@ namespace BBWY.Server.Business.Sync currentCount = 0; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByAdLevel", new SyncJDPopularizeReportFormRequest() + var response = GetPlatformSDKBusiness(Enums.Platform.京东).GetJDSopularizeReportFormByAdLevel(new SyncJDPopularizeReportFormRequest() { AppKey = shop.AppKey, AppSecret = shop.AppSecret, @@ -106,19 +99,32 @@ namespace BBWY.Server.Business.Sync Platform = shop.PlatformId, PageIndex = pageIndex, Business = 2 - }, GetYunDingRequestHeader(), HttpMethod.Post); - - nLogManager.GetLogger($"创意维度-{shop.ShopName}").Info(httpResult.Content); - - if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取JD推广报表-创意维度失败 {httpResult.Content}"); - - var presponse = JsonConvert.DeserializeObject>(httpResult.Content); - if (!presponse.Success) - throw new Exception($"获取JD推广报表-创意维度失败 {presponse.Msg}"); + }); - SyncShopPopularizeReportFormAdLevel(shop.ShopName, long.Parse(shop.ShopId), presponse.Data); - currentCount = presponse.Data?.Count() ?? 0; + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByAdLevel", new SyncJDPopularizeReportFormRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // EndDate = endDate, + // StartDate = startDate, + // Platform = shop.PlatformId, + // PageIndex = pageIndex, + // Business = 2 + //}, GetYunDingRequestHeader(), HttpMethod.Post); + + nLogManager.GetLogger($"创意维度-{shop.ShopName}").Info(JsonConvert.SerializeObject(response)); + + //if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取JD推广报表-创意维度失败 {httpResult.Content}"); + + //var presponse = JsonConvert.DeserializeObject>(httpResult.Content); + //if (!presponse.Success) + // throw new Exception($"获取JD推广报表-创意维度失败 {presponse.Msg}"); + + SyncShopPopularizeReportFormAdLevel(shop.ShopName, long.Parse(shop.ShopId), response); + currentCount = response?.Count() ?? 0; } catch (Exception ex) { diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs index 63eec634..60325ec9 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormCampaignLevelSyncBusiness.cs @@ -1,16 +1,12 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -19,21 +15,18 @@ namespace BBWY.Server.Business.Sync { public class JDPopularizeReportFormCampaignLevelSyncBusiness : BaseSyncBusiness, IDenpendency { - public JDPopularizeReportFormCampaignLevelSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, + public JDPopularizeReportFormCampaignLevelSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, + IEnumerable platformSDKBusinessList, + VenderBusiness venderBusiness) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { } @@ -102,8 +95,7 @@ namespace BBWY.Server.Business.Sync currentCount = 0; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByCampaignLevel", new SyncJDPopularizeReportFormRequest() + var response = GetPlatformSDKBusiness(Enums.Platform.京东).GetJDSopularizeReportFormByCampaignLevel(new SyncJDPopularizeReportFormRequest() { AppKey = shop.AppKey, AppSecret = shop.AppSecret, @@ -113,19 +105,32 @@ namespace BBWY.Server.Business.Sync Platform = shop.PlatformId, PageIndex = pageIndex, Business = businessType - }, GetYunDingRequestHeader(), HttpMethod.Post); + }); + + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByCampaignLevel", new SyncJDPopularizeReportFormRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // EndDate = endDate, + // StartDate = startDate, + // Platform = shop.PlatformId, + // PageIndex = pageIndex, + // Business = businessType + //}, GetYunDingRequestHeader(), HttpMethod.Post); - nLogManager.GetLogger($"计划维度-{shop.ShopName}-{(businessType == 2 ? "快车" : "京速推")}").Info(httpResult.Content); + nLogManager.GetLogger($"计划维度-{shop.ShopName}-{(businessType == 2 ? "快车" : "京速推")}").Info(JsonConvert.SerializeObject(response)); - if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取JD推广报表-计划维度失败 {httpResult.Content}"); + //if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取JD推广报表-计划维度失败 {httpResult.Content}"); - var presponse = JsonConvert.DeserializeObject>(httpResult.Content); - if (!presponse.Success) - throw new Exception($"获取JD推广报表-计划维度失败 {presponse.Msg}"); + //var presponse = JsonConvert.DeserializeObject>(httpResult.Content); + //if (!presponse.Success) + // throw new Exception($"获取JD推广报表-计划维度失败 {presponse.Msg}"); - SyncShopPopularizeReportFormCampaignLevel(long.Parse(shop.ShopId), presponse.Data, businessType); - currentCount = presponse.Data?.Count() ?? 0; + SyncShopPopularizeReportFormCampaignLevel(long.Parse(shop.ShopId), response, businessType); + currentCount = response?.Count() ?? 0; } catch (Exception ex) { diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormOrderLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormOrderLevelSyncBusiness.cs index 90b2d39d..2b93f002 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormOrderLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormOrderLevelSyncBusiness.cs @@ -1,16 +1,12 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; @@ -20,21 +16,16 @@ namespace BBWY.Server.Business.Sync { public class JDPopularizeReportFormOrderLevelSyncBusiness : BaseSyncBusiness, IDenpendency { - public JDPopularizeReportFormOrderLevelSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, + public JDPopularizeReportFormOrderLevelSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, + VenderBusiness venderBusiness, IEnumerable platformSDKBusinessList) : base( nLogManager, fsql, idGenerator, - taskSchedulerManager, - venderBusiness, - yunDingBusiness) + taskSchedulerManager, platformSDKBusinessList, + venderBusiness) { } @@ -105,8 +96,7 @@ namespace BBWY.Server.Business.Sync currentCount = 0; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByOrderLevel", new SyncJDPopularizeReportFormRequest() + var response = GetPlatformSDKBusiness(Enums.Platform.京东).GetJDSopularizeReportFormByOrderLevel(new SyncJDPopularizeReportFormRequest() { AppKey = shop.AppKey, AppSecret = shop.AppSecret, @@ -116,23 +106,36 @@ namespace BBWY.Server.Business.Sync Platform = shop.PlatformId, PageIndex = pageIndex, Business = businessType - }, GetYunDingRequestHeader(), HttpMethod.Post); + }); + + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormByOrderLevel", new SyncJDPopularizeReportFormRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // EndDate = endDate, + // StartDate = startDate, + // Platform = shop.PlatformId, + // PageIndex = pageIndex, + // Business = businessType + //}, GetYunDingRequestHeader(), HttpMethod.Post); - nLogManager.GetLogger($"订单维度-{shop.ShopName}-{(businessType == 2 ? "快车" : "京速推")}").Info(httpResult.Content); + nLogManager.GetLogger($"订单维度-{shop.ShopName}-{(businessType == 2 ? "快车" : "京速推")}").Info(JsonConvert.SerializeObject(response)); - if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取JD推广报表-订单维度失败 {httpResult.Content}"); + //if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取JD推广报表-订单维度失败 {httpResult.Content}"); - var presponse = JsonConvert.DeserializeObject>(httpResult.Content); - if (!presponse.Success) - throw new Exception($"获取JD推广报表-订单维度失败 {presponse.Msg}"); + //var presponse = JsonConvert.DeserializeObject>(httpResult.Content); + //if (!presponse.Success) + // throw new Exception($"获取JD推广报表-订单维度失败 {presponse.Msg}"); if (businessType == 2) - SyncShopPopularizeReportFormOrderLevelByKuaiChe(long.Parse(shop.ShopId), presponse.Data); + SyncShopPopularizeReportFormOrderLevelByKuaiChe(long.Parse(shop.ShopId), response); else if (businessType == 134217728) - SyncShopPopularizeReportFormOrderLevelByJST(long.Parse(shop.ShopId), presponse.Data); + SyncShopPopularizeReportFormOrderLevelByJST(long.Parse(shop.ShopId), response); - currentCount = presponse.Data?.Count() ?? 0; + currentCount = response?.Count() ?? 0; } catch (Exception ex) { diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs index 4c7a957d..c919a9df 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeReportFormSkuLevelSyncBusiness.cs @@ -1,16 +1,12 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -19,21 +15,17 @@ namespace BBWY.Server.Business.Sync { public class JDPopularizeReportFormSkuLevelSyncBusiness : BaseSyncBusiness, IDenpendency { - public JDPopularizeReportFormSkuLevelSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, + public JDPopularizeReportFormSkuLevelSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, - nLogManager, + IEnumerable platformSDKBusinessList, + VenderBusiness venderBusiness) : base(nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { } @@ -99,29 +91,42 @@ namespace BBWY.Server.Business.Sync currentCount = 0; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormBySkuLevel", new SyncJDPopularizeReportFormRequest() - { - AppKey = shop.AppKey, - AppSecret = shop.AppSecret, - AppToken = shop.AppToken, - EndDate = endDate, - StartDate = startDate, - Platform = shop.PlatformId, - PageIndex = pageIndex, - Business = 134217728 - }, GetYunDingRequestHeader(), HttpMethod.Post); - nLogManager.GetLogger($"SKU维度-{shop.ShopName}").Info(httpResult.Content); + var response = GetPlatformSDKBusiness(Enums.Platform.京东).GetJDSopularizeReportFormBySkuLevel( + new SyncJDPopularizeReportFormRequest() + { + AppKey = shop.AppKey, + AppSecret = shop.AppSecret, + AppToken = shop.AppToken, + EndDate = endDate, + StartDate = startDate, + Platform = shop.PlatformId, + PageIndex = pageIndex, + Business = 134217728 + }); - if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取JD推广报表-sku维度失败 {httpResult.Content}"); + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDSopularizeReportFormBySkuLevel", new SyncJDPopularizeReportFormRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // EndDate = endDate, + // StartDate = startDate, + // Platform = shop.PlatformId, + // PageIndex = pageIndex, + // Business = 134217728 + //}, GetYunDingRequestHeader(), HttpMethod.Post); + nLogManager.GetLogger($"SKU维度-{shop.ShopName}").Info(JsonConvert.SerializeObject(response)); - var presponse = JsonConvert.DeserializeObject>(httpResult.Content); - if (!presponse.Success) - throw new Exception($"获取JD推广报表-sku维度失败 {presponse.Msg}"); + //if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取JD推广报表-sku维度失败 {httpResult.Content}"); - SyncShopPopularizeReportFormSkuLevel(long.Parse(shop.ShopId), presponse.Data); - currentCount = presponse.Data?.Count() ?? 0; + //var presponse = JsonConvert.DeserializeObject>(httpResult.Content); + //if (!presponse.Success) + // throw new Exception($"获取JD推广报表-sku维度失败 {presponse.Msg}"); + + SyncShopPopularizeReportFormSkuLevel(long.Parse(shop.ShopId), response); + currentCount = response?.Count() ?? 0; } catch (Exception ex) { diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs index ea264f26..04549820 100644 --- a/BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs @@ -1,41 +1,34 @@ -using BBWY.Common.Http; +using BBWY.Common.Extensions; using BBWY.Common.Models; using BBWY.Server.Model; +using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; -using System.Text; +using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; -using BBWY.Common.Extensions; -using BBWY.Server.Model.Db; -using System.Threading; namespace BBWY.Server.Business.Sync { public class JDPopularizeSyncBusiness : BaseSyncBusiness, IDenpendency { - public JDPopularizeSyncBusiness(RestApiService restApiService, - IOptions options, + public JDPopularizeSyncBusiness( NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, + IEnumerable platformSDKBusinessList) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { } @@ -75,26 +68,37 @@ namespace BBWY.Server.Business.Sync currentCount = 0; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDShopSopularizeRecordList", new SyncShopPopularizeRequest() - { - AppKey = shop.AppKey, - AppSecret = shop.AppSecret, - AppToken = shop.AppToken, - EndDate = endDate, - StartDate = startDate, - Platform = shop.PlatformId, - PageIndex = pageIndex - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取JD推广费用失败 {httpResult.Content}"); + var response = GetPlatformSDKBusiness(shop.PlatformId).GetJDShopSopularizeRecordList( + new SyncShopPopularizeRequest() + { + AppKey = shop.AppKey, + AppSecret = shop.AppSecret, + AppToken = shop.AppToken, + EndDate = endDate, + StartDate = startDate, + Platform = shop.PlatformId, + PageIndex = pageIndex + }); + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDShopSopularizeRecordList", new SyncShopPopularizeRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // EndDate = endDate, + // StartDate = startDate, + // Platform = shop.PlatformId, + // PageIndex = pageIndex + //}, GetYunDingRequestHeader(), HttpMethod.Post); + //if (httpResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取JD推广费用失败 {httpResult.Content}"); - var presponse = JsonConvert.DeserializeObject>(httpResult.Content); - if (!presponse.Success) - throw new Exception($"获取JD推广费用失败 {presponse.Msg}"); + //var presponse = JsonConvert.DeserializeObject>(httpResult.Content); + //if (!presponse.Success) + // throw new Exception($"获取JD推广费用失败 {presponse.Msg}"); - SyncShopPopularizeRecord(long.Parse(shop.ShopId), presponse.Data); - currentCount = presponse.Data?.Count() ?? 0; + SyncShopPopularizeRecord(long.Parse(shop.ShopId), response); + currentCount = response?.Count() ?? 0; } catch (Exception ex) { diff --git a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs index d43714d0..8023c9ca 100644 --- a/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDServiceOrderSyncBusiness.cs @@ -1,19 +1,18 @@ -using BBWY.Common.Http; +using BBWY.Common.Extensions; +using BBWY.Common.Http; using BBWY.Common.Models; using BBWY.Server.Model; +using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; +using FreeSql; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; +using System.Linq; using System.Net.Http; using System.Threading.Tasks; using Yitter.IdGenerator; -using System.Linq; -using BBWY.Server.Model.Db; -using FreeSql; -using BBWY.Common.Extensions; namespace BBWY.Server.Business.Sync { @@ -25,9 +24,19 @@ namespace BBWY.Server.Business.Sync private IList kuaiDi100PushStateList_qianshou; private IList kuaiDi100PushStateList_paijian; private Dictionary processResultDic; - - - public JDServiceOrderSyncBusiness(RestApiService restApiService, IOptions options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) + private RestApiService restApiService; + + public JDServiceOrderSyncBusiness(NLogManager nLogManager, + IFreeSql fsql, + IIdGenerator idGenerator, + TaskSchedulerManager taskSchedulerManager, + IEnumerable platformSDKBusinessList, + VenderBusiness venderBusiness, + RestApiService restApiService) : base(nLogManager, + fsql, idGenerator, + taskSchedulerManager, + platformSDKBusinessList, + venderBusiness) { /* yuantong 圆通速递 @@ -54,6 +63,7 @@ jingdongkuaiyun 京东快运 huitongkuaidi 百世快递 */ + kuaiDi100PushStateList_zaitu = new List() { 0, 1001, 1002, 1003 }; kuaiDi100PushStateList_lanshou = new List() { 1, 101, 102, 103 }; kuaiDi100PushStateList_qianshou = new List() { 3, 301, 302, 303, 304 }; @@ -92,6 +102,7 @@ huitongkuaidi 百世快递 { 90,Enums.ServiceResult.线下换新}, { 110,Enums.ServiceResult.商品补发} }; + this.restApiService = restApiService; } public void SyncServiceOrder() @@ -117,7 +128,7 @@ huitongkuaidi 百世快递 taskSchedulerManager.SyncServiceOrderTaskScheduler); } - private void SyncServiceOrder(ShopResponse shop, long shopId, IList jtokenList, string relayAPIHost, string appKey, string appSecret, string token) + private void SyncServiceOrder(ShopResponse shop, long shopId, IList jtokenList, string appKey, string appSecret, string token) { var serviceIdList = jtokenList.Select(j => j.Value("serviceId")).ToList(); var dbServiceOrderList = fsql.Select().Where(s => s.ShopId == shop.ShopId && serviceIdList.Contains(s.ServiceId)).ToList(); @@ -168,7 +179,8 @@ huitongkuaidi 百世快递 { try { - var serviceOrderDetailResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDetail", new QueryServiceOrderDetailRequest() + var p = GetPlatformSDKBusiness(Enums.Platform.京东); + var serviceOrderDetailResponse = p.GetServiceOrderDetail(new QueryServiceOrderDetailRequest() { AppKey = appKey, AppSecret = appSecret, @@ -177,21 +189,32 @@ huitongkuaidi 百世快递 ServiceId = serviceId, Platform = Enums.Platform.京东, VenderId = shop.VenderId - }, GetYunDingRequestHeader(), HttpMethod.Post); - - if (serviceOrderDetailResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取服务单详情失败 {serviceOrderDetailResult.Content}"); - var serviceOrderDetailResponse = JsonConvert.DeserializeObject>(serviceOrderDetailResult.Content); - if (!serviceOrderDetailResponse.Success) - throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); + }); - var processResult = serviceOrderDetailResponse.Data.Value("processResult"); + //var serviceOrderDetailResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDetail", new QueryServiceOrderDetailRequest() + //{ + // AppKey = appKey, + // AppSecret = appSecret, + // AppToken = token, + // OrderId = serviceOrderId, + // ServiceId = serviceId, + // Platform = Enums.Platform.京东, + // VenderId = shop.VenderId + //}, GetYunDingRequestHeader(), HttpMethod.Post); + + //if (serviceOrderDetailResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取服务单详情失败 {serviceOrderDetailResult.Content}"); + //var serviceOrderDetailResponse = JsonConvert.DeserializeObject>(serviceOrderDetailResult.Content); + //if (!serviceOrderDetailResponse.Success) + // throw new Exception($"获取服务单详情失败 {serviceOrderDetailResponse.Msg}"); + + var processResult = serviceOrderDetailResponse.Value("processResult"); if (processResultDic.ContainsKey(processResult)) serviceResult = processResultDic[processResult]; //检查退货城市是否为泉州鲤城区 - isNeedSubscribeKuaiDi100 = (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value("cityCode") ?? 0) == 1332 && - (serviceOrderDetailResponse.Data["afsContactInfo"]?.Value("countyCode") ?? 0) == 42930; + isNeedSubscribeKuaiDi100 = (serviceOrderDetailResponse["afsContactInfo"]?.Value("cityCode") ?? 0) == 1332 && + (serviceOrderDetailResponse["afsContactInfo"]?.Value("countyCode") ?? 0) == 42930; isTuiHuoCang = isNeedSubscribeKuaiDi100; } catch { } @@ -269,7 +292,7 @@ huitongkuaidi 百世快递 try { var shopId = long.Parse(shop.ShopId); - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); var serviceStatusList = new List() { 10005, 10011, 10010 }; var request = new QueryServiceOrderRequest() @@ -288,24 +311,29 @@ huitongkuaidi 百世快递 }; List jtokenList = new List(); + var p = GetPlatformSDKBusiness(Enums.Platform.京东); foreach (var serviceStatus in serviceStatusList) { if (string.IsNullOrEmpty(serviceId)) request.ServiceStatus = serviceStatus; - var serviceOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderList", request, GetYunDingRequestHeader(), HttpMethod.Post); - if (serviceOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取服务单失败 {serviceOrderListApiResult.Content}"); - var serviceOrderListResponse = JsonConvert.DeserializeObject>(serviceOrderListApiResult.Content); - if (!serviceOrderListResponse.Success) - throw new Exception($"获取服务单失败 {serviceOrderListResponse.Msg}"); - if (serviceOrderListResponse.Data != null && serviceOrderListResponse.Data.Count() > 0) - jtokenList.AddRange(serviceOrderListResponse.Data); + + var serviceOrderListResponse = p.GetServiceOrderList(request); + //var serviceOrderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderList", request, GetYunDingRequestHeader(), HttpMethod.Post); + //if (serviceOrderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取服务单失败 {serviceOrderListApiResult.Content}"); + //var serviceOrderListResponse = JsonConvert.DeserializeObject>(serviceOrderListApiResult.Content); + //if (!serviceOrderListResponse.Success) + // throw new Exception($"获取服务单失败 {serviceOrderListResponse.Msg}"); + + + if (serviceOrderListResponse != null && serviceOrderListResponse.Count() > 0) + jtokenList.AddRange(serviceOrderListResponse); if (!string.IsNullOrEmpty(serviceId)) break; } if (jtokenList.Count() > 0) - SyncServiceOrder(shop, shopId, jtokenList, relayAPIHost, request.AppKey, request.AppSecret, request.AppToken); + SyncServiceOrder(shop, shopId, jtokenList, request.AppKey, request.AppSecret, request.AppToken); } catch (Exception ex) { @@ -340,7 +368,7 @@ huitongkuaidi 百世快递 var loggerName = $"订阅快递100-{shop.ShopName}"; try { - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); var serviceOrderList = fsql.Select().Where(s => s.ShopId == shop.ShopId && s.IsNeedSubscribeKuaiDi100 == true && s.IsSubscribeKuaiDi100 == false) @@ -349,7 +377,7 @@ huitongkuaidi 百世快递 .ToList(); List> updateSerivceOrderList = new List>(); List insertExpressOrderList = new List(); - + var p = GetPlatformSDKBusiness(shop.PlatformId); foreach (var serviceOrder in serviceOrderList) { bool isUpdateDelivery = false, isUpdateSubscribe = false; @@ -359,7 +387,7 @@ huitongkuaidi 百世快递 try { #region 查询服务单运单详情 - var serviceOrderDeliveryResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDeliveryDetail", new QueryServiceOrderDetailRequest() + var serviceOrderDeliveryResponse = p.GetServiceOrderDeliveryDetail(new QueryServiceOrderDetailRequest() { AppKey = shop.AppKey, AppSecret = shop.AppSecret, @@ -368,18 +396,29 @@ huitongkuaidi 百世快递 ServiceId = serviceOrder.ServiceId, Platform = Enums.Platform.京东, VenderId = shop.VenderId - }, GetYunDingRequestHeader(), HttpMethod.Post); - - if (serviceOrderDeliveryResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取服务单运单详情失败 {serviceOrderDeliveryResult.Content}"); - var serviceOrderDeliveryResponse = JsonConvert.DeserializeObject>(serviceOrderDeliveryResult.Content); - if (!serviceOrderDeliveryResponse.Success) - throw new Exception($"获取服务单运单详情失败 {serviceOrderDeliveryResponse.Msg}"); + }); - if (serviceOrderDeliveryResponse.Data != null) + //var serviceOrderDeliveryResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceOrderDeliveryDetail", new QueryServiceOrderDetailRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // OrderId = serviceOrder.OrderId, + // ServiceId = serviceOrder.ServiceId, + // Platform = Enums.Platform.京东, + // VenderId = shop.VenderId + //}, GetYunDingRequestHeader(), HttpMethod.Post); + + //if (serviceOrderDeliveryResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取服务单运单详情失败 {serviceOrderDeliveryResult.Content}"); + //var serviceOrderDeliveryResponse = JsonConvert.DeserializeObject>(serviceOrderDeliveryResult.Content); + //if (!serviceOrderDeliveryResponse.Success) + // throw new Exception($"获取服务单运单详情失败 {serviceOrderDeliveryResponse.Msg}"); + + if (serviceOrderDeliveryResponse != null) { - serviceOrder.WayBillNo = serviceOrderDeliveryResponse.Data.Value("expressCode"); - serviceOrder.ExpressName = serviceOrderDeliveryResponse.Data.Value("expressCompany"); + serviceOrder.WayBillNo = serviceOrderDeliveryResponse.Value("expressCode"); + serviceOrder.ExpressName = serviceOrderDeliveryResponse.Value("expressCompany"); if (!string.IsNullOrEmpty(serviceOrder.WayBillNo) && serviceOrder.WayBillNo.StartsWith("JD") && string.IsNullOrEmpty(serviceOrder.ExpressName)) { diff --git a/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs index 0252010d..280dfedd 100644 --- a/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSkuSaleDetailSyncBusiness.cs @@ -3,14 +3,13 @@ using BBWY.Server.Model.Db; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using Yitter.IdGenerator; namespace BBWY.Server.Business { public class OrderSkuSaleDetailSyncBusiness : BaseBusiness, IDenpendency { - public OrderSkuSaleDetailSyncBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator) + public OrderSkuSaleDetailSyncBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { } diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 3724745c..c5e1076e 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -1,5 +1,4 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Business.Extensions; using BBWY.Server.Business.PlatformSDK.DataExtension; using BBWY.Server.Model; @@ -7,16 +6,11 @@ using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.Caching.Memory; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using NLog; using System; -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; @@ -25,32 +19,28 @@ namespace BBWY.Server.Business { public class OrderSyncBusiness : BaseSyncBusiness, IDenpendency { - private IDictionary> syncOrderMethodDic; + private IDictionary, long, string, string, string, decimal>> syncOrderMethodDic; private IMemoryCache memoryCache; private IList validOrderState; - public OrderSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, + public OrderSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, - VenderBusiness venderBusiness, IMemoryCache memoryCache, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, + IEnumerable platformSDKBusinessList, + VenderBusiness venderBusiness) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, venderBusiness) { this.memoryCache = memoryCache; - syncOrderMethodDic = new Dictionary>() + syncOrderMethodDic = new Dictionary, long, string, string, string, decimal>>() { { Enums.Platform.京东, SyncJDOrder } }; @@ -58,6 +48,7 @@ namespace BBWY.Server.Business { "WAIT_SELLER_STOCK_OUT","WAIT_GOODS_RECEIVE_CONFIRM","FINISHED_L","LOCKED","TRADE_CANCELED","POP_ORDER_PAUSE","PAUSE" }; + this.platformSDKBusinessList = platformSDKBusinessList; } /// /// 手动同步订单 @@ -106,8 +97,9 @@ namespace BBWY.Server.Business if (!syncOrderMethodDic.ContainsKey(shop.PlatformId)) throw new Exception("不支持的平台"); var shopId = long.Parse(shop.ShopId); - var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); - var orderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderList", new SearchPlatformOrderRequest() + + var p = GetPlatformSDKBusiness(shop.PlatformId); + var orderList = p.GetOrderList(new SearchPlatformOrderRequest() { StartDate = startTime ?? DateTime.Now.AddHours(shop.ShopName.Contains("腾奇") ? -0.5 : -3), EndDate = endTime ?? DateTime.Now, @@ -121,28 +113,45 @@ namespace BBWY.Server.Business //SaveResponseLog = true, OrderId = orderId, SortTimeType = sortTimeType - }, GetYunDingRequestHeader(), HttpMethod.Post, timeOutSeconds: 120); - if (orderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception($"获取订单失败 {orderListApiResult.Content}"); - - var orderListResponse = JsonConvert.DeserializeObject>(orderListApiResult.Content); - if (!orderListResponse.Success) - throw new Exception($"获取订单失败 {orderListApiResult.Content}"); - - if (orderListResponse.Data == null || orderListResponse.Data.Count == 0) - return; + }); + + //var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId); + //var orderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderList", new SearchPlatformOrderRequest() + //{ + // StartDate = startTime ?? DateTime.Now.AddHours(shop.ShopName.Contains("腾奇") ? -0.5 : -3), + // EndDate = endTime ?? DateTime.Now, + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // PageIndex = 1, + // PageSize = 100, + // Platform = shop.PlatformId, + // JDColType = string.IsNullOrEmpty(shop.ShopType) ? "0" : shop.ShopType, + // //SaveResponseLog = true, + // OrderId = orderId, + // SortTimeType = sortTimeType + //}, GetYunDingRequestHeader(), HttpMethod.Post, timeOutSeconds: 120); + //if (orderListApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception($"获取订单失败 {orderListApiResult.Content}"); + + //var orderListResponse = JsonConvert.DeserializeObject>(orderListApiResult.Content); + //if (!orderListResponse.Success) + // throw new Exception($"获取订单失败 {orderListApiResult.Content}"); + + //if (orderListResponse.Data == null || orderListResponse.Data.Count == 0) + // return; if (shopId == 10388155) { try { - nLogManager.GetLogger($"订单同步-{shop.ShopName}").Info(orderListApiResult.Content); + nLogManager.GetLogger($"订单同步-{shop.ShopName}").Info(JsonConvert.SerializeObject(orderList)); } catch { } } - syncOrderMethodDic[shop.PlatformId](orderListResponse.Data, shopId, relayAPIHost, shop.AppKey, shop.AppSecret, shop.AppToken, shop.PlatformCommissionRatio ?? 0.05M); + syncOrderMethodDic[shop.PlatformId](orderList, shopId, shop.AppKey, shop.AppSecret, shop.AppToken, shop.PlatformCommissionRatio ?? 0.05M); } catch (Exception ex) { @@ -207,7 +216,7 @@ namespace BBWY.Server.Business }, System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler); } - private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) + private void SyncJDOrder(IList orderTokenJArray, long shopId, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) { var validOrders = orderTokenJArray.Where(o => validOrderState.Contains(o.Value("orderState"))); if (validOrders.Count() == 0) @@ -645,20 +654,34 @@ namespace BBWY.Server.Business for (var i = 0; i < orderSkuRequestCount; i++) { var orderSkuIdString = string.Join(",", orderSkuIds.Skip(i * 50).Take(50)); - var skuHttpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetSimpleProductSkuList", new SearchProductSkuRequest() - { - AppKey = appKey, - AppSecret = appSecret, - AppToken = appToken, - Platform = Enums.Platform.京东, - Sku = orderSkuIdString - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (skuHttpResult.StatusCode != System.Net.HttpStatusCode.OK) - continue; - var skuResponse = JsonConvert.DeserializeObject>>(skuHttpResult.Content); - if (!skuResponse.Success) - continue; - foreach (var sku in skuResponse.Data) + + var p = GetPlatformSDKBusiness(Enums.Platform.京东); + var skuList = p.GetSimpleProductSkuList( + new SearchProductSkuRequest() + { + AppKey = appKey, + AppSecret = appSecret, + AppToken = appToken, + Platform = Enums.Platform.京东, + Sku = orderSkuIdString + }); + + //var skuHttpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetSimpleProductSkuList", new SearchProductSkuRequest() + //{ + // AppKey = appKey, + // AppSecret = appSecret, + // AppToken = appToken, + // Platform = Enums.Platform.京东, + // Sku = orderSkuIdString + //}, GetYunDingRequestHeader(), HttpMethod.Post); + //if (skuHttpResult.StatusCode != System.Net.HttpStatusCode.OK) + // continue; + //var skuResponse = JsonConvert.DeserializeObject>>(skuHttpResult.Content); + //if (!skuResponse.Success) + // continue; + + + foreach (var sku in skuList) { var insertSkus = insertOrderSkuList.Where(orderSku => orderSku.SkuId == sku.Id); foreach (var insertSku in insertSkus) { insertSku.Logo = sku.Logo; } diff --git a/BBWY.Server.Business/Sync/ProductSyncBusiness.cs b/BBWY.Server.Business/Sync/ProductSyncBusiness.cs index 3a4f3cc9..c5dfb296 100644 --- a/BBWY.Server.Business/Sync/ProductSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/ProductSyncBusiness.cs @@ -1,18 +1,15 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; -using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; -using NLog; -using System.Threading.Tasks; -using Yitter.IdGenerator; -using System.Linq; using BBWY.Server.Model.Db; +using BBWY.Server.Model.Dto; +using FreeSql; +using Newtonsoft.Json; using System; using System.Collections.Generic; -using Newtonsoft.Json; -using FreeSql; +using System.Linq; using System.Threading; +using System.Threading.Tasks; +using Yitter.IdGenerator; namespace BBWY.Server.Business.Sync { @@ -20,22 +17,20 @@ namespace BBWY.Server.Business.Sync { private ProductBusiness productBusiness; - public ProductSyncBusiness(RestApiService restApiService, - IOptions options, + public ProductSyncBusiness( NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, ProductBusiness productBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, + IEnumerable platformSDKBusinessList) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { this.productBusiness = productBusiness; } diff --git a/BBWY.Server.Business/Sync/StoreHouseSyncBusiness.cs b/BBWY.Server.Business/Sync/StoreHouseSyncBusiness.cs index 9420f31f..7dd26e03 100644 --- a/BBWY.Server.Business/Sync/StoreHouseSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/StoreHouseSyncBusiness.cs @@ -1,15 +1,11 @@ -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -20,21 +16,18 @@ namespace BBWY.Server.Business.Sync { private IDictionary>> storeHouseSyncMethodDic; - public StoreHouseSyncBusiness(RestApiService restApiService, - IOptions options, - NLogManager nLogManager, + public StoreHouseSyncBusiness(NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, - YunDingBusiness yunDingBusiness) : base(restApiService, - options, + IEnumerable platformSDKBusinessList) : base( nLogManager, fsql, idGenerator, taskSchedulerManager, - venderBusiness, - yunDingBusiness) + platformSDKBusinessList, + venderBusiness) { storeHouseSyncMethodDic = new Dictionary>>() { @@ -51,26 +44,35 @@ namespace BBWY.Server.Business.Sync { var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); var storeHouseList = new List(); + var p = GetPlatformSDKBusiness(Enums.Platform.京东); foreach (var shop in shopList) { Thread.Sleep(1000); try { - var restApiResult = restApiService.SendRequest(GetPlatformRelayAPIHost(shop.PlatformId), "api/PlatformSDK/GetStoreHouseList", new PlatformRequest() + var response = p.GetStoreHouseList(new PlatformRequest() { AppKey = shop.AppKey, AppSecret = shop.AppSecret, AppToken = shop.AppToken, Platform = shop.PlatformId, SaveResponseLog = false - }, GetYunDingRequestHeader(), HttpMethod.Post); - if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new Exception(restApiResult.Content); - var response = JsonConvert.DeserializeObject>(restApiResult.Content); - if (response.Data == null || response.Data.Count() == 0) + }); + //var restApiResult = restApiService.SendRequest(GetPlatformRelayAPIHost(shop.PlatformId), "api/PlatformSDK/GetStoreHouseList", new PlatformRequest() + //{ + // AppKey = shop.AppKey, + // AppSecret = shop.AppSecret, + // AppToken = shop.AppToken, + // Platform = shop.PlatformId, + // SaveResponseLog = false + //}, GetYunDingRequestHeader(), HttpMethod.Post); + //if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new Exception(restApiResult.Content); + //var response = JsonConvert.DeserializeObject>(restApiResult.Content); + if (response == null || response.Count() == 0) continue; //ResolveJDStoreHouse(response.Data, shop, storeHouseList); - storeHouseSyncMethodDic[shop.PlatformId](response.Data, shop, storeHouseList); + storeHouseSyncMethodDic[shop.PlatformId](response, shop, storeHouseList); } catch (Exception ex) { diff --git a/BBWY.Server.Business/Vender/VenderBusiness.cs b/BBWY.Server.Business/Vender/VenderBusiness.cs index 7c5eb43f..159f8af0 100644 --- a/BBWY.Server.Business/Vender/VenderBusiness.cs +++ b/BBWY.Server.Business/Vender/VenderBusiness.cs @@ -1,55 +1,51 @@ - -using BBWY.Common.Http; -using BBWY.Common.Models; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Db.Mds; using BBWY.Server.Model.Dto; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; -using System.Net.Http; using Yitter.IdGenerator; namespace BBWY.Server.Business { - public class VenderBusiness : BasePlatformRelayBusiness, IDenpendency + public class VenderBusiness : BaseBusiness, IDenpendency { private FreeSqlMultiDBManager freeSqlMultiDBManager; - private IIdGenerator idGenerator; - public VenderBusiness(FreeSqlMultiDBManager freeSqlMultiDBManager, - RestApiService restApiService, - IOptions options, - IIdGenerator idGenerator, YunDingBusiness yunDingBusiness) : base(restApiService, options, yunDingBusiness) + + public VenderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager freeSqlMultiDBManager, IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator, platformSDKBusinessList) { this.freeSqlMultiDBManager = freeSqlMultiDBManager; - this.idGenerator = idGenerator; + this.platformSDKBusinessList = platformSDKBusinessList; } public VenderResponse GetVenderInfo(PlatformRequest platformRequest) { - var relayAPIHost = GetPlatformRelayAPIHost(platformRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetVenderInfo", platformRequest, GetYunDingRequestHeader(), HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; - return response.Data; + //var relayAPIHost = GetPlatformRelayAPIHost(platformRequest.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetVenderInfo", platformRequest, GetYunDingRequestHeader(), HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; + //return response.Data; + return GetPlatformSDKBusiness(platformRequest.Platform).GetVenderInfo(platformRequest); } public IList GetLogisticsList(PlatformRequest platformRequest) { - var relayAPIHost = GetPlatformRelayAPIHost(platformRequest.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetLogisticsList", platformRequest, GetYunDingRequestHeader(), System.Net.Http.HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; - return response.Data; + //var relayAPIHost = GetPlatformRelayAPIHost(platformRequest.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetLogisticsList", platformRequest, GetYunDingRequestHeader(), System.Net.Http.HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; + //return response.Data; + + return GetPlatformSDKBusiness(platformRequest.Platform).GetLogisticsList(platformRequest); } public string AcceptJDShopToken(JDShopToken jDShopToken) @@ -314,14 +310,16 @@ namespace BBWY.Server.Business public IList GetServiceGroupList(PlatformRequest request) { - var relayAPIHost = GetPlatformRelayAPIHost(request.Platform); - var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceGroupList", request, GetYunDingRequestHeader(), HttpMethod.Post); - if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) - throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; - var response = JsonConvert.DeserializeObject>>(sendResult.Content); - if (!response.Success) - throw new BusinessException(response.Msg) { Code = response.Code }; - return response.Data; + //var relayAPIHost = GetPlatformRelayAPIHost(request.Platform); + //var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetServiceGroupList", request, GetYunDingRequestHeader(), HttpMethod.Post); + //if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) + // throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; + //var response = JsonConvert.DeserializeObject>>(sendResult.Content); + //if (!response.Success) + // throw new BusinessException(response.Msg) { Code = response.Code }; + //return response.Data; + + return GetPlatformSDKBusiness(request.Platform).GetServiceGroupList(request); } } }