Commit 0f62a7da by zhouminghui

submit code

parent 52c21c63
......@@ -10,5 +10,6 @@ namespace Bailun.DC.Models.WebApiModels
public string Month { get; set; }
public string FeeName { get; set; }
public string PlatformType { get; set; }
public string WebSite { get; set; }
}
}
......@@ -10,6 +10,7 @@
///
/// </summary>
public string platform_type { get; set; }
public string website { get; set; }
/// <summary>
/// 对应平台总销售额(计算汇率的)
......
......@@ -801,23 +801,35 @@ or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end ");
int total = 0;
var obj = cn.Page<MonthPlatformProfitDto>(input.PageIndex, input.PageNumber, sql, ref total, param);
var data = obj.ToList();
if (data.Count > 0)
{
var sumSql = BuildMonthProfitFeePlatformFeeDetailSql(input, out DynamicParameters paramSum, false, true);
var count = cn.Query<(decimal, decimal)>(sumSql, paramSum).FirstOrDefault();
data.Add(new MonthPlatformProfitDto
{
Currency = "合计",
AmountVal = Math.Round(count.Item1, 2).ToString(),
AmountValRmb = Math.Round(count.Item2, 2),
});
}
//if (data.Count > 0)
//{
// var sumSql = BuildMonthProfitFeePlatformFeeDetailSql(input, out DynamicParameters paramSum, false, true);
// var count = cn.Query<(decimal, decimal)>(sumSql, paramSum).FirstOrDefault();
// data.Add(new MonthPlatformProfitDto
// {
// Currency = "合计",
// AmountVal = Math.Round(count.Item1, 2).ToString(),
// AmountValRmb = Math.Round(count.Item2, 2),
// });
//}
result = result.ToPageResult(input.PageIndex, total, data);
}
//var data = SimpleCRUD.Query<MonthPlatformProfitDto>(sql, null, GlobalConfig.ConnectionString_DW).ToList();
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>
/// 生成平台SQL
/// </summary>
......@@ -833,10 +845,16 @@ or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end ");
StringBuilder sql = new StringBuilder();
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
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
{
......@@ -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}'");
}
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)
{
//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
parameters.Add("linits", input.PageNumber);
parameters.Add("offsets", (input.PageIndex - 1) * input.PageNumber);
}
if (isSum)
{
sql.Append(" GROUP BY s1.platform,s1.website");
}
return sql.ToString();
}
/// <summary>
......@@ -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();
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>
......@@ -1056,18 +1101,21 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' ";
/// <summary>
/// 拉取旧的dc_month_sales_profit表数据到新表,生成新的汇总数据
/// </summary>
public bool SyncMonthSalesProfit(DateTime date)
public bool SyncMonthSalesProfit(DateTime? date)
{
try
{
//拉取旧表数据
var time = string.Empty;
#if DEBUG
time = date.ToString("yyyy-MM");
#else
if (date.HasValue)
{
time = date.Value.ToString("yyyy-MM");
}
else
{
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 field = new MonthSalesProfitDto();
......@@ -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_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.amount_sales_jingyou + oldData.amount_sales_meirongmj + oldData.amount_sales_other, 2);
oldData.cost = Math.Round(oldData.cost_jingyou + oldData.cost_dianzi + oldData.cost_jiaju
+ 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(
new GetMonthProfitPlatformDetailInput { Month = time, FeeName = "广告及宣传费" })
.Where(m => m.AmountValRmb != null).Sum(x => x.AmountValRmb.Value), 2);
......@@ -1222,16 +1274,19 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' ";
/// <summary>
/// 同步生成销售额和成本的汇总数据
/// </summary>
public bool SyncMonthSalesProfiOrderDetail(DateTime date)
public bool SyncMonthSalesProfiOrderDetail(DateTime? date)
{
try
{
var time = string.Empty;
#if DEBUG
time = date.ToString("yyyy-MM");
#else
if (date.HasValue)
{
time = date.Value.ToString("yyyy-MM");
}
else
{
time = DateTime.Now.AddMonths(-1).ToString("yyyy-MM");
#endif
}
var list = new List<dc_month_sales_profit_order_summary>();
var sql = "select financecategoryname from dc_month_sales_profit_orderdetail group by financecategoryname";
var categoryName = SimpleCRUD.Query<string>(sql, null, GlobalConfig.ConnectionString_read).ToList();
......
......@@ -420,13 +420,24 @@ namespace Bailun.DC.WebApi.Controllers
/// <summary>
/// 月销售利润平台费用明细
/// </summary>
/// <param name="month"></param>
/// <param name="feeName"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("getMonthProfitFeePlatformFeeDetail")]
public CommonApiResponseDto<PageResult<List<MonthPlatformProfitDto>>> GetMonthProfitFeePlatformFeeDetail(GetMonthProfitPlatformDetailInput input)
=> new FinanceService().GetMonthProfitFeePlatformFeeDetail(input);
/// <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>
/// <param name="input"></param>
......@@ -509,7 +520,7 @@ namespace Bailun.DC.WebApi.Controllers
}
[HttpGet("syncMonthSalesProfit")]
public object GetReFundTest(DateTime time)
public object GetReFundTest(DateTime? time)
{
return new FinanceService().SyncMonthSalesProfit(time);
//var sql = "select * from dc_month_sales_profit_orderdetail limit 1";
......@@ -517,7 +528,7 @@ namespace Bailun.DC.WebApi.Controllers
//return data;
}
[HttpGet("syncMonthSalesProfiOrderDetail")]
public object SyncMonthSalesProfiOrderDetail(DateTime date)
public object SyncMonthSalesProfiOrderDetail(DateTime? date)
=>new FinanceService().SyncMonthSalesProfiOrderDetail(date);
#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