00:00
呃,那么再往下走的话呢,那么咱们就来看一看我们这个service层,对吧,因为你现在呢,这个呃,Memory已经有了,那么现在咱们往上走了,对吧,看一看我们这个service层,呃,那么在service层啊,那大家来看一下对吧,那我们现在呢,那也要提供两个这个方法,这两方法其实就是我们的业务方法了,对吧,那一个什么呢?一个获取咱们这个总的我们这个交易额,那么另外一个呢,是获取啊,我们现在的分值交易额啊,分值交易额那来呗,咱们现在呢,在这里把这个东西给提供一下,呃,来到我们这个service啊,来到咱们service,然后接下来在service这包的下面先呢去创建一个接口,这个接口呢,呃,咱们呢,就按照我当前使用的这个数据库端来命名吧,咱们原来有个ES service,现在呢来一个clean house service啊,这个呢是对我这个clean。
01:00
的一些操作,对吧,大部分情况下公司里边可能不会这样,因为公司里边不会像咱们这样说,你又有什么肯定号,又有ES对吧?那公司里边一般按照什么呢?按照业务对吧来命名,比如说咱们现在说处理的是我们这个order外的这个业务呀,对吧,那它就是order外的service啊,Order way service对吧,咱们现在呢,是按照目前使用的数据库对吧来命名的,然后接下来这个呢,是一个接口,那当前的接口里边呢,对吧,咱咱们定义两个方法,注意这个呢是相关的,我这业这个接口它都放在这啊,那咱现在呢,在这里定一些方法,首先第一个干什么呢?来获取我们这个总的交易额啊,某填满指定日期它的一个总的交易额啊,做交易易对吧,那咱先提供一个方法,那比如说咱们这个在we里面,我是用。
02:00
做了select什么什么呀,找它定时区分一下,那比如说叫get,然后呢,我们这个order amount,好啊,然后接下来你给我传一个日期过来啊,给我传一个日期过来们是什么呢?咱们是咱们上午第一个em是吧,Decem好了,那这个第一个,那么第二个呢,咱们来获取我们指定日期,它的一个分时是吧,它的一个分时交易额是吧,那这里呢,比如说到get order month,然后hour,对吧,然后呢,在这里也是传一个我们现在对吧,这个过去同学们这个返回是什么粒子集合呗,对,因为我现在是不是要拿着这一天,然后每一个小时对它的一个我的数据处理上,对但是注意啊同学们,那这里啊,我需要给大家的这个说明一下啊,什么呢,说我现在呢,同学们从我们这个啊,从我们这个map。
03:00
份啊,从member然后获取的我们一个分时交易啊,分时交易额它的形式是什么样的,它的格式是什么样的,是这样的吧,是一个例子的集合,注意啊,不是卖方,同学们你看一看,咱们在我这里边定义的我这个方法的返回值可不是卖方对吧?是例子的,只不过里边放的map,我们说了说了你这里你不是map吗?咱们说这个类型的,它不是我们这个短具体返回类型,如果是集合的话,它不是说你进行返回类型,而是什么呢?而是你要把当前的你查询说一条数据你封装成什么类型,就是我现在result set结果集可能呢,会有多条记录,对吧?到这里不是说你现在多少数据,你要返回的是什么例子集合吗?呃,不是这个,而是什么呢?而是其中的一条数据你拿出来,你要把它封装成什么类型。啊,你把封装出类下对吧,所以这块呢,你要注意一下,也就是我这个卖吧,其实呢,要从可利号里面查询出来它的一条数据,它的一条记录,我封装程序卖,那么这个封装是怎么封装的呢?咱们刚给大家介绍过,对吧,它在进行分装的时候,对吧,List里边有map,然后map对吧,这里边对吧,我直接这么来写了,List是我们这个map,然后map的结构是什么呢?Map的格式对吧?那应该是这样的对吧,比如说我现在这个是不是应该有一个HR啊,现为小时,然后接下来比如说我现在呢是11点对吧,这11点对吧,这是一个我们的见证,然后另外一个吧,这什么呢?Am对吧,这个呢是我们当前11点,它X的交易额是多少啊,它拿到的这样结构。
04:39
也如一条记录呢,其实它对应的map集合里面,其实呢,有两个啊,有两个咱们这个啊,两两条记录啊,就是我现在啊,从可house里边我查出来可能一条数据,但是呢,在咱们map机合里边,它就给我封装两条肌肉出来,对吧。那我如果是这样的话,同学们,那你说我现在在处理的时候,那这块我是不是最终我得给你转换成你直接这么返回是不是不太好啊,你的业务处理的时候,你是不是完全可以这样直接什么呢?直接我现在呢例子集合对吧?例子机里放在什么呢?我直接放map,这也没问题对吧,但是呢,我希望啊,那么你在这里直接给我放什么,就是哪一个小时对吧,然后他的一个焦油是多少,这就行了,但你别别这样了,对吧,这样我觉得特麻烦了对吧,你你这本身你差距出来,你作为框架来讲,同学们这没问题对吧,你告诉我当前是哪一列,它的值是多少,但是呢,我现在我已经知道了,对吧,你这块代表就是什么,就是小时对吧,你这块代表就是什么,就是咱们这个交易额,其实我可以直接把它做转换对吧,那这块呢,我再去处理的时候啊,完全可以给加了对吧?那么如果说小时的话,这应该是字串,如果交油的话,那这块呢,应该是CE对吧,在这里我们啊,现在业务处理的时候,对我其实呢。
05:56
我希望把它对吧给它转换一下了,转成什么结构呢?对吧,那我现在例子的里边放着呢,还是我们这个麦克对吧,那么这个时候它的麦吧对吧,这里边的数据这个这个这个样式啊,那就什么呢?比如说11点,然后接下来对吧,那么咱们现在呢,这里边它对应的对吧,这个值是这样啊,变成这样形式啊,变成这样的形式。
06:20
这是关于咱们这个service接口它的一个定义啊,Service接口定义好了,那么service接口定义完之后呢,那么接下来咱们来看一看这个实现类,首先呢,在这里CTRLC,然后接下来在咱们这里,然后呢,我去新创建一个我们这个类,注意啊,它的一个层次关系,这会呢,我直接在service这包下面,然后接下来在service I PM包下面,我呢去新创建一个类啊,新创一个类,这个呢到我们的根号service后面加了一个后缀ipl,然后它是一个类,让它去实现我们现在的这个可以号S的接口,那么如果实现这个接口,那么接口里边出样方法,那是不是应该实现一下呀,对吧?来我这里把咱们当前的接口里面没有实现的方法给实现一下啊,给实现一下对吧?那么咱们现在呢,先来看简单的啊同学们对吧,首先呢,我现在做一个service来讲。
07:21
大家想一想,那么到时候这个东西你是不是得创建它的一个实例啊,对吧,这个实例的创建交给谁,是不是得交给咱们spring的容器,如果你要想交给spring容器的话,你是不是得告诉人家是上对吧?那么这个曾经咱们做过对吧?你需要在咱当前这个service的时间内,上是在加了一个东西啊,再加了一个注解吧,加什么来着,加service,呃,加service对吧?然后接下来,那么你现在呢,你要想去获取我们订单,它的一个总的交易额的话,那么这个时候你需要干什么,你是不是需要去拿咱们这个对吧?这个order map这个接口的直线类呀,对,但是我说了咱们创建类了吗?咱们没创建。
08:07
对吧,咱们没创建,但是咱们买bed会把它创建的吧,对吧?所以说那你要干什么呢?你要把它给我拿进来混拿呢,咱们说如果要是想注入别的力的话,通过一个叫做autowe的注解,对吧?那么这个叫什么名字,注意啊,你当前这个接口的名字叫什么?把它呢往过来一拿,Order,咱们这个white map,然后这块呢,不能乱写对吧,也是我们这order white map对吧,但是块呢,得给他报一个错对吧,报一个什么错呢?对吧?这东西点一下对吧,就是咱们当前呢,它的一个警告级别也设置太高了,你点前面那个小这个红灯对吧?然后接下来点第一个,那么点第一个呢,你可以去编辑一下咱们inspection,对吧,那么在这里你就会来到咱们这个设置里边啊,这里边,那么在这里面找谁呢?找咱们那个spring,然后这个下面有个spring court,然后在这里呢,有一个court,这里有一个叫做auto。
09:08
对吧,就咱们自动啊,再去我们的outwa的时候,对吧,那么它呢,有个警告级别,咱们呢,默认error,你可以把它改一改啊,改成money就可以啊,改成Mar就可以啊好了,那么咱们这块呢,啊,这个其实不是错误啊,其实不是错误啊,只是咱们idea里边它的一个警告级别,为什么呢?因为他一找,因为我发现这里边根本就没有,他找了一圈啊,死命容器找了一圈,发现他也没有说叫一个什么order we member这样的一个对象给创建了,因为这个东西不是咱们自己写的,是不是我们就买班他在后台帮你自动创建的呀,对吧,在程运行的时候从反射帮你创建的,他找一时没找着,那算是给你报个错,对吧?这个呢,咱们把这几个级别降低一点就行啊,降低一点好了,然后接下来呢,如果你现在啊,可以把它拿到的话,如果你现在可以把它拿到的话,那么这个时候呢,咱们就可以去调里面的方法,比如说我现在呢,想获取我们呀,它的一个当天把它的一个订单,把这一个。
10:08
我们这个从交易额的话,可以去调select,然后呢,Order about total,把date作为参数给传过去,把date子作业参数一传过去,对吧,这是关于我们现在的第一个啊,这是比较简单的,那这比较简单的。然后接下来第二个,那第二个方法呀,大家看一看,它本身呢,要返回一个list,然后list里面放的呢,是我们这个map,对list放map,其实这块呢,同学们,那么咱们现在呢,在这里你想一想,你可以这样啊,同学们说我现在如果这样放的话,List里边放map,你看一下咱们现在这个结构访问的它最终对吧,它返回是不是这种东西啊,这什么,这是不map就行啊,对吧,所以说咱们现在我要去访问的话,把这个东西yesterday啊,这我可以给它跟写固定词,对然后这块呢,同学们我是不是直接是个map就可以了,这没必要要list。
11:04
对,你看我如果说我现在反馈格式这样了,我是不是可以直接用外部来封装呀,它和咱们刚才这个不太一样了,其实我没必要用我们这个意思,那你看一看咱们在转换的时候啊,那能不能这样说你看啊,这里是个粒子集合,然后里边呢,放的是麦对吧,然后记下来,我现在呢,我想在转换的时候能不能这样,我直接呢,不要粒子了。好,这个不叫。然后呢,你就直接告诉我咱们当前对吧,这种形式就行了,卖吗?比如说11对吧,然后呢,这个点它的一个交易额,这个然后呢,比如说12点对吧,它的交易易对吧,比如说2万对吧,是这样,我现在如果这样的话,到时候处理写时候更方便一点,对你看一看我现在要求的格式是这样啊,要求的格式这样是一个ma吧,然后这K是不是咱小时,然后这个value是不是我对应的对吧,咱们现在这个交易额呀,对吧,所是我现在在讲,我要这么转换的话,我不要例子的是不是更方便一点,因为如果要是加例子的话,这种转换其实没什么太大意义,倒没有大意义,那么如果不要例子的话,那你可以把这个东西给我干掉啊,这个东西把拿掉,然后这块呢,也给拿掉对吧,然后接下来那么咱们现在在我这个实现那里边对吧,那么这块也给改一改对吧,你改一改对吧,那我先想得到这样的东西,那么如果想得到这样东西的话,但是咱们说了,你现在从我们这个,呃,这个层返回的是这个内容,对吧,你返回的呀。
12:27
你可这样内容对吧,你返回的是这样东西,你从我们这个member接触的这样内容,对吧,然后你现在要的是这个内容怎么去转换啊,怎么去转换,就是我们现在要处理的业务啊,为什么有一个service层,你看如果说要这这代码的话,这个思从它的存在好像没啥意义。我又得写接口,又得写时现类,结果到那里边啪调一下咱们这个什么,调一下我们现在这个map就完事了,这时候这是咱们比较简单的情况,没什么业务,但我现在这里大家想一想,我是不是要把咱们现在从我外里面查的这个格式给转为这种形式呀,这其实就是我的业务啊,这其实就是我们业务。
13:13
怎么转换呢,这个东西。对吧,这个代码啊,来大一来看啊,如果要想完成这个操作的话,首先咱们呢,说你说老师我没思路对吧,那我教大家这个思路怎么来,首先呢,大家看啊,这个方法返回的是什么?说返回这个东西啊,是脉搏集合吧,没有脉搏集合怎么办呢?定义一个呗,对吧,那咱现在定一个map,比如说叫RS map,它就等于new一个R7MAP,对到这个格式什么呢?这个格式啊,这种形式它的K和V对吧,然后接下来咱们现在把这个东西CTRLV往这一放,对吧,这个最起码咱们现在返回都不是no。我知道我返回什么东西了,对吧?那么但是你现在这个麦切是个空的呀,里边没数据啊,这个数据从哪来,是不是咱们可以调我这个map,可以从map里面来获取啊,对吧?那所以说咱们现在可以去干什么,去调我们当前的它的一个map里边有一个对吧,叫like order amount our,对,可以根据我的日期来干什么呢?来获取到咱们它的一个我们的一个结果啊,比如这个项目map list啊,根据日期来获取结果,这个结果长什么样的,它这例子结合里面放的是我们现在这种形式数据,对吧?这个数据说老师为什么是这种形式呀,大家想想你自己如果去查询的话,你自己封装咱们工具类的话,你的Phoenix u它长得不就这样吗?对吧,你想一想同学们,咱们自己在封装我这工具类,从数据库里面查数据的时候,你的finish u,它不就是例子集合,只不过呢,咱们为了操作方便,你封装的是一个j object,然后它这个是个这个什么。
14:59
啊,是个map,我之所以低于我这map,是因为咱们现在买BA子在转换的时候,对吧,和map转换更容易一些对吧?就你自己写过具类,你也会封装这种形式对吧?那么买be呢,它会自动帮你对吧去封装这种形式对吧?那么如果说我现在呢,那可以拿到这种形式的个这个数据的话,咱们接下来我是不是可以对它做一个遍历啊,每次遍历得到什么呢?是不是得到其中一条记录啊对吧?所以说我现在呢,Map list的点,我们现在呢,去做一个负循环,每次遍利拿到了咱们一条记录,这条记录长这样,当前啊,这个记录长这样,那我们现在想要什么,我们现在呢,这个列我可以不要了啊,这个列我可以不要了,我直接就把咱们当前这个它对应的个小时和谁呢?和这个小时它的一个分时交易给它放成封装的一个map就可以了,对吧,那么这个东西怎么来做呢?对吧,咱们可以这样map,大家想想当前我这个map是谁。
15:59
不应该是这块的东西啊。
16:01
能理解吗?可以是吧,那卖吧,我现在要想去把我们这个小时拿出来,怎么拿,是不是钙,然后其中根据K来获取啊,K叫什么HR,注意啊,不能随便写,要和谁保持一致呢?要和咱们在这里你返回的这个边名,这个边名要保持一致啊,你扫这边名要保持一致,对吧?那么咱们现在呢,在这里啊,我在这里说注意啊,K它的一个名称啊,不能随便写。和谁呢?和咱们这个map映射文件中对它的一个查询语句的别名。要一致啊,这个东西呢,因为我要根据我当前的这个列的名称对吧,来封装的这个内容,所以这个东西呢,你不能随便写对吧?这是第一个啊,那你可以把这个小时拿出来,那么这个小时拿出来之后呢,那咱们可以通过map.cat然后谁呢,咱们是不是有个am呀,来拿到当前这个小时它的点击量,那么小时拿到了,点击量拿到了,咱们是不是可以往这里来放了呀,所以说呢,咱们可以这样RS map点铺要放两个内容,一个是我们现在这个小时对吧,那哪个小时的,那另外一个是我们当前啊的一个啊这个点击量,那么接下来这个报错误,看一看报什么错误,那么是不是类型对吧?这个这个转转化的问题啊,对吧,这个什么,这个是object到结果,现在你这里没没有下没有下什么数据啊,你得给我转换,你得给我做个做对转换呀,对吧,那么咱们现在呢,大家注意啊,那这个是不是类型的。
17:50
我这个是不是代表分式交易和呀什么类型的big December,所以说呢,在咱们这里反转一下big一个December对吧?那么咱们前面那个呢,是不是字符串啊,这字符串转换的话呢,那这里我呢就换这个形式了,String点我们的for对吧,那form me的话呢,那这里可以传两个参数,一个呢是我那格式对吧,百分号D对吧,什么代表数字呀,2D呢。
18:18
两位是吧,那接下来咱现在如果不够够两位的话怎么办,对吧,用零来补,如果不够两位用零来补,我为什么要这么做。假如说我现在是吧,我这个生成的时候几点生成的呢?对吧,八点八点生成的话,那到时候咱们再获取时间的时候,是不是就是我们这个八呀,这个小时,但是我在处理的时候呢,我要求你如果是八的话,你得给我零八。对吧,要零板,那这个你可以从过这种方式对吧,来补位对吧?这个补位表示的是我要对咱们当前这个字符串呢来做格式化,对吧?怎么格式化呢?对吧?那么咱们现在呢,当成数字来进行处理,对吧?然后接下来保留两位,那如果说我先不够两位的话,对吧?那么咱们呢,给它添一个零来补零,好那这样的话,咱们现在啊,这个就完事了啊这就完事了,来看一看咱们这个S层处理的代码,把这个呢,我说停一下。
我来说两句