00:00
前面我们编写了进入发布商品里边要预先请求的两个接口,第一个是我们查取所有的会员等级,第二个是我们选中某一个分类以后,要查询这个分类关联的所有品牌信息,那么现在呢,都已经完成了,那接下来当我们来点击下一步,我们要录入商品的一些基本参数,这基本参数呢就指的是商品的这些规格属性,那么点击下一步,它又要发送一个请求,这个请求是product at tr group,相当于查225号这个三级分类下的所有属性分组,而且这个属性分组呢,还要带上所有的属性,因为我们在这儿要录入商品的这些属性信息了,那这个接口呢,我们也还没有,那按照接口文档来到这儿,第17个,那就是我们的获取某个分类下所有的属性分组,以及它关联的所有属性,那最终呢,我们希望返回的是这样子。首先中间的路径变量传入的是一个三级分类的ID,查出这个三级分类下关联的所有属性分组。首先前面这一块呢是属性分组信息,但这个分组下有可能会有超多的属性。接下来使用at t RS又将所有的属性信息包括进来,那我们就来编写这个接口,我将这个路径复制过来,来到at tr group的controller。
01:24
Product at tr group的controlrler,好,来到这现在呢,我们要获取我们当前分类下的所有属性分组,而且还要带上它所有的属性。好,那前置路径不用写了,我们就把后置路径来复制过来,那现在来写一个public啊,Get at tr group with at tr好,我要获取某一个分类下所有属性分组,以及它的属属性啊,我们来发送get mapping请求,这个mapping请求呢,映射我们这个路径,这有一个路径变量来写上pass variable路径变量要获取我们cat log ID的值,好,我们给它long一个cat log ID。
02:16
我们获取到三级分类的ID以后,我们就希望有一个service能做这个事。要做这个事,首先第一个我们要查出当前分类下的所有属性分组。第二个查出。每个属性分组的所有属性,那么将它们最终是整合起来一起返回的,所以我先来编写一个VO,那么这个VO呢?比如我们就叫at tr group with at tr with at t RS VO,好,那这个at tr group里边不仅有group的基本信息,我们可以将at tr group的基本信息我来复制来。
03:06
这是一个分组的基本信息,CTRLC,我们放到我们这个VO里边,我们再将这个分组里边的所有属性我希望封装在这,有一个叫private。List类型的,我们这个叫at t RS,因为我们看到前端的接口文档这一块要求返回at t RS,又将at tr的所有信息直接封装进来,所以我们在这一块呢,就可以直接写成at tr nt t来,这就返回的是整个实体信息好。那我们这个VO就写好了,那我们最终就是希望我们有一个service能得到这个结果。那么就调用at tr group service,我们自己的service点一个。可以get at t group with at t RS,好,我们现在呢,按照三级分类八。
04:04
八我们的cat log ID,那是按照三级分类的ID,那我们方法名呢,宁愿很长,也一定要见明之义,让大家一读方法名就知道这个方法是干什么的好,然后呢,我们来返回一个list,最终的这个list就是返回我们整个at tr group的这个VO。将它导入进来VS,那最终呢?我们希望页面就会得到这样的数据。Return r.OK点一个put put的data data的VS,好,我们封装到这,然后呢,我们接下来。创建出这个方法create method好,我们再来创建出它的实现al好添加实现,那这个方法呢,就可以根据三级分类。根据分类,根据分类ID查出,查出所有的分组,以及这些组里边的属性。
05:14
当然这属性呢,都只是我们现在要用的这些规格参数,好,那我们先要做的第一步就是查询分组,查询分组信息。那分组信息要用关联关系来查询,我们可以来看一下,我们每一个分组呢,它都关联了一个三级分类ID,那我们先查出我们所有的分组,我们自己的service呢,肯定有一个方法,this.list它是帮我们来查询所有的,那所有的条件是什么呢?我们整一个corry rapper,好,我们要返回at tr group entity,好点一个E口,我们有一个字段。加catalog ID等于我们传过来的值。在这儿。
06:00
复制过来,好,那我们先调用自己的service的list的方法,逆向生成的这个list的方法,我们先来查出我们这个三级分类下的所有分组,那接下来呢,基于这些分组,我们要查出组里边的所有属性,这是我们第二步查询所有属性,而这个分组呢,最终还要封装成这个位置at TV,所以我们把它点一个stream map一下。来写一个group箭头函数啊,那最终呢,是要返回return,你有一个叫at tr group with at t VO。那将这些数据呢?我们要收集成一个集合to list,那把这个集合最终返回给页面就行了,我们直接来return。Collect。但这里边的数据,首先分组的基本数据跟它都是一样的,属性都是对拷过来的,我刚才属性都是复制粘贴的,所以我们copy properties,将我们分组的基本数据先复制到我们这个VO里边,好,我们将这个VO放在最前边,那么当at t VO。
07:13
好,我们将它复制到这,接下来我们要查询这个分组下的所有属性,那属性的查询就要用at tr service,我们来到这,我们注入at tr service at tr service at一个autowa,那它的里边呢,就应该有一个方法是按照分组的ID get at tr,我们之前写了一个获取关联的所有at tr,按照分组的ID,那就正好。我们将分组的ID传递过来。点一个get我们分组的ID,这个没get来,那是没有添加at data no bank的这个get set注解好,填上了以后呢,我们来调用,首先对拷过来,那就会有一个分组的ID,按照分组ID就能找到所有的at tr sat tr,好,那这些at tr呢,我们最终放到这个at trs VO里边,点set一个at tr,好,这是当前分组关联的所有属性,那最终呢,我们将这个数据返回,我来重启一下商品服务。
08:28
我们再来进行测试。我们还是回到上一步,上一步我们选中了一个三级分类,是手机分类下的,那手机类下呢,我们之前维护了一些分组,当我点下一步的时候,我们就要查询分组信息,那这个分组信息呢,我们现在查完了,查完我们在这一块就会有展示。首先主体组里边有两个属性,基本信息组里边三个属性,主芯片里边三个属性,这些属性都是什么折,我们可以自己来录入,比如主体里边入网型号,我们之前呢有可选的值,如果我们录的值都没在可选值里边,我们也可以自己写,比如AAA。
09:09
那写好以后呢,选中就行了,而且大家注意我的这个入网型号啊,它是一个单选,但是为什么它是单选,这就是由于我们在平台属性规格参数,在入网型号规定的时候,我们将入网型号这个值类型规定成了单选,那它的可选值列表虽然有这么多,但是在我们在这儿进行录入数据的时候,那只能选中其中一项,那我们可以将某一个改为多选,比如来到规格参数里边,我们将它下边的材质工艺,比如我点一个修改,我们给它呢可以允许多个值,其中有一个值叫以官网信息为准,那可能还有陶瓷,比如我们来写一个陶瓷。那还有一个玻璃,好,我点一个确定。那现在我们的这个计生材料就是一个多选,那来到我们这儿进行录入的时候,我们的基本信息,计生材料里边就应该能多选,当然这是上一次的结果,我们让它下一步重新查一下,那下一步呢,会发送请求重新来查询,查询我们来到我们的材质工艺里边,由于这还是上一步的缓存结果,我们直接把它关掉,我们来刷新一下就行了。
10:23
来,我们先来选中三级分类。我们来选中一个品牌,我点下一步的时候,就会查出我们这些所有的属性分组,以及它的属性信息,我们来到基本信息里边,它是多选了,我们就在这儿可以选中多个了,包括我们之前在录我们的这些规格参数的时候,我们可以来看一下。规格参数每一个属性呢。除了是单选还是多选,以及它的可选之外,那还有一个就是它的我们这个叫是否是快速展示的,快速展示呢,就是直接把它展示到介绍这一块,那我们在属性规定的时候,可以认为它是快速展示的,但是我们现在这个SKU在录的时候,或者我们商品在录入信息的时候,不想让它快速展示,我们也可以把这个勾重新去掉,这个去掉呢也不影响全部,只影响我们当前商品,所以我们就需要在录值的时候,我们可以将所有可能的值都来录上,我们在这方面的话,我们就可以一次性选中,否则的话呢,我们也可以自定义输入一些自己的值,包括如果哪个属性我们没有值,不想录了,我们也可以不录,特别像手机分类下,虽然大家都是这个手机分类,但不是所有手机都会拥有分类下的所有属性,也不是每一个属性都有意义的,所以我们也可以在这儿放弃不录,那最终呢,我们都会只将我们录了的数据。
11:48
提交书上去,比如我先录了一个机身长度和材料工艺,主体里边呢,我都没录,我点下一步,点下一步的时候呢,我先来看控制台,在控制台呢,我会给大家打印base at tr,我们录了的一些基本属性,我现在就录了两个,一个at t,它是这个一一,这是机身的长度,另外一个是at t,它的values叫玻璃陶瓷,这是寄生的材料。
12:14
所以呢,我们最终前端页面只会将我们录了的数据收集起来,那我们这个接口呢,就算是调试通过了,获取所有的分组,以及分组里边的所有属性。
我来说两句