00:00
前面呢,我们测试了一下商品的保存,那里边有一些细节,我们还需要优化一下,首先是我们SQ的图片,在我们这保存的时候呢,由于页面提交的图片是全亮的,只有被选中的图片才有全图片路径,所以我们要将这些空图片路径的要过滤掉,那我们就可以在这儿来收集这些数据之前,我们可以先使用filter来进行一个过滤,这个过滤完了以后,我们再来进行收集,当这个过滤呢,我们来先来写我们的NT箭头函数。我们的过滤条件就是这个image URL必须是有的,如果有我们就是要它,没有我们就不要,所以我们最终return什么呢?我们就是enity里边的get image URL要判断它不为空,我们就要它strings.is empty,只要我们这个东西有值。它是非空的,那只要我们这个条件表达式成立,那么就会返回处,返回处呢,我们就会需要它,特别是注意这个塔,返回处,返回处就是需要,那返回false就会被过滤掉,返回false就是剔除。
01:12
我们最终将过滤的结果在这收集,那除了这个我们需要做细节优化外,还有我们这一块,我们可以来看一下,我们再来录入SQ的一些满减以及打折的时候,那有些东西呢没写,比如像这个满零件打零折,这些都是无意义的,我们就可以将这些数据也剔除掉,包括他这一块的满减信息,满零元减零元,这也都是没意义的,所以我们直接在这给远程服务来传递他这些要保存的数据的时候,我们也可以过滤一下,我们首先得判断,如果说他的这个满减信息有问题,那我们就不用发送远程请求了。F我们这个SQ reduction to,这个to里边的get满几价,它是小于等于零的,并且我们这个满减里边还有一个叫点get。
02:04
满多少元,它也是小于等于零的,那这是一个没意义的,那没意义我们就不提交了,只有当它们是大于零,这两个都得大于零的情况下,满几件打几折,这些都大于零,那我们才需要我们远程调用这个服务。而且这一块这个price它是一个big decma,那这个big disma的比较呢,要使用我们这个方法,它里边有一个叫compare to,要跟一个东西进行比较,跟谁比较呢?我们将这个零,这个等西嘛,我们也传进去,跟我们这个零进行比较,而这个比较的结果compare to会返回负一,零或者一。那如果是负一,那就说明是累,似在我们给定的数比这个数小,如果返回零,那就是一扣two,如果返回的一就是比这个大,那么现在要用的结果必须是返回一的啊,要比它大,所以我们这个compare to,这个结果就应该是等等一,这样我们才有必要去来调用我们这个优惠与满减信息,但是我们这一块的问题就是优惠与满减,无论是满几件打几折,还是多少优惠这个价,因为他俩呢是两张表,有可能人家没有打折,但是人家有满减优惠,所以我们这个并且的关系我们变成货者,只要有人有有意义的值,我们就应该去来调用远程这个方法,那在远程方法进行保存的时候,我们可以看一下,那调用这个for reduction save info,我们来到这for reduction,当远程方法在这真正来进行调用的时候,我们可以在这做一个完全的判断,这是它的打折,我们在这儿判断,如果说它的这个打折价。
03:40
Four count。大于零,那我们就可以给他来做这个打折信息的保存,包括我们下边这是满减,同样如果说有满减的价格,我们就来给它执行满减这个NT点二,Get for price.compare to,我们用一个贝格decma,它是大于零的。
04:04
等等一。那这样如果它大于零,我们就可以来给他执行满减。把这个等等一写在这儿。我们再来调用这个方法,同样的,这个会员价格也非常重要。有非常多的会员价格,那关键有些会员价格没设置的时候,我们来看一下,那这一块有些会员价格没设置,那这一块就是零,我们也应该过滤掉这个信息的保存好,我们把这儿也来过滤一下。点一个filter。还是我们当前这个item.get。Member price,它必须呢,也是大于0.compareto有一个贝个DEC,只要它大于零,我们来让它等等一,我们才给它进行保存,Return。我们接受这些大于零的值,那这一块的优化呢就写好了,我们可以来重启一下product服务,而且呢,我在前边又重新录了一组数据,这是我们的iPhone,大家也应该在下边照着京东,照着我们整个流程来录上很多我们的测试数据,我们再来发送这个保存请求,好保存商品,准备好这些商品数据,我来点一个确定。
05:21
现在服务呢,还不可用,我们稍微再等它一会儿,我们再来点击下一步保存好这些数据,我们把它关掉,我点一个确定。这块返回保存失败,我们这个来看一下控制台,我们商品的这个控制台呢,在这有一个叫read timeout读取超时,那这就是来调用远程服务卡save的时候超时了,超时的原因呢,就是服务的各种不稳定,最终在这抱着呢,就是份的这个重试异常。那我们就要等待他稳定以后,我们再来进行测试调用,而且如果大家是第一次刚把服务启动起来,前一次调用呢,可能这些服务的数据源等各种都还没初始化完,很容易引起超时异常,那我们再来调用一次,点一个下一步,好来点击确定。
06:11
现在呢,我们就新增成功了,这些商品新增成功,我们就可以在数据库里边来看到,这是以前没有意义的满减,我们把这个满减的其他东西,我们先来给它删掉,然后把我们新来的数据,我们来看一下,九号SKU有一个满减信息,包括我们的打折信息,九号SKU这块打折的零还保存了,我们就可以把这个打折再来看一下,如果说for count大于零,我们才进行保存,那这一块呢就应该是没什么问题的,我再来看一下其他的,比如我们这个商品图片SKU的images,我们九号SKU,我们新增的是九号,那这个九号呢,只有这三个值没问题,来排个序,九号、十号这些并没有新增各种其他的东西,也没有这些空数据。那么这个简单的优化也就写好了,当然我们商品的整个保存还需要做的有很多,我们现在是成功容易,我们只写了一个成功的逻辑,但失败难,如果我们真正的由于各种原因导致了我们一些失败的保存,那我们接下来就要处理各种失败的逻辑,特别是跟事物有关的回滚,比如我优惠这保存失败以后,那以前的东西能不能回滚,再比如我们刚才服务不稳定以后,我们这个保存该怎么办等等,这些问题呢,我们可以在讲高级部分的时候,我们再来说,那我们把这个保存呢,就可以先简单留在这儿,那这个还有其他更多的知识,我们期待在我们这个高级部分。
07:41
再来完善。那么商品新增我们就结束了。
我来说两句