Commit ecf4fd9f by guanzhenshan

增加不同平台的sku销量和退款数量接口

parent 23bd1e38
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Orders
{
/// <summary>
/// Sku 的销量和退款
/// </summary>
public class mSkuSaleReturn
{
/// <summary>
/// 百伦sku
/// </summary>
public string bailun_sku { get; set; }
/// <summary>
/// 平台类型
/// </summary>
public string platform_type { get; set; }
/// <summary>
/// 销售数量
/// </summary>
public int bailun_sku_quantity_ordered { get; set; }
/// <summary>
/// 退款数量
/// </summary>
public int? bailun_sku_quantity_refund { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
using Dapper;
namespace Bailun.DC.Services
{
public class ApiServices
{
public static void SaveApiLog(string name, string ip)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
cn.ExecuteAsync($"insert dc_api_log (apiname,ip) values ('{name}','{ip}')");
}
}
}
}
......@@ -5913,8 +5913,57 @@ namespace Bailun.DC.Services
}
}
/// <summary>
/// 获取不同平台的sku的销量和退款数量
/// </summary>
/// <param name="page">当前页</param>
/// <param name="pagesize">每页记录数</param>
/// <param name="start">付款时间时间</param>
/// <param name="end">付款结束时间</param>
/// <param name="platform">平台类型</param>
/// <param name="sku">sku编码</param>
/// <returns></returns>
public List<mSkuSaleReturn> ListSkuSaleAndReturn(int page,int pagesize,DateTime start, DateTime end, string platform, string sku)
{
var sql = $@"select t1.bailun_sku,t1.platform_type,sum(t1.bailun_sku_quantity_ordered) bailun_sku_quantity_ordered,sum(t2.bailun_sku_quantity_refund) bailun_sku_quantity_refund from dc_base_oms_sku t1
left join dc_base_crm_refund t2 on t1.origin_order_id=t2.origin_order_id and t1.bailun_sku=t2.bailun_sku and t2.is_deleted=0 and t2.is_freeze=0
where t1.bailun_order_status!='Canceled' and t1.has_cancle=0 and t1.has_delete=0 and t1.has_scalp=0 and t1.has_innersale=0 and ((t1.platform_type!='FBA' and t1.bailun_order_status!='CantHandle') or t1.platform_type='FBA')
";
if (!string.IsNullOrEmpty(platform))
{
if (platform.ToUpper() != "FBA")
{
sql += $" and t1.paid_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.paid_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.platform_type='{platform}'";
}
else
{
sql += $" and t1.create_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.create_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.platform_type='{platform}'";
}
}
if (!string.IsNullOrEmpty(sku))
{
sql += $" and t1.bailun_sku='{sku}'";
}
sql += " group by t1.platform_type,t1.bailun_sku";
sql += " limit "+(page-1)*pagesize+","+pagesize;
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Query<mSkuSaleReturn>(sql, null, null, true,2*60).ToList();
return obj;
}
}
}
}
......@@ -4,16 +4,19 @@ using System.Linq;
using System.Threading.Tasks;
using Bailun.DC.Models.Orders;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Bailun.DC.Web.Controllers
{
public class ApiController : Controller
{
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IHostingEnvironment _hostingEnvironment;
public ApiController(IHostingEnvironment hostingEnvironment)
public ApiController(IHostingEnvironment hostingEnvironment, IHttpContextAccessor httpContextAccessor)
{
_hostingEnvironment = hostingEnvironment;
_httpContextAccessor = httpContextAccessor;
}
public IActionResult Index()
......@@ -591,5 +594,48 @@ namespace Bailun.DC.Web.Controllers
})
});
}
/// <summary>
/// 获取不同平台sku的销量和退款数量
/// </summary>
/// <param name="page">当前页</param>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <param name="platform">平台类型</param>
/// <param name="bailunsku">百伦sku</param>
/// <returns></returns>
[HttpPost]
public JsonResult ListSkuSaleAndReturn(int page,DateTime start,DateTime end,string platform,string bailunsku)
{
Services.ApiServices.SaveApiLog("Api/ListSkuSaleAndReturn", _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString());
var pagesize = 1000;
try
{
var obj = new Services.OrdersServices().ListSkuSaleAndReturn(page, pagesize, start, end, platform, bailunsku);
return Json(new
{
list = obj.Select(a => new {
a.bailun_sku,
salecount = a.bailun_sku_quantity_ordered,
refundcount = a.bailun_sku_quantity_refund,
platform = a.platform_type
}),
success = true,
msg = ""
});
}
catch (Exception ex)
{
return Json(new {
success = false,
msg = ""
});
}
}
}
}
\ 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