Commit 456a945d by lizefeng

商品销售情况统计

parent d9b2ecd0
...@@ -1533,5 +1533,67 @@ where t2.buyer_name = '赵美聪' ...@@ -1533,5 +1533,67 @@ where t2.buyer_name = '赵美聪'
} }
} }
public static List<bailun_sku_goods_dto> GetGoods(bailun_sku_goods_search_dto search_data, int offset, int limit, ref int total, string order = "", string sort = "")
{
var sql = @" select t1.*,t2.product_inner_code,t2.bailun_category_name,t2.sku_title_cn from dc_base_oms_sku_7 as t1 left join dc_base_sku as t2 on t1.bailun_sku = t2.bailun_sku where 1=1 ";
DynamicParameters parameters = new DynamicParameters();
if (search_data != null)
{
if (!string.IsNullOrWhiteSpace(search_data.product_inner_code))
{
sql += " and t1.product_inner_code = @product_inner_code ";
parameters.Add("product_inner_code", search_data.product_inner_code);
}
}
var oms_sku_list = _connection.Query<dc_base_oms_sku_goods_dto>(sql, parameters);
List<bailun_sku_goods_dto> datas = new List<bailun_sku_goods_dto>();
var product_inner_code_group_list = oms_sku_list.GroupBy(s => new { s.product_inner_code });
var product_inner_code_group_list_show = product_inner_code_group_list.Take(limit).Skip(offset);
total = product_inner_code_group_list.Count();
var website_list = oms_sku_list.GroupBy(s => new { s.platform_type, s.website }).OrderBy(s => s.Key.platform_type).ToList();
foreach (var item in product_inner_code_group_list_show)
{
datas.Add(new bailun_sku_goods_dto
{
product_inner_code = item.Key.product_inner_code,
bailun_category_name = item.Max(g=>g.bailun_category_name),
sku_title_cn = item.Max(g=>g.sku_title_cn),
websites = new List<bailun_sku_goods_dto.bailun_sku_goods_date_dto>()
});
}
var now = DateTime.Now;
var yesterday_time = DateTime.Now.AddDays(-1);
var time_7 = DateTime.Parse( DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd 00:00:00"));
foreach (var website_item in website_list)
{
foreach (var item in datas)
{
var temp_datas = oms_sku_list.Where(s => s.product_inner_code==item.product_inner_code);
temp_datas = temp_datas.Where(s => s.platform_type == website_item.Key.platform_type && s.website == website_item.Key.website);
var yesterday_datas = temp_datas.Where(s => s.create_time.Year == yesterday_time.Year && s.create_time.Month == yesterday_time.Month && s.create_time.Day == yesterday_time.Day);
var datas_7 = temp_datas.Where(s => s.create_time >= time_7);
var sum_count_7 = temp_datas.Sum(s=>s.bailun_sku_quantity_ordered); // 7日总销量
item.websites.Add(new bailun_sku_goods_dto.bailun_sku_goods_date_dto
{
platform_type = website_item.Key.platform_type,
website = website_item.Key.website,
yesterday_count = yesterday_datas.Sum(s=>s.bailun_sku_quantity_ordered),
yesterday_amount = yesterday_datas.Sum(s => s.bailun_sku_quantity_ordered * s.amount_sales * s.order_to_usd_exchange_rate),
amount_7 = datas_7.Sum(s => s.bailun_sku_quantity_ordered * s.amount_sales * s.order_to_usd_exchange_rate),
yesterday_average_7 = sum_count_7 / 7
});
}
}
return datas;
}
public static List<platform_type_website_dto> GetPlatformWebsite()
{
return _connection.Query<platform_type_website_dto>("select platform_type,website from dc_base_oms_sku_7 group by platform_type,website").AsList();
}
} }
} }
......
...@@ -34,5 +34,45 @@ namespace AutoTurnOver.Models.Report ...@@ -34,5 +34,45 @@ namespace AutoTurnOver.Models.Report
} }
} }
public class bailun_sku_goods_search_dto
{
public string product_inner_code { get; set; }
}
public class bailun_sku_goods_dto
{
public string product_inner_code { get; set; }
public string bailun_category_name { get; set; }
public string sku_title_cn { get; set; }
public List<bailun_sku_goods_date_dto> websites { get; set; }
public class bailun_sku_goods_date_dto
{
public string platform_type { get; set; }
public string website { get; set; }
/// <summary>
/// 昨日销量
/// </summary>
public decimal yesterday_count { get; set; }
/// <summary>
/// 7日平均
/// </summary>
public decimal yesterday_average_7 { get; set; }
/// <summary>
/// 昨日销售金额
/// </summary>
public decimal yesterday_amount { get; set; }
/// <summary>
/// 近7天总销售额
/// </summary>
public decimal amount_7 { get; set; }
}
}
} }
...@@ -46,4 +46,13 @@ namespace AutoTurnOver.Models ...@@ -46,4 +46,13 @@ namespace AutoTurnOver.Models
{ {
public string label { get; set; } public string label { get; set; }
} }
public class dc_base_oms_sku_goods_dto: dc_base_oms_sku
{
public string product_inner_code { get; set; }
public string bailun_category_name { get; set; }
public string sku_title_cn { get; set; }
}
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
public class platform_type_website_dto
{
public string platform_type { get; set; }
public string website { get; set; }
}
}
...@@ -693,5 +693,14 @@ namespace AutoTurnOver.Services ...@@ -693,5 +693,14 @@ namespace AutoTurnOver.Services
} }
public static List<platform_type_website_dto> PlatformtypeWebsiteList()
{
//查询采购建议明细
return RedisHelper.Get(RedisConsts.platform_type_website, () =>
{
return report.GetPlatformWebsite();
});
}
} }
} }
...@@ -491,13 +491,36 @@ namespace AutoTurnOver.Services ...@@ -491,13 +491,36 @@ namespace AutoTurnOver.Services
} }
public List<supplier_sales_dto> SupplierSalesList(supplier_sales_search_dto m, int offset, int limit, ref int total, string order = "", string sort = "") public List<supplier_sales_dto> SupplierSalesList(supplier_sales_search_dto m, int offset, int limit, ref int total, string order = "", string sort = "")
{ {
return report.SupplierSalesList(m, offset, limit, ref total, order, sort); return report.SupplierSalesList(m, offset, limit, ref total, order, sort);
} }
public List<dynamic> GetGoods(bailun_sku_goods_search_dto search_data, int offset, int limit, ref int total, string order = "", string sort = "")
{
var order_list = report.GetGoods(search_data,offset,limit,ref total,order,sort);
List<dynamic> datas = new List<dynamic>();
foreach (var item in order_list)
{
dynamic o = new ExpandoObject();
o.product_inner_code = item.product_inner_code;
o.sku_title_cn = item.sku_title_cn;
o.bailun_category_name = item.bailun_category_name;
foreach (var dat_item in item.websites)
{
var dic = (IDictionary<string, object>)o;
dic["yesterday_count_" + (dat_item.platform_type + "-" + dat_item.website)] = Math.Round(dat_item.yesterday_count, 2);
dic["yesterday_average_7_" + (dat_item.platform_type + "-" + dat_item.website)] = Math.Round(dat_item.yesterday_average_7, 2);
dic["yesterday_amount_" + (dat_item.platform_type + "-" + dat_item.website)] = Math.Round(dat_item.yesterday_amount, 2);
dic["amount_7_" + (dat_item.platform_type + "-" + dat_item.website)] = Math.Round(dat_item.amount_7, 2);
}
datas.Add(o);
}
return datas;
}
} }
} }
...@@ -9,5 +9,6 @@ namespace AutoTurnOver.Utility ...@@ -9,5 +9,6 @@ namespace AutoTurnOver.Utility
public static string Pams_GetAccountToken = "Pams_GetAccountToken"; public static string Pams_GetAccountToken = "Pams_GetAccountToken";
public static string Lms_GetLogistics = "Lms_GetLogistics"; public static string Lms_GetLogistics = "Lms_GetLogistics";
public static string Pams_PlatformList = "Pams_PlatformList"; public static string Pams_PlatformList = "Pams_PlatformList";
public static string platform_type_website = "platform_type_website";
} }
} }
...@@ -138,6 +138,11 @@ namespace AutoTurnOver.Controllers ...@@ -138,6 +138,11 @@ namespace AutoTurnOver.Controllers
var datas = ApiServices.PlatformList(); var datas = ApiServices.PlatformList();
return new JsonResult(datas); return new JsonResult(datas);
} }
public JsonResult PlatformtypeWebsiteList()
{
var datas = ApiServices.PlatformtypeWebsiteList();
return new JsonResult(datas);
}
/// <summary> /// <summary>
/// crm 自定义出信模板 /// crm 自定义出信模板
......
...@@ -656,5 +656,22 @@ namespace AutoTurnOver.Controllers ...@@ -656,5 +656,22 @@ namespace AutoTurnOver.Controllers
total = total, total = total,
}); });
} }
public JsonResult GetGoods(string product_inner_code, int offset, int limit, string order, string sort)
{
var m = new bailun_sku_goods_search_dto
{
product_inner_code = product_inner_code,
};
var services = new ReportServices();
var total = 0;
var list = services.GetGoods(m, offset, limit, ref total, order: order, sort: sort);
return new JsonResult(new
{
rows = list,
total = total,
});
}
} }
} }
\ No newline at end of file
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