00:00
接下来我们按照接口文档先来编写获取分类属性分组的功能。首先按照文档约定,我们必须是一个get请求发送杠product at tr group list,注意这一块,在路径变量上携带上三级分类的ID,我们就查出这个分类下的所有属性分组,那来到我们的后台代码controlrler,那主要查属性分组,有一个controller叫at tr group属性分组,它对应操作的呢,就是我们at t group这张表,我来找到我们这个路径product at tr group list,这是它原生的list,那现在呢,要带上三级分类ID,我们进行查询,所以我们来在这改变一下这个list呢,必须来携带另外一个叫cat log ID,这是一个路径变量,所以我们在路径上这么来写,要获取路径变量的值,我们可以使用long来获取我们这个三级分类的ID。由于它是路径。
01:00
变量,我们要标注pass variable pass variable路径变量,取出它的值。然后我们在调用查询的时候,这是默认生成的分页查询,以前呢,它只会传入这个map参数,这个map参数就包含了这些分页的请求数据,我们整个系统逆向生成的公共模型里边,分页请求就是这样包含这么几个数据,而们现在呢,多传了一个catalog ID,所以我们专门再来编写一个方法,At tr group service query page,我们呢,传入它提交过来的分页参数以及三级分类的ID,然后返回我们整个分页数据,这个分页数据呢,也被封装成了一个叫配置UUS,好封装在这,我把这个先注掉,Out in的,我们先来创建出这个方法。那么在接口未知创建出这个方法,再来添加它的实现al in添加我们方法的实现,实现呢?在这儿首先我们前端规定,如果没有三级分类,那么三级分类ID那就传零,没有选中三级分类那就传零,零就是查所有,如果有了就查指定的,那么可以在这先判断一下if,如果我们传过来的三级分类的ID等等零,那我们就需要查询所有,那查询所有如何查呢?我们还是调用默认生成的this。
02:31
那么当前类呢,有一个默认生成的方法叫PA,这个PA置呢,传一个IPA,就是封页信息,再传一个waper叫quary waper就是查询信息。那我们IPA的获取呢?我们也封装了一个工具类,叫query,这个quary也是逆向封装的工具类,可以将我们前端提交过来的这个map传进来,调用get page方法可以帮我们得到IPA,也就是从map中会提取各个变量的值,比如提取第一个我们想要去第几页,如果我们发送请求带了page置等于一,那我们想要去第一页,包括要多少排序字段,排序方式等等。
03:15
这些呢,都是封装好的工具类,那么只需要来进行调用就行了,就像它以前在这调用一样,我先用new一个query么,New query的时候呢,我们先将PMS封装来的传递进来,让它给我们返回一个ipach分页信息对象,里边主要来封装我们各种排序信息,以检索页码条件等等,那接下来第二个,那就是要封装一个查询条件,这个查询条件呢。我们现在用newer,我们没有任何条件的情况下,那它就是查所有我们将这一块IPA对象会返回一个它。而整个返回的IPA对象,那为了方便,期间我们又有一个工具类叫配置U,求把我们的配置对象往进一传,它会自动帮我们解析出当前页码以及总页码、每页大小等这些信息,包括我们查询到的记录,它会给我们封装到我们指定的这些属性里边。
04:16
那既然都封装好这些工具类,我们就直接使用就行了,包括大家去公司也都直接封装好的,那我呢就可以直接来这么来写,Return一个new page UUS,用这个工具类呢,将刚才查询过的结果一封装,最终返回,返回的这个东西呢,它就是我们指定的这样有total count page这些,包括list是真正查出的内容。而最重要的就是,如果我们有catalog ID else,那相当于我们要按照三级分类查,按照三级分类查呢,我们是这么查的,Select星首先from我们这张表。我们来找一下这张表,这张表呢叫at tr group。
05:01
从这张表里查,我们的查询条件是where where,什么呢?Where,我们的cat log ID等于指定的值等于指定的值。并且我们前端呢,还会给我们提交一个数据,非常关键的数据,首先来接口文档里边,大家看封页的公共模型里边有一个叫KK,就是检索关键字,那来到前端逆向生成的每一个这块都有一个输入框,我们可以输入一个东西,比如AAA,我点一个查询,那他就会给我们发送请求,并且带上一个叫K等于AAA,那拿这个AA相当于要进行检索,而且这个检索呢,我们一般是这样,我输了个AA,可能它的组名叫AA,或者我还想检索描述里边包含AA的,或者呢我输了一个12,有可能组名是包含12的,有可能我还想查分组的ID就是12的,所以我们是多字段模糊匹配,所以我们现在在这儿还要判断,如果有KP里边点get,我们呢,如果给我们提交了这个K,那就是检索条件。
06:11
那提交上来了,这个检索条件它不是空的,那我们就要将这个检索条件拿来进行查询。但是我们这个检索呢,带上三级分类,我们的SQ语句应该是这样的,三级分类ID是要这个,并且要满足我们的检索条件,那检索条件呢,我们可以是这样,并且呢,我们的阻ID等于我们传过来的检索条件K的值,关键我们不只拿组ID查,我们有可能还按照组名查,所以我们可能是这样子的效果。或者,但是记住我们这个或者呢,是一个小括号关系,就是这两个或者或者呢,我们这个组名like,我们传过来的检索条件。K。
07:00
所以我们想发这么一个查询,前面是确定的,那后边and的这个条件他满足或者他满足都行,那我们这个怎么做好。主要是构造我们这个查询条件,查询条件呢是要使用这个new corryper来构造的,好corry wrapper corry rapper里边呢,泛型我们要查哪张表,就写这张表对应的实体类,就是我们查这张表,然后泛型写这个实体类。那么的条件是什么?我们要根据不同条件进行构造好,我们把这个挖per先放在这儿,我们首先第一个判断条件,如果我们这个K不为空,但无论怎么构造,我们能进这个else,它能log ID已经不不为空了,所以我们在这儿构造条件的时候呢,我们先构造第一个条件点EQ,比如说呢,我们查询的时候,必须让我们这个三级分类的ID等于我现在传过来的指定值,那剩下的条件要不要构造?
08:02
我们这儿呢,有一个错误,主要把这一块泛型要加上。好,我们的三级分类ID必须等于这个值,而剩下的如果有K了,我们来检查一下,Spring里边有一个工具类叫string us,如果他给我们传过来的这个K不是空的,如果这个K不为空。我们在这判断不等于空,我们这个条件呢,就必须继续构造,构造什么呢?我们有一个叫and,我们相当于用并且的关系关联这么一组条件,那and,而且呢,And里边的这个关系啊,它是一个括号,所以我们把新的关系我们写到这个里边,它呢可以接受一种consumer函数是编程的,那我们在这如果这么来写,那我们这里边的条件呢,就是它里边的,所以and and呢,我们这先写一个obj,那我们and什么,我们在obj这给它串联条件,第一个条件就是。
09:02
这个分组的ID等于指定的值,等于我们指定的这个值,这个就是我们查出来的这个K或者呢。我们继续点O或者什么,或者我们的这个at tr group name也等于指定的值啊,E口它也等于我们不是等于我们是like,我们先把这个写在这,把这个条件呢改成like,这个like呢,它相当于是双百分号的like,如果我们只想加左右摆分号,它有相对应的like left和like right。好,那么现在呢,就写了这么一个语法,那最终这个挖per构造出来以后呢,我们就要利用这个挖per进行查询,还是掉这一堆方法,我把这一堆复制过来,CTRLV,我们现在的分页条件在这有这个查询条件,就是我们上边构造的rapper。
10:01
那查出来以后呢,我们最终给他return出去。那写在这好return出去,Return一个,我们利用page us将它一封装。赵。这是我们编写的这个方法,而且为了这一块有效果,我们可以打印一下SQ语句,我们看我们配置文件中以前有没有配置,诶,我们配置了come and、硅谷mail都会打印S语句,好来重启我们的product。我们使用曼先来测试一下。那在这。如果来发送这个请求,我们会得到分页数据。打开post麦。我们所有请求呢,还是一样,先发给网关,由网关转交过去API product,然后接下来。它下面呢,有一个at t group复制过来,Product at t group。加上。我们来查哪个三级分类的list catalog ID走。
11:04
但这个三级分类的ID,我随便写一个。然后呢,查询要带的参数有这么多。由于我们是分页,所以我们可能会带page,我们想要去第几页,包括如果有检索关键字,我们也可以带上K,我们就先带两个最简单的,我们想要去第一页和带上K,我就叫AA。我来先send发送请求。那现在看到呢,这success成功查不到任何数据,主要看SQ语句。我们发的语句呢,是select,把全字段的内容查出来,From这张表where,我们看一下where,条件can log ID等于指定的值,并且我们这一块是两个O,随便哪个成立都行,分组的ID等于它,或者分组的名like它。那么这个问号呢,传过来的值我们也可以看一下,自动已经拼成了双百分号,在like的时候。
12:00
那后台呢,我们就测试没问题了,我们主要调整一下前前端,现在我们来到前端代码里边,我们希望的就是当我来点击手机这个三级分类的时候,这一块动态在变,查出它指定分类的,先来到我们这一块at tr group里边,它这呢有一个table表格,这个表格里边是来查我们所有数据的,只不过这个查数据发的请求跟我们以前不一样,他在这发请求呢,他没有带那个路径变量来给它带上,而且这一块呢又是动态的,所以我希望我刚才点了哪个三级分类,三级分类的ID呢,我先放在这儿,比如我就叫count ID冒号默认上来就是零,然后呢,我们动态来取出CID的值,那在这路径变量的时候,Dollar符大括号,我们使用this.cant ID,我们使用标号。我们取出三级分类的ID,那默认呢,它就是查所有的,而且他查的时候它会给我们发送配置,它自己也保存了,我们要去哪一页,包括每一页多少,包括我们这有一个K检索条件,我们在这只需要改一下它,另外我们需要再点击三级分类的时候,我们在这儿绑定了一个方法,那在这能感受到点击了哪个菜单,如果点击了它,我们只需要动态的给他改一下count ID,让他重发一下请求就行了。所以我们在这判断,如果首先我们不能说点什么都查,我们点这一级分类这也不行啊,我们要查的是三级分类,点一级分类是没用的,我们要一直点三级分类,我们会查它对应的分组,所以我们先来判断当前点的这个分类是不是三级分类,我可以拿到它的这个no的节点信息,在节点信息里边看一下它的level,如果是三,那就是三级分类,那么在这呢,来判断一下当前点的这个节点的。
13:58
Level。如果等等三说明它是一个三级分类,被我们点了这个三级分类,然后我们取出它的ID,那就是当前节点的ID,我们可以从data中取,从node中取,都是一样的,Data中呢,那直接可以使用TID取出这个ID,把这个ID呢赋值给上边我们view保存了一个this,点看到ID。
14:27
赋值了,那赋值了以后怎么办呢?我们需要让它重新查询,所以我们只需要在这继续this点调用一下get data list,让它重新获取列表,重新查询。保存看一下页面效果,我们将页面的所有的请求先清空,那先看我们点击一级分类,这是没什么动静的,包括我们刚来刷新这个页面的时候。他发的这个请求,他查的是零,我们看到这是product at加group list,零他是查所有的,只是我们所有的没数据,而且检索条件我们也没有,那接下来我们来选中一个分类,那当点一级分类的时候没啥动静,不发请求点没法请求,那当我们点三级分类,我点个手机点,诶我们请求发出去了,是查询225号的所有分组数据,只不过我们现在没数据,所以没有查出来,那我们添上几个测试数据,现在呢是225号菜单,我们看它的路径变量,225,好,我们就来给分组这张表里边,我们填上225这个分类ID对应的几个菜单数据。
15:43
比如第一个组的名就叫主体。排序零,该描述我们就不填了。第二个基本信息。还是225保存,现在来测试一下效果。
16:02
当我们来点击手机,诶,我们发现发送请求查225的数据已经出来了,那点对讲机,那查对讲机的没有相关信息,同样我们来点回手机,那现在来测试模糊查询,比如我来搜一个一,我们可以查出ID是一的,或者名字里边包含一的,我点个查询。来只查出了ID是一的来查主,我们按照名字来模糊检索查询,也能查到这个主。包括基本信息,基本。测试,哎,也是可以的,那下一节课呢,我们就来处理一下新增。
我来说两句