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);
}
/// <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("缺少完整标题");
if (string.IsNullOrEmpty(request.ActivityName))
throw new BusinessException("缺少活动名称");
throw new BusinessException("缺少任务名称");
if (request.ActivityName.Length > 10)
throw new BusinessException("活动名称不能超过10个字");
throw new BusinessException("任务名称不能超过10个字");
if (request.TaskCount == 0)
throw new BusinessException("任务量不能为0");
@ -147,9 +147,9 @@ namespace BBWY.Server.Business
{
var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
if (dbPromotionTask == null)
throw new BusinessException("活动任务不存在");
throw new BusinessException("任务不存在");
if (dbPromotionTask.Status != Enums.PromitionTaskStatus.)
throw new BusinessException("只能在活动处于等待状态时才能修改");
throw new BusinessException("只能在任务处于等待状态时才能修改");
request.Map(dbPromotionTask);
fsql.Update<PromotionTask>().SetSource(dbPromotionTask)
@ -162,6 +162,7 @@ namespace BBWY.Server.Business
"SpuPublishTime",
"StartTime",
"EndTime",
"StopTime",
"CompletedTaskCount"
})
.ExecuteAffrows();
@ -169,7 +170,7 @@ namespace BBWY.Server.Business
}
/// <summary>
/// 获取活动列表
/// 获取任务列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
@ -189,7 +190,7 @@ namespace BBWY.Server.Business
}
/// <summary>
/// 修改活动排序
/// 修改任务排序
/// </summary>
/// <param name="request"></param>
public void EditPromotionTaskSort(EditPromotionTaskSortRequest request)
@ -217,7 +218,7 @@ namespace BBWY.Server.Business
}
/// <summary>
/// 检查活动重复sku
/// 检查任务重复sku
/// </summary>
/// <param name="runingTaskList"></param>
/// <param name="skuIds"></param>
@ -228,16 +229,20 @@ namespace BBWY.Server.Business
{
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>
/// <param name="request"></param>
public void StartPromotionTask(StartPromotionTaskRequest request)
@ -245,13 +250,12 @@ namespace BBWY.Server.Business
var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
if (dbPromotionTask == null)
throw new BusinessException("活动任务不存在");
throw new BusinessException("任务不存在");
if (dbPromotionTask.Status != Enums.PromitionTaskStatus.)
throw new BusinessException("只能在活动处于等待状态时才能开始");
throw new BusinessException("只能在任务处于等待状态时才能开始");
var giftTemplateSku = string.Empty; //赠品模板sku
//var mainProductGiftSku = dbPromotionTask.MainProductGiftSku; //主商品的赠品sku
var motherTemplateSku = string.Empty; //奶妈模板的sku
if (dbPromotionTask.GiftTemplateId != null && dbPromotionTask.GiftTemplateId != 0)
@ -276,6 +280,9 @@ namespace BBWY.Server.Business
if (!string.IsNullOrEmpty(motherTemplateSku))
CheckRepeatSkuInRuningTask(runingTaskList, motherTemplateSku);
if (!string.IsNullOrEmpty(dbPromotionTask.MainProductSku))
CheckRepeatSkuInRuningTask(runingTaskList, dbPromotionTask.MainProductSku);
var host = GetPlatformRelayAPIHost(Enums.Platform.);
var httpApiResult = restApiService.SendRequest(host, "api/PlatformSDK/StartJDPromotionTask", new StartPromotionTaskRequest2()
{
@ -312,7 +319,7 @@ namespace BBWY.Server.Business
}
/// <summary>
/// 删除任务和京东活动
/// 删除任务和京东任务
/// </summary>
/// <param name="request"></param>
public void DeletePromotionTaskAndJDTask(DeletePromotionTaskRequest request)
@ -382,6 +389,40 @@ namespace BBWY.Server.Business
}
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
}
}

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

@ -726,7 +726,7 @@ namespace BBWY.Server.Business
var stepText = string.Empty;
//stepText.AppendLine($"任务Id {request.Id} 店铺Id {request.ShopId}");
try
{
{
var jdClient = GetJdClient(request.AppKey, request.AppSecret);
long wareId = long.Parse(request.MainProductSpu);
List<string> giftSkuIdList = new List<string>();
@ -1146,5 +1146,15 @@ namespace BBWY.Server.Business
if (res.IsError)
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();
}
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")]
public DateTime? EndTime { get; set; }
/// <summary>
/// 停止时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? StopTime { get; set; }
/// <summary>
/// 自定义奶妈sku
/// </summary>

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

@ -10,6 +10,11 @@
public long PromotionId { get; set; }
}
public class SuspendDPromotionTaskRequest : DeleteJDPromotionTaskRequest
{
}
public class DeleteJDPromotionTaskSkuRequest : DeleteJDPromotionTaskRequest
{
/// <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>
public DateTime? EndTime { get; set; }
/// <summary>
/// 停止时间
/// </summary>
public DateTime? StopTime { get; set; }
/// <summary>
/// 自定义奶妈sku
/// </summary>

5
BBWY.Server.Model/Enums.cs

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

2
BBWY.Test/Program.cs

@ -39,7 +39,7 @@ namespace BBWY.Test
IJdClient client = GetJdClient(appkey, appSecret);
var test1 = new JDProductAPITest();
test1.(client, token);
test1.GetSkus(client, token);
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);
}
/// <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