diff --git a/BBWY.Server.API/Controllers/PlatformSDKController.cs b/BBWY.Server.API/Controllers/PlatformSDKController.cs index 9771f710..dc70060b 100644 --- a/BBWY.Server.API/Controllers/PlatformSDKController.cs +++ b/BBWY.Server.API/Controllers/PlatformSDKController.cs @@ -197,5 +197,27 @@ namespace BBWY.Server.API.Controllers { return platformSDKBusinessList.FirstOrDefault(p => p.Platform == syncShopPopularizeRequest.Platform).GetJDShopSopularizeRecordList(syncShopPopularizeRequest); } + + /// + /// 查询JD推广报表-Sku维度 + /// + /// + /// + [HttpPost] + public JArray GetJDSopularizeReportFormBySkuLevel([FromBody]SyncJDPopularizeReportFormRequest request) + { + return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetJDSopularizeReportFormBySkuLevel(request); + } + + /// + /// 查询JD推广报表-创意维度 + /// + /// + /// + [HttpPost] + public JArray GetJDSopularizeReportFormByAdLevel([FromBody]SyncJDPopularizeReportFormRequest request) + { + return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetJDSopularizeReportFormByAdLevel(request); + } } } diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 6c00732e..f21bbfb6 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -488,5 +488,48 @@ namespace BBWY.Server.Business response.Json = JsonConvert.DeserializeObject(response.Body); return (JArray)response.Json["jingdong_dsp_platform_finance_openapi_querycostdetails_responce"]["returnType"]["data"]["page"]["data"]; } + + public override JArray GetJDSopularizeReportFormBySkuLevel(SyncJDPopularizeReportFormRequest request) + { + var jdClient = GetJdClient(request.AppKey, request.AppSecret); + var req = new AdsIbgUniversalJosServiceSkuQueryRequest(); + req.businessType = request.Business.ToString(); + req.isDaily = "true"; + req.clickOrOrderDay = "0"; + req.pageSize = "100"; + req.page = request.PageIndex.ToString(); + req.clickOrOrderCaliber = "1"; + req.startDay = request.StartDate.ToString("yyyy-MM-dd"); + req.endDay = request.EndDate.ToString("yyyy-MM-dd"); + req.giftFlag = "0"; + var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + if (res.IsError) + throw new BusinessException($"获取JD推广报表-Sku维度出错,{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}"); + if (res.Json == null) + res.Json = JsonConvert.DeserializeObject(res.Body); + return (JArray)res.Json["jingdong_ads_ibg_UniversalJosService_sku_query_responce"]["returnType"]["data"]["datas"]; + } + + public override JArray GetJDSopularizeReportFormByAdLevel(SyncJDPopularizeReportFormRequest request) + { + var jdClient = GetJdClient(request.AppKey, request.AppSecret); + + var req = new AdsIbgUniversalJosServiceAdQueryRequest(); + req.businessType = request.Business.ToString(); + req.isDaily = "true"; + req.clickOrOrderDay = "0"; + req.pageSize = "100"; + req.page = request.PageIndex.ToString(); + req.clickOrOrderCaliber = "1"; + req.startDay = request.StartDate.ToString("yyyy-MM-dd"); + req.endDay = request.EndDate.ToString("yyyy-MM-dd"); + req.giftFlag = "0"; + 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)}"); + if (res.Json == null) + res.Json = JsonConvert.DeserializeObject(res.Body); + return (JArray)res.Json["jingdong_ads_ibg_UniversalJosService_ad_query_responce"]["returnType"]["data"]["datas"]; + } } } diff --git a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs index f70e9349..834442dc 100644 --- a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs @@ -112,5 +112,15 @@ namespace BBWY.Server.Business { throw new NotImplementedException(); } + + public virtual JArray GetJDSopularizeReportFormBySkuLevel(SyncJDPopularizeReportFormRequest request) + { + throw new NotImplementedException(); + } + + public virtual JArray GetJDSopularizeReportFormByAdLevel(SyncJDPopularizeReportFormRequest request) + { + throw new NotImplementedException(); + } } } diff --git a/BBWY.Server.Business/Sync/JD/JDPopularizeAdSkuReportFormSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeAdSkuReportFormSyncBusiness.cs new file mode 100644 index 00000000..6f6d2afb --- /dev/null +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeAdSkuReportFormSyncBusiness.cs @@ -0,0 +1,31 @@ +using BBWY.Common.Http; +using BBWY.Common.Models; +using BBWY.Server.Model; +using Microsoft.Extensions.Options; +using NLog; +using Yitter.IdGenerator; + +namespace BBWY.Server.Business.Sync +{ + public class JDPopularizeAdSkuReportFormSyncBusiness: BaseSyncBusiness, IDenpendency + { + public JDPopularizeAdSkuReportFormSyncBusiness(RestApiService restApiService, + IOptions options, + ILogger logger, + IFreeSql fsql, + IIdGenerator idGenerator, + TaskSchedulerManager taskSchedulerManager, + VenderBusiness venderBusiness) : base(restApiService, + options, + logger, + fsql, + idGenerator, + taskSchedulerManager, + venderBusiness) + { + + } + + + } +} diff --git a/BBWY.Server.Business/Sync/JDPopularizeSyncBusiness.cs b/BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs similarity index 86% rename from BBWY.Server.Business/Sync/JDPopularizeSyncBusiness.cs rename to BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs index 3b20e6f1..ae0fea7f 100644 --- a/BBWY.Server.Business/Sync/JDPopularizeSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/JD/JDPopularizeSyncBusiness.cs @@ -65,30 +65,7 @@ namespace BBWY.Server.Business.Sync ShopId = shopId }); } - - //#region 新增pin保存逻辑 - //var pinList = jArray.Select(j => j.Value("pin")).Distinct().ToList(); - //var dbPinList = fsql.Select().Where(p => p.ShopId == shopId).ToList(p => p.AccessPin); - //var pinchajiList = pinList.Except(dbPinList).ToList(); - //List insertJDShopPinList = null; - //if (pinchajiList.Count() > 0) - //{ - // insertJDShopPinList = pinchajiList.Select(pin => new JdShopPin() - // { - // Id = idGenerator.NewLong(), - // AccessPin = pin, - // CreateTime = DateTime.Now, - // ShopId = shopId - // }).ToList(); - //} - //#endregion - - //fsql.Transaction(() => - // { - // if (insertJDShopPinList != null) - // fsql.Insert(insertJDShopPinList).ExecuteAffrows(); fsql.Insert(insertList).ExecuteAffrows(); - //}); } private void SyncShopPopularizeRecord(ShopResponse shop, DateTime startDate, DateTime endDate, int pageIndex, out int currentCount) diff --git a/BBWY.Server.Model/Db/JD/JDOrderPopularizeRelation.cs b/BBWY.Server.Model/Db/JD/JDOrderPopularizeRelation.cs new file mode 100644 index 00000000..ddd2a49c --- /dev/null +++ b/BBWY.Server.Model/Db/JD/JDOrderPopularizeRelation.cs @@ -0,0 +1,66 @@ +using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + /// + /// 京东订单推广归属关系表 + /// + [Table(Name = "jdorderpopularizerelation", DisableSyncStructure = true)] + public partial class JDOrderPopularizeRelation { + + [ Column(IsPrimary = true)] + public long Id { get; set; } + + /// + /// 单元Id + /// + + public long? AdGroupId { get; set; } + + /// + /// 创意Id + /// + + public long? AdId { get; set; } + + /// + /// 业务线(快车:2 京速推:134217728) + /// + + public int? BusinessType { get; set; } + + /// + /// 计划Id + /// + + public long? CampaignId { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 订单Id + /// + [Column(StringLength = 50)] + public string OrderId { get; set; } + + /// + /// 下单Sku + /// + [Column(StringLength = 50)] + public string PlaceOrderSku { get; set; } + + /// + /// 推广Sku + /// + [Column(StringLength = 50)] + public string PopularizeSku { get; set; } + + + public long? ShopId { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs b/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs new file mode 100644 index 00000000..36e5ea2e --- /dev/null +++ b/BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs @@ -0,0 +1,85 @@ + using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + /// + /// 京东推广单元表 + /// + [Table(Name = "jdpopularizeadgroup", DisableSyncStructure = true)] + public partial class JDPopularizeAdGroup + { + + [Column(IsPrimary = true)] + public long Id { get; set; } + + /// + /// 单元Id + /// + + public long? AdGroupId { get; set; } + + /// + /// 业务线(快车:2 京速推:134217728) + /// + + public int? BusinessType { get; set; } + + /// + /// 计划Id + /// + + public long? CampaignId { get; set; } + + /// + /// 点击数 + /// + [Column(Name = "clicks")] + public int? Clicks { get; set; } + + /// + /// 总花费 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? Cost { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 计费日期 + /// + [Column(DbType = "datetime")] + public DateTime? Date { get; set; } + + /// + /// 展现次数 + /// + [Column(Name = "impressions")] + public int? Impressions { get; set; } + + /// + /// 账号归属 + /// + [Column(Name = "pin")] + public string Pin { get; set; } + + + public long? ShopId { get; set; } + + /// + /// 总加购人数 + /// + [Column(Name = "totalCartCnt")] + public int? TotalCartCnt { get; set; } + + /// + /// 总订单数 + /// + [Column(Name = "totalOrderCnt")] + public int? TotalOrderCnt { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs b/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs new file mode 100644 index 00000000..743f9ec8 --- /dev/null +++ b/BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs @@ -0,0 +1,94 @@ +using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + /// + /// 京东推广SKU创意表 + /// + [Table(Name = "jdpopularizeadsku", DisableSyncStructure = true)] + public partial class JDPopularizeAdSku + { + + [Column(IsPrimary = true)] + public long Id { get; set; } + + /// + /// 单元Id + /// + + public long? AdGroupId { get; set; } + + /// + /// 创意Id + /// + + public long? AdId { get; set; } + + /// + /// 业务线(快车:2 京速推:134217728) + /// + + public int? BusinessType { get; set; } + + /// + /// 计划Id + /// + + public long? CampaignId { get; set; } + + /// + /// 点击数 + /// + [Column(Name = "clicks")] + public int? Clicks { get; set; } + + /// + /// 总花费 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? Cost { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 计费日期 + /// + [Column(DbType = "datetime")] + public DateTime? Date { get; set; } + + /// + /// 展现次数 + /// + [Column(Name = "impressions")] + public int? Impressions { get; set; } + + /// + /// 账号归属 + /// + [Column(Name = "pin")] + public string Pin { get; set; } + + + public long? ShopId { get; set; } + + [Column(StringLength = 50)] + public string Sku { get; set; } + + /// + /// 总加购人数 + /// + [Column(Name = "totalCartCnt")] + public int? TotalCartCnt { get; set; } + + /// + /// 总订单数 + /// + [Column(Name = "totalOrderCnt")] + public int? TotalOrderCnt { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs b/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs new file mode 100644 index 00000000..36ef2e83 --- /dev/null +++ b/BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs @@ -0,0 +1,78 @@ + using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + /// + /// 京东推广计划表 + /// + [Table(Name = "jdpopularizecampaign", DisableSyncStructure = true)] + public partial class JDPopularizeCampaign + { + + [Column(IsPrimary = true)] + public long Id { get; set; } + + /// + /// 业务线(快车:2 京速推:134217728) + /// + + public int? BusinessType { get; set; } + + /// + /// 计划Id + /// + public long? CampaignId { get; set; } + + /// + /// 点击数 + /// + [Column(Name = "clicks")] + public int? Clicks { get; set; } + + /// + /// 总花费 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? Cost { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 计费日期 + /// + [Column(DbType = "datetime")] + public DateTime? Date { get; set; } + + /// + /// 展现次数 + /// + [Column(Name = "impressions")] + public int? Impressions { get; set; } + + /// + /// 账号归属 + /// + [Column(Name = "pin")] + public string Pin { get; set; } + + + public long? ShopId { get; set; } + + /// + /// 总加购人数 + /// + [Column(Name = "totalCartCnt")] + public int? TotalCartCnt { get; set; } + + /// + /// 总订单数 + /// + [Column(Name = "totalOrderCnt")] + public int? TotalOrderCnt { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Db/Shop/JdShopPin.cs b/BBWY.Server.Model/Db/Shop/JdShopPin.cs deleted file mode 100644 index 0a18a1e9..00000000 --- a/BBWY.Server.Model/Db/Shop/JdShopPin.cs +++ /dev/null @@ -1,22 +0,0 @@ -using FreeSql.DataAnnotations; -using System; - -namespace BBWY.Server.Model.Db -{ - - [ Table(Name = "jdshoppin", DisableSyncStructure = true)] - public partial class JdShopPin { - - [Column(StringLength = 100)] - public string AccessPin { get; set; } - - [Column(DbType = "datetime")] - public DateTime? CreateTime { get; set; } - - public long Id { get; set; } - - public long? ShopId { get; set; } - - } - -} diff --git a/BBWY.Server.Model/Dto/Request/Sync/SyncJDPopularizeAdSkuRequest.cs b/BBWY.Server.Model/Dto/Request/Sync/SyncJDPopularizeAdSkuRequest.cs new file mode 100644 index 00000000..0262e8d5 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/Sync/SyncJDPopularizeAdSkuRequest.cs @@ -0,0 +1,15 @@ +using System; + +namespace BBWY.Server.Model.Dto +{ + public class SyncJDPopularizeReportFormRequest: PlatformRequest + { + public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + public int PageIndex { get; set; } + /// + /// 业务线(快车:2 京速推:134217728) + /// + public int? Business { get; set; } + } +}