Commit fc0e32eb by guanzhenshan

增加获取时间段内 sku销售额接口

parent 016f536e
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Api
{
/// <summary>
/// 获取sku 销售额数据 rmb
/// </summary>
public class mSkuSalesAmount
{
/// <summary>
/// sku名称
/// </summary>
public string bailun_sku_title_cn { get; set; }
/// <summary>
/// sku
/// </summary>
public string bailun_sku { get; set; }
/// <summary>
/// 售价
/// </summary>
public decimal amount_product { get; set; }
/// <summary>
/// 订单数
/// </summary>
public int ordercount { get; set; }
/// <summary>
/// 销售数量
/// </summary>
public int bailun_sku_quantity_ordered { get; set; }
/// <summary>
/// 销售额 gmv
/// </summary>
public decimal amount_sales { get; set; }
/// <summary>
/// 平台费
/// </summary>
public decimal cost_platform_fee { get; set; }
/// <summary>
/// 产品成本
/// </summary>
public decimal cost_product { get; set; }
/// <summary>
/// 利润
/// </summary>
public decimal profit_total { get; set; }
}
}
......@@ -7717,6 +7717,39 @@ namespace Bailun.DC.Services
}
}
/// <summary>
/// 根据时间段获取sku的销售额 rmb
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
public List<Models.Api.mSkuSalesAmount> ListSkuAmount(DateTime start,DateTime end,int page,int pagesize)
{
var sql = $@"select t1.bailun_sku_title_cn,t1.bailun_sku,sum(amount_product) as amount_product,sum(ordercount) as ordercount,sum(t1.bailun_sku_quantity_ordered) as bailun_sku_quantity_ordered,sum(t1.amount_sales) amount_sales,sum(cost_platform_fee) cost_platform_fee,sum(cost_product) cost_product,sum(profit_total) profit_total from (
select t1.bailun_sku_title_cn,t1.bailun_sku,sum(t1.amount_product*t1.bailun_sku_quantity_ordered*t1.seller_order_exchange_rate) as amount_product,count(DISTINCT bailun_order_id) as ordercount,sum(t1.bailun_sku_quantity_ordered) as bailun_sku_quantity_ordered,sum(t1.amount_sales*t1.bailun_sku_quantity_ordered*t1.seller_order_exchange_rate) amount_sales,sum(cost_platform_fee*t1.bailun_sku_quantity_ordered*t1.seller_order_exchange_rate) cost_platform_fee,sum(cost_product*t1.bailun_sku_quantity_ordered) cost_product,sum(profit_total*t1.bailun_sku_quantity_ordered) profit_total from dc_base_oms_sku t1
where t1.has_delete=0 and t1.company_id=1 and t1.has_scalp=0 and t1.has_innersale=0 and t1.bailun_interception_status in ('None','Failed') and t1.bailun_order_status!='Canceled' and t1.platform_type!='FBA' and t1.bailun_order_status!='CantHandle' and t1.paid_time>='{start.ToString("yyyy-MM-dd")}' and t1.paid_time<'{end.AddDays(1).ToString("yyyy-MM-dd")}'
group by t1.bailun_sku
union all
select t1.bailun_sku_title_cn,t1.bailun_sku,sum(t1.amount_product*t1.bailun_sku_quantity_ordered*t1.seller_order_exchange_rate) as amount_product,count(DISTINCT bailun_order_id) as ordercount,sum(t1.bailun_sku_quantity_ordered) as bailun_sku_quantity_ordered,sum(t1.amount_sales*t1.bailun_sku_quantity_ordered*t1.seller_order_exchange_rate) amount_sales,sum(cost_platform_fee*t1.bailun_sku_quantity_ordered*t1.seller_order_exchange_rate) cost_platform_fee,sum(cost_product*t1.bailun_sku_quantity_ordered) cost_product,sum(profit_total*t1.bailun_sku_quantity_ordered) profit_total from dc_base_oms_sku t1
where t1.has_delete=0 and t1.company_id=1 and t1.has_scalp=0 and t1.has_innersale=0 and t1.bailun_interception_status in ('None','Failed') and t1.bailun_order_status!='Canceled' and t1.platform_type='FBA' and t1.purchase_create_time>='{start.ToString("yyyy-MM-dd")}' and t1.purchase_create_time<'{end.AddDays(1).ToString("yyyy-MM-dd")}'
group by t1.bailun_sku) t1
group by t1.bailun_sku
limit {(page-1)*pagesize},{pagesize}";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if(cn.State== System.Data.ConnectionState.Closed)
{
cn.Open();
}
var list = cn.Query<Models.Api.mSkuSalesAmount>(sql).ToList();
return list;
}
}
#endregion
......
......@@ -965,6 +965,46 @@ namespace Bailun.DC.Web.Controllers
});
}
/// <summary>
/// 获取sku时间段内的销售额
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
[HttpPost]
public JsonResult ListSkuAmount(DateTime start,DateTime end,int page,int pagesize=500)
{
if(start.AddDays(31)<end)
{
return Json(new {
success = false,
msg = "最多只能获取一个月的数据",
});
}
try
{
var list = new Services.OrdersServices().ListSkuAmount(start, end,page,pagesize);
return Json(new
{
success = true,
msg = "",
list = list
});
}
catch (Exception ex)
{
return Json(new
{
success = false,
msg = ex.Message,
});
}
}
///// <summary>
///// 首次入库时间
......
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