00:01
下面呢,我们来开发加入购物车功能。那么开发加入购物车购物车功能呢?我们首先先看一下加入购物车的这个接口文档。先要知道我们怎么去发请求,需要什么参数。打开咱们的这个记录文档。那么找到购物车这里,其中POS请求,这个就是加入购物车的数据。那么在这里面呢,我们只要。呃。发一个请求啊,它就会加入一条公车数据啊,其中需要传的参数有负的ID是食品的ID,当前你要加入的食品的ID,收的ID呢是当前店家的ID month呢是这个数量。ID呢,是这个购物车的ID啊,它会自动生成,所以不需要传,以色列体的呢,默认是选中的默认值是错,所以说你也不需要传,所以我们要传的就是食品ID,商品商家ID,店家ID和这个数量。但是这个接口呢,它不能满足条件,因为你每次调一次这个接口,它都会插入一条新的数据,而我们加入购物车呢,可能我一下子点一下是一,再加一下它是二,再加一下是三,我们希望它是同一个商品,它的数量从一变二变三这样的一个变化,但是如果你用这个接口的话,它最终会变成啊,你加入购物车之后,它会一对吧,然后你再把它变成二的时候,它会插入一条新的数据,这个新的数据数量是二。
01:23
然后你再点击它,就会插入一条新的数据,数量值为三,导致我们购物车实际上有三个商品,他们的数量是123,而后我们实际是希望一个商品数量变成三。所以这个接口呢,它不能满足条件啊,我们得自己开发。自己开发的话呢,就得来到数据模型,点击下面的开发云函数。选择添加函数,我们要给我们的购物车添加一个远程函数,请求类型是加入购物车就post请求,我们叫a cut。好,加入购物车的整个逻辑呢,它我们先写一个固定代码try catch。
02:07
Catch里面的就是。有一个。对吧,加入购物车失败。后面这参数就可写,如写吧。然后呢,串里面呢,我们要去做啊,那么加入路上还是需要传递参数的,参数呢,我们整体都叫做贝塔就好了,它是一个请求体参数,那么这里面呢,就包含了我们所有的参数的描述。啊,这个好像可以不写,不写的话,待会我们可以看一下这个它具体的一个提示效果,如果不太行的话,我们就把它加上,那么这个data里面呢,它将来就需要接触到参数就是。就这三个啊,一个是for的ID,一个是shop的ID,还有一个是amount商品的数量,一共有这三个参数。好呃,做好之后呢,我们接下来要去加入购物车,那么加入购物车整体逻辑就是这样的,首先查询当前商品。
03:10
对吧,存在它有两种情况存在,就更新数量。不存在就添加新的商品,数量为一。所以说我们要做的是这个查询的话呢,我们就可以用cut.find one,因为我只要找一个看一个有没有就好了,不需要找所有,反正办方法呢,我们去查询,拿到这个负的ID授牌ID一起去找就好了。对吧,找到之后呢,我们可以得到一个。他一直。Has food问一下,看看他是不是有这个食品。对吧,好,呃,那么接下来就是做判断。
04:00
它是否存在?存在说明就有值,有值的话就会进入第一个判断。存在呢,我们就更新数量就好了,那么我们就通过cut.update。方法啊,那么第一个是更新的条件,一样的是这个条件。然后第二个呢,是要更新的,具体的内容就是数量。就好了,好,Else呢是不存在的,不存在我们才需要创建。点create好,呃,CH的话呢,我们这里就需要把这些参数全都补充过来。Now it a wait。然后最后呢,我们return一个对象即可啊,对象里面有没有内容都无所谓,因为它不主要反回馈信息啊,只要定义好就好。那么我们要做的就是把它给保存,然后呢,发布并重启测试环境。
05:04
然后接下来呢,我们去测试一下这个接口,看一下它到底好不好用啊,OK,然后呢,在这个API文档中我们刷新一下。刷新之后呢,来到购物车啊,这里就会有一个at card这个接口,诶在这里呢,它默认会体现这个数据啊,所以说我们就没必要去给他过多的描述了。OK,下面我们来试试看最终能不能行啊。呃,首先说排ID,我们找到这个店家对吧,找到咱们的这个宅急送就你啊。复制这个啊,复制他的ID,说白D有了啊,食品ID我们也来看一下啊。视频ID我们找到负的找到,比如说这个波纹薯条,就你这ID复制。然后在这里复制视频ID。好了,那么数量的话呢,我们先设置个一试一试。OK 200代表成功啊,没有问题,200成功,那么我们可以在这里刷新一下,看一下这个,看有没有出现一条数据。
06:07
诶,看一条数据,数量为一没问题,那么我们接下来再调用这个接口啊,我们把数量调为三啊调为三,那么这个时候他购物车应该还是只有一个商品,但是它数量要变为三,而不是说要添加一个新的,我们试一试。OK,我们刷新。Cut还是一条,它的数量变成三,所以咱们这个接口基本上是没问题的,最后你要测试的话呢,其实就是再整一个不同的数据啊,不同的实体数据。然后呢,在这个加入购物车这里把附ID改一下,改成另外一个ID。那么我们数量为一试一试。OK,请求也是成功的,最终刷新一下咱们的这个测试数据,它应该有两条数据的。呃,哎,刷新。OK,这里我们再看一下这里哪里有问题啊,我们传的是这个新的一个附带ID。
07:04
没错啊,我们看一下是不是新的一个负的D80D6。八零负带的八六是一个新的啊。呃,然后呢,说排底也是一个新的,那么是一个我们试一试。OK,他请求是成功的啊,请求成功的,他查询的时候呢,会拿到这两个参数一起去查询这个数据。呃,但是它这个cut竟然只生成一条,那说明我们这个写的还是有问题,我们一起来看一下,我们来看find one的时候,我们传了两个参数负的ID和硕的ID都传了。那么这时候就问题来了,他到底是找到了还是没有找到这个负的,他找没找到它到底这个负的值是多少?我们来编辑一下。我不管你找到还是没找到啊,我们都把这个孩子负的给返回出去,我们一起来看一下它的返回值长什么样子。
08:07
正常来讲的话呢,你如果没找到的话呢,应该是不能有这个数据的啊,我们一起来看一下。试一试。呃,这个是他这个数据啊,他说他是找到了这个数据,但明显我们的负的ID是不对的。负的ID是不对的,我负的ID是80D啊,但是它是全部,那么它这个找应该是一个模糊匹配啊,所以说我们在找的时候应该只要用负的ID去找就好了,我们编辑一下,我们找的话只用负的ID,更新的话也是只用负的ID就好了,负的ID是唯一的就可以了。方便重启。好,这样的话呢,我们再试试穿腰子。OK,它正在重启中啊,我们要稍微等一下好。呃,刚刚不应该刷新的,不然的话我们也得重新设置这两个参数了。
09:03
来一啊说ID的话呢,还是用这个ID。那么food的ID的话,我们要找一个新的food。OK,我们来试一试。OK啊,但是他还是返回了这个数据,但实际上呢,应该是没有找到的。对吧。刷新。他是find one。既然能找到这个参数,那我们来看一下这个这个接口,这个文档啊,这个方法是不是是不是有bug。呃,翻方法中间的船,我们的这个搜索条件对吧,搜索条件。
10:07
所条件呢,得写这个where啊,得写where,我们可能没有写导致它出现的问题啊。这个我们写错了,这个这个这个条件。好吧。OK,就是这个写的写错了,应该是VR里面有这个做条件。那么说牌的。都加上了,可以这样找,肯定是没错的,那么update方法我们看一下是不是也是有这个条件啊。Update,这里直接就是where,所以说不需要再改了,OK,那可能我记错了,这里加个where,这个代表它的一个搜索条件好了,那么这样肯定就没问题了,方便重启。这里加Y2 Y2才是真正的搜索条件啊,所以说你稍微要注意一下。OK,那么我们这里就可以去测试了,继续tryout。OK,这时候它的返回值就是那就是对的,所以说我们这里应该有一个新的数据了,刷新。
11:07
OK,就有个新的数据好了,到这就没问题了,最后呢,我们这个编辑一下返回值,我们就是空对象,就不要返回这个孩了。保存。防重启,OK,那么我们就完成了这个添加购物车的一个接口,那么后续我们只要完成页面的功能即可。
我来说两句