00:00
那接下来我们继续进入保存SQ的流程,那这个SQ的信息呢,全部都在我们VO里边,有一个叫get sqs里边,那SQS里边封装了SQ的所有值,我们进行分布保存好这个SQ里边的每一个信息都包含当前SQ的名字,以及SQ的所有图片,还有它销售属性的这些值,那么就来挨个先来保存SQ的基本信息,那基本信息我们肯定要调用SQ的这个service,来,我们来调用SQ info的service SQ info service enter,一个owa,然后呢,这个service它来帮我们来保存基本信息来过来,由于SQ众多,所以我们再来遍历进行保存,点一个stream,点一个map,每一个SQ呢,我们都来进行这样的处理,当然我们可以在这里边呢,来收集每一个SQ,最终收集成一个集合,让SQ,让SQ的英O直接批量保存。
01:00
当然我们会发现每一个SQ自增出来的主件要跟它的这个销售属性或者图片要进行关联,所以呢,我们就在这直接调用for each方法,当然在这调用for each之前,我们肯定得判断这个SQ不等于空,那先让它不等于now,并且我们这个SQ点一个size是大于零的,那我们才有必要来做下边的事情。那么SQ的for我们来进行遍历,遍历里边的每一个SQ,这是我们的item,那每一个SQ呢,我们都先要封装它的基本信息,这个基本信息我们希望你有一个叫SQ英O实体类啊,这个实体类里边呢,有SQ的一些必要信息来点进来,比如SQ的ids PU,它对应的商品ID,包括对应的SQ的名字描述以及分类信息,包括它的默认图片、标题、副标题、价格等等。
02:00
还有这个销量,但销量现在还没有,所以这些信息要构造呢,我们先来对拷一下,我们用being u先copy properties,那将当前正在遍历的这个item里边的值都拷贝到sqf for entity里边,但是它肯定缺少一些东西,比如我们来看每一个SQ里边这个name title s title这些都对,那SQ的这个描述呢,我们在这暂时没有收集,那我们就来先来整其他信息,价格这些属性名都是一样的,那相当于只有这四个属性,那是准备好的。那其他的属性呢,我们就要手动的来帮SQ INF for enity来操作一下,那SQ INF for enity我们还要set品牌ID,我们这个SQ对应的品牌ID,这个品牌ID肯定跟着s po来,所以我们这个sqo的品牌ID是什么,那它就是什么来get品牌itd,包括呢,SQ英O实体类的比set。
03:00
这个三级分类ID也是跟着po来。我们只是在这做了一个冗余存储啊,包括SQ英法NTT的,我们来点set这个cell count销量,那默认是零,我们给一个默认值吧,0L,然后呢,包括SQ INF enity,点一个set,主要在这呢,有一个sqidd,它对应的S的ID,那肯定还是INF fority里边的ID。另外就是我们SQ inferendity里边有一个叫set SQ default image。也就是我们SQ的默认图片,而这个默认图片我们是如何知道的,那是在我们当前正在遍历的这个里边,我们点一个get,它的这个images里边封装了非常多的图片,这个图片里边如果返回到某一个图片,它的default image字段是处说明就是默认图片,所以它的默认图片是在这进行封装的,那我们就应该在这便利找到默认图片,而且这些图片我们最终还是要保存的,所以我们顺便呢,把这些图片也来处理一下,我们来点一个stream,那进行一个map映射,那们将每一个图片img。
04:16
我们最终要封装成SQ images的整个集合,我们来保存,那我们就来用一个SQ images这个实体类,这个实体类呢,我们最终给他return过去,Return。把这个最终收集过来,那在这点一个collect。To list,这是我们的所有图片,Image n,那这些所有图片如果遇到默认图片了,我们就可以给它复制到这,所以我们判断一下,如果说我们当前这个图片img点一个get default image等等一它是一个默认的,那我们就可以让它set进来,但是我们的图片保存是得先保存了SQ才可以保存图片的,因为图片里边要关联当前SQ的ID,所以说呢,我们来找默认图片还得自己提前来找一下,那么就在这直接来做一个item.get images。
05:16
第二,For each来直接遍历,将我们这个默认图片返回出来,只需要判断如果当前图片image比get default image等等一,那我们就可以比如在外边存下这个图片string default。Img。那就等于我们当前的这个图片。这个for each呢,我们应该改为我们同步的for each item,点一个for each,我们用下边的这种,好,我们将这个复制过来。把这个改掉。我们当前的image。
06:01
复制过来,我们要用image里边的URL,那这样我们的这个默认图片我们就可以给它设置到这,这是SQ的信息,来看一下SQ还有什么,点一个set,主要这个SQ的ID以及SQ的其他对拷过来的信息和价格,那都设置上了,那我们这个SQ就结束了,结束以后呢,我们就可以去来保存每一个SQ,一保存再来保存它对应的图片等各种信息,我们就用SQ info service点一个save SQ info,那么将这个SQ的nity实体信息我们放给他,让他来帮我们进行保存,创建出这个方法,好来创建出这个方法,这个方法呢,我们只需要调用它的do里边的本身的insert方法进行保存就行了,而且SQ的ID目前都是自增的,那先用它的自增ID,好,这SQ保存完以后,SQ的自增逐渐就出来了。
07:01
他点一个get ID这块的SQID就是我们的自增主键。那以后所有跟SQ有关的都要保存这个SQID,比如这个图片,这个图片呢,我们就得先来设置它关联的SQ的ID是这个,而且呢,还要设置我们这个SQ image n.set。图片的URL地址,那就是当前正在遍历的这个图片,Img,包括我们图片里边的这个是否默认图片,默认图片呢,也在RMG里边封装着这一个get default,当这个图片那就是它的URL地址,我们SQ image nity构造好了。而且最终也收集成了一个集合,那我们的这一步就完成了,首先基本信息在这保存了,然后呢,我们就接下来就要保存当前SQ的所有图片,我们在这构造好了,我们利用SQ图片的service,我们再来注入SQ image service SQ image service,好,我们来auto。
08:10
在这个里边呢,我们来直接给它批量保存所有数据,这个service它本身有一个bench sal bench方法来保存所有的图片,这个Co be呢,就是马贝plus给我们逆向生成的,那这个图片存完了,我们接下来就应该保存我们SQ的销售属性相关信息,这个销售属性我们先还是从当前的这个SQ里边获取。当前这个SQ呢,我们正在遍历,遍历的是我们这个item,我们就从item里边获取item,这get,这有一个at tr,这at tr呢是一个list,它里边封装了我们所有的属性ID,属性名以及属性值,最终这些东西要被保存在们cell at TL value这张表里边,也就是我们这个里边。这个里边除了页面提交的ID名字和值,我们主要要看它是关联的哪个SKU,所以我们只需要把它们收集成我们对应要用的值就行了。点一个string map,我们就叫at tr,比如就叫A吧,好,然后呢,我们将它先给扭一个我们的SQ sal attl y6这个实体类SKU。
09:23
Cell at tr value entity,它是用来封装的,那它里边呢,封装很多的东西,我们来点进来看一下属性名有没有一一对应at TD tr name和at tr value6,那是不是跟这个at tr对应的ID name value6,好,没问题,那么就可以属性对拷,那我么先来直接being YouTube.copy properties将我们当前正在遍历的这个拷贝到我们at ty6nt里边,然后呢,我们给at t ry6nt设置上我们当前是哪个sqsq ID。我们在前边保存好squ们就可以获取到SQ的ID,也就是这只要保存完了,我们再自增ID,我们都可以直接拿到,然后接下来我们将整个这个at tr y6 NTT进行返回,然后我们收集成一个我们要用的数组,最终我们将它,也就是我们的SQ cell a tr value nt,我们将它呢交给我们。
10:25
这个service,那我们就要注入我们这个service,有一个叫SQL at tr value service,我们就把这个service自动注入过来,那么交给这个service让它进行保存就行了。在这点一个cell bench这个批量方法,那就将这个交过来来进行保存,那么SQ的这个cell tr我们就保存成功了,那最后还是SQ当前SQ对应的优惠券以及价格信息,那这些信息都是要操作远程服务才可以保存的,那我们就先放在这儿,下节课我们继续。
我来说两句