public function actionCancel($order)
{
$model = Order::find()->where(['and', ['user_id' => Yii::$app->user->id], ['order_sn' => $order], ['<>', 'status', Order::STATUS_DELETED]])->one();
if (!$model) {
throw new NotFoundHttpException('您没有该订单!');
}
if ($model->status !== Order::STATUS_UNPAID) {
throw new BadRequestHttpException('您不能取消该订单!');
}
if ($model->cancel()) {
Yii::$app->session->setFlash('success', '订单成功取消!');
} else {
Yii::$app->session->setFlash('danger', '订单取消失败!');
}
if (Yii::$app->request->referrer) {
return $this->redirect(Yii::$app->request->referrer);
} else {
return $this->redirect(['index']);
}
}