统计分析-图表显示(接口) | 学习笔记

简介: 快速学习 统计分析-图表显示(接口)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)统计分析-图表显示(接口)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11511


统计分析-图表显示(接口)


目录:

一、StatisticsDailyController

二、StatisticsDailyService

三、StatisticsDailyServicelmpI


一、StatisticsDailyController

@Autowired

private StatisticsDailyService staService;

//统计某天注册人数,生成统计数据

@PostMapping (" registerCount/ {day}")

public R regi sterCount (@PathVariable String day) {

staService. registerCount (day) ;

return R. ok() ;

}

//图表显示,返回两部分数据,日期 json 数组, 数量 json 数组

@GetMapping (" showData/ [type) {begin}/ {end}")

public R showData (@PathVariable String type, @PathVariable String begin,

PathVariable String end){

Map<String, Object> map = staService. getShowData(type, begin, end) ;

return R. ok(). data (map) ;

}

}

//要根据三个条件就是统计因子。包括开始时间,结束时间三个参数通过三个参数查数据库,然后返回小的结构,在结构中有两部分。一问是日期的数字,一问是这个数据的数字。

然后来到这个 STA 这个里边。第一个征收数据,然后写第二个,第二个就是图表显示,然后返回,有两部分数据,一问是日期的速度。然后第二部分是那个数据的或者说数量数组,把这两返回。

下面写方法,在方法中,比如说我写一个 GET 提交,因为就是查询,在 GET 提交中,显示数据。给它起个名字,显示数据,showData。后面有三个参数,但是三个参数可以传对象,专门传三个值。

传播对象也一样的,第一个值是在那个统计因子,我就叫这个 type,是注册人数登录人数还是什么人数。第二个是开始时间比例,第三个结束时间 and 三个参数,然后写完之后下面写方法,方法名字就叫 showData。

然后在方法里边把三个参数快速得到还是用这个注解,第一个 type 统记因子,然后第二个叫笔记。第三个 and 结束时间,有三个值,得到之后下面就调 Service 中的方法把这个根据条件查出来,给它做个显示,然后来调一下,这方法叫 showData。

//在里边把三个条件值调进去。因为现在数据有两部分数据。一个是日期,一个是数量,所以之前说过啊,就是如果说返回多个数据,为了取值方便,一般建议给它写个什么结构。

是不是一个 map 结构,因为 map 结构是不是有 key。value,但是你不反回于 map,也可以只是,取值更加方便一点,所以现在给它还是把一个 map 结构让 map 中有日期还有数量。

//map 集合然后里边就是这个 Map<String, Object> map = staService. getShowData(type, 然后写完之后把这结构,最终做个。就写一个 R 点 OK 点上 data。这样的话把这个 control 的部分就解出来了。然后写完之后下面写它那个 Service。在 Service 里边做这个这种过程,来实现一下。


二、StatisticsDailyService

* Cauthor testjava

* Csince 2020-03-14

*/

public interface StatisticsDailyService extends IService<StatisticsDaily> {

//统计某一天注册人数,生成统计数据

void registerCount (String day) ;

//图表显示,返回两部分数据,日期json数组, 数量json数组

Map<String, Object> getShowData(String type, String begin, String end) ;

}


三、StatisticsDailyServicelmpI

sta. setCourseNum (RandomUtils. nextInt(100, 200)):

baseMapper. insert(sta):

//图表显示,返回两部分数据,日期json数组, 数量json数组

@Override

