public function actionCancel($id)
{
$model = Order::find()->where(['and', ['user_id' => Yii::$app->user->id], ['id' => $id], ['<>', 'status', Order::STATUS_DELETED]])->one();
if (!$model) {
throw new BadRequestHttpException('您没有该订单!');
}
if ($model->status !== Order::STATUS_UNPAID && $model->status !== Order::STATUS_CANCELLED) {
throw new BadRequestHttpException('您不能取消该订单!');
}
if ($model->status === Order::STATUS_CANCELLED || $model->cancel()) {
return ['status' => 'success', 'data' => ['status' => $model->status, 'statusMsg' => $model->statusMsg]];
} else {
return ['status' => 'fail', 'data' => []];
}
}