Commit 9a9229b3 by lizefeng

结算报表,新增净收入

parent 7877f0aa
...@@ -32,199 +32,12 @@ namespace AutoTurnOver.Services ...@@ -32,199 +32,12 @@ namespace AutoTurnOver.Services
{ {
public class AmazonDataSynchroService public class AmazonDataSynchroService
{ {
//public void SynchroFee()
//{
// // 拉取亚马逊账号
// var amazonAccounts = ApiServices.GetAmazonAccountList();
// foreach (var item in amazonAccounts)
// {
// try
// {
// if (item.AmznSpDevAccountObj != null && item.AmznSpTokenObj != null)
// {
// var task_name = $"SynchroAmazonFee_v1_{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 = GetFees(item, null, new_task_synchro_log.start_time, new_task_synchro_log.end_time);
// var feesJson = fees.ToJson();
// List<dc_base_amazon_fee> feeDatas = new List<dc_base_amazon_fee>();
// foreach (var fee in fees)
// {
// // 订单交易
// if (fee.ShipmentEventList != null && fee.ShipmentEventList.Count >= 1)
// {
// foreach (var shipmentEvent in fee.ShipmentEventList)
// {
// foreach (var shipmentItem in shipmentEvent.ShipmentItemList)
// {
// feeDatas.Add(ApiDataMapDbData(item.Account, shipmentEvent, shipmentItem, "order"));
// }
// }
// }
// // 退款
// if (fee.RefundEventList != null && fee.RefundEventList.Count >= 1)
// {
// foreach (var refundEventList in fee.RefundEventList)
// {
// foreach (var shipmentItemAdjustmentList in refundEventList.ShipmentItemAdjustmentList)
// {
// feeDatas.Add(ApiDataMapDbData(item.Account, refundEventList, shipmentItemAdjustmentList, "refund"));
// }
// }
// }
// // 服务费 (该费用没有实际时间,如果抓取时间跟当前时间相差不超过24小时,则以当前时间为准,否则跳过该费用)
// if ((DateTime.Now - new_task_synchro_log.start_time).TotalHours <= 24)
// {
// if (fee.ServiceFeeEventList != null && fee.ServiceFeeEventList.Count >= 1)
// {
// foreach (var serviceFeeEvent in fee.ServiceFeeEventList)
// {
// foreach (var serviceFeeEventFeeItem in serviceFeeEvent.FeeList)
// {
// if (serviceFeeEventFeeItem.FeeAmount != null && serviceFeeEventFeeItem.FeeAmount.CurrencyAmount != 0)
// {
// dc_base_amazon_fee serviceFeeEventFee = new dc_base_amazon_fee
// {
// account = item.Account,
// date = new_task_synchro_log.start_time.AddHours(-8), // 没有时间,用当前时间代替
// AmazonOrderId = serviceFeeEvent.AmazonOrderId,
// description = serviceFeeEventFeeItem.FeeType,
// type = "Service Fee",
// total = (decimal)serviceFeeEventFeeItem.FeeAmount.CurrencyAmount,
// other = (decimal)serviceFeeEventFeeItem.FeeAmount.CurrencyAmount,
// currency_code = serviceFeeEventFeeItem.FeeAmount.CurrencyCode
// };
// serviceFeeEventFee.data_id = $"{item.Account}_{serviceFeeEventFee.type}_{serviceFeeEventFee.description}_{serviceFeeEventFee.date.ToString("yyyy-MM-ddTHH:mm:ssZ")}_{serviceFeeEventFee.AmazonOrderId}_{serviceFeeEventFee.currency_code}";
// feeDatas.Add(serviceFeeEventFee);
// }
// }
// }
// }
// }
// // 广告费
// if (fee.ProductAdsPaymentEventList != null && fee.ProductAdsPaymentEventList.Count >= 1)
// {
// foreach (var productAdsPayment in fee.ProductAdsPaymentEventList)
// {
// dc_base_amazon_fee productAdsPaymentFee = new dc_base_amazon_fee
// {
// account = item.Account,
// date = productAdsPayment.PostedDate == null ? new DateTime(1991, 1, 1) : productAdsPayment.PostedDate.Value,
// AmazonOrderId = productAdsPayment.InvoiceId,
// description = "Cost of Advertising",
// type = "Service Fee",
// total = (decimal)productAdsPayment.TransactionValue.CurrencyAmount,
// other = 0,
// currency_code = productAdsPayment.TransactionValue.CurrencyCode
// };
// productAdsPaymentFee.data_id = $"{item.Account}_{productAdsPaymentFee.type}_{productAdsPaymentFee.description}_{productAdsPaymentFee.date.ToString("yyyy-MM-ddTHH:mm:ssZ")}_{productAdsPaymentFee.currency_code}_{productAdsPaymentFee.AmazonOrderId}";
// feeDatas.Add(productAdsPaymentFee);
// }
// }
// // 客户退款
// if (fee.AdjustmentEventList != null && fee.AdjustmentEventList.Count >= 1)
// {
// // 客户退款
// foreach (var customerReturn in fee.AdjustmentEventList.Where(s => s.AdjustmentType == "REVERSAL_REIMBURSEMENT"))
// {
// foreach (var customerReturnItem in customerReturn.AdjustmentItemList)
// {
// dc_base_amazon_fee customerReturnFee = new dc_base_amazon_fee
// {
// account = item.Account,
// date = customerReturn.PostedDate == null ? new DateTime(1991, 1, 1) : customerReturn.PostedDate.Value,
// description = "FBA Inventory Reimbursement - Customer Return",
// type = "Ajustement",
// total = (decimal)customerReturnItem.TotalAmount.CurrencyAmount,
// other = 0,
// sku = customerReturnItem.SellerSKU,
// currency_code = customerReturnItem.TotalAmount.CurrencyCode
// };
// customerReturnFee.data_id = $"{item.Account}_{customerReturnFee.type}_{customerReturnFee.description}_{customerReturnFee.date.ToString("yyyy-MM-ddTHH:mm:ssZ")}_{customerReturnFee.currency_code}_{customerReturnFee.sku}";
// feeDatas.Add(customerReturnFee);
// }
// }
// }
// }
// foreach (var feeItem in feeDatas)
// {
// feeItem.id = MyMySqlConnection._connection.QueryFirstOrDefault<int?>("select id from dc_base_amazon_fee where data_id=@data_id", new { data_id = feeItem.data_id }) ?? 0;
// if (feeItem.id > 0)
// {
// MyMySqlConnection._connection.Update(feeItem);
// }
// else
// {
// MyMySqlConnection._connection.Insert(feeItem);
// }
// }
// 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;
// }
// }
//}
public void SynchroFinancialEventGroups() public void SynchroFinancialEventGroups()
{ {
// 拉取亚马逊账号 // 拉取亚马逊账号
var amazonAccounts = ApiServices.GetAmazonAccountList(); var amazonAccounts = ApiServices.GetAmazonAccountList();
//amazonAccounts = amazonAccounts.Where(s => s.Account == "Natural Daisy Encens" && s.SiteEn=="UK").ToList(); amazonAccounts = amazonAccounts.Where(s => s.Account == "Ruby Store17" && s.SiteEn=="US").ToList();
foreach (var item in amazonAccounts) foreach (var item in amazonAccounts)
{ {
try try
...@@ -232,7 +45,7 @@ namespace AutoTurnOver.Services ...@@ -232,7 +45,7 @@ namespace AutoTurnOver.Services
if (item.AmznSpDevAccountObj != null && item.AmznSpTokenObj != null) if (item.AmznSpDevAccountObj != null && item.AmznSpTokenObj != null)
{ {
var task_name = $"SynchroAmazonFinancialEventGroups_v9_{item.Id}"; var task_name = $"SynchroAmazonFinancialEventGroups_v10_{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 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 });
...@@ -289,6 +102,8 @@ namespace AutoTurnOver.Services ...@@ -289,6 +102,8 @@ namespace AutoTurnOver.Services
{ {
MyMySqlConnection._connection.Insert(transferFee); MyMySqlConnection._connection.Insert(transferFee);
} }
} }
...@@ -685,6 +500,30 @@ namespace AutoTurnOver.Services ...@@ -685,6 +500,30 @@ namespace AutoTurnOver.Services
MyMySqlConnection._connection.Insert(settlementDbData); MyMySqlConnection._connection.Insert(settlementDbData);
} }
// 净收入
dc_base_amazon_fee netIncome = new dc_base_amazon_fee
{
account = pamsAccount.Account,
date = settlementDbData.end_date.Value == null ? new DateTime(1991, 1, 1) : settlementDbData.end_date.Value,
end_date = (settlementDbData.end_date == null ? new DateTime(1991, 1, 1) : settlementDbData.end_date.Value).AddHours(8),
start_date = (settlementDbData.start_date == null ? new DateTime(1991, 1, 1) : settlementDbData.start_date.Value).AddHours(8),
AmazonOrderId = settlementDbData.settlement_id,
SellerOrderId = settlementDbData.settlement_id,
_ts = DateTime.Now,
MarketplaceName = marketplaceName,
MarketplaceNameSys = marketplaceNameSys,
settlement_id = settlementDbData.settlement_id,
type = "净收入",
type_cn = "净收入",
total = (decimal)settlementDbData.amount,
currency_code = settlementDbData.currency
};
netIncome.settlement_date_str = $"{netIncome.start_date.Value.ToString("yyyy-MM-ddTHH:mm:ss")}~{netIncome.end_date.Value.ToString("yyyy-MM-ddTHH:mm:ss")}";
netIncome.description = $"{netIncome.start_date.Value.AddHours(8).ToString("yyyy-MM-dd")}~{netIncome.end_date.Value.AddHours(8).ToString("yyyy-MM-dd")}";
netIncome.data_id = $"{netIncome.settlement_id}_{netIncome.type}";
netIncome.id = MyMySqlConnection._connection.QueryFirstOrDefault<int?>(" select id from dc_base_amazon_fee where data_id=@data_id ", new { data_id = netIncome.data_id }) ?? 0;
feeDatas.Add(netIncome);
foreach (var feeItem in feeDatas) foreach (var feeItem in feeDatas)
{ {
try try
......
...@@ -61,7 +61,7 @@ namespace ResetOutofstock ...@@ -61,7 +61,7 @@ namespace ResetOutofstock
//{ //{
// new AmazonDataSynchroService().AnaReport(status:-1); // new AmazonDataSynchroService().AnaReport(status:-1);
//} //}
//new AmazonDataSynchroService().AnaReport(data_id: "17362312191"); //new AmazonDataSynchroService().AnaReport(data_id: "17339571721");
} }
catch (Exception ex) catch (Exception ex)
{ {
......
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