一、需求分析
产品原型:
业务规则:
--基于可视化报表的折线图展示用户数据,X轴为日期,Y轴为用户数
--根据时间选择区间,展示每天的用户总量和新增用户量数据
接口设计:
二、代码开发
根据用户统计接口的返回结果设计VO:(与返回结果一一对应)
1、根据接口定义,在Controller->admin->ReportController中创建userStatistics方法:
--和营业额的controller类似
2、在ReportService接口中声明getUserStatistics方法:
3、在ReportServiceImpl实现类中实现getUserStatistics方法
--封装dateList,创建dateList存放从begin到end之间的每天对应的日期
--统计集合对应每一天的用户数量,一个是总用户数量,一个是新增用户数量
--需要创建两个集合分别是totalUserList、newUserList,分别存放总用户数量和新增用户数量
--获取当天的开始时间点(beginTime),和结束时间点(endTime)
--创建map集合,先传入endTime,调用UserMapper中countByMap方法,获取总用户数量
--然后将beginTime传入map集合,调用UserMapper中countByMap方法,便于获取新增数据量(先传endTime,后传beginTime。小技巧)
4、封装返回结果
service代码如图:
5、mapper中sumByMap和对应的xml文件代码:
三、功能测试
可以通过如下方式进行测试: