diff --git a/SiNan.API/Controllers/GOIController.cs b/SiNan.API/Controllers/GOIController.cs index 81726dd..84ef0c8 100644 --- a/SiNan.API/Controllers/GOIController.cs +++ b/SiNan.API/Controllers/GOIController.cs @@ -19,9 +19,20 @@ namespace SiNan.API.Controllers /// /// [HttpPost] - public ListResponse QueryProductGOI([FromBody]QueryProductGOIRequest request) + public ListResponse QueryProductGOI([FromBody] QueryProductGOIRequest request) { return goiBusiness.QueryProductGOI(request); } + + /// + /// 产品360推广分析 + /// + /// + /// + [HttpPost] + public ListResponse QueryProduct360PopularizeGOI(Product360PopularizeAnalysisRequest request) + { + return goiBusiness.QueryProduct360PopularizeGOI(request); + } } } diff --git a/SiNan.Business/GOIBusiness.cs b/SiNan.Business/GOIBusiness.cs index 8502d23..85d3213 100644 --- a/SiNan.Business/GOIBusiness.cs +++ b/SiNan.Business/GOIBusiness.cs @@ -244,6 +244,35 @@ namespace SiNan.Business }; } - + public ListResponse QueryProduct360PopularizeGOI(Product360PopularizeAnalysisRequest request) + { + if (request.SkuIdList == null || request.SkuIdList.Count() == 0) + throw new BusinessException("缺少sku"); + List list = new List(); + + var sourcePopularizeAdSkuList = fsql.Select() + .Where(x => x.ShopId == request.ShopId) + .Where(x => x.Date >= request.StartDate && x.Date <= request.EndDate) + .WhereIf(request.SkuIdList.Count() == 1, x => x.Sku == request.SkuIdList[0]) + .WhereIf(request.SkuIdList.Count() > 1, x => request.SkuIdList.Contains(x.Sku)) + .ToList(); + + var kuaicheCampaignList = sourcePopularizeAdSkuList.Where(x => x.BusinessType == 2).ToList(); + var jstCampaignList = sourcePopularizeAdSkuList.Where(x => x.BusinessType == 134217728).ToList(); + + #region 处理快车 + + #endregion + + #region 处理京速推 + + #endregion + + return new ListResponse() + { + ItemList = list, + Count = list.Count + }; + } } } diff --git a/SiNan.Model/Dto/Request/GOI/Product360PopularizeAnalysisRequest.cs b/SiNan.Model/Dto/Request/GOI/Product360PopularizeAnalysisRequest.cs index 6b58c3f..526938a 100644 --- a/SiNan.Model/Dto/Request/GOI/Product360PopularizeAnalysisRequest.cs +++ b/SiNan.Model/Dto/Request/GOI/Product360PopularizeAnalysisRequest.cs @@ -2,6 +2,8 @@ { public class Product360PopularizeAnalysisRequest { + public long ShopId { get; set; } + public IList SkuIdList { get; set; } public DateTime StartDate { get; set; } diff --git a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs index 3c388ef..0f708e5 100644 --- a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs +++ b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs @@ -2,5 +2,54 @@ { public class Product360PopularizeAnalysisAdGroupResponse { + /// + /// 业务渠道 快车=2 智能推广= 134217728 + /// + public int BusinessType { get; set; } + + /// + /// 计划Id + /// + public long CampaignId { get; set; } + + /// + /// 单元Id + /// + public long AdGroupId { get; set; } + + /// + /// 单元名称 + /// + public string AdGroupName { get; set; } + + /// + /// 最近7天的计划GOI + /// + public GOIResponse AdGroupGOI_Recent7Day { get; set; } + + /// + /// 最近30天的计划GOI + /// + public GOIResponse AdGroupGOI_Recent30Day { get; set; } + + /// + /// 花费 + /// + public decimal Cost { get; set; } + + /// + /// 订单行 + /// + public int OrderCnt { get; set; } + + /// + /// 展现次数 + /// + public int Impressions { get; set; } + + /// + /// 点击次数 + /// + public int Clicks { get; set; } } } diff --git a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs index 4f5aae4..771785b 100644 --- a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs +++ b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs @@ -3,8 +3,58 @@ public class Product360PopularizeAnalysisCampaginRepsonse { /// - /// 业务渠道 快车=2 智能推广=134217728 + /// 业务渠道 快车=2 智能推广= 134217728 /// - public int BusinessType { get; set; } + public int BusinessType { get; set; } + + /// + /// 计划Id + /// + public long CampaignId { get; set; } + + /// + /// 计划名称 + /// + public string CampaignName { get; set; } + + /// + /// 计划场景 + /// + public string CampaginScenarios { get; set; } + + /// + /// 最近7天的计划GOI + /// + public GOIResponse CampaignGOI_Recent7Day { get; set; } + + /// + /// 最近30天的计划GOI + /// + public GOIResponse CampaignGOI_Recent30Day { get; set; } + + /// + /// 花费 + /// + public decimal Cost { get; set; } + + /// + /// 订单行 + /// + public int OrderCnt { get; set; } + + /// + /// 展现次数 + /// + public int Impressions { get; set; } + + /// + /// 点击次数 + /// + public int Clicks { get; set; } + + /// + /// 单元列表 (仅BusinessType=2时具备该列表) + /// + public List AdGroupList { get; set; } } }