public function actionSubtract()
{
$goodsId = (int) Yii::$app->request->post('goodsId');
$output = ['status' => 'no'];
Yii::$app->response->format = Response::FORMAT_JSON;
$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) {
$model->count--;
if ($model->count < 1) {
$model->delete();
} else {
if ($model->count > $goods->surplus) {
$model->count = $goods->surplus;
}
if (!$model->save(false)) {
return $output;
}
}
}
$output = ['status' => 'ok', 'name' => $goods->name, 'price' => $goods->price, 'surplus' => $goods->surplus, 'cart' => $model ? $model->count : 0];
return $output;
}