数据统计

master
pan 5 years ago
parent 8e94a17a71
commit 4fb3eaadd0
  1. 51
      WebRoot/admin/report.jsp
  2. 10
      src/com/app/action/ApplyAction.java
  3. 25
      src/com/app/service/CountServiceImpl.java

@ -42,12 +42,12 @@
end.val('${endTime}')
<c:if test="${!empty state }">
toastr.${state}('${message}', '提示');
toastr.${state}('${message}', '提示');
</c:if>
$(".bz").click(function () {
var txt = $(this).attr("txt");
toastr.success(txt, '提示');
toastr.success(txt, '提示');
});
@ -62,30 +62,40 @@
name: '个数'
}
}
let group = ['用户', '房源', '申请', '举报']
// 指定图表的配置项和数据
let option = {...publicOption,...{
let option = {
...publicOption, ...{
xAxis: {
data: ["用户","房源","申请","举报"]
data: group
},
series: [{
type: 'bar',
data: [${userCount}, ${houseCount}, ${applyCount}, ${reportCount}]
}]
}}
data: [${userCount}, ${houseCount}, ${applyCount}, ${reportCount}],
label:{
show:true
}
}],
tooltip: {
show: true
}
}
}
// 使用刚指定的配置项和数据显示图表。
chart.setOption(option);
let groupChart = echarts.init(count_group)
let groupOption={...publicOption,...{
let groupOption = {
...publicOption, ...{
xAxis: {
type: 'category',
data: [<c:forEach items="${userList.dateList}" var="item">
'${item}',
</c:forEach>]
},
legend:['用户','房源'],
dataZoom: [
{
show: true,
@ -94,14 +104,29 @@
end: 85
},
],
tooltip: {
trigger: 'axis'
},
legend: {
data: group,
left: 0
},
series: [{
name:'用户',
name: group[0],
type: 'line',
data:${userList.countList}
}, {
name:'房源',
name: group[1],
type: 'line',
data:${userList.countList}
data:${houseList.countList}
}, {
name: group[2],
type: 'line',
data:${applyList.countList}
}, {
name: group[3],
type: 'line',
data:${reportList.countList}
}]
}
}
@ -137,7 +162,7 @@
<div id="count" class="ml-auto mr-auto mt-3"></div>
<div id="count_group d-none" class="ml-auto mr-auto mt-3"></div>
<div id="count_group" class="ml-auto mr-auto mt-3"></div>
</div>

@ -267,7 +267,15 @@ public class ApplyAction {
List<Count> houseList=countService.countWithDate(startTime,endTime,House.class);
CountSplit splitHouse=splitCount(houseList);
act.put("splitHouse",splitHouse);
act.put("houseList",splitHouse);
List<Count> applyList=countService.countWithDate(startTime,endTime,Apply.class);
CountSplit splitApply=splitCount(applyList);
act.put("applyList",splitApply);
List<Count> reportList=countService.countWithDate(startTime,endTime,Report.class);
CountSplit splitReport=splitCount(reportList);
act.put("reportList",splitReport);
act.put("startTime",startTime);
act.put("endTime",endTime);

@ -36,12 +36,31 @@ public class CountServiceImpl implements CountService{
@SuppressWarnings("unchecked")
@Override
public List<Count> countWithDate(String startTime, String endTime, final Class c) {
public List<Count> countWithDate(final String startTime, final String endTime, final Class c) {
return (List<Count>) hibernateTemplate.execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query=session.createSQLQuery(
"select substring(created,1,10) as date,count(*) as count from "+c.getSimpleName()+" group by substring(created,1,10)");
StringBuffer sql=new StringBuffer();
sql.append("select date, count\n")
.append("from (\n")
.append(" select substring(created, 1, 10) as date, count(*) as count\n")
.append(" from users\n")
.append(" group by substring(created, 1, 10)\n")
.append(" union all\n")
.append(" SELECT CONVERT(VARCHAR(10), dateadd(d, number, DATENAME(year, GETDATE()) + '-01-01'), 23) AS date, 0 as count\n")
.append(" FROM master..spt_values\n")
.append(" WHERE type = 'p'\n")
.append(" AND number between 0 and datediff(day, DATENAME(year, GETDATE()) + '-01-01', getdate())\n")
.append(" and CONVERT(VARCHAR(10), dateadd(d, number, DATENAME(year, GETDATE()) + '-01-01'), 23) not in\n")
.append(" (select substring(created, 1, 10) as date from users group by substring(created, 1, 10))) b\n")
.append("where date between\n")
.append(" '")
.append(startTime, 0, 8)
.append("' and '")
.append(endTime, 0, 8)
.append("'\n")
.append("order by date");
Query query=session.createSQLQuery(sql.toString());
return query.setResultTransformer(Transformers.aliasToBean(Count.class)).list();
}
});

Loading…
Cancel
Save