Browse Source

对接促销接口

qianyi
shanji 3 years ago
parent
commit
c340a7557c
  1. 54
      BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
  2. 87
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  3. 2
      BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
  4. 6
      BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs
  5. 2
      BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs
  6. 6
      BBWY.Test/JDProductAPITest.cs
  7. 12
      BBWY.Test/Program.cs

54
BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs

@ -29,7 +29,16 @@ namespace BBWY.Server.Business
#region 赠品模板 #region 赠品模板
public void AddOrEditGiftTemplate(AddOrEditGiftTemplateRequest request) 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(); var giftCount = request.GiftSkus.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Count();
if (giftCount == 0)
throw new BusinessException("缺少赠品SKU");
if (request.Id == 0) if (request.Id == 0)
{ {
var giftTemplate = new GiftTemplate() var giftTemplate = new GiftTemplate()
@ -69,6 +78,24 @@ namespace BBWY.Server.Business
#region 评价助手任务 #region 评价助手任务
public void AddOrEditPromotionTask(AddOrEditPromotionTaskRequest request) 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) if (request.Id == 0)
{ {
var relayAPIHost = GetPlatformRelayAPIHost(Enums.Platform.); var relayAPIHost = GetPlatformRelayAPIHost(Enums.Platform.);
@ -122,7 +149,7 @@ namespace BBWY.Server.Business
request.Map(dbPromotionTask); request.Map(dbPromotionTask);
fsql.Update<PromotionTask>().SetSource(dbPromotionTask) fsql.Update<PromotionTask>().SetSource(dbPromotionTask)
.IgnoreColumns(new string[] { "UpdateSortTime", "Sort", "Status", "CreateTime" }) .IgnoreColumns(new string[] { "UpdateSortTime", "Sort", "Status", "CreateTime", "SpuLogo", "SpuPublishTime", "StartTime", "EndTime" })
.ExecuteAffrows(); .ExecuteAffrows();
} }
} }
@ -153,9 +180,26 @@ namespace BBWY.Server.Business
/// <param name="request"></param> /// <param name="request"></param>
public void EditPromotionTaskSort(EditPromotionTaskSortRequest request) public void EditPromotionTaskSort(EditPromotionTaskSortRequest request)
{ {
fsql.Update<PromotionTask>(request.Id).Set(pt => pt.Sort + request.MoveType) var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
.Set(pt => pt.UpdateSortTime, DateTime.Now) PromotionTask oldDbPromotionTask = null;
.ExecuteAffrows(); if (request.MoveType == 1)
oldDbPromotionTask = fsql.Select<PromotionTask>().Where(pt => pt.Sort > dbPromotionTask.Sort).OrderBy(pt => pt.Sort).ToOne();
else
oldDbPromotionTask = fsql.Select<PromotionTask>().Where(pt => pt.Sort < dbPromotionTask.Sort).OrderByDescending(pt => pt.Sort).ToOne();
if (oldDbPromotionTask != null)
{
fsql.Transaction(() =>
{
fsql.Update<PromotionTask>(dbPromotionTask.Id).Set(pt => pt.Sort, oldDbPromotionTask.Sort)
.Set(pt => pt.UpdateSortTime, DateTime.Now)
.ExecuteAffrows();
fsql.Update<PromotionTask>(oldDbPromotionTask.Id).Set(pt => pt.Sort, dbPromotionTask.Sort)
.Set(pt => pt.UpdateSortTime, DateTime.Now)
.ExecuteAffrows();
});
}
} }
/// <summary> /// <summary>
@ -188,8 +232,6 @@ namespace BBWY.Server.Business
{ {
} }
} }
#endregion #endregion
} }

87
BBWY.Server.Business/PlatformSDK/JDBusiness.cs

