Commit 5951dda1 by lizefeng

新增亚马逊流水的抓取

parent 4f9d6e34
...@@ -11,6 +11,7 @@ using System.Linq; ...@@ -11,6 +11,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using DataTableExtensions = AutoTurnOver.Utility.DataTableExtensions;
namespace AutoTurnOver.DB.Base namespace AutoTurnOver.DB.Base
{ {
......
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using Newtonsoft.Json;
namespace AutoTurnOver.Models.ApiDto namespace AutoTurnOver.Models.ApiDto
{ {
/// <summary> /// <summary>
/// 账号数据 /// 账号数据
/// </summary> /// </summary>
public class AccountDto public class AccountDto
{ {
public int Id { get; set; } public int Id { get; set; }
...@@ -21,8 +22,104 @@ namespace AutoTurnOver.Models.ApiDto ...@@ -21,8 +22,104 @@ namespace AutoTurnOver.Models.ApiDto
public string SiteEn { get; set; } public string SiteEn { get; set; }
} }
public class AmazonAccountDto : AccountDto
{
public int? AmznSpDevAccountId { get; set; }
public string ExtensionInfo { get; set; }
public ExtensionInfoDto ExtensionInfoObj
{
get
{
try
{
return JsonConvert.DeserializeObject<ExtensionInfoDto>(ExtensionInfo);
}
catch (Exception)
{
return new ExtensionInfoDto { };
}
}
}
public string MarketPlaceJson { get; set; }
public MarketPlaceDto MarketPlaceObj
{
get
{
try
{
return JsonConvert.DeserializeObject<MarketPlaceDto>(ExtensionInfoObj.MarketPlaceJson);
}
catch (Exception)
{
return null;
}
}
}
public class MarketPlaceDto
{
public string multiMwsMid { get; set; }
}
public class ExtensionInfoDto
{
public string MarketPlaceJson { get; set; }
}
public string AmznSpToken { get; set; }
public SpTokenDto AmznSpTokenObj
{
get
{
try
{
return JsonConvert.DeserializeObject<SpTokenDto>(AmznSpToken);
}
catch (Exception)
{
return null;
}
}
}
public string AmznSpDevAccountJson { get; set; }
public DevAccountDto AmznSpDevAccountObj
{
get
{
try
{
return JsonConvert.DeserializeObject<DevAccountDto>(AmznSpDevAccountJson);
}
catch (Exception)
{
return null;
}
}
}
public class DevAccountDto
{
public string app_id { get; set; }
public string aws_access_key { get; set; }
public string aws_secret_key { get; set; }
public string iam_role { get; set; }
public string lwa_client_id { get; set; }
public string lwa_secret_key { get; set; }
public string redirect_url { get; set; }
}
public class SpTokenDto
{
public string MWSAuthToken { get; set; }
public string AWSAccessKeyId { get; set; }
public string AWSSecretAccessKey { get; set; }
public string LWAAccessToken { get; set; }
public string LWARefreshToken { get; set; }
public string SessionToken { get; set; }
public string PartnerId { get; set; }
}
}
public class PamsResultDto<T> public class PamsResultDto<T>
{ {
public bool Success { get; set; } public bool Success { get; set; }
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
public class dc_base_amazon_fee
{
public int id { get; set; }
public string data_id { get; set; }
public string account { get; set; }
public string SellerOrderId { get; set; }
public string AmazonOrderId { get; set; }
public string MarketplaceName { get; set; }
public string currency_code { get; set; }
public string settlement_id { get; set; }
public string type { get; set; }
public string sku { get; set; }
public string description { get; set; }
public string quantity { get; set; }
public string fulfilment { get; set; }
public string order_city { get; set; }
public string order_state { get; set; }
public string order_postal { get; set; }
public string tax_collection_model { get; set; }
public decimal product_sales { get; set; }
public decimal product_sales_tax { get; set; }
public decimal postage_credits { get; set; }
public decimal shipping_credits_tax { get; set; }
public decimal gift_wrap_credits { get; set; }
public decimal gift_wrap_credits_tax { get; set; }
public decimal promotional_rebates { get; set; }
public decimal promotional_rebates_tax { get; set; }
public decimal marketplace_withheld_tax { get; set; }
public decimal selling_fees { get; set; }
public decimal fba_fees { get; set; }
public decimal other_transaction_fees { get; set; }
public decimal other { get; set; }
public decimal total { get; set; }
public DateTime date { get; set; }
}
}
...@@ -258,6 +258,26 @@ namespace AutoTurnOver.Services ...@@ -258,6 +258,26 @@ namespace AutoTurnOver.Services
}); });
} }
/// <summary>
/// 获取亚马逊账号
/// </summary>
/// <returns></returns>
public static List<AmazonAccountDto> GetAmazonAccountList()
{
string url = ConfigHelper.GetValue("Pams_GetAccountToken");
string resultStr = HttpHelper.Request(url, RequestType.GET, "", timeout: 1000 * 60 * 60 * 24);
var result = resultStr.ToObj<PamsResultDto<List<AmazonAccountDto>>>();
if (result == null)
{
throw new Exception("账号系统异常: 未获取到数据");
}
if (!result.Success)
{
throw new Exception("账号系统异常: " + result.Message);
}
return result.Data;
}
public static List<AccountDto> AccountList(string name) public static List<AccountDto> AccountList(string name)
{ {
try try
......
...@@ -15,4 +15,13 @@ ...@@ -15,4 +15,13 @@
<Folder Include="AutoTurnOver\Models\" /> <Folder Include="AutoTurnOver\Models\" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Include="AWSSDK.SecurityToken" Version="3.7.101.14" />
<PackageReference Include="AWSSDK.SQS" Version="3.7.100.79" />
<PackageReference Include="CSharpAmazonSpAPI" Version="1.5.33" />
<PackageReference Include="RestSharp" Version="108.0.3" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="System.Reflection" Version="4.3.0" />
</ItemGroup>
</Project> </Project>
using FikaAmazonAPI.AmazonSpApiSDK.Models.Finances;
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Text;
namespace AutoTurnOver.Services.Dto
{
public class ApiAmzonResponseFinancialEventsDto: FinancialEvents
{
[DataMember(Name = "RemovalShipmentEventList", EmitDefaultValue = false)]
public RemovalShipmentEventList RemovalShipmentEventList { get; set; }
[DataMember(Name = "RemovalShipmentAdjustmentEventList", EmitDefaultValue = false)]
public List<RemovalShipmentAdjustmentEventDto> RemovalShipmentAdjustmentEventList { get; set; }
public class RemovalShipmentAdjustmentEventDto
{
public string RemovalShipmentItemId { get; set; }
public string TaxCollectionModel { get; set; }
public string FulfillmentNetworkSKU { get; set; }
public int? AdjustedQuantity { get; set; }
public FikaAmazonAPI.AmazonSpApiSDK.Models.Finances.Currency RevenueAdjustment { get; set; }
public FikaAmazonAPI.AmazonSpApiSDK.Models.Finances.Currency TaxAmountAdjustment { get; set; }
public FikaAmazonAPI.AmazonSpApiSDK.Models.Finances.Currency TaxWithheldAdjustment { get; set; }
}
[DataMember(Name = "TrialShipmentEventList", EmitDefaultValue = false)]
public TrialShipmentEventList TrialShipmentEventList { get; set; }
[DataMember(Name = "TDSReimbursementEventList", EmitDefaultValue = false)]
public TDSReimbursementEventList TDSReimbursementEventList { get; set; }
[DataMember(Name = "AdhocDisbursementEventList", EmitDefaultValue = false)]
public List<AdhocDisbursementEventDto> AdhocDisbursementEventList { get; set; }
public class AdhocDisbursementEventDto
{
public string FundsTransfersType { get; set; }
public string TransferId { get; set; }
public string DisbursementId { get; set; }
public string PaymentDisbursementType { get; set; }
public string Status { get; set; }
public FikaAmazonAPI.AmazonSpApiSDK.Models.Finances.Currency TransferAmount { get; set; }
public DateTime? PostedDate { get; set; }
}
[DataMember(Name = "TaxWithholdingEventList", EmitDefaultValue = false)]
public List<TaxWithholdingEventDto> TaxWithholdingEventList { get; set; }
public class TaxWithholdingEventDto
{
public DateTime? PostedDate { get; set; }
public FikaAmazonAPI.AmazonSpApiSDK.Models.Finances.Currency BaseAmount { get; set; }
public FikaAmazonAPI.AmazonSpApiSDK.Models.Finances.Currency WithheldAmount { get; set; }
public TaxWithholdingPeriodDto TaxWithholdingPeriod { get; set; }
public class TaxWithholdingPeriodDto
{
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
}
}
[DataMember(Name = "ChargeRefundEventList", EmitDefaultValue = false)]
public List<ChargeRefundEventDto> ChargeRefundEventList { get; set; }
public class ChargeRefundEventDto
{
public DateTime? PostedDate { get; set; }
public string ReasonCode { get; set; }
public string ReasonCodeDescription { get; set; }
public ChargeRefundTransaction ChargeRefundTransactions { get; set; }
public class ChargeRefundTransaction
{
public string ChargeType { get; set; }
public Currency ChargeAmount { get; set; }
}
}
[DataMember(Name = "FailedAdhocDisbursementEventList", EmitDefaultValue = false)]
public List<FailedAdhocDisbursementEventDto> FailedAdhocDisbursementEventList { get; set; }
public class FailedAdhocDisbursementEventDto
{
public string FundsTransfersType { get; set; }
public string TransferId { get; set; }
public string DisbursementId { get; set; }
public string PaymentDisbursementType { get; set; }
public string Status { get; set; }
public DateTime? PostedDate { get; set; }
public Currency TransferAmount { get; set; }
}
[DataMember(Name = "ValueAddedServiceChargeEventList", EmitDefaultValue = false)]
public List<ValueAddedServiceChargeEventDto> ValueAddedServiceChargeEventList { get; set; }
public class ValueAddedServiceChargeEventDto
{
public string TransactionType { get; set; }
public DateTime? PostedDate { get; set; }
public string Description { get; set; }
public Currency TransactionAmount { get; set; }
}
[DataMember(Name = "CapacityReservationBillingEventList", EmitDefaultValue = false)]
public List<ValueAddedServiceChargeEventDto> CapacityReservationBillingEventList { get; set; }
}
public class ApiAmzonResponseDto
{
public List<error> errors { get; set; }
public class error
{
public string code { get; set; }
public string message { get; set; }
public string details { get; set; }
}
public payload_dto payload { get; set; }
public class payload_dto
{
public string NextToken { get; set; }
public ApiAmzonResponseFinancialEventsDto FinancialEvents { get; set; }
}
}
}
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netcoreapp2.1</TargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup> </PropertyGroup>
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<PackageReference Include="StackExchange.Redis" Version="2.1.58" /> <PackageReference Include="StackExchange.Redis" Version="2.1.58" />
<PackageReference Include="RabbitMQ.Client" Version="6.4.0" /> <PackageReference Include="RabbitMQ.Client" Version="6.4.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="2.1.0" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="2.1.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.27.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>
\ No newline at end of file
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" /> <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.10" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.10" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" /> <PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="5.0.0" />
<PackageReference Include="System.Security.Permissions" Version="4.7.0" /> <PackageReference Include="System.Security.Permissions" Version="4.7.0" />
<PackageReference Include="System.Threading.Channels" Version="4.7.1" /> <PackageReference Include="System.Threading.Channels" Version="4.7.1" />
......
...@@ -51,6 +51,7 @@ namespace ResetOutofstock ...@@ -51,6 +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().SynchroFee();
} }
catch (Exception ex) catch (Exception ex)
{ {
......
using AutoTurnOver.DB; using AutoTurnOver.DB;
using AutoTurnOver.Services;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -610,6 +611,29 @@ namespace ResetOutofstock ...@@ -610,6 +611,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().SynchroFee();
Console.WriteLine($"结束 拉取亚马逊费用流水,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
Thread.Sleep(10 * 60 * 1000);
}
catch (Exception ex)
{
Console.WriteLine(" 拉取亚马逊费用流水:" + ex.Message);
Console.WriteLine(" 拉取亚马逊费用流水 :" + ex.StackTrace);
}
}
});
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;", "Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.21;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;SslMode=None;" "ReadOnly": "server=10.0.8.21;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;SslMode=None;"
}, },
"Pams_GetAccountToken": "http://pams.bailuntec.com/Api/GetAccountToken",
"PPS_ShortagePush": "http://bltpro.bailuntec.com/api/EbayTask/PushSkuEditQtyTask", "PPS_ShortagePush": "http://bltpro.bailuntec.com/api/EbayTask/PushSkuEditQtyTask",
"redis": { "redis": {
"HostName": "10.0.2.11", "HostName": "10.0.2.11",
......
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