Commit ab83f918 by lizefeng

fix

parent 0c5d303a
...@@ -218,6 +218,97 @@ namespace AutoTurnOver.Services ...@@ -218,6 +218,97 @@ namespace AutoTurnOver.Services
} }
} }
public void SynchroFinancialEventGroups()
{
// 拉取亚马逊账号
var amazonAccounts = ApiServices.GetAmazonAccountList();
//amazonAccounts = amazonAccounts.Where(s => s.Account == "Natural Daisy Encens" &&s.SiteEn=="UK").ToList();
foreach (var item in amazonAccounts)
{
try
{
if (item.AmznSpDevAccountObj != null && item.AmznSpTokenObj != null)
{
var task_name = $"SynchroAmazonFinancialEventGroups_v2_{item.Id}";
// 查询最后一次成功抓取的记录
var last_task_synchro_log = MyMySqlConnection._connection.QuerySingleOrDefault<task_synchro_log>(" select * from task_synchro_log where task_name=@task_name and status=1 order by end_time desc limit 1 ", new { task_name = task_name });
var new_task_synchro_log = new task_synchro_log
{
create_date = DateTime.Now,
end_time = DateTime.Now.AddMinutes(-3),
status = 0,
task_name = task_name
};
if (last_task_synchro_log != null)
{
new_task_synchro_log.start_time = last_task_synchro_log.end_time.AddMinutes(-1);
}
else
{
new_task_synchro_log.start_time = new DateTime(2023, 1, 1);
}
new_task_synchro_log.id = MyMySqlConnection._connection.Insert(new_task_synchro_log) ?? 0;
int count = 0;
new_task_synchro_log.end_time = new DateTime(2023, 1, 31, 23,59, 59);
var now = DateTime.Now;
var fees = GetFinancialEventGroups(item, new_task_synchro_log.start_time, new_task_synchro_log.end_time);
//var json = fees.ToJson();
foreach (var feeItem in fees.Where(s => s.FundTransferStatus == "Succeeded"))
{
dc_base_amazon_fee transferFee = new dc_base_amazon_fee
{
account = item.Account,
date = new_task_synchro_log.start_time.AddHours(-8), // 没有时间,用当前时间代替
AmazonOrderId = feeItem.FinancialEventGroupId,
SellerOrderId = feeItem.TraceId,
description = $"To account ending in: {feeItem.AccountTail}",
type = "Transfer", // 提现
total = (decimal)feeItem.OriginalTotal.CurrencyAmount- (decimal)feeItem.BeginningBalance.CurrencyAmount,
currency_code = feeItem.OriginalTotal.CurrencyCode
};
transferFee.other = transferFee.total;
transferFee.data_id = $"{feeItem.TraceId}_{transferFee.type}_{transferFee.AmazonOrderId}";
transferFee.id = MyMySqlConnection._connection.QueryFirstOrDefault<int?>(" select id from dc_base_amazon_fee where data_id=@data_id ", new { data_id = transferFee.data_id }) ?? 0;
if (transferFee.id == 0)
{
MyMySqlConnection._connection.Insert(transferFee);
}
}
new_task_synchro_log.count = count;
new_task_synchro_log.status = 1;
MyMySqlConnection._connection.Update(new_task_synchro_log);
}
}
catch (Exception ex)
{
MyMySqlConnection._connection.Insert(new dc_task_error_log
{
date = DateTime.Now,
message = ex.Message,
stack_trace = ex.StackTrace,
task_name = "SynchroAmazonFee_" + item.Id
});
//throw;
}
}
}
/// <summary> /// <summary>
/// 拉取报表 /// 拉取报表
...@@ -226,7 +317,7 @@ namespace AutoTurnOver.Services ...@@ -226,7 +317,7 @@ namespace AutoTurnOver.Services
{ {
// 拉取亚马逊账号 // 拉取亚马逊账号
var amazonAccounts = ApiServices.GetAmazonAccountList(); var amazonAccounts = ApiServices.GetAmazonAccountList();
amazonAccounts = amazonAccounts.Where(s => s.Account == "Natural Daisy Encens").ToList(); //amazonAccounts = amazonAccounts.Where(s => s.Account == "Natural Daisy Encens").ToList();
foreach (var itemV in amazonAccounts) foreach (var itemV in amazonAccounts)
{ {
try try
...@@ -511,6 +602,17 @@ namespace AutoTurnOver.Services ...@@ -511,6 +602,17 @@ namespace AutoTurnOver.Services
var reports = amazonConnection.Reports.GetReports(parameters); var reports = amazonConnection.Reports.GetReports(parameters);
return reports; return reports;
} }
public IList<FinancialEventGroup> GetFinancialEventGroups(AmazonAccountDto account, DateTime btime, DateTime etime)
{
AmazonConnection amazonConnection = MapAmazonConnection(account);
var parameters = new ParameterListFinancialEventGroup();
parameters.FinancialEventGroupStartedAfter = btime;
parameters.FinancialEventGroupStartedBefore = etime;
parameters.MaxResultsPerPage=100;
var reports = amazonConnection.Financial.ListFinancialEventGroups(parameters);
return reports;
}
/// <summary> /// <summary>
/// 生成报告 /// 生成报告
......
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/runtime:2.1 AS base
WORKDIR /app
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
FROM mcr.microsoft.com/dotnet/sdk:2.1 AS build
WORKDIR /src
COPY ["ResetOutofstock/ResetOutofstock.csproj", "ResetOutofstock/"]
COPY ["AutoTurnOver.DB/AutoTurnOver.DB.csproj", "AutoTurnOver.DB/"]
COPY ["AutoTurnOver.Utility/AutoTurnOver.Utility.csproj", "AutoTurnOver.Utility/"]
COPY ["AutoTurnOver.Models/AutoTurnOver.Models.csproj", "AutoTurnOver.Models/"]
COPY ["AutoTurnOver.Services/AutoTurnOver.Services.csproj", "AutoTurnOver.Services/"]
COPY ["FikaAmazonAPI/FikaAmazonAPI.csproj", "FikaAmazonAPI/"]
RUN dotnet restore "ResetOutofstock/ResetOutofstock.csproj"
COPY . .
WORKDIR "/src/ResetOutofstock"
RUN dotnet build "ResetOutofstock.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "ResetOutofstock.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ResetOutofstock.dll"]
\ No newline at end of file
...@@ -51,7 +51,7 @@ namespace ResetOutofstock ...@@ -51,7 +51,7 @@ namespace ResetOutofstock
//report_invest_return_dao.SynchBtmOrderRefund(); //report_invest_return_dao.SynchBtmOrderRefund();
//report_invest_return_dao.CalculationStockScore("962073701"); //report_invest_return_dao.CalculationStockScore("962073701");
//dc_ana_deviation_dao.PushAnaTask(); //dc_ana_deviation_dao.PushAnaTask();
//new AmazonDataSynchroService().SynchroReportIds(); //new AmazonDataSynchroService().SynchroFinancialEventGroups();
//while (true) //while (true)
//{ //{
// new AmazonDataSynchroService().AnaReport(); // new AmazonDataSynchroService().AnaReport();
......
...@@ -679,6 +679,29 @@ namespace ResetOutofstock ...@@ -679,6 +679,29 @@ namespace ResetOutofstock
} }
}); });
Task.Factory.StartNew(() =>
{
while (true)
{
try
{
Console.WriteLine($"开始 拉取亚马逊体现记录,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
new AmazonDataSynchroService().SynchroFinancialEventGroups();
Console.WriteLine($"结束 拉取亚马逊体现记录,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
Thread.Sleep(1000 * 3 );
}
catch (Exception ex)
{
Console.WriteLine(" 解析亚马逊报表:" + ex.Message);
Console.WriteLine(" 解析亚马逊报表 :" + ex.StackTrace);
}
}
});
......
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