Commit eda12942 by guanzhenshan

调整获取平台sku映射sku成本和利润的数据接口

parent de6ba9dd
...@@ -9,75 +9,16 @@ namespace Bailun.DC.Models.Api ...@@ -9,75 +9,16 @@ namespace Bailun.DC.Models.Api
/// </summary> /// </summary>
public class mSkuMapInfo public class mSkuMapInfo
{ {
public string requestCondiOnlyId { get; set; }
/// <summary> public bool isYesData { get; set; }
/// 平台
/// </summary>
public string plat { get; set; }
/// <summary>
/// 账号ID
/// </summary>
public int accountId { get; set; }
/// <summary>
/// 平台编码
/// </summary>
public string itemId { get; set; }
/// <summary>
/// 销售
/// </summary>
public string sellerName { get; set; }
/// <summary>
/// 平台SKU
/// </summary>
public string platSku { get; set; }
/// <summary>
/// 产品库SKU
/// </summary>
public string sku { get; set; }
/// <summary>
/// 中文名称
/// </summary>
public string title { get; set; }
public string setNo { get; set; }
public int count { get; set; } public int count { get; set; }
public DateTime createTime { get; set; }
public string groupSku { get; set; } public string groupSku { get; set; }
/*public ResultSkuMapInfo ConvertToOldVersion()
{
var dto = new ResultSkuMapInfo()
{
itemId = this.itemId,
sellerName = this.sellerName,
sku = this.sku,
title = this.title,
platSku = this.platSku,
count = this.count,
createTime = this.createTime,
groupSku = this.groupSku
};
if (dto.count <= 0)
{
throw new Exception($"映射不可为0。。。。{platSku}");
}
return dto;
}*/
} }
public class response_SkuMapInfo public class response_SkuMapInfo
......
...@@ -7928,15 +7928,31 @@ namespace Bailun.DC.Services ...@@ -7928,15 +7928,31 @@ namespace Bailun.DC.Services
/// <param name="platform">平台类型</param> /// <param name="platform">平台类型</param>
/// <param name="total">符合条件的记录数</param> /// <param name="total">符合条件的记录数</param>
/// <returns></returns> /// <returns></returns>
public List<dc_base_oms_platform_sku> ListOrderPlatformSku(DateTime start, DateTime end, int page, int pagesize, string platform,ref int total) public List<dc_base_oms_platform_sku> ListOrderPlatformSku(DateTime? start, DateTime? end, int? page, int pagesize, string platform,List<string> orderIds,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,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")}'"; 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 ";
if(!string.IsNullOrEmpty(platform)) if(!string.IsNullOrEmpty(platform))
{ {
sql += " and t1.platform_type='"+platform+"'"; sql += " and t1.platform_type='"+platform+"'";
} }
if (orderIds != null && orderIds.Count > 0)
{
sql += " and t1.origin_order_id in ('"+string.Join("','",orderIds)+"')";
}
if (start.HasValue)
{
sql += $" and t1.create_time_site >= '{start.Value.ToString("yyyy-MM-dd")}'";
}
if (end.HasValue)
{
sql += $" and t1.create_time_site < '{end.Value.AddDays(1).ToString("yyyy-MM-dd")}'";
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read)) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{ {
if(cn.State== System.Data.ConnectionState.Closed) if(cn.State== System.Data.ConnectionState.Closed)
...@@ -7944,9 +7960,18 @@ namespace Bailun.DC.Services ...@@ -7944,9 +7960,18 @@ namespace Bailun.DC.Services
cn.Open(); cn.Open();
} }
var obj = cn.Page<dc_base_oms_platform_sku>(page, pagesize, sql, ref total); if (page.HasValue && page.Value > 0)
{
var obj = cn.Page<dc_base_oms_platform_sku>(page ?? 0, pagesize, sql, ref total);
return obj.ToList(); return obj.ToList();
}
else
{
var obj = cn.Query<dc_base_oms_platform_sku>(sql);
return obj.ToList();
}
} }
} }
......
...@@ -1189,30 +1189,31 @@ namespace Bailun.DC.Web.Controllers ...@@ -1189,30 +1189,31 @@ namespace Bailun.DC.Web.Controllers
/// <param name="pagesize"></param> /// <param name="pagesize"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public JsonResult ListPlatformSkuSalesInfo(DateTime start, DateTime end, int page, string platform= "Shopify", int pagesize = 1000) public JsonResult ListPlatformSkuSalesInfo(DateTime? start, DateTime? end, int? page,string str_orderids,string platform= "Shopify", int pagesize = 1000)
{ {
int total = 0; int total = 0;
var obj = new Services.OrdersServices().ListOrderPlatformSku(start, end, page, pagesize, platform, ref total); var obj = new Services.OrdersServices().ListOrderPlatformSku(start, end, page, pagesize,platform, str_orderids.Split(",").ToList(), ref total);
var listMapInfo = new List<mSkuMapInfo>(); var listMapInfo = new List<mSkuMapInfo>();
foreach (var item in obj) var requestParam = obj.Select(a => new {
requestCondiOnlyId = a.bailun_order_id+a.platform_sku,
platSku=a.platform_sku,
platSite = a.website,
platAccountId = a.bailun_account_id,
platItemId = a.item_id
});
var result = Common.HttpHelper.NetHelper.HttpPostJson("http://api.skums.bailuntec.com/api/sku/skumapping/queryskumapingbyplatinfo", Newtonsoft.Json.JsonConvert.SerializeObject(new {
requestDataList = requestParam
}));
if (!string.IsNullOrEmpty(result))
{ {
var j = new { var json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_SkuMapInfo>(result);
plat = item.platform_type,
site = item.website,
platSku = item.platform_sku,
accountId = item.bailun_account_id,
itemId = item.item_id
};
var result = Common.HttpHelper.NetHelper.HttpPostJson("http://api.skums.bailuntec.com/api/sku/skumapping/omsgetskumapinfobysearch", Newtonsoft.Json.JsonConvert.SerializeObject(j));
if (!string.IsNullOrEmpty(result))
{
var json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_SkuMapInfo>(result);
listMapInfo.AddRange(json.result); listMapInfo.AddRange(json.result);
}
} }
var listOrders = new Services.OrdersServices().ListOmsOrderByBailunOrderId(obj.Select(a => a.bailun_order_id).ToList()); var listOrders = new Services.OrdersServices().ListOmsOrderByBailunOrderId(obj.Select(a => a.bailun_order_id).ToList());
...@@ -1236,15 +1237,15 @@ namespace Bailun.DC.Web.Controllers ...@@ -1236,15 +1237,15 @@ namespace Bailun.DC.Web.Controllers
foreach (var s in m.platform_skus) foreach (var s in m.platform_skus)
{ {
var mapskus = listMapInfo.Where(a => a.plat.ToLower() == m.platform.ToLower() && a.platSku.ToLower() == s.platformsku.ToLower()).ToList(); var mapskus = listMapInfo.Where(a => a.requestCondiOnlyId==(item.Key+s.platformsku)).ToList();
var orders = listOrders.Where(a => a.bailun_order_id == item.Key).ToList(); var orders = listOrders.Where(a => a.bailun_order_id == item.Key).ToList();
foreach(var map in mapskus) foreach(var map in mapskus)
{ {
var sumOrder = orders.Where(a => a.bailun_sku == map.sku).ToList(); var sumOrder = orders.Where(a => a.bailun_sku == map.setNo).ToList();
var blsku = new BLSkuInfo { var blsku = new BLSkuInfo {
sku = map.sku, sku = map.setNo,
amount_product = sumOrder.Sum(a=>a.amount_product * a.bailun_sku_quantity_ordered), 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), cost_platform = sumOrder.Sum(a=>a.cost_platform_fee * a.bailun_sku_quantity_ordered),
cost_product = sumOrder.Sum(a=>a.cost_product*a.bailun_sku_quantity_ordered), cost_product = sumOrder.Sum(a=>a.cost_product*a.bailun_sku_quantity_ordered),
...@@ -1258,7 +1259,7 @@ namespace Bailun.DC.Web.Controllers ...@@ -1258,7 +1259,7 @@ namespace Bailun.DC.Web.Controllers
//利润=产品售价-平台佣金-产品成本-运费 //利润=产品售价-平台佣金-产品成本-运费
blsku.profit = blsku.amount_product_rmb-blsku.cost_total_rmb; blsku.profit = blsku.amount_product_rmb-blsku.cost_total_rmb;
blsku.profit_rate = blsku.profit / blsku.amount_product_rmb; blsku.profit_rate = blsku.amount_product_rmb>0? blsku.profit / blsku.amount_product_rmb:0;
s.listSku.Add(blsku); s.listSku.Add(blsku);
} }
...@@ -1272,7 +1273,7 @@ namespace Bailun.DC.Web.Controllers ...@@ -1272,7 +1273,7 @@ namespace Bailun.DC.Web.Controllers
s.cost_total_rmb = s.listSku.Sum(a => a.cost_total_rmb); s.cost_total_rmb = s.listSku.Sum(a => a.cost_total_rmb);
s.profit = s.listSku.Sum(a => a.profit); s.profit = s.listSku.Sum(a => a.profit);
s.profit_rate =s.listSku.Count>0?s.profit / s.amount_product_rmb:0; s.profit_rate =s.amount_product_rmb>0?(s.profit / s.amount_product_rmb):0;
} }
......
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