Commit 3b1bdd19 by guanzhenshan

调整服务

parent 5577a6d3
......@@ -9,7 +9,6 @@ namespace Bailun.DC.DailyItemNoProfitRate
{
static async Task Main(string[] args)
{
//Console.WriteLine("Hello World!");
Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
......
......@@ -57,25 +57,60 @@ namespace Bailun.DC.DailyItemNoProfitRate
var listAdAmazon = new List<Models.dc_base_finance_amazon_ad_product>(); //亚马逊广告费
var listWithDraw = GetPlatformLossWithdraw().Where(a=>a.english_name.ToLower()=="ebay").FirstOrDefault();
var list = new List<Models.dc_daily_item_profit_rate>();
var listBaseOrder = new List<dc_mid_itemno_profit_order>();
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if(cn.State== System.Data.ConnectionState.Closed)
{
cn.Open();
}
listBaseOrder = cn.Query<dc_mid_itemno_profit_order>($@"select distinct '{end.ToString("yyyy-MM-dd")}' as day,t3.id as order_sku_id,t1.bailun_order_id,t1.origin_order_id,t1.item_id,t1.platform_sku,t1.platform_sku_quantity_ordered,t2.count,t3.bailun_sku,t3.paid_time,(t3.amount_sales*t1.platform_sku_quantity_ordered*t2.count) as amount_sales,(t3.cost_product*t1.platform_sku_quantity_ordered*t2.count) cost_product,(t3.cost_platform_fee*t1.platform_sku_quantity_ordered*t2.count) cost_platform_fee,(t3.cost_paypal_fee*t1.platform_sku_quantity_ordered*t2.count) cost_paypal_fee,(t3.cost_fba_fee*t1.platform_sku_quantity_ordered*t2.count) cost_fba_fee,(t3.cost_first*t1.platform_sku_quantity_ordered*t2.count) cost_first,(t3.cost_logistics*t1.platform_sku_quantity_ordered*t2.count) cost_logistics,(t3.cost_handle_platform*t1.platform_sku_quantity_ordered*t2.count) cost_handle_platform,(t3.cost_handle_bailun*t1.platform_sku_quantity_ordered*t2.count) cost_handle_bailun,t3.warehouse_code,t3.shipping_status,t3.seller_order_exchange_rate,t1.platform_type,t1.website,t1.bailun_account_id from dc_base_oms_platform_sku t1
join dc_base_sku_mapping t2 on t1.item_id=t2.item_id and t2.platform_sku=t1.platform_sku and t1.website=t2.site and t2.has_deleted=0
join dc_base_oms_sku t3 on t1.bailun_order_id=t3.bailun_order_id and t2.bailun_sku=t3.bailun_sku and t2.account_id=t3.bailun_account_id
where t1.platform_type in ('Ebay','FBA','Amazon') and t3.has_delete=0 and t3.company_id=1 and t1.paid_time>='{start.ToString("yyyy-MM-dd")}' and t1.paid_time<'{end.AddDays(1).ToString("yyyy-MM-dd")}'", null, null, true, 6 * 60).ToList();
}
if(listBaseOrder.Count>0)
{
var sql = $@"insert dc_mid_itemno_profit_order (day,order_sku_id,bailun_order_id,origin_order_id,item_id,platform_sku,platform_sku_quantity_ordered,count,bailun_sku,paid_time,amount_sales,cost_product,cost_platform_fee,cost_paypal_fee,cost_fba_fee,cost_first,cost_logistics,cost_handle_platform,cost_handle_bailun,warehouse_code,shipping_status,seller_order_exchange_rate,platform_type,website,bailun_account_id) values
";
//先保存订单明细
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if(cn.State== System.Data.ConnectionState.Closed)
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
cn.Execute($"delete from dc_mid_itemno_profit_order where day='{end.ToString("yyyy-MM-dd")}'");
var sql = $@"insert into dc_mid_itemno_profit_order (day,order_sku_id,bailun_order_id,origin_order_id,item_id,platform_sku,platform_sku_quantity_ordered,count,bailun_sku,paid_time,amount_sales,cost_product,cost_platform_fee,cost_paypal_fee,cost_fba_fee,cost_first,cost_logistics,cost_handle_platform,cost_handle_bailun,warehouse_code,shipping_status,seller_order_exchange_rate,platform_type,website,bailun_account_id)
select distinct '{end.ToString("yyyy-MM-dd")}' as day,t3.id as order_sku_id,t1.bailun_order_id,t1.origin_order_id,t1.item_id,t1.platform_sku,t1.platform_sku_quantity_ordered,t2.count,t3.bailun_sku,t3.paid_time,(t3.amount_sales*t1.platform_sku_quantity_ordered*t2.count) as amount_sales,(t3.cost_product*t1.platform_sku_quantity_ordered*t2.count) cost_product,(t3.cost_platform_fee*t1.platform_sku_quantity_ordered*t2.count) cost_platform_fee,(t3.cost_paypal_fee*t1.platform_sku_quantity_ordered*t2.count) cost_paypal_fee,(t3.cost_fba_fee*t1.platform_sku_quantity_ordered*t2.count) cost_fba_fee,(t3.cost_first*t1.platform_sku_quantity_ordered*t2.count) cost_first,(t3.cost_logistics*t1.platform_sku_quantity_ordered*t2.count) cost_logistics,(t3.cost_handle_platform*t1.platform_sku_quantity_ordered*t2.count) cost_handle_platform,(t3.cost_handle_bailun*t1.platform_sku_quantity_ordered*t2.count) cost_handle_bailun,t3.warehouse_code,t3.shipping_status,t3.seller_order_exchange_rate,t1.platform_type,t1.website,t1.bailun_account_id from dc_base_oms_platform_sku t1
join dc_base_sku_mapping t2 on t1.item_id=t2.item_id and t2.platform_sku=t1.platform_sku and t1.website=t2.site and t2.has_deleted=0
join dc_base_oms_sku t3 on t1.bailun_order_id=t3.bailun_order_id and t2.bailun_sku=t3.bailun_sku and t2.account_id=t3.bailun_account_id
where t1.platform_type in ('Ebay','FBA','Amazon') and t3.has_delete=0 and t3.company_id=1 and t1.paid_time>='{start.ToString("yyyy-MM-dd")}' and t1.paid_time<'{end.AddDays(1).ToString("yyyy-MM-dd")}'";
var str = "";
var index = 1;
foreach (var item in listBaseOrder)
{
str += $"('{item.day}',{item.order_sku_id},'{item.bailun_order_id}','{item.origin_order_id}','{item.item_id}','{item.platform_sku}',{item.platform_sku_quantity_ordered},{item.count},'{item.bailun_sku}','{item.paid_time.ToString("yyyy-MM-dd HH:mm:ss")}',{item.amount_sales},{item.cost_product},{item.cost_platform_fee},{item.cost_paypal_fee},{item.cost_fba_fee},{item.cost_first},{item.cost_logistics},{item.cost_handle_platform},{item.cost_handle_bailun},'{item.warehouse_code}','{item.shipping_status}','{item.seller_order_exchange_rate}','{item.platform_type}','{item.website}','{item.bailun_account_id}'),";
if (index % 1000 == 0 || index == list.Count)
{
//保存数据
if (!string.IsNullOrEmpty(str))
{
str = str.Substring(0, str.Length - 1);
}
cn.Execute(sql + str, null, null, 6 * 60);
str = "";
Console.WriteLine("保存基础订单数据,index:" + index + ";总记录数:" + listBaseOrder.Count + ";" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
index++;
}
cn.Execute(sql,null,null,6*60);
Console.WriteLine("完成保存基础订单数据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//更新提现损耗字段 只有ebay的
......@@ -84,18 +119,19 @@ namespace Bailun.DC.DailyItemNoProfitRate
{
withdrawpercent = listWithDraw.Loss_withdrawal_percent.Value;
}
cn.Execute($@"update dc_mid_itemno_profit_order set losswithdraw=amount_sales*seller_order_exchange_rate*{withdrawpercent} where day='{end.ToString("yyyy-MM-dd")}' and platform_type='ebay'",null,null,6*60);
cn.Execute($@"update dc_mid_itemno_profit_order set losswithdraw=amount_sales*seller_order_exchange_rate*{withdrawpercent} where day='{end.ToString("yyyy-MM-dd")}' and platform_type='ebay'", null, null, 6 * 60);
Console.WriteLine("完成提现损耗字段更新" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//更新是否预估尾程费
cn.Execute($@"update dc_mid_itemno_profit_order t1
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
set t1.is_forecast=1
where (t1.shipping_status='UnShipping' or t2.area_id=18) and t1.day='{end.ToString("yyyy-MM-dd")}'",null,null,6*60);
where (t1.shipping_status='UnShipping' or t2.area_id=18) and t1.day='{end.ToString("yyyy-MM-dd")}'", null, null, 6 * 60);
Console.WriteLine("完成尾程字段是否预估更新" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
Console.WriteLine("完成订单基础数据保存 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
......@@ -213,7 +249,7 @@ namespace Bailun.DC.DailyItemNoProfitRate
/// <returns></returns>
private List<dc_platform_and_site> GetPlatformLossWithdraw()
{
using (var cn = new MySql.Data.MySqlClient.MySqlConnection(Common.GlobalConfig.ConnectionString))
using (var cn = new MySql.Data.MySqlClient.MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
......
......@@ -4114,13 +4114,41 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// itemno 利润率 的订单明细
/// </summary>
/// <param name="itemid"></param>
/// <param name="type"></param>
/// <param name="type">1:广告订单利润率,2:自然订单利润率,3:合并订单利润率</param>
/// <param name="day"></param>
/// <returns></returns>
public ActionResult ItemNoProfitOrderDetail(string itemid, int type, DateTime day)
{
ViewBag.itemid = itemid;
ViewBag.day = day.ToString("yyyy-MM-dd");
string tips = "";
string valus = "";
var objCount = new Services.OrdersServices().ListItemNoProfitRate(new List<string> { itemid }, day).FirstOrDefault();
if(objCount!=null)
{
if (type == 1) //1:广告订单利润率
{
tips = "广告订单利润率数值填入计算=(广告GMV-(过去20天OMS订单总销售成本(不计广告费)*过去20天广告GMV/过去20天OMS订单销量额)-广告费)/广告GMV";
valus = "广告订单利润率计算公式=("+ objCount.amount_sales_ad_gmv+"-("+objCount.cost_sales+"*"+objCount.amount_sales_ad_gmv+"/"+objCount.amount_sales+")-"+objCount.cost_ad+")/"+objCount.amount_sales_ad_gmv;
}
else if (type == 2) //2:自然订单利润率
{
tips = "自然订单利润率数值填入计算=(总GMV-广告GMV-过去20天OMS订单总销售成本(不计广告费)*(1-(过去20天广告GMV/过去20天OMS订单销量额)))/(总GMV-广告GMV)";
valus = "自然订单利润率计算公式=("+objCount.amount_sales+"-"+objCount.amount_sales_ad_gmv+"-"+objCount.cost_sales+"*(1-("+objCount.amount_sales_ad_gmv+"/"+objCount.amount_sales+")))/("+objCount.amount_sales+"-"+objCount.amount_sales_ad_gmv+")";
}
else if (type == 3) //3:合并订单利润率
{
tips = "合并订单利润率数值填入计算=(过去20天OMS订单销售额-过去20天广告费-过去20天全部订单销售成本(不计广告费))/过去20天OMS订单销售额";
valus = "合并订单利润率计算公式=("+objCount.amount_sales+"-"+objCount.cost_ad+"-"+objCount.cost_sales+"))/"+objCount.amount_sales;
}
}
ViewBag.m = objCount;
ViewBag.tips = tips;
ViewBag.values = valus;
return View();
}
......
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