@ -651,7 +651,7 @@ namespace BBWY.Server.Business
var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); 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; var stepText = string.Empty;
//stepText.AppendLine($"任务Id {request.Id} 店铺Id {request.ShopId}"); //stepText.AppendLine($"任务Id {request.Id} 店铺Id {request.ShopId}");
@ -662,6 +662,7 @@ namespace BBWY.Server.Business
IList<JToken> multiCateProps = null; IList<JToken> multiCateProps = null;
long wareId = long.Parse(request.MainProductSpu); long wareId = long.Parse(request.MainProductSpu);
List<string> giftSkuList = new List<string>(); List<string> giftSkuList = new List<string>();
long promotionId = 0;
#region 获取主商品sku信息 barCode,categoryId,multiCateProps #region 获取主商品sku信息 barCode,categoryId,multiCateProps
{ {
@ -855,19 +856,97 @@ namespace BBWY.Server.Business
} }
#region 创建活动 #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<long>("promo_id");
}
#endregion #endregion
#region 添加活动sku #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 #endregion
#region 审核活动 #region 审核活动
{
stepText = "审核活动";
var req = new SellerPromotionCheckRequest();
req.promoId = promotionId;
req.status = 4;
var response = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
}
#endregion #endregion
#region 下架赠品sku #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 #endregion
#region 设置完整标题 #region 设置完整标题
@ -881,13 +960,13 @@ namespace BBWY.Server.Business
throw new BusinessException($"设置完整标题出错-{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}"); throw new BusinessException($"设置完整标题出错-{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}");
} }
#endregion #endregion
return promotionId;
} }
catch (Exception ex) catch (Exception ex)
{ {
nLogManager.Default().Error(ex, $"任务Id {request.Id} 店铺Id {request.ShopId} 执行步骤 {stepText}"); nLogManager.Default().Error(ex, $"任务Id {request.Id} 店铺Id {request.ShopId} 执行步骤 {stepText}");
throw ex; throw ex;
} }
return base.StartJDPromotionTask(request);
} }
} }
} }

2
BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs

@ -148,7 +148,7 @@ namespace BBWY.Server.Business
throw new NotImplementedException(); throw new NotImplementedException();
} }
public virtual int StartJDPromotionTask(StartPromotionTaskRequest2 request) public virtual long StartJDPromotionTask(StartPromotionTaskRequest2 request)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

6
BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs

@ -96,6 +96,12 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? SpuPublishTime { get; set; } public DateTime? SpuPublishTime { get; set; }
[Column(DbType = "datetime")]
public DateTime? StartTime { get; set; }
[Column(DbType = "datetime")]
public DateTime? EndTime { get; set; }
} }
} }

2
BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs

@ -15,6 +15,8 @@ namespace BBWY.Server.Model.Dto
public long ShopId { get; set; } public long ShopId { get; set; }
public string ActivityName { get; set; }
public string SimpleTitle { get; set; } public string SimpleTitle { get; set; }
public string FullTitle { get; set; } public string FullTitle { get; set; }

6
BBWY.Test/JDProductAPITest.cs

@ -30,13 +30,13 @@ namespace BBWY.Test
{ {
var req = new ActyQueryRegistrationDataCountRequest(); var req = new ActyQueryRegistrationDataCountRequest();
req.skuId = 10067430949728; req.skuId = 10029655955332;
//req.orderId = ; //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()); var response = client.Execute(req, token, DateTime.Now.ToLocalTime());
Console.WriteLine(JsonConvert.SerializeObject(response)); Console.WriteLine(JsonConvert.SerializeObject(response));

12
BBWY.Test/Program.cs

@ -15,15 +15,15 @@ namespace BBWY.Test
static void Main(string[] args) static void Main(string[] args)
{ {
var appkey = "E1AA9247D5583A6D87449CE6AB290185"; //var appkey = "E1AA9247D5583A6D87449CE6AB290185";
var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c"; //var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c";
////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具 ////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具
var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛 //var token = "01dc6f6e7fc34dcd99090d690312556cmdfk"; //齐盛
//var appkey = "120EA9EC65AB017567D78CC1139EEEA5"; var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
//var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
//var token = "2ace3023200c4ea9aa682bbf8bffee18jztm"; var token = "2ace3023200c4ea9aa682bbf8bffee18jztm";
//var path = @"C:\Users\pengcong001\Desktop\含赠品SKU.txt"; //var path = @"C:\Users\pengcong001\Desktop\含赠品SKU.txt";
//var j = JToken.Parse(System.IO.File.ReadAllText(path, System.Text.Encoding.UTF8)); //var j = JToken.Parse(System.IO.File.ReadAllText(path, System.Text.Encoding.UTF8));

Loading…
Cancel
Save