00:01
刚才呢,我们介绍了E叉S的基本使用,那咱们下面就开始开发一下预约统计的交换接口,我们来做一下,因为预约统计是查询某一天它有多少这个挂号数量,也就是有多少的订单数量,所以这个过程中呢,我们要查询这个O的info表里边这数据就能做到,那这个查询到,比如说我们现在咱先写一个circle语句,然后咱们一会儿,并且接口就咱要查询就是。这里边的每天有多少个这个就是订单,或者说每天有多少个这个挂号的这个数量,咱们来做这个操作,那这语句怎么写,给大家写一下啊,注意这个写法,咱们首先我们来一个select,就是查询吧,然后select里边因为现在我们要做一个就是相关的统计操作,所以统计操作呢,咱们需要写上这么一个聚集函数,或者说叫聚合函数,那我们来统计一下啊,我们来一个叫count。
01:07
比如咱们加上一个信号,然后加上之后呢,比如说给他起个别名,我们叫count,然后加上信号之后,我们再查询里边的另外一个相关字段,应该是里边有这么一个字段,咱看下这个表里边啊,这个字段就是那个日期嘛,叫这个receive date,我们来查他。把这个拿过来。然后咱给他起个别名,叫这个receive。对的。下面我们加个from,加上我们这个表叫做older。Info这个表,然后加上表之后,最后因为咱要查询就是每一天的这个数量,所以咱做一个是不是做一个分组操作呀,我加一个个。BY加上里边这个就是receive date,包括这里边咱可以做一个排序,我来一个order by,用这个receive date最后排序,所以现在我们就写了一个最基本的语句,然后大家看啊,这里边统计出来了3月4号两个3月5号,三个六号,七个七号分别都是一个,我这里边提前加了一些数据,所以现在我们就完成了一个最基本的S口语义编写,各位法律知道,而在语句中呢,在操作中就可以加条件,比如我现在根据我这里边这个医院的名称做模查询,或者根据我的时间查询一个区间范围,这个在里面加一个where语句就可以了。
02:42
所以这是关于一个语句的编写,那语句写完之后呢,咱们下面开始开发,咱看怎么做啊,首先第一个,因为这个过程中呢,我们要写到最后语句,所以我们需要创建这个map和它对应的叉买配置文件,这边的map已经创建过了,叫这个O的map,然后在里边呢,咱们创建对应的一个叉麦。
03:07
配置文件,那这配置文件我参考其他的项目给它复制,大家给它快速改一下,咱们看啊,这里边有一个插文件,那咱用它把这个改一下,我在里边创建这批文件,然后咱起名叫这个order map。在里边加上我们这个就是map那个路径,我们写一下啊,预约挂号order map,点上这个order map,这样的话,这个就是相关的配置文件,我们就写出来了,然后写完之后呢,咱们在map中给它创建一个方法,然后这个方法呢,就返回咱们最终这个数据,比说我查询之后呢,大家看它返回的是不是有多条数据,而多条数据返回的应该就是一个例子集合,最后在里边写下这个方法,它就是查询咱们预约统计的那个。
04:06
数据的一个方法,那这方法返回的是一个例子集合,然后例子集合中呢,我们加上一个泛型,这个泛型呢,在我们那里边应该有这个泛型叫order count VO model中存在,大家看有日期,还有你的数量啊,用它做到,然后咱给它起个名字,这个名字比如我叫这个,呃,咱就叫这个light。这个order count,啊,Order count,然后在里边传入我们相关的这个参数,这个参数指的就是我们设那个条件,比如现在我根据医院名称进行操作,我根据这个时间查询一个区间范围,而这个条件里边有一个view类,它叫做old count query view,咱们看一下这个view类,你看里边的值有院编号。院名称,然后你的开始和结束时间来用它做到。
05:04
我们加一个order count qua,然后这里边为了操作方便,咱在前面给它加一个注解,就这个time这个注解,然后给它起个别名,这别比如就叫VO,这咱在买币的阶段应该是一个基础部分,再用它在我们的叉漏中能取到里面这个属性值,就给它起个别名叫VO,这样的话,咱们把这个麦方法就创建出来了,然后创建之后呢,我们来到这个配置文件中,在配置文件中写上它相关的最后语句,那我们来写一下啊,首先大家注意在最后语中我们来一个select ID。ID中呢,加的就是我们这个方法的名字,跟它要保持一致,然后在里边呢,有一个叫permeter type,就是你的参数类型也可以省略,还有一个返回类型result type result type是这个order count VO,咱们加上它这个包类路径,我把这个直接复制过来,现在把这结构写出来了,然后写完之后在里边加上我们这个色后语句。
06:13
那我把语句给各位复制过来,再用它快速改成我们的效果,我们用它改一下啊,首先咱们看第一部分。Count。From就是S,我们的名字叫这个count。啊,这个名字,然后咱们这个字段起个别名叫receive date,下面是from,加上我们这个表的名称,啊,这是我们的基本结构,然加上之后呢,下面咱是不是要做这个条件的判断呀,就是我们写那个动态色有部分,那我们加个条件,咱们先加上一个where,然后在where里边呢,根据里边的条件值我们需要做个判断,如果它的条件值不等于空,咱才拼接,它的条件等于空,咱们就不进行拼接,所以我加上一个if的这么一个语句,在里边做这么一个条件的拼接,然后if里边加一个T的,那咱写一下啊,首先第一个我们用就是。
07:12
VO点上里面那个叫应该叫house name啊,咱们看一下啊,就是我们那个参数中。第一个就是这个house name,如果说这个值呢,它不等于那。然后按这个值呢,也不等于一个空字符串。House name,它也不等于一个空字符串,那就表示这里边有值,如果有值的话,我们做个拼接,咱就来一个and,这个house name。咱看表里边啊,应该有这个字段,House name,然后用它做一个like的某查询,后面咱们拼接上那个就是百分号那个效果,里边有个拼接的函数,叫这个con。这是买杯子中一个基础部分。
08:00
然后这里边我就直接使用了啊,然后在里边加上它拼音内容,前后都加上这个百分号。然后在中间部分,咱们通过井号来取到里边这个值,就是VO,点这个host name。啊,House name,所以这样的话呢,咱们把第一个条件就写出来了,通过这个判断不等于空。并且也不等于空字符串,那咱就用like拼接它这个house name的模查询,然后查询中拼接上这个百号,用contact就是一个字串拼接,然后下面的参数写法跟这应该一模一样,我们就来到课件中,我把下面这个给各位就直接复制过来了,就是里边的这几个值。然后咱们拿过来,咱们来看一下啊。然后下面指这个指就是它的开始时间,这个然后开始时间,注意我们的写法啊,咱们现在就是让我们这个时间receive it大于等于开始时间,让它小于等于结束时间,这里边加了一个转移啊,就是GTLT这么一个转移,然后现在咱们把这个就完成了,包括最后还加了一个条件意思deleted,就是它没有删除的,最后加上BY。
09:17
根据这个值,我们做一个分组操作。然后包括这里边再加上一个排序,这是关于我们这个动态circle的编写,咱们把它就快速完成了,这属于买杯机的基础部分。然后这个写完之后,咱们继续往下做,下面做什么呢?咱就需要在我们的配置文件中啊,加上一段配置,这个配置为了能找到我们的插入文件,其实就是这个配置,My be map location,加上你这个路径就是order map,这个如果不加他的话,它找到你对应的配置文件。包括除了这个之外呢,咱们需要在po文件中加上一段build的配置,就是指定我们在加载过程中也去加载插入文件,默认这文件不一定加载,就是里写到了项目打包的时候,它只会加载Java这个文件,插入文件,如果你这么写也会跟着一起打包,如果你不加的话,那咱的文件默认是找不到的,这个各位注意,所以现在map部分我们就写完了,然后map写完之后呢,下面我们来写这个service的部分,在service里边写上它这个具体方法,咱就调用刚才这个map中这个方法,把这值给它得到,那我们写下这个service。
10:36
Service呢,咱们先来到这个order service里边,在order service中来创建一下这个方法,这个方法创建各位注意啊,刚才咱们说要用折线图得到,而折线图里边各位看到有两问值,一个X。一个是Y,所以咱要返回X和Y轴的两份数据,但是它的数据呢,是一个数组形式,所以咱们在Java端什么形式会变成Jason的数组形式呢?大家想一下啊,如果你是一个Java对象,它变的是不是就是Jason对象,就是大括号那种形式,如果说你是一个什么,是不是一个Java中的例子集合能变成是不是一个这次的数组形式,所以咱就把这个X和Y轴数据都给它变成粒子集合返回就可以了。
11:26
这各位要知道啊,属于Jason的转换的技术,那我现在在里边就创建这个方法,我写一下。就是预约统计方法,咱们让它返回一个外部集合,它的key是string value是object,然后给它起个名字,比如我叫这个get count,这个map。然后在里边传入我们这个参数啊,这个参数就是刚才这个order。Count query view啊,咱看一下map里边啊,应该就是这个参数把它。
12:02
传进去,然后后面给它起个名字,这样的话,咱们在这个threat里边把这方法就创建了,创建之后我们来到它的实现类图。在实现类中把这方法咱们最终做一个实现,就是预约统计的这个方法,那咱们把它来写下啊,这个方法怎么做呢?首先我写下这个步骤啊,给大家说一下,首先它的第一步咱们先调用。Map里面的方法得到咱们那个数据,然后得到数据之后我们来获取它那个就是X轴需要的这个数据,也就是他这个日期的数据。然后再来获取它这个Y轴需要的数据。啊,外轴需要数据,比如它那个具体的数量,比如说3月1号有两个挂号,3月2号有十个挂号,把这数量得到,而这两门数据他们都需要是一个例子集合,所以咱一会儿把这过程会做到,那咱来写一下啊,一部分调map,我们写一个base map.select这个order count里边传入order count query view,对象最终返回的是一个历次集合,这是我们的第一部分。
13:24
历次集合起个名字,我就叫。Older count VO list,然后得到之后呢,咱们来得到下面的两个这个集合,而下面两个集合得到怎么做呢?多种方式啊,第一种方式也是一种最原始方式,咱把它遍利便利之后得到里面那个日期,然后把日期再给它set到我们或者说A到我们的机构中去,然后这是得到它的数量,把数量再给他A到另外一个例子中去,这么做是可以的。另外还一种方式,咱们用这个死人膜瘤的方式,应该说更加的方便。
14:02
那这里边我用什么流的方式给大家写一下啊,Order count list,咱们点上一个stream,然后在里边点上一个map,在map中呢,加上它的内容,第一个内容这个order count view。点上里面这个方法叫get,这个receive date,这是不是它的日期哦,然后这个写完之后,我们再点上一个叫这个。Collect collect啊,Collect,然后里边用这个collectors to list,这样的话把它是不是就转成一个list集合,比如这个数据我们就叫这个date list。就是它这个日期部分,所以咱用就么流的方式做转换,这样的话更加方便,Y轴的写法跟它应该一模一样,那我就把这个给各位就直接复制过来了,就是里边的这个结构Y轴,你看举着它这个数量get count,然后它叫count list,所以现在两份数据得到了,然后两份数据得到之后呢,咱们下面给它做个返回,因为现在它的数据要返回一个map集合,所以咱就创建一个map集合。
15:18
我写个缀。Object,然后map等于new上一个哈希map,咱们向map中put它这个数据,第一个数据,我们这个date list就是它这个日期。然后第二个数据。咱来一个put,这个数据是这个count list是它这个数量。把这个放进去,然后在我们的卖部机额中有数据之后,最后咱们把它做一个屡退,这样的话,这个方法我们就写完了,关于service部分,得到咱们的预约统计。然后service写完之后,最后再来写这个controller,但是这个controller最终要通过远程调用做到,所以咱们先把controller写出来,我在里边实验一下啊,里边这个controller。
16:10
那这里边呢,我们看到啊这个CTR了,我们给它在里边写一下啊。呃,这五先去的啊,然后咱们写这个ctrler crler,我们就是获取订单的这个统计的数量啊,也就是里边的这个方法,那这个我就从课件中复制了啊,因为就是一个最基本的一个方法,一个简单的crler。然后咱看一下啊,在这里边呢,我们需要调用这个order service里边,刚才咱们写的这个方法get count map里边传上这个old count view啊,当然这个方法,呃,我多写了一个O啊,给它改一下啊,多写了一个名字。多写个值啊,给它快速改一下。就是这个,所以现在controller我们就完成了,比如我们叫这个inner get count map,因为咱们远程的内部调用,现在在O里边我们进行统计数据的方法,包括结构部分,咱们就开发完成了,然后这个方法一会儿咱要通过远程调用,然后最终进行显示。
我来说两句