diff --git a/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceOrderQueryRequest.cs b/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceOrderQueryRequest.cs index 36dfb1c2..e2e4f286 100644 --- a/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceOrderQueryRequest.cs +++ b/BBWY.JDSDK/Request/AdsIbgUniversalJosServiceOrderQueryRequest.cs @@ -6,193 +6,193 @@ namespace Jd.Api.Request { public class AdsIbgUniversalJosServiceOrderQueryRequest : JdRequestBase { - public string - clickStartDay - {get; set;} - - public string - orderType - {get; set;} - - public string - orderStartDay - {get; set;} - - public string - orderStatus - {get; set;} - - public string - pageSize - {get; set;} - - public string - platform - {get; set;} - - public string - adGroupId - {get; set;} - - public string - paymentType - {get; set;} - - public string - activityId - {get; set;} - - public string - mediaGroupId - {get; set;} - - public string - province - {get; set;} - - public string - clickOrOrderDay - {get; set;} - - public string - clickOrOrderCaliber - {get; set;} - - public string - orderEndDay - {get; set;} - - public string - clickEndDay - {get; set;} - - public string - giftFlag - {get; set;} - - public string - campaignId - {get; set;} - - public string - deliveryType - {get; set;} - - public string - mediaType - {get; set;} - - public string - impressionOrClickEffect - {get; set;} - - public string - posPackageId - {get; set;} - - public string - page - {get; set;} - - public string - startDay - {get; set;} - - public string - endDay - {get; set;} - - public string - myself - {get; set;} - - public string - businessType - {get; set;} - - public string - accessPin - {get; set;} - - public string - authType - {get; set;} - - public string - deliverySystemType - {get; set;} - - public string - jdMediaUserId - {get; set;} - - public override string ApiName - { - get{return "jingdong.ads.ibg.UniversalJosService.order.query";} - } - protected override void PrepareParam(IDictionary parameters) - { - parameters.Add("clickStartDay", this. clickStartDay -); - parameters.Add("orderType", this. orderType -); - parameters.Add("orderStartDay", this. orderStartDay -); - parameters.Add("orderStatus", this. orderStatus -); - parameters.Add("pageSize", this. pageSize -); - parameters.Add("platform", this. platform -); - parameters.Add("adGroupId", this. adGroupId -); - parameters.Add("paymentType", this. paymentType -); - parameters.Add("activityId", this. activityId -); - parameters.Add("mediaGroupId", this. mediaGroupId -); - parameters.Add("province", this. province -); - parameters.Add("clickOrOrderDay", this. clickOrOrderDay -); - parameters.Add("clickOrOrderCaliber", this. clickOrOrderCaliber -); - parameters.Add("orderEndDay", this. orderEndDay -); - parameters.Add("clickEndDay", this. clickEndDay -); - parameters.Add("giftFlag", this. giftFlag -); - parameters.Add("campaignId", this. campaignId -); - parameters.Add("deliveryType", this. deliveryType -); - parameters.Add("mediaType", this. mediaType -); - parameters.Add("impressionOrClickEffect", this. impressionOrClickEffect + public string +clickStartDay + { get; set; } + + public string +orderType + { get; set; } + + public string +orderStartDay + { get; set; } + + public string +orderStatus + { get; set; } + + public string +pageSize + { get; set; } + + public string +platform + { get; set; } + + public string +adGroupId + { get; set; } + + public string +paymentType + { get; set; } + + public string +activityId + { get; set; } + + public string +mediaGroupId + { get; set; } + + public string +province + { get; set; } + + public string +clickOrOrderDay + { get; set; } + + public string +clickOrOrderCaliber + { get; set; } + + public string +orderEndDay + { get; set; } + + public string +clickEndDay + { get; set; } + + public string +giftFlag + { get; set; } + + public string +campaignId + { get; set; } + + public string +deliveryType + { get; set; } + + public string +mediaType + { get; set; } + + public string +impressionOrClickEffect + { get; set; } + + public string +posPackageId + { get; set; } + + public string +page + { get; set; } + + public string +startDay + { get; set; } + + public string +endDay + { get; set; } + + public string +myself + { get; set; } + + public string +businessType + { get; set; } + + public string +accessPin + { get; set; } + + public string +authType + { get; set; } + + public string +deliverySystemType + { get; set; } + + public string +jdMediaUserId + { get; set; } + + public override string ApiName + { + get { return "jingdong.ads.ibg.UniversalJosService.order.query"; } + } + protected override void PrepareParam(IDictionary parameters) + { + parameters.Add("clickStartDay", this.clickStartDay +); + parameters.Add("orderType", this.orderType +); + parameters.Add("orderStartDay", this.orderStartDay +); + parameters.Add("orderStatus", this.orderStatus +); + parameters.Add("pageSize", this.pageSize +); + parameters.Add("platform", this.platform +); + parameters.Add("adGroupId", this.adGroupId +); + parameters.Add("paymentType", this.paymentType +); + parameters.Add("activityId", this.activityId +); + parameters.Add("mediaGroupId", this.mediaGroupId ); - parameters.Add("posPackageId", this. posPackageId + parameters.Add("province", this.province ); - parameters.Add("page", this. page + parameters.Add("clickOrOrderDay", this.clickOrOrderDay ); - parameters.Add("startDay", this. startDay + parameters.Add("clickOrOrderCaliber", this.clickOrOrderCaliber ); - parameters.Add("endDay", this. endDay + parameters.Add("orderEndDay", this.orderEndDay ); - parameters.Add("myself", this. myself + parameters.Add("clickEndDay", this.clickEndDay ); - parameters.Add("businessType", this. businessType + parameters.Add("giftFlag", this.giftFlag ); - parameters.Add("accessPin", this. accessPin + parameters.Add("campaignId", this.campaignId ); - parameters.Add("authType", this. authType + parameters.Add("deliveryType", this.deliveryType ); - parameters.Add("deliverySystemType", this. deliverySystemType + parameters.Add("mediaType", this.mediaType ); - parameters.Add("jdMediaUserId", this. jdMediaUserId + parameters.Add("impressionOrClickEffect", this.impressionOrClickEffect ); - } + parameters.Add("posPackageId", this.posPackageId +); + parameters.Add("page", this.page +); + parameters.Add("startDay", this.startDay +); + parameters.Add("endDay", this.endDay +); + parameters.Add("myself", this.myself +); + parameters.Add("businessType", this.businessType +); + parameters.Add("accessPin", this.accessPin +); + parameters.Add("authType", this.authType +); + parameters.Add("deliverySystemType", this.deliverySystemType +); + parameters.Add("jdMediaUserId", this.jdMediaUserId +); + } } } @@ -200,6 +200,6 @@ namespace Jd.Api.Request - - + + diff --git a/BBWY.JDSDK/Request/SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryRequest.cs b/BBWY.JDSDK/Request/SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryRequest.cs new file mode 100644 index 00000000..66b62670 --- /dev/null +++ b/BBWY.JDSDK/Request/SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryRequest.cs @@ -0,0 +1,21 @@ +using BBWY.JDSDK.Response; +using Jd.Api; +using System.Collections.Generic; + +namespace BBWY.JDSDK.Request +{ + public class SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryRequest : JdRequestBase + { + public override string ApiName => "jingdong.seller.delivery.SendPromiseTemplateJsfService.querySendTemplateByCategory"; + + public int categoryId { get; set; } + + public bool dzSku { get; set; } + + protected override void PrepareParam(IDictionary paramters) + { + paramters.Add("categoryId", this.categoryId); + paramters.Add("dzSku", this.dzSku); + } + } +} diff --git a/BBWY.JDSDK/Response/SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryResponse.cs b/BBWY.JDSDK/Response/SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryResponse.cs new file mode 100644 index 00000000..aa9eaabf --- /dev/null +++ b/BBWY.JDSDK/Response/SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryResponse.cs @@ -0,0 +1,11 @@ +using Jd.Api; +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.JDSDK.Response +{ + public class SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryResponse: JdResponse + { + } +} diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 5ef4b0a0..a5f0929c 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -1,5 +1,6 @@ using BBWY.Common.Extensions; using BBWY.Common.Models; +using BBWY.JDSDK.Request; using BBWY.Server.Model; using BBWY.Server.Model.Dto; using Jd.ACES; @@ -1071,8 +1072,32 @@ namespace BBWY.Server.Business (string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg); if (errorMsg.Contains("此类目发货时效必填")) { + int? promiseId = null; + #region 查询时效模板 + { + var shixiaoReq = new SellerDeliverySendPromiseTemplateJsfServiceQuerySendTemplateByCategoryRequest(); + shixiaoReq.categoryId = int.Parse(request.MainProductCategoryId); + shixiaoReq.dzSku = true; + var shixiaoRes = jdClient.Execute(shixiaoReq, request.AppToken, DateTime.Now.ToLocalTime()); + if (shixiaoRes.IsError) + { + RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, null, request.MainProductSpu, request.FullTitle, brandName, false); + throw new BusinessException($"查询时效模板失败-{(string.IsNullOrEmpty(shixiaoRes.ErrorMsg) ? shixiaoRes.ErrMsg : shixiaoRes.ErrorMsg)}"); + } + if (shixiaoRes.Json == null) + shixiaoRes.Json = JObject.Parse(shixiaoRes.Body); + var shixiaoJToken = shixiaoRes.Json["jingdong_seller_delivery_SendPromiseTemplateJsfService_querySendTemplateByCategory_responce"]["returnType"]["bizResponse"]["promiseTemplateDtoList"].Children().FirstOrDefault(); + if (shixiaoJToken == null) + { + RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, null, request.MainProductSpu, request.FullTitle, brandName, false); + throw new BusinessException($"查询时效模板失败-未查询到时效模板"); + } + promiseId = shixiaoJToken.Value("templateId"); + } + #endregion + foreach (var skuParam in req.skus) - skuParam.promiseId = 30603710; + skuParam.promiseId = promiseId; res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); if (res.IsError) {