public function actionSubtract()
{
$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) {
$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' => 'success', 'data' => ['name' => $goods->name, 'price' => $goods->price, 'surplus' => $goods->surplus, 'cart' => $model ? $model->count : 0]];
return $output;
}