Commit eda12942 by guanzhenshan

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

parent de6ba9dd
......@@ -9,75 +9,16 @@ namespace Bailun.DC.Models.Api
/// </summary>
public class mSkuMapInfo
{
public string requestCondiOnlyId { get; set; }
/// <summary>
/// 平台
/// </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 bool isYesData { get; set; }
public string setNo { get; set; }
public int count { get; set; }
public DateTime createTime { 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
......
......@@ -7928,15 +7928,31 @@ namespace Bailun.DC.Services
/// <param name="platform">平台类型</param>
/// <param name="total">符合条件的记录数</param>
/// <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))
{
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))
{
if(cn.State== System.Data.ConnectionState.Closed)
......@@ -7944,11 +7960,20 @@ namespace Bailun.DC.Services
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();
}
else
{
var obj = cn.Query<dc_base_oms_platform_sku>(sql);
return obj.ToList();
}
}
}
public List<dc_base_oms_sku> ListOmsOrderByBailunOrderId(List<string> listblorderid)
{
......
......@@ -1189,31 +1189,32 @@ namespace Bailun.DC.Web.Controllers
/// <param name="pagesize"></param>
/// <returns></returns>
[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;
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>();
foreach (var item in obj)
{
var j = new {
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));
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 json = Newtonsoft.Json.JsonConvert.DeserializeObject<response_SkuMapInfo>(result);
listMapInfo.AddRange(json.result);
}
}
var listOrders = new Services.OrdersServices().ListOmsOrderByBailunOrderId(obj.Select(a => a.bailun_order_id).ToList());
......@@ -1236,15 +1237,15 @@ namespace Bailun.DC.Web.Controllers
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();
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 {
sku = map.sku,
sku = map.setNo,
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_product = sumOrder.Sum(a=>a.cost_product*a.bailun_sku_quantity_ordered),
......@@ -1258,7 +1259,7 @@ namespace Bailun.DC.Web.Controllers
//利润=产品售价-平台佣金-产品成本-运费
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);
}
......@@ -1272,7 +1273,7 @@ namespace Bailun.DC.Web.Controllers
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;
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