Commit 3a3291bb by jianshuqin

修改BUG:同步4K接口的Amazon广告费重复数据异常

parent 8b7e5c8a
...@@ -30,7 +30,7 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -30,7 +30,7 @@ namespace Bailun.DC.SyncAmazonAdFee
protected override Task ExecuteAsync(CancellationToken stoppingToken) protected override Task ExecuteAsync(CancellationToken stoppingToken)
{ {
//每60分钟执行一次任务 //每60分钟执行一次任务
_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(60)); _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(60 * 3));
return Task.CompletedTask; return Task.CompletedTask;
} }
...@@ -39,17 +39,10 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -39,17 +39,10 @@ namespace Bailun.DC.SyncAmazonAdFee
try try
{ {
var now = DateTime.Now; var now = DateTime.Now;
if (now.Hour == 1) //每天1点启动
{
Console.WriteLine("开始启动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Console.WriteLine("开始启动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Init(); Init();
Console.WriteLine("任务运行完成 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Console.WriteLine("任务运行完成 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
} }
else
{
Console.WriteLine($"目前时间是{now.Hour}小时,还没到设定的同步时间");
}
}
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine(ex.Message); Console.WriteLine(ex.Message);
...@@ -61,25 +54,24 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -61,25 +54,24 @@ namespace Bailun.DC.SyncAmazonAdFee
Dapper.SimpleCRUD.SetDialect(SimpleCRUD.Dialect.MySQL); Dapper.SimpleCRUD.SetDialect(SimpleCRUD.Dialect.MySQL);
} }
public void Init(DateTime? startDate = null, DateTime? endDate = null) public void Init(DateTime? startSyncDate = null, DateTime? endSyncDate = null)
{ {
IList<dc_base_company_account> listAccount = this.GetListAccount(); IList<dc_base_company_account> listAccount = this.GetListAccount();
if (listAccount?.Count > 0) if (listAccount?.Count > 0)
{ {
if (!startDate.HasValue) foreach (dc_base_company_account account in listAccount)
{
DateTime? startDate = startSyncDate;
DateTime? endDate = endSyncDate;
if (!startSyncDate.HasValue)
{ {
startDate = this.GetSyncDate(); startDate = this.GetSyncDate(account.account_id);
Console.WriteLine($"同步开始日期{startDate.Value.ToString("yyyy-MM-dd")}");
} }
if (!endDate.HasValue) if (!endSyncDate.HasValue)
{ {
endDate = DateTime.Today.AddDays(-1); endDate = DateTime.Today.AddDays(-1);
} }
for (DateTime date = startDate.Value; date <= endDate.Value; date = date.AddDays(1)) Console.WriteLine($"同步[{account.seller_id}]开始日期{startDate.Value.ToString("yyyy-MM-dd")}");
{
Console.WriteLine($"同步日期{date.ToString("yyyy-MM-dd")}");
foreach (dc_base_company_account account in listAccount)
{
var page = 1; var page = 1;
var pagesize = 1000; var pagesize = 1000;
var count = 0; var count = 0;
...@@ -89,7 +81,7 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -89,7 +81,7 @@ namespace Bailun.DC.SyncAmazonAdFee
{ {
long timeStamp = (long)(DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds; long timeStamp = (long)(DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
string sign = CommonHelper.md5Encrypt($"{this.appkey}{timeStamp}{account.seller_id}{account.site_en.ToLower()}{this.appkey}").ToUpper(); string sign = CommonHelper.md5Encrypt($"{this.appkey}{timeStamp}{account.seller_id}{account.site_en.ToLower()}{this.appkey}").ToUpper();
string url = $"{this.url}?pageIndex={page}&pageSize={pagesize}&sellerId={account.seller_id}&site={account.site_en.ToLower()}&timeStamp={timeStamp}&updateDate={date.ToString("yyyy-MM-dd")}&sign={sign}"; string url = $"{this.url}?pageIndex={page}&pageSize={pagesize}&sellerId={account.seller_id}&site={account.site_en.ToLower()}&timeStamp={timeStamp}&updateDate={startDate.Value.ToString("yyyy-MM-dd")}&sign={sign}";
string result = HttpHelper.NetHelper.Request(url); string result = HttpHelper.NetHelper.Request(url);
Console.WriteLine($"接口地址:{url}"); Console.WriteLine($"接口地址:{url}");
if (!string.IsNullOrEmpty(result)) if (!string.IsNullOrEmpty(result))
...@@ -114,7 +106,6 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -114,7 +106,6 @@ namespace Bailun.DC.SyncAmazonAdFee
} }
} }
} }
}
public IList<dc_base_company_account> GetListAccount() public IList<dc_base_company_account> GetListAccount()
{ {
...@@ -134,7 +125,7 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -134,7 +125,7 @@ namespace Bailun.DC.SyncAmazonAdFee
return list; return list;
} }
public DateTime GetSyncDate() public DateTime GetSyncDate(int accountId)
{ {
DateTime date = DateTime.Today.AddDays(-1); DateTime date = DateTime.Today.AddDays(-1);
using (var db = new MySqlConnection(GlobalConfig.ConnectionString_Data)) using (var db = new MySqlConnection(GlobalConfig.ConnectionString_Data))
...@@ -143,7 +134,7 @@ namespace Bailun.DC.SyncAmazonAdFee ...@@ -143,7 +134,7 @@ namespace Bailun.DC.SyncAmazonAdFee
{ {
db.Open(); db.Open();
} }
date = db.QueryFirstOrDefault<DateTime?>("SELECT MAX(DATE_FORMAT(t1.operation_time,'%Y-%m-%d')) FROM dc_base_finance_amazon_ad_product t1") ?? DateTime.Today.AddDays(-1); date = db.QueryFirstOrDefault<DateTime?>("SELECT MAX(t1.operation_time) FROM dc_base_finance_amazon_ad_product t1 where account_id = @account_id", new { account_id = accountId }) ?? DateTime.Today.AddDays(-1);
} }
return date; return date;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment