【优化】优化后台登录后面板【最近7天订单统计显示效果】。

This commit is contained in:
jianweie code
2023-03-07 00:12:33 +08:00
parent 3d8a6b3ec8
commit 014a74cb3f
3 changed files with 108 additions and 57 deletions

View File

@@ -83,6 +83,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
private readonly ICoreCmsServicesServices _servicesServices;
private readonly ICoreCmsPagesServices _pagesServices;
private readonly IToolsServices _toolsServices;
private readonly ICoreCmsReportsServices _reportsServices;
@@ -109,7 +110,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
, ISysUserRoleServices sysUserRoleServices
, ISysOrganizationServices sysOrganizationServices,
ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, ISysRoleMenuServices sysRoleMenuServices
, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices)
, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices)
{
_user = user;
_webHostEnvironment = webHostEnvironment;
@@ -144,6 +145,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
_pagesServices = pagesServices;
_toolsServices = toolsServices;
_reportsServices = reportsServices;
}
#region ()====================================================
@@ -1515,53 +1517,114 @@ namespace CoreCms.Net.Web.Admin.Controllers
/// <returns></returns>
[HttpPost]
[Description("获取7天订单情况数据统计")]
public async Task<AdminUiCallBack> GetOrdersStatistics()
public Task<AdminUiCallBack> GetOrdersStatistics()
{
var jm = new AdminUiCallBack();
var dtEnd = DateTime.Now;
var dtStart = dtEnd.AddDays(-7);
var dtStr = dtStart.ToString("yyyy-MM-dd") + " 到 " + dtEnd.ToString("yyyy-MM-dd");
var data = new List<string>() { "已支付", "已发货" };
var legend = new Legend();
legend.data = data;
var paymentsStatistics = await _paymentsServices.Statistics();
var billDeliveryStatistics = await _billDeliveryServices.Statistics();
var xAxis = new List<XAxis>();
var xItem = new XAxis();
xItem.type = "category";
xItem.data = paymentsStatistics.Select(p => p.day).ToList();
for (int i = 0; i < xItem.data.Count; i++)
var dataRes = ReportsHelper.GetDate(dtStr, 2);
if (!dataRes.status)
{
xItem.data[i] = Convert.ToDateTime(xItem.data[i]).ToString("d日");
jm.msg = dataRes.msg;
return System.Threading.Tasks.Task.FromResult(jm);
}
xAxis.Add(xItem);
var series = new List<SeriesDataIntItem>
var echartsOption = new EchartsOption();
echartsOption.title.text = "最近7天订单统计";
var legend = new List<string>() { "全部", "待付款", "已付款" };
echartsOption.legend.data = legend;
var getDate = dataRes.data as ReportsBackForGetDate;
var xData = ReportsHelper.GetXdata(getDate);
if (!xData.status)
{
new SeriesDataIntItem()
jm.msg = dataRes.msg;
return System.Threading.Tasks.Task.FromResult(jm);
}
echartsOption.xAxis.data = xData.data as List<string>;
var whereSql = string.Empty;
var data = new List<GetOrdersReportsDbSelectOut>();
var data1 = new List<GetOrdersReportsDbSelectOut>();
var data2 = new List<GetOrdersReportsDbSelectOut>();
var data3 = new List<GetOrdersReportsDbSelectOut>();
foreach (var item in legend)
{
switch (item)
{
name = "已支付", type = "line", data = paymentsStatistics.Select(p => p.nums).ToList()
},
new SeriesDataIntItem()
{
name = "已发货", type = "line", data = billDeliveryStatistics.Select(p => p.nums).ToList()
case "全部":
whereSql = string.Empty;
whereSql += " and createTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and createTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
data = _reportsServices.GetOrderMark(getDate.num, whereSql, getDate.section, getDate.start, "createTime");
data1 = data;
break;
case "待付款":
whereSql = string.Empty;
whereSql += " and createTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and createTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and payStatus=1 ";
data = _reportsServices.GetOrderMark(getDate.num, whereSql, getDate.section, getDate.start, "createTime");
data2 = data;
break;
case "已付款":
whereSql = string.Empty;
whereSql += " and paymentTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and paymentTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and payStatus>1 ";
data = _reportsServices.GetOrderMark(getDate.num, whereSql, getDate.section, getDate.start, "paymentTime");
data3 = data;
break;
}
};
if (data != null && data.Any())
{
var vals = data.Select(p => p.val).ToList();
echartsOption.series.Add(new SeriesItem()
{
name = item,
type = "line",
data = vals.ConvertAll<string>(x => x.ToString(CultureInfo.InvariantCulture))
});
}
else
{
echartsOption.series.Add(new SeriesItem()
{
name = item,
type = "line",
data = new List<string>()
});
}
}
//组装数据列表用于table里使用
var tableData = new List<OrderTableItem>();
for (int i = 0; i < getDate.num; i++)
{
var item = new OrderTableItem();
if (echartsOption.xAxis.data != null) item.x = echartsOption.xAxis.data[i];
item.order_all_val = data1[i].val.ToString(CultureInfo.InvariantCulture);
item.order_all_num = data1[i].num;
item.order_nopay_val = data2[i].val.ToString(CultureInfo.InvariantCulture);
item.order_nopay_num = data2[i].num;
item.order_payed_val = data3[i].val.ToString(CultureInfo.InvariantCulture);
item.order_payed_num = data3[i].num;
tableData.Add(item);
}
jm.code = 0;
jm.data = new
{
legend,
xAxis,
series
option = echartsOption,
table = tableData
};
//返回数据
jm.msg = "数据调用成功!";
return jm;
return System.Threading.Tasks.Task.FromResult(jm);
}
#endregion

