Browse Source

完善活动接口

qianyi
shanji 3 years ago
parent
commit
0564723253
  1. 31
      BBWY.Server.API/Controllers/EvaluationAssistantController.cs
  2. 76
      BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
  3. 96
      BBWY.Server.Model/Db/EvaluationAssistant/PromotionTask.cs
  4. 45
      BBWY.Server.Model/Dto/Request/PromotionTask/AddOrEditPromotionTaskRequest.cs
  5. 12
      BBWY.Server.Model/Dto/Request/PromotionTask/EditPromotionTaskSortRequest.cs
  6. 21
      BBWY.Server.Model/Dto/Request/PromotionTask/QueryPromotionTaskRequest.cs
  7. 17
      BBWY.Server.Model/Dto/Response/PromotionTask/PromotionTaskResponse.cs
  8. 10
      BBWY.Server.Model/Enums.cs
  9. 2
      BBWY.Server.Model/MappingProfiles.cs

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

@ -46,5 +46,36 @@ namespace BBWY.Server.API.Controllers
{
evaluationAssistantBusiness.DeleteGiftTemplate(giftTemplateId);
}
/// <summary>
/// 新增或修改活动任务
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void AddOrEditPromotionTask([FromBody] AddOrEditPromotionTaskRequest request)
{
evaluationAssistantBusiness.AddOrEditPromotionTask(request);
}
/// <summary>
/// 获取活动列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public PromotionTaskResponse GetPromotionTaskList([FromBody] QueryPromotionTaskRequest request)
{
return evaluationAssistantBusiness.GetPromotionTaskList(request);
}
/// <summary>
/// 修改活动排序
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void EditPromotionTaskSort([FromBody] EditPromotionTaskSortRequest request)
{
evaluationAssistantBusiness.EditPromotionTaskSort(request);
}
}
}

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

@ -1,4 +1,5 @@
using BBWY.Common.Http;
using BBWY.Common.Extensions;
using BBWY.Common.Http;
using BBWY.Common.Models;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
@ -62,5 +63,78 @@ namespace BBWY.Server.Business
fsql.Delete<GiftTemplate>(giftTemplateId).ExecuteAffrows();
}
#endregion
#region 评价助手任务
public void AddOrEditPromotionTask(AddOrEditPromotionTaskRequest request)
{
if (request.Id == 0)
{
var sort = fsql.Select<PromotionTask>().ToAggregate(p => p.Max(p.Key.Sort));
var promotionTask = new PromotionTask()
{
Id = idGenerator.NewLong(),
ActivityName = request.ActivityName,
CreateTime = DateTime.Now,
FullTitle = request.FullTitle,
ShopId = request.ShopId,
SimpleTitle = request.SimpleTitle,
GiftTemplateId = request.GiftTemplateId,
MainProductGiftSku = request.MainProductGiftSku,
MainProductSku = request.MainProductSku,
MainProductSpu = request.MainProductSpu,
MotherTemplateId = request.MotherTemplateId,
IsEnabled = true,
Status = Enums.PromitionTaskStatus.,
PromotionId = 0,
Sort = sort + 1,
UpdateSortTime = DateTime.Now
};
fsql.Insert(promotionTask).ExecuteAffrows();
}
else
{
var dbPromotionTask = fsql.Select<PromotionTask>(request.Id).ToOne();
if (dbPromotionTask == null)
throw new BusinessException("活动任务不存在");
if (dbPromotionTask.Status != Enums.PromitionTaskStatus.)
throw new BusinessException("只能在活动处于等待状态时才能修改");
request.Map(dbPromotionTask);
fsql.Update<PromotionTask>().SetSource(dbPromotionTask)
.IgnoreColumns(new string[] { "UpdateSortTime", "Sort", "Status", "CreateTime" })
.ExecuteAffrows();
}
}
/// <summary>
/// 获取活动列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public PromotionTaskResponse GetPromotionTaskList(QueryPromotionTaskRequest request)
{
var list = fsql.Select<PromotionTask>().Where(pt => pt.ShopId == request.ShopId)
.Page(request.PageIndex, request.PageSize)
.Count(out long count)
.OrderByDescending(pt => new { pt.Sort, pt.UpdateSortTime })
.ToList<PromotionTaskItemResponse>();
return new PromotionTaskResponse()
{
Count = count,
ItemList = list
};
}
/// <summary>
/// 修改活动排序
/// </summary>
/// <param name="request"></param>
public void EditPromotionTaskSort(EditPromotionTaskSortRequest request)
{
fsql.Update<PromotionTask>(request.Id).Set(pt => pt.Sort + request.MoveType)
.Set(pt => pt.UpdateSortTime, DateTime.Now)
.ExecuteAffrows();
}
#endregion
}
}

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

