/** * @var User $user * * @param $id * @return string * @throws ErrorException */ public function actionRepeat($id) { $user = Yii::$app->user->identity; $order = Order::findOne($id); $db = Yii::$app->db; if ($order->user_id === $user->getId()) { if ($user->money >= $order->sum) { $user->debitMoney($order->sum); $transaction = $db->beginTransaction(); try { $user->save(); $id = Api::setTaskByNetwork($order); if ($id !== NULL) { $order->status = Order::PROCESSED; $order->foreign_id = $id; $order->save(false); $transaction->commit(); Yii::$app->session->setFlash('message', ['type' => 'success', 'message' => 'Задание отправлено на повторное выполнение']); } else { throw new ErrorException(); } } catch (ErrorException $e) { $transaction->rollBack(); } } } else { throw new ErrorException('Что-то не так'); } return $this->redirect(Yii::$app->urlManager->createUrl('task/order/view-all')); }
public function run() { $cache = \Yii::$app->cache; //todo плохой вариант, лучше на крон это if (!$cache->exists('synchronize')) { OrderSynchronize::synchronizeStatuses(); $updateStatusesCacheTime = \Yii::$app->params['updateStatusesCacheTime']; $cache->set('synchronize', true, $updateStatusesCacheTime); } $userId = \Yii::$app->user->getId(); $orders = Order::find()->where(['user_id' => $userId])->andWhere(['kind' => $this->kind])->orderBy('id DESC')->limit(4)->all(); if (count($orders)) { return $this->render('lastTasks', ['orders' => $orders]); } else { echo ''; } }
?> <tr> <td><a href="<?php echo $order->url; ?> "><?php echo $order->url; ?> </a></td> <td><?php echo $order->service->name; ?> </td> <td><span class="label label-success"><?php echo \frontend\modules\task\models\db\Order::getStatuses()[$order->status]; ?> </span> </td> <td> <div class="sparkbar" data-color="#00a65a" data-height="20"><?php echo $order->members_count; ?> </div> </td> </tr> <?php } ?> </tbody>