Browse Source

停止任务,检查重复

qianyi
shanji 2 years ago
parent
commit
4c0cea30b4
  1. 10
      BBWY.Server.API/Controllers/EvaluationAssistantController.cs
  2. 69
      BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
  3. 12
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  4. 5
      BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
  5. 6
      BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs
  6. 5
      BBWY.Server.Model/Dto/Request/PromotionTask/DeletePromotionTaskRequest.cs
  7. 7
      BBWY.Server.Model/Dto/Request/PromotionTask/StopPromotionTaskRequest.cs
  8. 5
      BBWY.Server.Model/Dto/Response/PromotionTask/PromotionTaskResponse.cs
  9. 5
      BBWY.Server.Model/Enums.cs
  10. 2
      BBWY.Test/Program.cs
  11. 10
      JD.API/Controllers/PlatformSDKController.cs

10
BBWY.Server.API/Controllers/EvaluationAssistantController.cs

@ -107,5 +107,15 @@ namespace BBWY.Server.API.Controllers
{ {
evaluationAssistantBusiness.DeletePromotionTaskAndMotherSku(request); evaluationAssistantBusiness.DeletePromotionTaskAndMotherSku(request);
} }
/// <summary>
/// 停止任务
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void StopPromotionTask([FromBody] StopPromotionTaskRequest request)
{
evaluationAssistantBusiness.StopPromotionTask(request);
}
} }
} }

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

