Commit de6ba9dd by guanzhenshan

调整获取平台销售额、利润的接口

parent faeecb69
......@@ -16,6 +16,9 @@ namespace Bailun.DC.Models.Api
/// </summary>
public string website { get; set; }
public string origin_order_id { get; set; }
/// <summary>
/// 销售帐号
/// </summary>
......@@ -41,11 +44,47 @@ namespace Bailun.DC.Models.Api
public string platformsku { get; set; }
/// <summary>
/// 售价
/// 售价 原币
/// </summary>
public decimal price { get; set; }
/// <summary>
/// 售价 原币
/// </summary>
public decimal price_rmb { get; set; }
/// <summary>
/// 产品成本 rmb
/// </summary>
public decimal cost_product { get; set; }
/// <summary>
/// 平台佣金 原币
/// </summary>
public decimal cost_platform { get; set; }
/// <summary>
/// 运费(头程+尾程) rmb
/// </summary>
public decimal cost_logistic { get; set; }
public decimal amount_product_rmb { get; set; }
public decimal cost_total_rmb { get; set; }
public decimal cost_platform_rmb { get; set; }
/// <summary>
/// 利润 rmb
/// </summary>
public decimal profit { get; set; }
/// <summary>
/// 利润率
/// </summary>
public decimal profit_rate { get; set; }
public string itemid { get; set; }
/// <summary>
......@@ -66,18 +105,36 @@ namespace Bailun.DC.Models.Api
/// </summary>
public string sku { get; set; }
/// <summary>
/// 平摊后的产品金额 原币
/// </summary>
public decimal amount_product { get; set; }
public decimal amount_product_rmb { get; set; }
public decimal cost_total_rmb { get; set; }
public decimal cost_platform_rmb { get; set; }
/// <summary>
/// 平摊后的平台费
/// 平摊后的平台费 原币
/// </summary>
public decimal cost_platform { get; set; }
/// <summary>
/// 平摊后的产品金额
/// 产品成本 rmb
/// </summary>
public decimal amount_product { get; set; }
public decimal cost_product { get; set; }
/// <summary>
/// 运费(头程+尾程)rmb
/// </summary>
public decimal cost_logistic { get; set; }
/// <summary>
/// 平摊后的利润
/// 平摊后的利润 rmb
/// </summary>
public decimal profit { get; set; }
......
......@@ -7930,7 +7930,7 @@ namespace Bailun.DC.Services
/// <returns></returns>
public List<dc_base_oms_platform_sku> ListOrderPlatformSku(DateTime start, DateTime end, int page, int pagesize, string platform,ref int total)
{
var sql = $@"select t1.origin_order_id,t1.bailun_order_id,t1.website,t1.platform_type,t1.seller_name,t1.bailun_account_id,t1.platform_sku_quantity_ordered,t1.platform_sku_unit_price,t1.platform_sku,t1.order_currency,t1.item_id from dc_base_oms_platform_sku t1 where t1.bailun_order_status != 'Canceled' and t1.has_delete = 0 and t1.has_cancle = 0 and t1.create_time_site >= '{start.ToString("yyyy-MM-dd")}' and t1.create_time_site < '{end.AddDays(1).ToString("yyyy-MM-dd")}'";
var sql = $@"select t1.origin_order_id,t1.bailun_order_id,t1.website,t1.platform_type,t1.seller_name,t1.bailun_account_id,t1.platform_sku_quantity_ordered,t1.platform_sku_unit_price,t1.platform_sku,t1.order_currency,t1.item_id,seller_order_exchange_rate from dc_base_oms_platform_sku t1 where t1.bailun_order_status != 'Canceled' and t1.has_delete = 0 and t1.has_cancle = 0 and t1.create_time_site >= '{start.ToString("yyyy-MM-dd")}' and t1.create_time_site < '{end.AddDays(1).ToString("yyyy-MM-dd")}'";
if(!string.IsNullOrEmpty(platform))
{
......
......@@ -1225,9 +1225,10 @@ namespace Bailun.DC.Web.Controllers
seller_account = item.FirstOrDefault().seller_account,
website = item.FirstOrDefault().website,
accountid = item.FirstOrDefault().bailun_account_id,
origin_order_id = item.FirstOrDefault().origin_order_id,
platform_skus = item.Select(p => new PlatformSku {
platformsku = p.platform_sku,
price = p.platform_sku_unit_price,
price = p.platform_sku_unit_price*p.platform_sku_quantity_ordered,
itemid = p.item_id,
listSku = new List<BLSkuInfo>(),
}).ToList(),
......@@ -1242,15 +1243,37 @@ namespace Bailun.DC.Web.Controllers
{
var sumOrder = orders.Where(a => a.bailun_sku == map.sku).ToList();
s.listSku.Add(new BLSkuInfo {
var blsku = new BLSkuInfo {
sku = map.sku,
amount_product = sumOrder.Sum(a=>a.amount_product * a.bailun_sku_quantity_ordered),
cost_platform = sumOrder.Sum(a=>a.cost_platform_fee * a.bailun_sku_quantity_ordered),
profit = sumOrder.Sum(a=>a.profit_total*a.bailun_sku_quantity_ordered),
profit_rate = sumOrder.Sum(a=>a.profit_rate) / sumOrder.Count(),
cost_product = sumOrder.Sum(a=>a.cost_product*a.bailun_sku_quantity_ordered),
cost_logistic = sumOrder.Sum(a=>(a.cost_first+a.cost_logistics)* a.bailun_sku_quantity_ordered),
groupsku = map.groupSku,
});
amount_product_rmb = sumOrder.Sum(a => a.amount_product * a.bailun_sku_quantity_ordered*a.seller_order_exchange_rate),
cost_platform_rmb = sumOrder.Sum(a => a.cost_platform_fee * a.bailun_sku_quantity_ordered * a.seller_order_exchange_rate),
};
blsku.cost_total_rmb = blsku.cost_platform_rmb + blsku.cost_product + blsku.cost_logistic;
//利润=产品售价-平台佣金-产品成本-运费
blsku.profit = blsku.amount_product_rmb-blsku.cost_total_rmb;
blsku.profit_rate = blsku.profit / blsku.amount_product_rmb;
s.listSku.Add(blsku);
}
s.cost_logistic = s.listSku.Sum(a => a.cost_logistic);
s.cost_platform = s.listSku.Sum(a => a.cost_platform);
s.cost_product = s.listSku.Sum(a => a.cost_product);
s.cost_platform_rmb = s.listSku.Sum(a => a.cost_platform_rmb);
s.amount_product_rmb = s.listSku.Sum(a => a.amount_product_rmb);
s.cost_total_rmb = s.listSku.Sum(a => a.cost_total_rmb);
s.profit = s.listSku.Sum(a => a.profit);
s.profit_rate =s.listSku.Count>0?s.profit / s.amount_product_rmb:0;
}
list.Add(m);
......
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