From ae4dc45ab02ab4325154f4b60e2de90e7cc6ef58 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 14 Oct 2022 02:53:01 +0800
Subject: [PATCH] 1
---
.../Controllers/PlatformSDKController.cs | 22 +++++
.../PlatformSDK/JDBusiness.cs | 43 +++++++++
.../PlatformSDK/PlatformSDKBusiness.cs | 10 ++
...JDPopularizeAdSkuReportFormSyncBusiness.cs | 31 ++++++
.../Sync/{ => JD}/JDPopularizeSyncBusiness.cs | 23 -----
.../Db/JD/JDOrderPopularizeRelation.cs | 66 +++++++++++++
.../Db/JD/JDPopularizeAdGroup.cs | 85 +++++++++++++++++
BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs | 94 +++++++++++++++++++
.../Db/JD/JDPopularizeCampaign.cs | 78 +++++++++++++++
BBWY.Server.Model/Db/Shop/JdShopPin.cs | 22 -----
.../Sync/SyncJDPopularizeAdSkuRequest.cs | 15 +++
11 files changed, 444 insertions(+), 45 deletions(-)
create mode 100644 BBWY.Server.Business/Sync/JD/JDPopularizeAdSkuReportFormSyncBusiness.cs
rename BBWY.Server.Business/Sync/{ => JD}/JDPopularizeSyncBusiness.cs (86%)
create mode 100644 BBWY.Server.Model/Db/JD/JDOrderPopularizeRelation.cs
create mode 100644 BBWY.Server.Model/Db/JD/JDPopularizeAdGroup.cs
create mode 100644 BBWY.Server.Model/Db/JD/JDPopularizeAdSku.cs
create mode 100644 BBWY.Server.Model/Db/JD/JDPopularizeCampaign.cs
delete mode 100644 BBWY.Server.Model/Db/Shop/JdShopPin.cs
create mode 100644 BBWY.Server.Model/Dto/Request/Sync/SyncJDPopularizeAdSkuRequest.cs
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; }
+ }
+}