From 9454be6bd180c665aa044e3e3afe44bcc6898ec9 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Mon, 9 Jan 2023 18:02:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=A0=E5=93=81=E6=A8=A1=E6=9D=BF=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluationAssistantBusiness.cs | 82 ++++++++++++++----- .../Db/EvaluationAssistant/GiftTemplate.cs | 7 -- .../Db/EvaluationAssistant/GiftTemplateSku.cs | 45 ++++++++++ .../AddOrEditGiftTemplateRequest.cs | 25 +++++- .../StartPromotionTaskRequest.cs | 7 +- .../GiftTemplate/GiftTemplateResponse.cs | 6 ++ BBWY.Test/JDProductAPITest.cs | 2 +- 7 files changed, 140 insertions(+), 34 deletions(-) create mode 100644 BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplateSku.cs diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index e1dd9d43..4eafb816 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -4,6 +4,7 @@ using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; +using FreeSql; using Microsoft.Extensions.Options; using Newtonsoft.Json; using System; @@ -31,47 +32,81 @@ namespace BBWY.Server.Business { if (string.IsNullOrEmpty(request.TemplateName)) throw new BusinessException("缺少模板名称"); - if (string.IsNullOrEmpty(request.GiftSkus)) + if (request.GiftSkuList == null || request.GiftSkuList.Count() == 0) throw new BusinessException("缺少赠品SKU"); - var giftCount = request.GiftSkus.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Count(); + IInsert insert = null; + IUpdate update = null; - if (giftCount == 0) - throw new BusinessException("缺少赠品SKU"); + IDelete delete = null; + List inserList = null; - if (request.Id == 0) + long giftTemplateId = request.Id; + if (giftTemplateId == 0) { + giftTemplateId = idGenerator.NewLong(); var giftTemplate = new GiftTemplate() { - Id = idGenerator.NewLong(), + Id = giftTemplateId, CreateTime = DateTime.Now, TemplateName = request.TemplateName, Platform = Enums.Platform.京东, ShopId = request.ShopId, TemplateSpu = request.TemplateSpu, - GiftCount = giftCount, - GiftSkus = request.GiftSkus + GiftCount = request.GiftSkuList.Count() }; - fsql.Insert(giftTemplate).ExecuteAffrows(); + insert = fsql.Insert(giftTemplate); } else { - fsql.Update(request.Id).Set(g => g.TemplateName, request.TemplateName) - .Set(g => g.TemplateSpu, request.TemplateSpu) - .Set(g => g.GiftSkus, request.GiftSkus) - .Set(g => g.GiftCount, giftCount) - .ExecuteAffrows(); + update = fsql.Update(giftTemplateId).Set(g => g.TemplateName, request.TemplateName) + .Set(g => g.TemplateSpu, request.TemplateSpu) + .Set(g => g.GiftCount, request.GiftSkuList.Count()); + delete = fsql.Delete().Where(gs => gs.GiftTemplateId == giftTemplateId); } + + inserList = request.GiftSkuList.Select(gs => new GiftTemplateSku() + { + Id = idGenerator.NewLong(), + CreateTime = DateTime.Now, + GiftTemplateId = giftTemplateId, + Logo = gs.Logo, + Price = gs.Price, + Title = gs.Title, + ShopId = request.ShopId, + SkuId = gs.SkuId, + SpuId = request.TemplateSpu + }).ToList(); + + fsql.Transaction(() => + { + insert?.ExecuteAffrows(); + update?.ExecuteAffrows(); + delete?.ExecuteAffrows(); + fsql.Insert(inserList).ExecuteAffrows(); + }); } public IList GetGiftTemplateList(long shopId) { - return fsql.Select().Where(g => g.ShopId == shopId).ToList(); + var templateList = fsql.Select().Where(g => g.ShopId == shopId).ToList(); + var templateIdList = templateList.Select(g => g.Id).ToList(); + var templateSkuList = fsql.Select().Where(gs => templateIdList.Contains(gs.GiftTemplateId.Value)).ToList(); + foreach (var template in templateList) + { + template.GiftSkuList = templateSkuList.Where(gs => gs.GiftTemplateId == template.Id).ToList(); + } + return templateList; } public void DeleteGiftTemplate(long giftTemplateId) { - fsql.Delete(giftTemplateId).ExecuteAffrows(); + fsql.Transaction(() => + { + fsql.Delete(giftTemplateId).ExecuteAffrows(); + fsql.Delete().Where(gs => gs.GiftTemplateId == giftTemplateId).ExecuteAffrows(); + }); + } #endregion @@ -255,15 +290,20 @@ namespace BBWY.Server.Business throw new BusinessException("只能在任务处于等待状态时才能开始"); - var giftTemplateSku = string.Empty; //赠品模板sku + IList giftTemplateSkuList = null; //赠品模板sku var motherTemplateSku = string.Empty; //奶妈模板的sku if (dbPromotionTask.GiftTemplateId != null && dbPromotionTask.GiftTemplateId != 0) { - var giftTemplate = fsql.Select(dbPromotionTask.GiftTemplateId).ToOne(); - if (giftTemplate == null) + giftTemplateSkuList = fsql.Select(dbPromotionTask.GiftTemplateId).ToList(gs => new GiftTemplateSkuRequest() + { + Logo = gs.Logo, + Price = gs.Price, + SkuId = gs.SkuId, + Title = gs.Title + }); + if (giftTemplateSkuList == null || giftTemplateSkuList.Count() == 0) throw new BusinessException("赠品模板不存在"); - giftTemplateSku = giftTemplate.GiftSkus; } var runingTaskList = fsql.Select().Where(pt => pt.ShopId == dbPromotionTask.ShopId && pt.Status == Enums.PromitionTaskStatus.进行中).ToList(); @@ -293,7 +333,7 @@ namespace BBWY.Server.Business AppToken = request.AppToken, SimpleTitle = dbPromotionTask.SimpleTitle, FullTitle = dbPromotionTask.FullTitle, - GiftTemplateSku = giftTemplateSku, + GiftTemplateSkuList = giftTemplateSkuList, MainProductGiftSku = dbPromotionTask.MainProductGiftSku, MainProductSku = dbPromotionTask.MainProductSku, MotherTemplateSku = motherTemplateSku, diff --git a/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplate.cs b/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplate.cs index 1b111725..8b177fea 100644 --- a/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplate.cs +++ b/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplate.cs @@ -25,13 +25,6 @@ namespace BBWY.Server.Model.Db [Column(StringLength = 50)] public string TemplateSpu { get; set; } - - /// - /// żƷsku - /// - [Column(StringLength = 255)] - public string GiftSkus { get; set; } - } } diff --git a/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplateSku.cs b/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplateSku.cs new file mode 100644 index 00000000..274be4dd --- /dev/null +++ b/BBWY.Server.Model/Db/EvaluationAssistant/GiftTemplateSku.cs @@ -0,0 +1,45 @@ +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 { + + [Table(Name = "gifttemplatesku", DisableSyncStructure = true)] + public partial class GiftTemplateSku + { + + [Column(IsPrimary = true)] + public long Id { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + + public long? GiftTemplateId { get; set; } + + + public string Logo { get; set; } + + [Column(DbType = "decimal(18,2)")] + public decimal? Price { get; set; } + + + public long? ShopId { get; set; } + + [Column(StringLength = 50)] + public string SkuId { get; set; } + + + public string SpuId { get; set; } + + + public string Title { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Dto/Request/GiftTemplate/AddOrEditGiftTemplateRequest.cs b/BBWY.Server.Model/Dto/Request/GiftTemplate/AddOrEditGiftTemplateRequest.cs index 74052ccb..3e9a494e 100644 --- a/BBWY.Server.Model/Dto/Request/GiftTemplate/AddOrEditGiftTemplateRequest.cs +++ b/BBWY.Server.Model/Dto/Request/GiftTemplate/AddOrEditGiftTemplateRequest.cs @@ -24,9 +24,26 @@ namespace BBWY.Server.Model.Dto /// public string TemplateSpu { get; set; } - /// - /// 选中的赠品Sku 逗号间隔 - /// - public string GiftSkus { get; set; } + + public IList GiftSkuList { get; set; } + } + + public class GiftTemplateSkuRequest + { + //public long Id { get; set; } + + + public string Logo { get; set; } + + + public decimal? Price { get; set; } + + + public string SkuId { get; set; } + + + public string Title { get; set; } } } + + diff --git a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs index 3c84baac..3647ccad 100644 --- a/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PromotionTask/StartPromotionTaskRequest.cs @@ -26,10 +26,15 @@ namespace BBWY.Server.Model.Dto /// public string MainProductSpu { get; set; } + ///// + ///// 赠品模板的Sku + ///// + //public string GiftTemplateSku { get; set; } + /// /// 赠品模板的Sku /// - public string GiftTemplateSku { get; set; } + public IList GiftTemplateSkuList { get; set; } /// /// 主商品的赠品sku diff --git a/BBWY.Server.Model/Dto/Response/GiftTemplate/GiftTemplateResponse.cs b/BBWY.Server.Model/Dto/Response/GiftTemplate/GiftTemplateResponse.cs index d45f0b63..4e64860a 100644 --- a/BBWY.Server.Model/Dto/Response/GiftTemplate/GiftTemplateResponse.cs +++ b/BBWY.Server.Model/Dto/Response/GiftTemplate/GiftTemplateResponse.cs @@ -7,5 +7,11 @@ namespace BBWY.Server.Model.Dto { public class GiftTemplateResponse : GiftTemplate { + public IList GiftSkuList { get; set; } + } + + public class GiftTemplateSkuResponse : GiftTemplateSku + { + } } diff --git a/BBWY.Test/JDProductAPITest.cs b/BBWY.Test/JDProductAPITest.cs index 56be17a0..165ee97b 100644 --- a/BBWY.Test/JDProductAPITest.cs +++ b/BBWY.Test/JDProductAPITest.cs @@ -20,7 +20,7 @@ namespace BBWY.Test pageSize = 50,//50 field = "logo,saleAttrs,status,created,barCode,categoryId,multiCateProps" }; - string sku = "10066603568725,10066603568724,10066603568728,10066603568727,10066603568726,10066603568722,10066603568729,10066603568723"; + string sku = "10023500913672,10066767386123"; var skuList = new List(); IList skuIdList = null; var pageIndex = 1;