课程统计接口要做的是 统计各个日期的用户观看人数 生成报表 sql就是根据日期分组 查出开始时间到结束时间这个区间范围内 每天有多少人观看
SELECT
DATE(join_time) AS joinTime,
COUNT(*) AS userCount
FROM video_visitor
<where>
<if test="startDate != null and startDate != ''">
AND DATE(join_time) >= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND DATE(join_time) <= #{endDate} //<这是<的一个转义
</if>
and course_id=#{courseId}
</where>
GROUP BY DATE(join_time)
ORDER BY DATE(join_time)
关于为什么用两个集合来接收? 因为上面的data数组存储的是日期 下面的是该日期的用户数量 Echarts要求要返回两个不同的数组
思路 这两个集合里面的数据 其实就是从findcount方法里面查出的集合里面拿出来的 拆成两份 一份是日期 一份是该日期的用户数
关于Steam.Map
例子:
//提取对象中的姓名一列的数据 List<String> idcards= students.stream().map(Student::getName).collect(Collectors.toList()) //对集合中的字符转换为大写 List<String> list= Arrays.asList("a", "b", "c", "d"); List<String> collect =list.stream().map(String::toUpperCase).collect(Collectors.toList());
其中Students代表的是一个Student数据集合即List<Student> students,是一个list集合
Student代表着具体色实体类
getName()代表实体类中定义的一个get方法
map方法就是针对数据对象,通过调用实体类类中定义的方法,对对象中的某个值进行提取,或者对数据对象进行处理,然后将新生成的对象数据收集赋值到新的集合.
个人的理解:就是在流中对方法的一种调用