checkRefundBySn($sn); $user = $this->getLoginUser(); $validator = new RefundValidator(); $validator->checkIfAllowCancel($refund); $validator->checkOwner($user->id, $refund->owner_id); $refund->status = RefundModel::STATUS_CANCELED; $refund->update(); $refundRepo = new RefundRepo(); $refundTask = $refundRepo->findLastRefundTask($refund->id); if ($refundTask) { $refundTask->status = TaskModel::STATUS_CANCELED; $refundTask->update(); } return $refund; } }