Commit 897c4c27 by lizefeng

fix

parent 88df52b9
......@@ -174,11 +174,12 @@ namespace AutoTurnOver.DB
bailun_sku = sku.sku
})??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,
bailun_sku = sku.sku,
etime = dayEtime
etime = dayEtime,
btime = day30Btime
},commandTimeout:0).ToList();
......@@ -196,14 +197,19 @@ namespace AutoTurnOver.DB
last_order_date = null,
gmt_create_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,
price = baseSku.unit_price,
quantity_purchase_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_7 = orders.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(),
sales_day_30 = orders30.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 = orders30.Where(s => s.paid_time >= day7Btime).Select(s => s.paid_time.Value.ToString("yyyy-MM-dd")).Distinct().Count(),
stock_amount = 0,
warehouse_code = stockItem.warehouse_code,
library_stock_amount = 0,
......@@ -214,7 +220,7 @@ namespace AutoTurnOver.DB
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);
}
......@@ -238,11 +244,11 @@ namespace AutoTurnOver.DB
ana.sales_day_30_forecast = ana.sales_day_average * 30;
}
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天 单位售价
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)
{
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
}).ToList();
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);
// 计算最近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);
......@@ -293,11 +299,18 @@ namespace AutoTurnOver.DB
// 预计30天利润
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);
ana.last_order_date = orders.Where(s => s.paid_time != null).Max(s => s.paid_time.Value);
}
warehouse_code = stockItem.warehouse_code,
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);
......
......@@ -48,7 +48,7 @@ namespace ResetOutofstock
// report_invest_return_dao.SynchBtmAdFees();
//report_invest_return_dao.ShareAdFee();
//report_invest_return_dao.SynchBtmOrderRefund();
report_invest_return_dao.CalculationStockScore("962568801");
//report_invest_return_dao.CalculationStockScore("962568801");
}
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