@ -91,10 +91,10 @@ namespace BBWY.Server.Business
throw new BusinessException("缺少完整标题"); throw new BusinessException("缺少完整标题");
if (string.IsNullOrEmpty(request.ActivityName)) if (string.IsNullOrEmpty(request.ActivityName))
throw new BusinessException("缺少活动名称"); throw new BusinessException("缺少任务名称");
if (request.ActivityName.Length > 10) if (request.ActivityName.Length > 10)
throw new BusinessException("活动名称不能超过10个字"); throw new BusinessException("任务名称不能超过10个字");
if (request.TaskCount == 0) if (request.TaskCount == 0)
throw new BusinessException("任务量不能为0"); throw new BusinessException("任务量不能为0");
@ -147,9 +147,9 @@ namespace BBWY.Server.Business
{ {
var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne(); var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
if (dbPromotionTask == null) if (dbPromotionTask == null)
throw new BusinessException("活动任务不存在"); throw new BusinessException("任务不存在");
if (dbPromotionTask.Status != Enums.PromitionTaskStatus.) if (dbPromotionTask.Status != Enums.PromitionTaskStatus.)
throw new BusinessException("只能在活动处于等待状态时才能修改"); throw new BusinessException("只能在任务处于等待状态时才能修改");
request.Map(dbPromotionTask); request.Map(dbPromotionTask);
fsql.Update<PromotionTask>().SetSource(dbPromotionTask) fsql.Update<PromotionTask>().SetSource(dbPromotionTask)
@ -162,6 +162,7 @@ namespace BBWY.Server.Business
"SpuPublishTime", "SpuPublishTime",
"StartTime", "StartTime",
"EndTime", "EndTime",
"StopTime",
"CompletedTaskCount" "CompletedTaskCount"
}) })
.ExecuteAffrows(); .ExecuteAffrows();
@ -169,7 +170,7 @@ namespace BBWY.Server.Business
} }
/// <summary> /// <summary>
/// 获取活动列表 /// 获取任务列表
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
@ -189,7 +190,7 @@ namespace BBWY.Server.Business
} }
/// <summary> /// <summary>
/// 修改活动排序 /// 修改任务排序
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
public void EditPromotionTaskSort(EditPromotionTaskSortRequest request) public void EditPromotionTaskSort(EditPromotionTaskSortRequest request)
@ -217,7 +218,7 @@ namespace BBWY.Server.Business
} }
/// <summary> /// <summary>
/// 检查活动重复sku /// 检查任务重复sku
/// </summary> /// </summary>
/// <param name="runingTaskList"></param> /// <param name="runingTaskList"></param>
/// <param name="skuIds"></param> /// <param name="skuIds"></param>
@ -228,16 +229,20 @@ namespace BBWY.Server.Business
{ {
foreach (var sku in skuIdList) foreach (var sku in skuIdList)
{ {
if (!string.IsNullOrEmpty(pt.CustomMotherSku) && pt.CustomMotherSku.Contains(sku)) //判断奶妈模板sku重复
//判断自定义奶妈sku重复
if ((!string.IsNullOrEmpty(pt.CustomMotherSku) && pt.CustomMotherSku.Contains(sku)) ||
(!string.IsNullOrEmpty(pt.MainProductSku) && pt.MainProductSku.Contains(sku)))
{ {
throw new BusinessException($"sku[{sku}]已存在于任务[{pt.ActivityName}]中,请删除该sku或等待任务结束"); throw new BusinessException($"sku[{sku}]已存在于任务[{pt.ActivityName}]的奶妈sku中,请删除该sku或等待任务结束");
} }
} }
} }
} }
/// <summary> /// <summary>
/// 开始活动任务 /// 开始任务
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
public void StartPromotionTask(StartPromotionTaskRequest request) public void StartPromotionTask(StartPromotionTaskRequest request)
@ -245,13 +250,12 @@ namespace BBWY.Server.Business
var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne(); var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
if (dbPromotionTask == null) if (dbPromotionTask == null)
throw new BusinessException("活动任务不存在"); throw new BusinessException("任务不存在");
if (dbPromotionTask.Status != Enums.PromitionTaskStatus.) if (dbPromotionTask.Status != Enums.PromitionTaskStatus.)
throw new BusinessException("只能在活动处于等待状态时才能开始"); throw new BusinessException("只能在任务处于等待状态时才能开始");
var giftTemplateSku = string.Empty; //赠品模板sku var giftTemplateSku = string.Empty; //赠品模板sku
//var mainProductGiftSku = dbPromotionTask.MainProductGiftSku; //主商品的赠品sku
var motherTemplateSku = string.Empty; //奶妈模板的sku var motherTemplateSku = string.Empty; //奶妈模板的sku
if (dbPromotionTask.GiftTemplateId != null && dbPromotionTask.GiftTemplateId != 0) if (dbPromotionTask.GiftTemplateId != null && dbPromotionTask.GiftTemplateId != 0)
@ -276,6 +280,9 @@ namespace BBWY.Server.Business
if (!string.IsNullOrEmpty(motherTemplateSku)) if (!string.IsNullOrEmpty(motherTemplateSku))
CheckRepeatSkuInRuningTask(runingTaskList, motherTemplateSku); CheckRepeatSkuInRuningTask(runingTaskList, motherTemplateSku);
if (!string.IsNullOrEmpty(dbPromotionTask.MainProductSku))
CheckRepeatSkuInRuningTask(runingTaskList, dbPromotionTask.MainProductSku);
var host = GetPlatformRelayAPIHost(Enums.Platform.); var host = GetPlatformRelayAPIHost(Enums.Platform.);
var httpApiResult = restApiService.SendRequest(host, "api/PlatformSDK/StartJDPromotionTask", new StartPromotionTaskRequest2() var httpApiResult = restApiService.SendRequest(host, "api/PlatformSDK/StartJDPromotionTask", new StartPromotionTaskRequest2()
{ {
@ -312,7 +319,7 @@ namespace BBWY.Server.Business
} }
/// <summary> /// <summary>
/// 删除任务和京东活动 /// 删除任务和京东任务
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
public void DeletePromotionTaskAndJDTask(DeletePromotionTaskRequest request) public void DeletePromotionTaskAndJDTask(DeletePromotionTaskRequest request)
@ -382,6 +389,40 @@ namespace BBWY.Server.Business
} }
fsql.Delete<PromotionTask>(request.TaskId).ExecuteAffrows(); fsql.Delete<PromotionTask>(request.TaskId).ExecuteAffrows();
} }
/// <summary>
/// 停止任务
/// </summary>
/// <param name="request"></param>
/// <exception cref="BusinessException"></exception>
public void StopPromotionTask(StopPromotionTaskRequest request)
{
var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
if (dbPromotionTask == null)
throw new BusinessException("任务不存在");
if (dbPromotionTask.Status != Enums.PromitionTaskStatus.)
throw new BusinessException("只能在任务处于进行中时才能停止");
var httpResult = restApiService.SendRequest(GetPlatformRelayAPIHost(Enums.Platform.),
"api/platformsdk/SuspendJDPromotionTask",
new SuspendDPromotionTaskRequest()
{
AppKey = request.AppKey,
AppSecret = request.AppSecret,
AppToken = request.AppToken,
Platform = Enums.Platform.,
PromotionId = dbPromotionTask.PromotionId.Value
},
GetYunDingRequestHeader(),
HttpMethod.Post);
if (httpResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new BusinessException(httpResult.Content);
var response = JsonConvert.DeserializeObject<ApiResponse>(httpResult.Content);
if (!response.Success)
throw new BusinessException(response.Msg);
fsql.Update<PromotionTask>(request.Id).Set(pt => pt.Status, Enums.PromitionTaskStatus.).ExecuteAffrows();
}
#endregion #endregion
} }
} }

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

