一段逻辑找错的过程

前几天客户反应了一个问题,说是在添加购物车的时候 总是会丢一个商品。那个商品列表页面是一个手机端的 h5,有上拉加载,下拉刷新,按照分类筛选等功能,在页面渲染的时候要清空购物车
客户反馈后,一直在排错,没有找到原因,今天终于找到了。
比如这样用户要添加商品1 和商品2,先找到商品1,点击+号,然后再找到商品2点击+ 然后点击下单 结果只有商品2。产生这个现象的原因是在找商品2的时候,执行了下拉加载,而下拉加载的 php 跟页面渲染的 php 脚本是同一个方法,在这个方法中没有区别对待下拉加载和正常页面渲染,导致下拉加载页执行了清空购物车的逻辑

以下是伪代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public function pickCargo()
{
$uid = user('uid');

//清空云仓购物车
//db('cargo_cart')->where('uid',$uid)->delete();//逻辑放置代码位置错误
if (request()->isPost()) {
$list = Db::name('cloud_warehouse')->paginate(7);

$this->success('', '', $list);
} else {
//正确放置清空购物车的逻辑
db('cargo_cart')->where('uid',$uid)->delete();
return $this->fetch();
}
return '';
}

  • Post author: hainuo
  • Post link: the-way-to-fiding-one-logic-error
  • Copyright Notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.