コード例 #1
0
 public function actionAdd()
 {
     $goodsId = (int) Yii::$app->request->post('goodsId');
     $output = ['status' => 'fail', 'data' => []];
     $goods = Goods::findOne(['id' => $goodsId, 'status' => Goods::STATUS_NORMAL]);
     if (!$goods) {
         return $output;
     }
     $model = CartGoods::findOne(['goods_id' => $goodsId, 'user_id' => Yii::$app->user->id]);
     if (!$model) {
         if (Yii::$app->user->identity->getCartGoodsCount($goods->store_id) >= Yii::$app->params['goods.cartLimit']) {
             $output['data']['message'] = '您的购物车已爆满!最多只能容下' . Yii::$app->params['goods.cartLimit'] . '种商品。';
             return $output;
         }
         $model = new CartGoods();
         $model->user_id = Yii::$app->user->id;
         $model->goods_id = $goodsId;
         $model->store_id = $goods->store_id;
         $model->price = $goods->price;
         $model->count = 0;
     }
     $model->count++;
     if ($model->count > $goods->surplus) {
         $model->count = $goods->surplus;
     }
     if ($model->count > 0 && !$model->save(false)) {
         return $output;
     }
     $output = ['status' => 'success', 'data' => ['name' => $goods->name, 'price' => $goods->price, 'surplus' => $goods->surplus, 'cart' => $model->count]];
     return $output;
 }