博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日志统计功能
阅读量:4983 次
发布时间:2019-06-12

本文共 1406 字,大约阅读时间需要 4 分钟。

利用echarts插件日志统计出来。

前台传一个用户的id到后台,后台通过这个userid查询出该用户的写的日志的数量,按照月的形式显示出来

mybatis代码:

<select id="count" resultType="map" parameterType="int">

select count(body) as num,month(createDate) as date
from log
where year(createDate) = '2016' AND userid = #{userid} AND status = 1
group by month(createDate)
</select>

这条语句查询出来的就是写了日志的月份和月份的日志数量,而那些没有写日志的月份则不显示,而那些不显示的则要在controll用代码生成:

List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();

//手动创建12个月
for(int i = 1;i<=12;i++) {
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("date", i);//把月份存放到map中
map1.put("num", 0);//给每个月的日志数量初始化为0篇日志
list1.add(map1);//把map放到一个list中
}
//通过userid去查询每人每个月的写日志的数量
List<Map<String, Object>> list = logService.count(userid);
//遍历数据库中取出来的日志的每个月写日志的数量
for(Map<String, Object> map:list) {
//遍历手动创建的12个月每个月写日志的数量
for(Map<String, Object> map2 :list1) {
//比较有没有相等的月份
if(map.get("date").equals(map2.get("date"))) {
//给写了日志的月份的数量赋值,这个值是从数据库中取出来的,把原来的日志数量替换
map2.put("num", map.get("num"));
}
}
}

前台js代码

$(function(){

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据

var option = {
title: {
text: '日志数量统计'
},
tooltip: {},
legend: {
data:['数量']
},
xAxis: {
data: ${date}
},
yAxis: {},
series: [{
name: '数量',
type: 'bar',
data: ${num}
}]
};

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option);
});

页面显示如下

 

转载于:https://www.cnblogs.com/liaoyanglong/p/6145894.html

你可能感兴趣的文章
IT开发常用英语-A
查看>>
oracle乱码问题
查看>>
惮道安装方法
查看>>
周志华《机器学习》第一章小结
查看>>
mysql 内联接、左联接、右联接、完全联接、交叉联接 区别
查看>>
第四次过程性考核
查看>>
标准C++中的string类的用法总结
查看>>
Python functools.partial
查看>>
提高系统性能:从数据访问开始
查看>>
首页列表显示全部问答,完成问答详情页布局。
查看>>
正则表达式30分钟入门教程[转自deerchao]
查看>>
Postion and AlignmentPoint
查看>>
软件工程三班四组作业完成情况(第三天)
查看>>
luogu P4082 [USACO17DEC]Push a Box
查看>>
OUTLOOK2019 解决 无法验证您连接到的服务器使用的安全证书
查看>>
[转]FICO上线准备
查看>>
BZOJ 3931 网络吞吐量(最短路+拆点最大流)
查看>>
Radis安装
查看>>
设计模式 (一) 代理模式
查看>>
fabric 自动化部署
查看>>