@ -726,7 +726,7 @@ namespace BBWY.Server.Business
var stepText = string.Empty; var stepText = string.Empty;
//stepText.AppendLine($"任务Id {request.Id} 店铺Id {request.ShopId}"); //stepText.AppendLine($"任务Id {request.Id} 店铺Id {request.ShopId}");
try try
{ {
var jdClient = GetJdClient(request.AppKey, request.AppSecret); var jdClient = GetJdClient(request.AppKey, request.AppSecret);
long wareId = long.Parse(request.MainProductSpu); long wareId = long.Parse(request.MainProductSpu);
List<string> giftSkuIdList = new List<string>(); List<string> giftSkuIdList = new List<string>();
@ -1146,5 +1146,15 @@ namespace BBWY.Server.Business
if (res.IsError) if (res.IsError)
throw new BusinessException($"删除JD活动sku失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}"); throw new BusinessException($"删除JD活动sku失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
} }
public override void SuspendJDPromotionTask(SuspendDPromotionTaskRequest request)
{
var jdClient = GetJdClient(request.AppKey, request.AppSecret);
var req = new SellerPromotionSuspendRequest();
req.promoId = request.PromotionId;
var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime());
if (res.IsError)
throw new BusinessException($"暂停JD活动失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}");
}
} }
} }

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

@ -172,5 +172,10 @@ namespace BBWY.Server.Business
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public virtual void SuspendJDPromotionTask(SuspendDPromotionTaskRequest request)
{
throw new NotImplementedException();
}
} }
} }

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

@ -103,6 +103,12 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? EndTime { get; set; } public DateTime? EndTime { get; set; }
/// <summary>
/// 停止时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? StopTime { get; set; }
/// <summary> /// <summary>
/// 自定义奶妈sku /// 自定义奶妈sku
/// </summary> /// </summary>

5
BBWY.Server.Model/Dto/Request/PromotionTask/DeletePromotionTaskRequest.cs

@ -10,6 +10,11 @@
public long PromotionId { get; set; } public long PromotionId { get; set; }
} }
public class SuspendDPromotionTaskRequest : DeleteJDPromotionTaskRequest
{
}
public class DeleteJDPromotionTaskSkuRequest : DeleteJDPromotionTaskRequest public class DeleteJDPromotionTaskSkuRequest : DeleteJDPromotionTaskRequest
{ {
/// <summary> /// <summary>

7
BBWY.Server.Model/Dto/Request/PromotionTask/StopPromotionTaskRequest.cs

@ -0,0 +1,7 @@
namespace BBWY.Server.Model.Dto
{
public class StopPromotionTaskRequest : StartPromotionTaskRequest
{
}
}

5
BBWY.Server.Model/Dto/Response/PromotionTask/PromotionTaskResponse.cs

@ -94,6 +94,11 @@ namespace BBWY.Server.Model.Dto
/// </summary> /// </summary>
public DateTime? EndTime { get; set; } public DateTime? EndTime { get; set; }
/// <summary>
/// 停止时间
/// </summary>
public DateTime? StopTime { get; set; }
/// <summary> /// <summary>
/// 自定义奶妈sku /// 自定义奶妈sku
/// </summary> /// </summary>

5
BBWY.Server.Model/Enums.cs

@ -237,13 +237,14 @@
} }
/// <summary> /// <summary>
/// 促销任务状态 等待 = 0,进行中 = 1,已完成 = 2 /// 促销任务状态 等待 = 0,进行中 = 1,已完成 = 2, 已停止 = 3
/// </summary> /// </summary>
public enum PromitionTaskStatus public enum PromitionTaskStatus
{ {
= 0, = 0,
= 1, = 1,
= 2 = 2,
= 3
} }
/// <summary> /// <summary>

2
BBWY.Test/Program.cs

@ -39,7 +39,7 @@ namespace BBWY.Test
IJdClient client = GetJdClient(appkey, appSecret); IJdClient client = GetJdClient(appkey, appSecret);
var test1 = new JDProductAPITest(); var test1 = new JDProductAPITest();
test1.(client, token); test1.GetSkus(client, token);
Console.ReadKey(); Console.ReadKey();

10
JD.API/Controllers/PlatformSDKController.cs

@ -307,5 +307,15 @@ namespace JD.API.API.Controllers
{ {
platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).DeleteJDPromotionTaskSku(request); platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).DeleteJDPromotionTaskSku(request);
} }
/// <summary>
/// 暂停京东活动
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void SuspendJDPromotionTask([FromBody] SuspendDPromotionTaskRequest request)
{
platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).SuspendJDPromotionTask(request);
}
} }
} }

Loading…
Cancel
Save