00:00
那接下来呢,我们再来编写添加分组与属性的关联关系功能,当然点击关联的时候,我们先查出了当前分组关联的所有属性,如果我们想关联新的属性,我们点击新建关联,在这列出了我们可以关联的其他属性,当我们来选中点击确认新增,那就添加了关联关系,当点击确认新增的时候呢,我们会发送一个请求,这个请求就叫。Product at tr group at tr,但是是一个post请求,它会将我们这个关联关系发送过来,将他们做成一个杰森的数组,会发送当前属性的ID和它要关联的属性分组的ID。包括呢?我们可以参照接口文档,在这有添加属性与分组的关联关系,我们就来编写这个功能来复制一下来到at tr group的controller,现在我们要做一个新增关联关系的功能。还是public r统一返回R,我们就叫and relation。
01:01
在这一块呢,首先呢,他来接收一个请求,来发送post map来映射上post,接收post请求,将at tr relation,然后页面呢,会为我们提交这个数据的一个数组,所以我们使用request body request body将杰森转成我们之前封装了有一个at tr group relation的VO at tr group。Relation VO封装成它的这个数组,当然我们在这直接写list,它也是可以直接封装的,都没什么问题。好,我们来写一个list,就像VS。那么接下来就要添加他们这些关联关系,我们先来return r.OK我们希望at tr service有一个方法,当这是关联关系的功能,所以我们就来注入关联关系的这个service at tr at tr group relation service,我们就叫relation service,我们让这个service呢能保存这些关联关系relation service点。
02:10
Save bench,我们当然是一个批量保存,这个批量保存呢,会来保存我们这些VO数据,来创建出这个方法,添加上这个方法的实现。哎,Al in特首先呢,这个service它自己本身有一个sal bench方法,所这个方法呢,传入的是at t RA DR group relation的entity,所以我们想要用这个方法,那我们就应该将这个VS进行一个转换,vs.stream我们来进行一个一映射,我们将里边每一个数据我们都转成我们指定的nity,我们先来返回呢,每一个数据呢,来拗一个叫at tr at tr group relation实体类,好创建一个它,然后我们将它的属性对拷being优点copy properties,那么这个实体类里边。
03:04
也有我们这个at t ID和at tr group ID,我们将它的所有的属性值赋值给relation nity,我们最终将relation entity返回,收集成我们整个数组,点一个collect to list,那么将它们呢拿过来,最终调用这个save bech方法就能进行批量保存,那这个功能呢,就简单做好了,我们直接重启。我们来到我们的前台页面。好,现在呢,就要关联新的属性,我们先来把这些都先清空,我点击关联首先查出他自己有的属性,他现在还没有,我点新建关联来选中八号属性,点确认新增,那新增成功在这就展示出来了,那别人想要关联八号属性,比如我来新建关联,在这已经没有可关联的属性了,而且呢,如果别的分类想要关联223号分类,这个分类呢,还没有其他任何属性,我点击关联,就算是新建关联,我们也没有任何属性能被我们关联,那想要关联之前呢,一定得先来到我们的规格参数里边,自己来新增一个属性,比如我们再来添上一个机身颜色好。
04:19
寄生颜色,它也是一个规格参数,只能允许单个值。你的机身选中一个颜色,比如黑色。白色这个和销售属性不一样,属性图标呢,我们随便先写一个所属分类我们来选中。分组我们第一次新增的时候,我们可以选中,我们也可以以后在分组里边再进行属性关联,我们让它作为一个快速展示属性,我来点击确定。这个属性就添加成功了,但这一块呢,怎么没有显示,我来点一个查询,全部来看一下请求发送,查到所有的这个基本属性列表来看SQL语句在这已经出错了,在出错呢,那就是at TL service employment实现类里边,在这要设置分类和分组的名字,相当于我们在这已经查到了它的关联关系,由于这个关联关系我们来刷新一下,那发现呢,还引用了一个none的关联关系,所以我们在这保存的时候,如果是弄了,我们就不应该保存关联关系。
05:19
所以这些空指针异常我们要经常处理,所以我们要在业务的各个位置经过大量测试来考虑各种情况,那么这一块呢,就应该添加一个判断,如果我们at tr的这个关联关系查出来了。但是。它的这个,并且关联关系里边的这个at tr group ID不能是空的,它不等于闹,如果是闹了,那就没必要在这查了,那与此同时呢,我们最好再来修改一下保存方法,让保存的时候,在这保存关联关系的时候,我们必须判断条件是,并且我们提交的这个group是有信息的点get at tr group ID不等于空,不等于空了,我们再来保存这个关联关系。
06:05
好,来重新启动。我们再来进行测试。我先来查询全部。现在这些属性呢都查出来了,那在这关联一下,我想把机身颜色关联到基本信息分组,我点击关联,那么在这新建关联,那就会有一个机身颜色,我点击确认新增,那除了在这我们来可以添加上关联外,我们也可以在规格参数里边,我们再来查询全部,我们发现呢,它这可能又有问题了,好打开我们控制台,这有一个叫too many results,有非常多的结果,我们来看一下关联关系里边,我们发现11号除了关联二还11号还关联了一个now,这个now呢,是我们之前插入的一些错误数据,我把这个呢删掉。我们现在的保存方法呢,都是判断不为囊的时候才保存关联关系的好,现在我们来同时来查询全部,现在我们的机身颜色里边,我们也可以在修改这个属性的时候,重新给他制定一个新的分组。
07:08
当然这个分组必须是属于这个分类下的,那么整个的属性分组以及规格参数的整个联动我们就编写完了,包括后来的一些各种细小问题,比如我们之前的这些各种控制针,异常数据库,多条记录返回等等,我们在测试到这些功能的时候呢,我们再进行一个修改。
我来说两句