public Map<String,Object> getShowData(String type, String begin, String end) {

//根据条件查询对应数据

QueryWrapper<StatisticsDaily> wrapper = new QueryWrapper<>():

wrapper. between(column: Hate calculated", begin, end) ;

wrapper.select("date_ calculated", type) ;

List<StatisticsDaily> staList = baselapper. selectList (wrapper);

//因为返回有两部分数据:日期和日期对应数量

/前端要求数组 json 结构,对应后端 java 代码是 list 集合

//创建两个 list 集台,一个日期 list, 一个数量 list

List<String date_ calculatedList=new ArrayList<>();

List<Integer> numDataList=new ArrayList<>():

//遍历查询所有数据list集合,进行封装

for (int i= 0; i< stalist. size(): i++) {

StatisticsDaily daily = staList. get(i);

//封装日期 list 集合

date_ calculatedList. add (daily. getDateCalculated());

//封装对应数量

switch (type) {

case"loginInum":

numDataList. add(daily. getLoginNum()break;

case "register num":

numDataList. add (daily. getRegisterNum()) ;

break;

case "video _view_num":

numDataList. add (daily. getVideoViewNum();

break;

case "course_num" :

numDataList. add (daily. getCourseNum());

break;

default:

break;

}

}

//把封装之后两个 list 集合放到 map 集合,进行返回

Map<String, Object> map = newHashMap<>():

map. put(" date_ calculatedList" , date _calculatedList);

map. put ( numDataList , numDataList);

return map ;

}

}

//写它的实现类,把这方法最终写出来。先做一个快速分析,首先第一个要查出数据,所以可以根据这些条件把数据查出来就可以了。就是什么条件,那就查出什么数据,然后查出数据之后,把数据按照结构,做个封装,先做一个查询,因为条件是有三个,具体说是两个,这是显示的内容,那条件用之前的方式。

//设置条件注意,条件是不是就是开始和结束时间,比如说现在要大于开始时间是比较小,就是时间,或者说大于等于开始时间,小于等于是结束时间就可以做到,如果是大于等于方法 PE 是小于等于用 Le,还需要有方法,between 在这个范围中,是大于第一个值小于第二个值,就大于等于第一个值,小于等于第二个值,所以现在用的 between 也可以做到,或者说用 GELE 也是一样的,换一种想法,换个 between。然后在 between 里边,然后查询这个日期范围的值。

//注意,不要写错,日期应该是这个字段,因为保存的进行存储,那么就查 Data 字段,把 Data 这个字段拿过来,然后里边加上这个开始时间,还有结束时间,按照这样的话,根据条件把数据可以查出来,然后查出来之后,调那个方法就是 baseMapper 里面的方法,我们叫 selectlist,把 wrapper 传进去,最终返回结果。

比如 selectlist 查出来,这是写的一个查询条件的一个方法。但这个过程中,其实这么写没有问题,但是想写的就是更精准一点,或者说更完善一点。

//type,就是现在要选择是查询登录人数还是注册人数,还是这个播放数量,比如现在选择登录人数,查的话,只需要把登陆数量查出来可以了,别的数量不需要查。

//Slide 是什么意思,指定查询的力,那就指定一下,第一列要查的肯定有这个日期,肯定是必须的,复制,就是先查日期。然后第二个查要查,是选择是登录还是注册还是什么播放,在这个下拉列表中有个 vale 值,注意 vale 值和这个字段名字,是一样的,也就是说传这个 type 就是这个值,这个值就是字段,所以这位置可以写个 tap,查出来,所以现在查的话,第一个日期,第二个是选择哪个,是登陆就查登录字段,是注册就查注册,这么查肯定是更精准,就是要什么就给什么,不要的就不给,因为肯定是最精准的匹配把这个查出来。

这是第一部分,加个注释,根据条件查询对应的那个数据,完成,然后完成之后,下面把数据做一下封装,那这个该怎么封装。给讲解一下,就是第一个,因为返回的有两部分数据。

哪两部分,一个是日期,还有一个是日期对应的那个数量,比如现在日期3月3号,3月5号,3月9号,查注册,那3月3号就用10,3月五号对应40,3月9号用3,这叫日期和日期对应的数量,封装,注意,这里强调,因为现在在前端是数组 json。后端就要把这个变成结构。

//json 数据只在前端才叫 json,在后端都叫字符串,所以在其中 json 应该是有两种形式,一个叫 json 的对象,就是大括号这种形式叫对象,比如说简单写一个这种形式。

比如里边第一个就叫 name。然后,Lucy,第二个叫 age,20,这个叫 json 对象,然后还有一种是叫 json 数组,就是现在要这种形式,这种形式比如里面有一有二有三,或者说在里边数中这个字符串,比如说 a,BB,CC,就是这种形式,所以这个是 json 的两种形式,一个是对象一个是数组,现在要求反而是一个数组形式注意。这位是前端的叫法,叫前端中是对象和数组,后端都叫字符串。

在 Java 代码这个过程中,就是后端 Java 代码中,什么形式会变成 json 的数组结构?因为后端结构外乎几种形式,要么字符串,要么对象,要么集合,强调后端什么变成数组。

//list 集合,会变成 json 的数组形式,比如说这里建个 list 集合,用 json 转换,它就会变成 json 的数字形式,这是一个特点。所以把它记住,而在后端,假如一个右侧对象,就会变成 json 对象形式,或者说 map 也会变成一个一层对应形式,它是这种结构 list 集合会变成这个数组,json 对象形式或者 list 集合以后会变成 json 的数组,json 对象格式。

下面按照这种结构做封装,回到这个代码中,现在是有两部分数据,那怎么做两部分数据可以建 list 集合一个代表日期的一个,代表数量的。然后,向日期中放日期数据,数量中放数量数据。最终,都放到 map 机构中做个返回就可以。所以。现在这种形式用到的这个结构。建两个 list 集合,一个代表日期,一个代表数量,然后向里面放数据,最终都放到 map 中返回,就会变成想要的这种格式,因为 list 集合会变成数组形式。

做一个说明,因为前端要求是数组的 json 结构,它对应后端 Java 代码中,代码是一个 list 集合的。现在创建两个 list 集合,一个是日期的 list,一个是那个数量的 list,然后进行封装。

//这个类型,然后日期起个名字,list 等于 new 上这么一个 ArrayList,把这个创建,这代表日期,然后再创一个 list集合代表那个数量。数量,就来一个 integer,数量起个名字,比如说叫 num。DataList 这代表数量,new 上,这叫release。

把这两个创建,这个步骤做完之后,下面把数据项里边封装就可以了,最后放到 map 中。当然现在数据是在这里边,这虽然也是 list 集合,但是变的数据肯定不是想要的结构,因为要想要两份结构,是做不到这种结构的。

相关文章
|
1月前
|
供应链 数据可视化 算法
60种常用可视化图表的使用场景——(下)
60种常用可视化图表的使用场景——(下)
56 1
|
1月前
|
供应链 数据可视化 JavaScript
60种常用可视化图表的使用场景——(上)
60种常用可视化图表的使用场景——(上)
51 0
|
3月前
|
JSON 数据可视化 数据格式
数据可视化——根据提供的数据,将数据经过处理后以折线图的形式展现
数据可视化——根据提供的数据,将数据经过处理后以折线图的形式展现
|
4月前
|
BI 数据格式
如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?
如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?
|
JSON 前端开发 JavaScript
统计分析-图表显示(前端) | 学习笔记
快速学习 统计分析-图表显示(前端)
163 0
|
JavaScript Apache 开发者
统计分析-图表显示(页面整合) | 学习笔记
快速学习 统计分析-图表显示(页面整合)
114 0
|
数据可视化 BI 定位技术
统计分析图表显示(其他样式) | 学习笔记
快速学习 统计分析图表显示(其他样式)
54 0
|
数据可视化 数据挖掘 开发者
通过图表展示数据分析结果 | 学习笔记
快速学习 通过图表展示数据分析结果
144 0
通过图表展示数据分析结果 | 学习笔记