微信小程序线上点餐问题及解决

    xiaoxiao2022-07-07  207

    2019.5.22 1.当我们遍历出数据库中菜单的菜品时,需要为其单个产品添加数量的问题。

    解决:在表中加入 购买数量(buycount)的字段

    然后,在js文件中,控制当前对象中的buycount 属性。

    注意:在控制当前对象的属性是,必须传递一个index标志性的值到js中,因为,我们遍 历的是一个对象数组,因为,当我们更改其中一个对象时候,需要找到其下标。因此 在+、-号操作的时候,传值data-index到js中。 如图:

    当我们,完成了添加、减少的数量的操作时候,需要为其保存值在前台, 及 更新 我们遍历list集合 中的 某些 属性。

    5.29更新(小程序订餐 订单之点餐 构思)

    由于,之前一直在想一个问题:到底是在点餐的 页面 加入数量 还是,将其加入到购物车里面再添加数量的问题。后来还是选择了后者,如图 当我们将菜品一一列在了一个页面中,该图将2个商品 加入了我的订单中。那么,这个订单如何来的呢? 我一直思考,最终我的解决办法是: 当我们扫描二维码或者通过链接 进入了小程序,那么在app.js中,我会向后台 申请 一个 字符串(改字符串由一个封装好了的类的方法得到的),该方法会返回一个字符串(基本不可能重复)作为订单编号,同时,将其保存wx.setstorageSync域中,同时可以在任何tab里面通过getstorageSync(“key”) 获得订单编号。 那么,当我们进入小程序后,当前用户(我们)相当于 就 拥有 一个专属于本次 从进入 小程序 到 结束小程序 的一个订单编号了。

    接下来,就可以,将商品添加 到该订单中了,然后再 对订单的 添加 和 修改(数量和金额)的操作了。

    针对对 订单的 添加 和 修改 做下 笔记(只要是理解其思想) 往往在做 商城购物 这类的项目时,往往 会有2个订单。一个为总订单、一个为详情订单(往往记录 总订单 中的 商品) 如:总订单 详情订单:

    那么,当我们 开始 点餐的时候,会将改产品的所有信息(订单编号、名字、价格···)传入到后台,在后台将 所有 信息 封装 在一个 类 中。传入到service层,在service 中,对其进行逻辑处理(该部分比较重要): 由于我们的订单中没有任何数据,所以,我们需要通过判断 order表中是否 有该订单编号,如果没有该订单编号(我们传来的订单编号),我们就 创建 该Order,并将product数据添加进去,同时,我们还需要添加在orderDetail(详情订单表)中, (注意**): 当我们,将product添加到了order中, 我们必须得到刚才添加的那条数据 中的 id,作为OrderDetail(详情表单。如上上图)中的orderid。然后再product添加到orderDetail表中

    因此,我们点的第一份餐 已经成功添加 到了 订单 和 详情订单中。 当我们点第二份product 时候,通过判断 该订单已经存在,因为我们只需要修改Order中的 数量 和 价格 就ok了(但是,我们还是需要通过订单的id 作为条件),同时再添加详情表单。 如图:这样,我们就完成了简单的添加 product 了。

    下次的任务:删除product 和 对购物车中 Product数量的改变。

    2019-6-10 终于更新了 哈哈

    虽然,有10多天没有更新了,但是,还是有一直在写的,这次写了好多好多的内容了。下面是我这些天写的内容的清单 1.在我们的商城里面取消订单(同时修改数据库的内容) 2.将我们点餐的菜品提交 到购物车里面,为了在购物车中可以增加商品的数量 3.对菜品的删除操作(这个有一点点的复杂)

    ------------------------------------------------------------------------------------------------------------

    一.在我们的商城里面取消订单(同时修改数据库的内容)

    在我们添加了商品后,我们如果不小心点错了或者不想要了,可以删除该商品,那我们就需要将该商品的部分信息传到后台。

    在接收了前台的信息后,我们就需要在Service层来进行业务逻辑的处理了。 首先,判断是否存在该订单号(肯定存在的),因为是删除订单和详情订单里面的数据,我们需要得到订单里面的TotalCount,判断其数量是否<=1,如果是,就将该订单删除,如果不是,就修改订单的数量和金额,同时删除详情订单里面菜品。 之后,就修改一下显示在前端的金额跟数量就Ok了

    二.将我们点餐的菜品提交 到购物车里面,为了在购物车中可以增加商品的数量

    今天突然发现,以前写的这个步骤时候有一点点 小bug ,但目前不影响我们的正常操作,可以放心的阅读。后面,会更改的。

    接下来,就该将我们点的菜品,提交给我们的购物车,然后显示出来了 目前是这个状态

    当我们提交订单后,

    如果,我们需要将咱们点的餐显示在购物车的话,这里就需要用到wx.setstoragesync(同步)或者 wx.setstorage(异步)来操作了。它们之间的区别可以百度一下啦。

    因为我们,点了一下提交订单按钮,于是,我们就向后台请求了一个方法,将我们的订单号传入到后台,通过订单号找到orderId,再通过orderId,找到我们点的菜品。将详情订单 中,属于订单的id给查找出来,然后返回给前台,存在wx.setstoragesync缓存中,它就相当于JavaWeb中的Session域差不多咯。

    订单表与详情订单表 这样取出来后,就存入wx.setStoragesync中。 然后,我们再购物车界面中,wx.getStorageSync取出数据,然后进行数据的渲染,就会显示出我们点的菜品, 当然,这里我们就需要了解一下页面的生命周期了。onShow(每进入一次页面都会调用)、onLoad(只执行第一次加载页面)这2个方法的区别了。

    所有在我们,要加载数据的时候,最好考虑一下,数据是否被频繁的使用,用的少的话,我们就写进onload中,用的多的话,就写进onshow中,当然,还有其他的生命周期函数,可以查查百度。

    接下来就是我们,对其数量的增减了。

    …之前,写完了只会,就每怎么更新了。不过,后面有时间的话,再补补吧。

    完成后的样子:

    最新回复(0)