Commit 0f62a7da by zhouminghui

submit code

parent 52c21c63
...@@ -10,5 +10,6 @@ namespace Bailun.DC.Models.WebApiModels ...@@ -10,5 +10,6 @@ namespace Bailun.DC.Models.WebApiModels
public string Month { get; set; } public string Month { get; set; }
public string FeeName { get; set; } public string FeeName { get; set; }
public string PlatformType { get; set; } public string PlatformType { get; set; }
public string WebSite { get; set; }
} }
} }
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
/// ///
/// </summary> /// </summary>
public string platform_type { get; set; } public string platform_type { get; set; }
public string website { get; set; }
/// <summary> /// <summary>
/// 对应平台总销售额(计算汇率的) /// 对应平台总销售额(计算汇率的)
......
...@@ -801,23 +801,35 @@ or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end "); ...@@ -801,23 +801,35 @@ or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end ");
int total = 0; int total = 0;
var obj = cn.Page<MonthPlatformProfitDto>(input.PageIndex, input.PageNumber, sql, ref total, param); var obj = cn.Page<MonthPlatformProfitDto>(input.PageIndex, input.PageNumber, sql, ref total, param);
var data = obj.ToList(); var data = obj.ToList();
if (data.Count > 0) //if (data.Count > 0)
{ //{
var sumSql = BuildMonthProfitFeePlatformFeeDetailSql(input, out DynamicParameters paramSum, false, true); // var sumSql = BuildMonthProfitFeePlatformFeeDetailSql(input, out DynamicParameters paramSum, false, true);
var count = cn.Query<(decimal, decimal)>(sumSql, paramSum).FirstOrDefault(); // var count = cn.Query<(decimal, decimal)>(sumSql, paramSum).FirstOrDefault();
data.Add(new MonthPlatformProfitDto // data.Add(new MonthPlatformProfitDto
{ // {
Currency = "合计", // Currency = "合计",
AmountVal = Math.Round(count.Item1, 2).ToString(), // AmountVal = Math.Round(count.Item1, 2).ToString(),
AmountValRmb = Math.Round(count.Item2, 2), // AmountValRmb = Math.Round(count.Item2, 2),
}); // });
} //}
result = result.ToPageResult(input.PageIndex, total, data); result = result.ToPageResult(input.PageIndex, total, data);
} }
//var data = SimpleCRUD.Query<MonthPlatformProfitDto>(sql, null, GlobalConfig.ConnectionString_DW).ToList(); //var data = SimpleCRUD.Query<MonthPlatformProfitDto>(sql, null, GlobalConfig.ConnectionString_DW).ToList();
return new CommonApiResponseDto<PageResult<List<MonthPlatformProfitDto>>> { Data = result }; return new CommonApiResponseDto<PageResult<List<MonthPlatformProfitDto>>> { Data = result };
} }
public List<PlatformTypeMonthlyStatisticsDto> GetGetMonthProfitFeePlatformFeeSummary(GetMonthProfitPlatformDetailInput input)
{
var redis = RedisHelper.GetList<PlatformTypeMonthlyStatisticsDto>($"{input.FeeName}_{input.Month.Replace("月份", "")}");
if (redis.Count > 0)
{
return redis;
}
var sql = BuildMonthProfitFeePlatformFeeDetailSql(input, out DynamicParameters param, false, true);
var data = SimpleCRUD.Query<PlatformTypeMonthlyStatisticsDto>(sql, param, GlobalConfig.ConnectionString_DW).ToList();
RedisHelper.Add<List<PlatformTypeMonthlyStatisticsDto>>($"{input.FeeName}_{input.Month.Replace("月份", "")}", data, new TimeSpan(1, 0, 0, 0));
return data;
}
/// <summary> /// <summary>
/// 生成平台SQL /// 生成平台SQL
/// </summary> /// </summary>
...@@ -833,10 +845,16 @@ or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end "); ...@@ -833,10 +845,16 @@ or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end ");
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
if (isSum) if (isSum)
{ {
sql.Append($@"SELECT sum(s1.amountval) as amountval, sum(s1.amountval_rmb) amountval_rmb // sql.Append($@"SELECT sum(s1.amountval) as amountval, sum(s1.amountval_rmb) amountval_rmb
//from order_fee_value_amazon s1
//JOIN order_fee_config s2
//ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month ");
sql.Append($@"
SELECT s1.platform AS platform_type,s1.website AS website ,SUM(s1.amountval) as total_amount_sales,SUM(s1.amountval_rmb) as original_amount,count(*) AS total_order
from order_fee_value_amazon s1 from order_fee_value_amazon s1
JOIN order_fee_config s2 JOIN order_fee_config s2
ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month "); ON s2.id = s1.order_fee_config_id
WHERE s1.month = @month ");
} }
else else
{ {
...@@ -862,6 +880,16 @@ ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month ...@@ -862,6 +880,16 @@ ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month
{ {
sql.Append($"AND s2.datacenter_col LIKE '%{input.FeeName}'"); sql.Append($"AND s2.datacenter_col LIKE '%{input.FeeName}'");
} }
if (!string.IsNullOrWhiteSpace(input.WebSite))
{
sql.Append(" AND s1.website = @site ");
parameters.Add("site", input.WebSite);
}
if (!string.IsNullOrWhiteSpace(input.PlatformType))
{
sql.Append(" AND s1.platform = @platform ");
parameters.Add("platform", input.PlatformType);
}
if (isPage) if (isPage)
{ {
//sql.Append($" LIMIT {input.PageNumber} OFFSET {(input.PageIndex - 1) * input.PageNumber}"); //sql.Append($" LIMIT {input.PageNumber} OFFSET {(input.PageIndex - 1) * input.PageNumber}");
...@@ -869,6 +897,10 @@ ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month ...@@ -869,6 +897,10 @@ ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month
parameters.Add("linits", input.PageNumber); parameters.Add("linits", input.PageNumber);
parameters.Add("offsets", (input.PageIndex - 1) * input.PageNumber); parameters.Add("offsets", (input.PageIndex - 1) * input.PageNumber);
} }
if (isSum)
{
sql.Append(" GROUP BY s1.platform,s1.website");
}
return sql.ToString(); return sql.ToString();
} }
/// <summary> /// <summary>
...@@ -882,6 +914,19 @@ ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month ...@@ -882,6 +914,19 @@ ON s2.id = s1.order_fee_config_id WHERE s1.amountval != 0 AND s1.month = @month
var data = SimpleCRUD.Query<MonthPlatformProfitDto>(sql, parameters, GlobalConfig.ConnectionString_DW).ToList(); var data = SimpleCRUD.Query<MonthPlatformProfitDto>(sql, parameters, GlobalConfig.ConnectionString_DW).ToList();
return data; return data;
} }
public decimal SyncMonthProfitFeePlatformFeeSummary(GetMonthProfitPlatformDetailInput input)
{
var parameters = new DynamicParameters();
var sql = $@"SELECT SUM(s1.amountval_rmb)
from order_fee_value_amazon s1
JOIN order_fee_config s2
ON s2.id = s1.order_fee_config_id
WHERE s1.amountval != 0 AND s1.month = @month
AND s2.datacenter_col like '%{input.FeeName}' ";
parameters.Add("month", input.Month);
var data = SimpleCRUD.Query<decimal>(sql, parameters, GlobalConfig.ConnectionString_DW).FirstOrDefault();
return data;
}
/// <summary> /// <summary>
/// 退款分页明细 /// 退款分页明细
/// </summary> /// </summary>
...@@ -1056,18 +1101,21 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' "; ...@@ -1056,18 +1101,21 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' ";
/// <summary> /// <summary>
/// 拉取旧的dc_month_sales_profit表数据到新表,生成新的汇总数据 /// 拉取旧的dc_month_sales_profit表数据到新表,生成新的汇总数据
/// </summary> /// </summary>
public bool SyncMonthSalesProfit(DateTime date) public bool SyncMonthSalesProfit(DateTime? date)
{ {
try try
{ {
//拉取旧表数据 //拉取旧表数据
var time = string.Empty; var time = string.Empty;
#if DEBUG if (date.HasValue)
time = date.ToString("yyyy-MM"); {
#else time = date.Value.ToString("yyyy-MM");
}
else
{
time = DateTime.Now.AddMonths(-1).ToString("yyyy-MM"); time = DateTime.Now.AddMonths(-1).ToString("yyyy-MM");
#endif }
var sql = $"select * from dc_month_sales_profit where isedit != 1 and month = '{time}'"; var sql = $"select * from dc_month_sales_profit_v2 where isedit != 1 and month = '{time}'";
var oldData = SimpleCRUD.Query<dc_month_sales_profit_v2>(sql, null, GlobalConfig.ConnectionString).FirstOrDefault(); var oldData = SimpleCRUD.Query<dc_month_sales_profit_v2>(sql, null, GlobalConfig.ConnectionString).FirstOrDefault();
//对旧表数据进行赋值新数据 //对旧表数据进行赋值新数据
//var field = new MonthSalesProfitDto(); //var field = new MonthSalesProfitDto();
...@@ -1091,9 +1139,13 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' "; ...@@ -1091,9 +1139,13 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' ";
oldData.cost_fuzhuang = Math.Round(GetMonthSalesProfiOrderSummary(time, "服装", "成本").Sum(x => x.total_amount_sales), 2); oldData.cost_fuzhuang = Math.Round(GetMonthSalesProfiOrderSummary(time, "服装", "成本").Sum(x => x.total_amount_sales), 2);
oldData.cost_other = Math.Round(GetMonthSalesProfiOrderSummary(time, "其他", "成本").Sum(x => x.total_amount_sales), 2); oldData.cost_other = Math.Round(GetMonthSalesProfiOrderSummary(time, "其他", "成本").Sum(x => x.total_amount_sales), 2);
//总成本 //总成本
oldData.cost = Math.Round(oldData.amount_sales_dianzi + oldData.amount_sales_fuzhuang + oldData.amount_sales_jiaju oldData.cost = Math.Round(oldData.cost_jingyou + oldData.cost_dianzi + oldData.cost_jiaju
+ oldData.amount_sales_jingyou + oldData.amount_sales_meirongmj + oldData.amount_sales_other, 2); + oldData.cost_meirongmj + oldData.cost_fuzhuang + oldData.cost_other, 2);
//平台费用 //平台费用
//oldData.fee_ad = Math.Round(SyncMonthProfitFeePlatformFeeSummary(
// new GetMonthProfitPlatformDetailInput { Month = time, FeeName = "广告及宣传费" }), 2);
oldData.fee_ad = Math.Round(ExportMonthProfitFeePlatformFeeDetail( oldData.fee_ad = Math.Round(ExportMonthProfitFeePlatformFeeDetail(
new GetMonthProfitPlatformDetailInput { Month = time, FeeName = "广告及宣传费" }) new GetMonthProfitPlatformDetailInput { Month = time, FeeName = "广告及宣传费" })
.Where(m => m.AmountValRmb != null).Sum(x => x.AmountValRmb.Value), 2); .Where(m => m.AmountValRmb != null).Sum(x => x.AmountValRmb.Value), 2);
...@@ -1222,16 +1274,19 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' "; ...@@ -1222,16 +1274,19 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' ";
/// <summary> /// <summary>
/// 同步生成销售额和成本的汇总数据 /// 同步生成销售额和成本的汇总数据
/// </summary> /// </summary>
public bool SyncMonthSalesProfiOrderDetail(DateTime date) public bool SyncMonthSalesProfiOrderDetail(DateTime? date)
{ {
try try
{ {
var time = string.Empty; var time = string.Empty;
#if DEBUG if (date.HasValue)
time = date.ToString("yyyy-MM"); {
#else time = date.Value.ToString("yyyy-MM");
}
else
{
time = DateTime.Now.AddMonths(-1).ToString("yyyy-MM"); time = DateTime.Now.AddMonths(-1).ToString("yyyy-MM");
#endif }
var list = new List<dc_month_sales_profit_order_summary>(); var list = new List<dc_month_sales_profit_order_summary>();
var sql = "select financecategoryname from dc_month_sales_profit_orderdetail group by financecategoryname"; var sql = "select financecategoryname from dc_month_sales_profit_orderdetail group by financecategoryname";
var categoryName = SimpleCRUD.Query<string>(sql, null, GlobalConfig.ConnectionString_read).ToList(); var categoryName = SimpleCRUD.Query<string>(sql, null, GlobalConfig.ConnectionString_read).ToList();
......
...@@ -420,13 +420,24 @@ namespace Bailun.DC.WebApi.Controllers ...@@ -420,13 +420,24 @@ namespace Bailun.DC.WebApi.Controllers
/// <summary> /// <summary>
/// 月销售利润平台费用明细 /// 月销售利润平台费用明细
/// </summary> /// </summary>
/// <param name="month"></param> /// <param name="input"></param>
/// <param name="feeName"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("getMonthProfitFeePlatformFeeDetail")] [HttpPost("getMonthProfitFeePlatformFeeDetail")]
public CommonApiResponseDto<PageResult<List<MonthPlatformProfitDto>>> GetMonthProfitFeePlatformFeeDetail(GetMonthProfitPlatformDetailInput input) public CommonApiResponseDto<PageResult<List<MonthPlatformProfitDto>>> GetMonthProfitFeePlatformFeeDetail(GetMonthProfitPlatformDetailInput input)
=> new FinanceService().GetMonthProfitFeePlatformFeeDetail(input); => new FinanceService().GetMonthProfitFeePlatformFeeDetail(input);
/// <summary> /// <summary>
/// 获取平台费和仓储费按照平台汇总明细
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("getGetMonthProfitFeePlatformFeeSummary")]
public CommonApiResponseDto<List<PlatformTypeMonthlyStatisticsDto>> GetGetMonthProfitFeePlatformFeeSummary(GetMonthProfitPlatformDetailInput input)
{
var result = new CommonApiResponseDto<List<PlatformTypeMonthlyStatisticsDto>>();
result.Data = new FinanceService().GetGetMonthProfitFeePlatformFeeSummary(input);
return result;
}
/// <summary>
/// 导出月销售利润平台费用明细 /// 导出月销售利润平台费用明细
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
...@@ -509,7 +520,7 @@ namespace Bailun.DC.WebApi.Controllers ...@@ -509,7 +520,7 @@ namespace Bailun.DC.WebApi.Controllers
} }
[HttpGet("syncMonthSalesProfit")] [HttpGet("syncMonthSalesProfit")]
public object GetReFundTest(DateTime time) public object GetReFundTest(DateTime? time)
{ {
return new FinanceService().SyncMonthSalesProfit(time); return new FinanceService().SyncMonthSalesProfit(time);
//var sql = "select * from dc_month_sales_profit_orderdetail limit 1"; //var sql = "select * from dc_month_sales_profit_orderdetail limit 1";
...@@ -517,7 +528,7 @@ namespace Bailun.DC.WebApi.Controllers ...@@ -517,7 +528,7 @@ namespace Bailun.DC.WebApi.Controllers
//return data; //return data;
} }
[HttpGet("syncMonthSalesProfiOrderDetail")] [HttpGet("syncMonthSalesProfiOrderDetail")]
public object SyncMonthSalesProfiOrderDetail(DateTime date) public object SyncMonthSalesProfiOrderDetail(DateTime? date)
=>new FinanceService().SyncMonthSalesProfiOrderDetail(date); =>new FinanceService().SyncMonthSalesProfiOrderDetail(date);
#endregion #endregion
......
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