View File

@@ -673,7 +673,7 @@
后端常用方法
</summary>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.ToolsController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsArticleServices,CoreCms.Net.IServices.ICoreCmsFormServices,CoreCms.Net.IServices.ICoreCmsArticleTypeServices,CoreCms.Net.IServices.ICoreCmsNoticeServices,CoreCms.Net.IServices.ICoreCmsPinTuanRuleServices,CoreCms.Net.IServices.ICoreCmsPromotionServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ISysUserServices,CoreCms.Net.IServices.ISysRoleServices,CoreCms.Net.IServices.ISysMenuServices,CoreCms.Net.IServices.ISysUserRoleServices,CoreCms.Net.IServices.ISysOrganizationServices,CoreCms.Net.IServices.ICoreCmsLogisticsServices,CoreCms.Net.IServices.ISysLoginRecordServices,CoreCms.Net.IServices.ISysNLogRecordsServices,CoreCms.Net.IServices.ICoreCmsBillPaymentsServices,CoreCms.Net.IServices.ICoreCmsBillDeliveryServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsBillAftersalesServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsProductsServices,CoreCms.Net.IServices.ICoreCmsServicesServices,CoreCms.Net.IServices.ISysRoleMenuServices,CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory,CoreCms.Net.IServices.ICoreCmsPagesServices,CoreCms.Net.IServices.IToolsServices)">
<member name="M:CoreCms.Net.Web.Admin.Controllers.ToolsController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsArticleServices,CoreCms.Net.IServices.ICoreCmsFormServices,CoreCms.Net.IServices.ICoreCmsArticleTypeServices,CoreCms.Net.IServices.ICoreCmsNoticeServices,CoreCms.Net.IServices.ICoreCmsPinTuanRuleServices,CoreCms.Net.IServices.ICoreCmsPromotionServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ISysUserServices,CoreCms.Net.IServices.ISysRoleServices,CoreCms.Net.IServices.ISysMenuServices,CoreCms.Net.IServices.ISysUserRoleServices,CoreCms.Net.IServices.ISysOrganizationServices,CoreCms.Net.IServices.ICoreCmsLogisticsServices,CoreCms.Net.IServices.ISysLoginRecordServices,CoreCms.Net.IServices.ISysNLogRecordsServices,CoreCms.Net.IServices.ICoreCmsBillPaymentsServices,CoreCms.Net.IServices.ICoreCmsBillDeliveryServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsBillAftersalesServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsProductsServices,CoreCms.Net.IServices.ICoreCmsServicesServices,CoreCms.Net.IServices.ISysRoleMenuServices,CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory,CoreCms.Net.IServices.ICoreCmsPagesServices,CoreCms.Net.IServices.IToolsServices,CoreCms.Net.IServices.ICoreCmsReportsServices)">
<summary>
构造函数
</summary>
@@ -926,6 +926,12 @@
</summary>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.ToolsController.New_Temporary_Materials_UploadImg">
<summary>
(微信小程序)新增临时素材
</summary>
<returns></returns>
</member>
<member name="T:CoreCms.Net.Web.Admin.Controllers.CoreCmsDistributionController">
<summary>
分销商表

View File

@@ -120,9 +120,8 @@
<td>
<script type="text/html" template>
{{ layui.setter.version }}
<a href="http://www.coreshop.cn/" target="_blank" style="padding-left: 10px;">日志</a>
<a href="https://www.coreshop.cn/UpdateLog" target="_blank" style="padding-left: 10px;">更新日志</a>
</script>
<a href="http://www.coreshop.cn/" target="_blank" style="padding-left: 5px;">检查更新</a>
</td>
</tr>
<tr>
@@ -268,7 +267,7 @@
, data: data.data
, page: false //开启分页
, cols: [[ //表头
{ field: 'os', title: '浏览器类型' }
{ field: 'os', title: '状态' }
, { field: 'username', title: '登录用户' }
, { field: 'createTime', title: '记录时间' }
, { field: 'ip', title: '登录IP' }
@@ -326,32 +325,15 @@
function ordersEcharts() {
var myChart = echarts.init(document.getElementById('main'));
var option = {
title: {
text: '最近7天订单量统计'
},
tooltip: {
show: true
},
legend: {},
yAxis: [{
type: 'value'
}],
xAxis: [],
series: []
};
coreHelper.Post("Api/Tools/GetOrdersStatistics",
{}, function (data) {
if (data.code == 0) {
myChart.setOption({
legend: data.data.legend,
xAxis: data.data.xAxis,
series: data.data.series
});
//刷新折线图
option = data.data.option;
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
});
myChart.setOption(option);
}
function usersEcharts() {