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; }