Commit 897c4c27 by lizefeng

fix

parent 88df52b9
...@@ -174,11 +174,12 @@ namespace AutoTurnOver.DB ...@@ -174,11 +174,12 @@ namespace AutoTurnOver.DB
bailun_sku = sku.sku bailun_sku = sku.sku
})??new dc_mid_transit { }; })??new dc_mid_transit { };
// 查询历史订单 // 查询历史订单
var orders = _connection.Query<dc_base_oms_sku>(" select * from dc_base_oms_sku where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and bailun_order_status not in ('Canceled') and bailun_interception_status in ('None', 'Failed') and paid_time<=@etime ", new var orders30 = _connection.Query<dc_base_oms_sku>(" select * from dc_base_oms_sku where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and bailun_order_status not in ('Canceled') and bailun_interception_status in ('None', 'Failed') and paid_time<=@etime and paid_time>=@btime ", new
{ {
warehouse_code = stockItem.warehouse_code, warehouse_code = stockItem.warehouse_code,
bailun_sku = sku.sku, bailun_sku = sku.sku,
etime = dayEtime etime = dayEtime,
btime = day30Btime
},commandTimeout:0).ToList(); },commandTimeout:0).ToList();
...@@ -196,14 +197,19 @@ namespace AutoTurnOver.DB ...@@ -196,14 +197,19 @@ namespace AutoTurnOver.DB
last_order_date = null, last_order_date = null,
gmt_create_time = DateTime.Now, gmt_create_time = DateTime.Now,
gmt_update_time = DateTime.Now, gmt_update_time = DateTime.Now,
order_days = orders.Where(s => s.paid_time != null).Select(s => s.paid_time.Value.ToString("yyyy-MM-dd")).Distinct().Count(), order_days = _connection.QueryFirstOrDefault<decimal?>(" select count(DISTINCT DATE_FORMAT(paid_time,'%Y-%m-%d')) from dc_base_oms_sku where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and bailun_order_status not in ('Canceled') and bailun_interception_status in ('None', 'Failed') and paid_time<=@etime ", new
{
warehouse_code = stockItem.warehouse_code,
bailun_sku = sku.sku,
etime = dayEtime
}, commandTimeout: 0)??0,
library_stock = stockItem.usable_stock, library_stock = stockItem.usable_stock,
price = baseSku.unit_price, price = baseSku.unit_price,
quantity_purchase_amount = 0, quantity_purchase_amount = 0,
quantity_transfer_amount = 0, quantity_transfer_amount = 0,
sales_day_30 = orders.Where(s => s.paid_time >= day30Btime).Select(s => s.bailun_order_id).Distinct().Count(), sales_day_30 = orders30.Select(s => s.bailun_order_id).Distinct().Count(),
sales_day_7 = orders.Where(s => s.paid_time >= day7Btime).Select(s => s.bailun_order_id).Distinct().Count(), sales_day_7 = orders30.Where(s => s.paid_time >= day7Btime).Select(s => s.bailun_order_id).Distinct().Count(),
consume_days_30 = orders.Where(s => s.paid_time >= day7Btime).Select(s => s.paid_time.Value.ToString("yyyy-MM-dd")).Distinct().Count(), consume_days_30 = orders30.Where(s => s.paid_time >= day7Btime).Select(s => s.paid_time.Value.ToString("yyyy-MM-dd")).Distinct().Count(),
stock_amount = 0, stock_amount = 0,
warehouse_code = stockItem.warehouse_code, warehouse_code = stockItem.warehouse_code,
library_stock_amount = 0, library_stock_amount = 0,
...@@ -214,7 +220,7 @@ namespace AutoTurnOver.DB ...@@ -214,7 +220,7 @@ namespace AutoTurnOver.DB
seller_order_exchange_rate = null, seller_order_exchange_rate = null,
}; };
if (orders.Any(s => s.seller_order_exchange_rate > 0)) if (orders30.Any(s => s.seller_order_exchange_rate > 0))
{ {
// ana.seller_order_exchange_rate = orders.Where(s => s.paid_time >= day30Btime).Where(s => s.seller_order_exchange_rate > 0).Average(s => s.seller_order_exchange_rate); // ana.seller_order_exchange_rate = orders.Where(s => s.paid_time >= day30Btime).Where(s => s.seller_order_exchange_rate > 0).Average(s => s.seller_order_exchange_rate);
} }
...@@ -238,11 +244,11 @@ namespace AutoTurnOver.DB ...@@ -238,11 +244,11 @@ namespace AutoTurnOver.DB
ana.sales_day_30_forecast = ana.sales_day_average * 30; ana.sales_day_30_forecast = ana.sales_day_average * 30;
} }
ana.gmv_day30_avg_unit_price_cny = 0; ana.gmv_day30_avg_unit_price_cny = 0;
if (orders.Any(s => s.amount_sales > 0 && s.seller_order_exchange_rate > 0)) if (orders30.Any(s => s.amount_sales > 0 && s.seller_order_exchange_rate > 0))
{ {
//过去30天 单位售价 //过去30天 单位售价
ana.gmv_day30_avg_unit_price_cny = 0; ana.gmv_day30_avg_unit_price_cny = 0;
var unit_price_orders = orders.Where(s => s.amount_sales > 0 && s.seller_order_exchange_rate > 0); var unit_price_orders = orders30.Where(s => s.amount_sales > 0 && s.seller_order_exchange_rate > 0);
if (unit_price_orders.Count() >= 1) if (unit_price_orders.Count() >= 1)
{ {
ana.gmv_day30_avg_unit_price_cny = unit_price_orders.Average(s => s.amount_sales * s.seller_order_exchange_rate); ana.gmv_day30_avg_unit_price_cny = unit_price_orders.Average(s => s.amount_sales * s.seller_order_exchange_rate);
...@@ -261,11 +267,11 @@ namespace AutoTurnOver.DB ...@@ -261,11 +267,11 @@ namespace AutoTurnOver.DB
}).ToList(); }).ToList();
ana.adfee_day_30 = adFees.Sum(s => s.order_fee); ana.adfee_day_30 = adFees.Sum(s => s.order_fee);
ana.amount_total_day_30 = orders.Where(s => s.paid_time >= day30Btime).Sum(s => s.amount_total * s.order_to_usd_exchange_rate); ana.amount_total_day_30 = orders30.Sum(s => s.amount_total * s.order_to_usd_exchange_rate);
ana.adfee_rate = Math.Round(ana.adfee_day_30 .Division( ana.amount_total_day_30), 4); ana.adfee_rate = Math.Round(ana.adfee_day_30 .Division( ana.amount_total_day_30), 4);
// 计算最近1个月的平台费率 // 计算最近1个月的平台费率
ana.platform_fee_day_30 = orders.Where(s => s.paid_time >= day30Btime).Where(s=>s.cost_platform_fee>0).Sum(s => s.cost_platform_fee * s.order_to_usd_exchange_rate); ana.platform_fee_day_30 = orders30.Where(s=>s.cost_platform_fee>0).Sum(s => s.cost_platform_fee * s.order_to_usd_exchange_rate);
ana.platform_fee_rate = Math.Round(ana.platform_fee_day_30 .Division( ana.amount_total_day_30), 4); ana.platform_fee_rate = Math.Round(ana.platform_fee_day_30 .Division( ana.amount_total_day_30), 4);
...@@ -293,11 +299,18 @@ namespace AutoTurnOver.DB ...@@ -293,11 +299,18 @@ namespace AutoTurnOver.DB
// 预计30天利润 // 预计30天利润
ana.profit_30_forecast = ana.gmv_day_30_forecast_cny * (1 - ana.refund_rate - ana.adfee_rate - ana.platform_fee_rate); ana.profit_30_forecast = ana.gmv_day_30_forecast_cny * (1 - ana.refund_rate - ana.adfee_rate - ana.platform_fee_rate);
if (orders != null && orders.Count(s => s.paid_time != null) >= 1) ana.first_order_date = _connection.QueryFirstOrDefault<DateTime?>(" select min(paid_time) from dc_base_oms_sku where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and bailun_order_status not in ('Canceled') and bailun_interception_status in ('None', 'Failed') and paid_time<=@etime ", new
{ {
ana.first_order_date = orders.Where(s => s.paid_time != null).Min(s => s.paid_time.Value); warehouse_code = stockItem.warehouse_code,
ana.last_order_date = orders.Where(s => s.paid_time != null).Max(s => s.paid_time.Value); bailun_sku = sku.sku,
} etime = dayEtime
}, commandTimeout: 0);
ana.last_order_date = _connection.QueryFirstOrDefault<DateTime?>(" select max(paid_time) from dc_base_oms_sku where warehouse_code=@warehouse_code and bailun_sku=@bailun_sku and bailun_order_status not in ('Canceled') and bailun_interception_status in ('None', 'Failed') and paid_time<=@etime ", new
{
warehouse_code = stockItem.warehouse_code,
bailun_sku = sku.sku,
etime = dayEtime
}, commandTimeout: 0);
//计算单位运费 //计算单位运费
ana.freight_unit_price = CalculationFreight(ana.sku, ana.warehouse_code); ana.freight_unit_price = CalculationFreight(ana.sku, ana.warehouse_code);
......
...@@ -48,7 +48,7 @@ namespace ResetOutofstock ...@@ -48,7 +48,7 @@ namespace ResetOutofstock
// report_invest_return_dao.SynchBtmAdFees(); // report_invest_return_dao.SynchBtmAdFees();
//report_invest_return_dao.ShareAdFee(); //report_invest_return_dao.ShareAdFee();
//report_invest_return_dao.SynchBtmOrderRefund(); //report_invest_return_dao.SynchBtmOrderRefund();
report_invest_return_dao.CalculationStockScore("962568801"); //report_invest_return_dao.CalculationStockScore("962568801");
} }
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