【优化】优化后台登录后面板【最近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 ICoreCmsServicesServices _servicesServices;
private readonly ICoreCmsPagesServices _pagesServices; private readonly ICoreCmsPagesServices _pagesServices;
private readonly IToolsServices _toolsServices; private readonly IToolsServices _toolsServices;
private readonly ICoreCmsReportsServices _reportsServices;
@@ -109,7 +110,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
, ISysUserRoleServices sysUserRoleServices , ISysUserRoleServices sysUserRoleServices
, ISysOrganizationServices sysOrganizationServices, , 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 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; _user = user;
_webHostEnvironment = webHostEnvironment; _webHostEnvironment = webHostEnvironment;
@@ -144,6 +145,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
_weChatApiHttpClientFactory = weChatApiHttpClientFactory; _weChatApiHttpClientFactory = weChatApiHttpClientFactory;
_pagesServices = pagesServices; _pagesServices = pagesServices;
_toolsServices = toolsServices; _toolsServices = toolsServices;
_reportsServices = reportsServices;
} }
#region ()==================================================== #region ()====================================================
@@ -1515,53 +1517,114 @@ namespace CoreCms.Net.Web.Admin.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Description("获取7天订单情况数据统计")] [Description("获取7天订单情况数据统计")]
public async Task<AdminUiCallBack> GetOrdersStatistics() public Task<AdminUiCallBack> GetOrdersStatistics()
{ {
var jm = new AdminUiCallBack(); 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 dataRes = ReportsHelper.GetDate(dtStr, 2);
var legend = new Legend(); if (!dataRes.status)
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++)
{ {
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() case "全部":
}, whereSql = string.Empty;
new SeriesDataIntItem() whereSql += " and createTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
{ whereSql += " and createTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
name = "已发货", type = "line", data = billDeliveryStatistics.Select(p => p.nums).ToList() 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.code = 0;
jm.data = new jm.data = new
{ {
legend, option = echartsOption,
xAxis, table = tableData
series
}; };
//返回数据 return System.Threading.Tasks.Task.FromResult(jm);
jm.msg = "数据调用成功!";
return jm;
} }
#endregion #endregion

View File

@@ -673,7 +673,7 @@
后端常用方法 后端常用方法
</summary> </summary>
</member> </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>
构造函数 构造函数
</summary> </summary>
@@ -926,6 +926,12 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </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"> <member name="T:CoreCms.Net.Web.Admin.Controllers.CoreCmsDistributionController">
<summary> <summary>
分销商表 分销商表

View File

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