@ -0,0 +1,96 @@
using FreeSql.DatabaseModel;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;
namespace BBWY.Server.Model.Db
{
[JsonObject(MemberSerialization.OptIn), Table(Name = "promotiontask", DisableSyncStructure = true)]
public partial class PromotionTask
{
[Column(IsPrimary = true)]
public long Id { get; set; }
/// <summary>
/// 活动名称
/// </summary>
[Column(StringLength = 100)]
public string ActivityName { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 完整标题
/// </summary>
public string FullTitle { get; set; }
/// <summary>
/// 赠品模板Id 可空
/// </summary>
public long? GiftTemplateId { get; set; }
/// <summary>
/// 主商品的赠品sku,逗号间隔,可空
/// </summary>
public string MainProductGiftSku { get; set; }
/// <summary>
/// 主商品sku,逗号间隔,可空
/// </summary>
public string MainProductSku { get; set; }
/// <summary>
/// 主商品SPU
/// </summary>
[Column(StringLength = 50)]
public string MainProductSpu { get; set; }
/// <summary>
/// 奶妈模板Id 可空
/// </summary>
public long? MotherTemplateId { get; set; }
/// <summary>
/// 促销活动Id
/// </summary>
public int? PromotionId { get; set; }
public long? ShopId { get; set; }
/// <summary>
/// 精简标题
/// </summary>
[Column(StringLength = 100)]
public string SimpleTitle { get; set; }
/// <summary>
/// 任务状态
/// </summary>
[Column(MapType = typeof(int?))]
public Enums.PromitionTaskStatus? Status { get; set; }
[Column(DbType = "bit")]
public bool IsEnabled { get; set; } = true;
public int Sort { get; set; }
[Column(DbType = "datetime")]
public DateTime? UpdateSortTime { get; set; }
}
}

45
BBWY.Server.Model/Dto/Request/PromotionTask/AddOrEditPromotionTaskRequest.cs

@ -0,0 +1,45 @@
namespace BBWY.Server.Model.Dto
{
public class AddOrEditPromotionTaskRequest
{
/// <summary>
/// 如果Id=0 则视为新增
/// </summary>
public long Id { get; set; }
public long ShopId { get; set; }
public string ActivityName { get; set; }
public string SimpleTitle { get; set; }
public string FullTitle { get; set; }
/// <summary>
/// 主商品spu
/// </summary>
public string MainProductSpu { get; set; }
/// <summary>
/// 赠品模板Id, 未选择赠品模板时传0
/// </summary>
public long GiftTemplateId { get; set; }
/// <summary>
/// 主商品的赠品sku, 逗号间隔
/// </summary>
public string MainProductGiftSku { get; set; }
/// <summary>
/// 奶妈模板Id, 未选择奶妈模板时传0
/// </summary>
public long MotherTemplateId { get; set; }
/// <summary>
/// 主商品的【非赠品】sku, 逗号间隔
/// </summary>
public string MainProductSku { get; set; }
}
}

12
BBWY.Server.Model/Dto/Request/PromotionTask/EditPromotionTaskSortRequest.cs

@ -0,0 +1,12 @@
namespace BBWY.Server.Model.Dto
{
public class EditPromotionTaskSortRequest
{
public long Id { get; set; }
/// <summary>
/// 上移传1,下移传-1
/// </summary>
public int MoveType { get; set; }
}
}

21
BBWY.Server.Model/Dto/Request/PromotionTask/QueryPromotionTaskRequest.cs

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto
{
public class QueryPromotionTaskRequest
{
/// <summary>
/// 页数,从1开始
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 页码,每页条数
/// </summary>
public int PageSize { get; set; }
public long ShopId { get; set; }
}
}

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

@ -0,0 +1,17 @@
using BBWY.Server.Model.Db;
using System.Collections.Generic;
namespace BBWY.Server.Model.Dto
{
public class PromotionTaskItemResponse: PromotionTask
{
}
public class PromotionTaskResponse
{
public long Count { get; set; }
public IList<PromotionTaskItemResponse> ItemList { get; set; }
}
}

10
BBWY.Server.Model/Enums.cs

@ -235,5 +235,15 @@
= 2,
= 3
}
/// <summary>
/// 促销任务状态
/// </summary>
public enum PromitionTaskStatus
{
= 0,
= 1,
= 2
}
}
}

2
BBWY.Server.Model/MappingProfiles.cs

@ -58,6 +58,8 @@ namespace BBWY.Server.Model
.ForPath(t => t.OrderCost.RefundPurchaseAmount, opt => opt.MapFrom(f => f.RefundPurchaseAmount))
.ForPath(t => t.OrderCost.AfterTotalCost, opt => opt.MapFrom(f => f.AfterTotalCost));
CreateMap<AddOrEditPromotionTaskRequest, PromotionTask>();
}
}
}

Loading…
Cancel
Save