商品订单逻辑梳理

1.png

由于接口认证是在cart路由中的,所以用户在登录商城,分类,服务页面的时候,是不需要认证的,当用户添加商品进入购物车,跳转到购物车页面的时候,中间件会提示用户登录...

1.png

所以让用户付款的时候,才是把address,cart,customer表里面的信息往order,order_address,order_product.插值的.
orders表里设置status字段,用不同数字标示订单状态.
1=下单,未付款
2=付款
3=配货
4=出库
5=交易成功



后端路由:Route::get('order_list/{id}', 'OrderController@order_list');
后端控制器:

public function order_list($status)
    {
        $where = function ($query) use ($status) {
            $customer_id = auth('api')->user()->id;
            //先匹配订单用户
            $query->where('customer_id', $customer_id);
            //switch循环  https://www.whphp.com/show/227
            switch ($status) {
                case '0';
                    break;
                case '1';
                    $request->where('status', 1);
                    break;
                case '2';
                    $request->whereIn('status', [2, 3, 4]);
                    break;
            }
        };
        $orders = Order::where($where)->with('order_products.product','customer', 'order_address')->orderBy('created_at', 'desc')->get();
        return compact('orders');
    }

前端:

<div class="oi12" v-if="order.status==1"><p>未支付</p></div>
<div class="oi12" v-if="order.status==2"><p>已支付</p></div>
<div class="oi12" v-if="order.status==3"><p>配货中</p></div>
<div class="oi12" v-if="order.status==4"><p>物流运输中</p></div>
<div class="oi12" v-if="order.status==5"><p>交易成功</p></div>

<div class="oi4" v-if="order.status==1">
     <a href="javascript:;" class="org">立即付款</a>
     <a href="javascript:;" >取消订单</a>
</div>
<script>
  methods: {
    init: function () {
          const  status= this.$route.params.status
          console.log(status)
          this.axios.get(`/api/order/order_list/${status}`).then((res) => {
          this.orders = res.data.orders
          console.log(this.orders)
          })
      }
    }
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容