From c340a7557cc3649f23256633fdc021e87275282a Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 28 Dec 2022 01:58:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E4=BF=83=E9=94=80=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluationAssistantBusiness.cs | 54 ++++++++++-- .../PlatformSDK/JDBusiness.cs | 87 ++++++++++++++++++- .../PlatformSDK/PlatformSDKBusiness.cs | 2 +- .../Db/EvaluationAssistant/PromotionTask.cs | 6 ++ .../StartPromotionTaskRequest.cs | 2 + BBWY.Test/JDProductAPITest.cs | 6 +- BBWY.Test/Program.cs | 12 +-- 7 files changed, 149 insertions(+), 20 deletions(-) diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index a60c691c..747eaccf 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -29,7 +29,16 @@ namespace BBWY.Server.Business #region 赠品模板 public void AddOrEditGiftTemplate(AddOrEditGiftTemplateRequest request) { + if (string.IsNullOrEmpty(request.TemplateName)) + throw new BusinessException("缺少模板名称"); + if (string.IsNullOrEmpty(request.GiftSkus)) + throw new BusinessException("缺少赠品SKU"); + var giftCount = request.GiftSkus.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Count(); + + if (giftCount == 0) + throw new BusinessException("缺少赠品SKU"); + if (request.Id == 0) { var giftTemplate = new GiftTemplate() @@ -69,6 +78,24 @@ namespace BBWY.Server.Business #region 评价助手任务 public void AddOrEditPromotionTask(AddOrEditPromotionTaskRequest request) { + if (string.IsNullOrEmpty(request.MainProductSpu)) + throw new BusinessException("缺少主商品SPU"); + + if (request.MotherTemplateId == 0 && string.IsNullOrEmpty(request.MainProductSku)) + throw new BusinessException("奶妈模板和主商品SKU至少具备一个"); + + if (request.GiftTemplateId == 0 && string.IsNullOrEmpty(request.MainProductGiftSku)) + throw new BusinessException("赠品模板和主商品赠品SKU至少具备一个"); + + if (string.IsNullOrEmpty(request.SimpleTitle) || string.IsNullOrEmpty(request.FullTitle)) + throw new BusinessException("缺少精简标题或完整标题"); + + if (string.IsNullOrEmpty(request.ActivityName)) + throw new BusinessException("缺少活动名称"); + + if (request.ActivityName.Length > 10) + throw new BusinessException("活动名称不能超过10个字"); + if (request.Id == 0) { var relayAPIHost = GetPlatformRelayAPIHost(Enums.Platform.京东); @@ -122,7 +149,7 @@ namespace BBWY.Server.Business request.Map(dbPromotionTask); fsql.Update().SetSource(dbPromotionTask) - .IgnoreColumns(new string[] { "UpdateSortTime", "Sort", "Status", "CreateTime" }) + .IgnoreColumns(new string[] { "UpdateSortTime", "Sort", "Status", "CreateTime", "SpuLogo", "SpuPublishTime", "StartTime", "EndTime" }) .ExecuteAffrows(); } } @@ -153,9 +180,26 @@ namespace BBWY.Server.Business /// public void EditPromotionTaskSort(EditPromotionTaskSortRequest request) { - fsql.Update(request.Id).Set(pt => pt.Sort + request.MoveType) - .Set(pt => pt.UpdateSortTime, DateTime.Now) - .ExecuteAffrows(); + var dbPromotionTask = fsql.Select(request.Id).ToOne(); + PromotionTask oldDbPromotionTask = null; + if (request.MoveType == 1) + oldDbPromotionTask = fsql.Select().Where(pt => pt.Sort > dbPromotionTask.Sort).OrderBy(pt => pt.Sort).ToOne(); + else + oldDbPromotionTask = fsql.Select().Where(pt => pt.Sort < dbPromotionTask.Sort).OrderByDescending(pt => pt.Sort).ToOne(); + + + if (oldDbPromotionTask != null) + { + fsql.Transaction(() => + { + fsql.Update(dbPromotionTask.Id).Set(pt => pt.Sort, oldDbPromotionTask.Sort) + .Set(pt => pt.UpdateSortTime, DateTime.Now) + .ExecuteAffrows(); + fsql.Update(oldDbPromotionTask.Id).Set(pt => pt.Sort, dbPromotionTask.Sort) + .Set(pt => pt.UpdateSortTime, DateTime.Now) + .ExecuteAffrows(); + }); + } } /// @@ -188,8 +232,6 @@ namespace BBWY.Server.Business { } - - } #endregion } diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 9e88e84b..d63ae4ff 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -651,7 +651,7 @@ namespace BBWY.Server.Business var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); } - public override int StartJDPromotionTask(StartPromotionTaskRequest2 request) + public override long StartJDPromotionTask(StartPromotionTaskRequest2 request) { var stepText = string.Empty; //stepText.AppendLine($"任务Id {request.Id} 店铺Id {request.ShopId}"); @@ -662,6 +662,7 @@ namespace BBWY.Server.Business IList multiCateProps = null; long wareId = long.Parse(request.MainProductSpu); List giftSkuList = new List(); + long promotionId = 0; #region 获取主商品sku信息 barCode,categoryId,multiCateProps { @@ -855,19 +856,97 @@ namespace BBWY.Server.Business } #region 创建活动 + { + stepText = "创建活动"; + var req = new SellerPromotionAddRequest(); + req.name = request.ActivityName; + req.type = 4; //赠品促销 + req.beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + req.endTime = DateTime.Now.AddDays(180).ToString("yyyy-MM-dd HH:mm:ss"); + + //req.bound = 123; + //req.member = 123; + //req.slogan = "abc"; + //req.comment = "abc"; + //req.favorMode = 123; + + var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + if (res.Json == null) + res.Json = JObject.Parse(res.Body); + if (res.IsError) + { + if (!string.IsNullOrEmpty(request.GiftTemplateSku)) + { + try + { + foreach (var deleteSku in giftSkuList) + { + DeleteSku(new DeleteSkuRequest() + { + AppKey = request.AppKey, + AppSecret = request.AppSecret, + AppToken = request.AppToken, + Platform = request.Platform, + Sku = deleteSku + }); + } + } + catch { } + } + throw new BusinessException($"创建活动失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}"); + } + + promotionId = res.Json["jingdong_seller_promotion_add_responce"].Value("promo_id"); + } #endregion #region 添加活动sku + { + stepText = "添加活动sku"; + var req = new SellerPromotionSkuAddRequest(); + + req.promoId = promotionId; + + req.skuIds = ""; + + //req.jdPrices = ; + + //req.promoPrices = ; + + //req.seq = ; + + //req.num = ; + //req.bindType = ; + + + SellerPromotionSkuAddResponse response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + } #endregion #region 审核活动 - + { + stepText = "审核活动"; + var req = new SellerPromotionCheckRequest(); + req.promoId = promotionId; + req.status = 4; + var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + } #endregion #region 下架赠品sku - + foreach (var deleteSku in giftSkuList) + { + DeleteSku(new DeleteSkuRequest() + { + AppKey = request.AppKey, + AppSecret = request.AppSecret, + AppToken = request.AppToken, + Platform = request.Platform, + Sku = deleteSku + }); + } #endregion #region 设置完整标题 @@ -881,13 +960,13 @@ namespace BBWY.Server.Business throw new BusinessException($"设置完整标题出错-{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}"); } #endregion + return promotionId; } catch (Exception ex) { nLogManager.Default().Error(ex, $"任务Id {request.Id} 店铺Id {request.ShopId} 执行步骤 {stepText}"); throw ex; } - return base.StartJDPromotionTask(request); } } } diff --git a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs index 02f0aaff..b679fedb 100644 --- a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs @@ -148,7 +148,7 @@ namespace BBWY.Server.Business throw new NotImplementedException(); } - public virtual int StartJDPromotionTask(StartPromotionTaskRequest2 request) + public virtual long StartJDPromotionTask(StartPromotionTaskRequest2 request) { throw new NotImplementedException(); } diff --git a/BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs b/BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs index e2974e3b..92107ad9 100644 --- a/BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs +++ b/BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs @@ -96,6 +96,12 @@ namespace BBWY.Server.Model.Db [Column(DbType = "datetime")] public DateTime? SpuPublishTime { get; set; } + + [Column(DbType = "datetime")] + public DateTime? StartTime { get; set; } + + [Column(DbType = "datetime")] + public DateTime? EndTime { get; set; } } } diff --git a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs index 39d673f6..2afdbea2 100644 --- a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs @@ -15,6 +15,8 @@ namespace BBWY.Server.Model.Dto public long ShopId { get; set; } + public string ActivityName { get; set; } + public string SimpleTitle { get; set; } public string FullTitle { get; set; } diff --git a/BBWY.Test/JDProductAPITest.cs b/BBWY.Test/JDProductAPITest.cs index 5adc6875..b9e89f8e 100644 --- a/BBWY.Test/JDProductAPITest.cs +++ b/BBWY.Test/JDProductAPITest.cs @@ -30,13 +30,13 @@ namespace BBWY.Test { var req = new ActyQueryRegistrationDataCountRequest(); - req.skuId = 10067430949728; + req.skuId = 10029655955332; //req.orderId = ; - req.beginDate = "20221221"; + req.beginDate = "2022-12-01 00:00:00"; - req.endDate = "20221222"; + req.endDate = "2022-12-26 23:59:59"; var response = client.Execute(req, token, DateTime.Now.ToLocalTime()); Console.WriteLine(JsonConvert.SerializeObject(response)); diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index e57bbc94..43afed30 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -15,15 +15,15 @@ namespace BBWY.Test static void Main(string[] args) { - var appkey = "E1AA9247D5583A6D87449CE6AB290185"; - var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c"; + //var appkey = "E1AA9247D5583A6D87449CE6AB290185"; + //var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c"; ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 ////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具 - var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛 + //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛 - //var appkey = "120EA9EC65AB017567D78CC1139EEEA5"; - //var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; - //var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; + var appkey = "120EA9EC65AB017567D78CC1139EEEA5"; + var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; + var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; //var path = @"C:\Users\pengcong001\Desktop\含赠品SKU.txt"; //var j = JToken.Parse(System.IO.File.ReadAllText(path, System.Text.Encoding.UTF8));