一、Apache ECharts
1. 介绍
pache ECharts是一款基于js的数据可视化图表库https://echarts.apache.org/zh/index.html
使用ECharts,重点在于研究当前图表所需的数据格式,后端提供符合格式要求的动态数据,响应给前端展示图表。
二、营业额统计
1. 需求分析和设计
GET请求
请求参数query:开始日期,结束日期
返回数据(字符串,逗号分割):日期列表,营业额列表
2. 代码开发
controller:接收时间参数
@DateTimeFormat(pattern="yyyy-MM-dd")localDate begin
service:
(1)按开始时间和结束时间把所有日期添加到列表,再把列表转换成逗号分隔的字符串
日期相关:while(!begin.equals(end){list.add(begin.plusDays(1);}
列表转字符串:StringUtils.join(list,",");
(2)根据每天的开始时间和结束时间查询营业额总数
开始/结束时间:LocalDateTime time=LocalDateTime.of(date,LocalTime.MIN/MAX);
(3)若当天没有订单返回的是空,将空转换成0
mapper:大于>小于<
三、用户统计
1. 需求开发和设计
GET请求
请求参数query:开始日期,结束日期
返回数据:日期列表,新增用户列表,总用户量列表
2. 代码开发
controller:接收日期(同上)
service:同上(日期列表,总用户量列表,新增用户列表)
mapper:根据开始时间和结束时间判断用户量(新增有开始有结束,总有结束没开始)
四、订单统计
1. 需求分析和设计
GET请求
请求参数:开始日期,结束日期
返回数据:日期列表,订单完成率,订单数列表,订单总数,有效订单数,有效订单数列表
2. 代码开发
list内int数据求和:list.stream().reduce(Integer::sum).get()
五、销量排名
1. 需求分析和设计
GET请求
请求参数:开始日期,结束日期
返回数据:商品名称列表,销量列表
2. 代码开发
获取List<DTO>内name属性构成的列表:
List<String> name=list.stream().map(DTO::getName).collect(Collectors.toList());
