2025-01-03 18:07:07 +03:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace app\modules\tgbot\controllers;
|
|
|
|
|
|
2025-01-26 14:42:47 +03:00
|
|
|
|
use app\modules\tgbot\models\forms\CardActionStep2Form;
|
2025-01-20 00:12:30 +03:00
|
|
|
|
use app\modules\tgbot\models\Tgbot;
|
2025-01-23 20:02:06 +03:00
|
|
|
|
use app\modules\tgbot\services\TgBotService;
|
2025-01-19 19:21:15 +03:00
|
|
|
|
use Cassandra\Decimal;
|
2025-01-26 14:42:47 +03:00
|
|
|
|
use kernel\app_modules\card\conditions\CashbackCondition;
|
2025-01-23 20:02:06 +03:00
|
|
|
|
use kernel\app_modules\card\models\Card;
|
2025-01-26 14:42:47 +03:00
|
|
|
|
use kernel\app_modules\card\services\CardService;
|
2025-01-19 17:15:58 +03:00
|
|
|
|
use kernel\app_modules\tag\service\TagService;
|
2025-01-03 18:07:07 +03:00
|
|
|
|
use kernel\Controller;
|
2025-01-26 14:42:47 +03:00
|
|
|
|
use kernel\Flash;
|
2025-01-19 19:21:15 +03:00
|
|
|
|
use kernel\helpers\Debug;
|
2025-01-19 17:15:58 +03:00
|
|
|
|
use kernel\modules\post\models\Post;
|
2025-01-26 14:42:47 +03:00
|
|
|
|
use kernel\Request;
|
2025-01-03 18:07:07 +03:00
|
|
|
|
|
|
|
|
|
class TgMainController extends Controller
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
protected function init(): void
|
|
|
|
|
{
|
|
|
|
|
parent::init();
|
|
|
|
|
$this->cgView->viewPath = APP_DIR . "/modules/tgbot/views/tgbot/main/";
|
|
|
|
|
$this->cgView->layout = "main.php";
|
|
|
|
|
$this->cgView->layoutPath = APP_DIR . "/modules/tgbot/views/tgbot/layout/";
|
|
|
|
|
$this->cgView->addVarToLayout("resources", "/resources/main");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function actionMain(): void
|
|
|
|
|
{
|
|
|
|
|
$this->cgView->render("index.php");
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-19 17:15:58 +03:00
|
|
|
|
public function actionNews(): void
|
|
|
|
|
{
|
2025-01-19 19:21:15 +03:00
|
|
|
|
$news = TagService::getEntityByTagSlug("novosti", Post::class);
|
2025-01-19 17:15:58 +03:00
|
|
|
|
|
|
|
|
|
$this->cgView->render("news.php", ['news' => $news]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function actionPromo(): void
|
|
|
|
|
{
|
2025-01-19 19:21:15 +03:00
|
|
|
|
$news = TagService::getEntityByTagSlug("akcii", Post::class);
|
2025-01-19 17:15:58 +03:00
|
|
|
|
|
|
|
|
|
$this->cgView->render("news.php", ['news' => $news]);
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-23 20:02:06 +03:00
|
|
|
|
public function actionScanner(): void
|
|
|
|
|
{
|
|
|
|
|
$this->cgView->render("scanner.php");
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-26 14:42:47 +03:00
|
|
|
|
public function actionCardActionStep1(int $cardId): void
|
2025-01-23 20:02:06 +03:00
|
|
|
|
{
|
|
|
|
|
$card = Card::where("id", $cardId)->first();
|
|
|
|
|
|
2025-01-26 14:42:47 +03:00
|
|
|
|
$this->cgView->render("card_action_step_1.php", ['card' => $card]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function actionCardActionStep2(): void
|
|
|
|
|
{
|
|
|
|
|
$params = new CardActionStep2Form();
|
|
|
|
|
$request = new Request();
|
|
|
|
|
$params->load($request->get());
|
|
|
|
|
|
|
|
|
|
$this->cgView->render("card_action_step_2.php", ['params' => $params]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function actionCardActionStep3(): void
|
|
|
|
|
{
|
|
|
|
|
$params = new CardActionStep2Form();
|
|
|
|
|
$request = new Request();
|
|
|
|
|
$params->load($request->post());
|
|
|
|
|
|
|
|
|
|
$card = CardService::getCardById($params->getItem("card_id"));
|
|
|
|
|
|
|
|
|
|
if ($params->getItem('type') === 'add_money'){
|
|
|
|
|
Flash::setMessage("success", "Баланс пополнен на " . $params->getItem('amount'));
|
|
|
|
|
$transaction = CardService::addMoneyToCard($card, (int)$params->getItem('amount'));
|
|
|
|
|
}
|
|
|
|
|
if ($params->getItem('type') === 'withdraw'){
|
|
|
|
|
Flash::setMessage("success", "С карты списано " . $params->getItem('amount'));
|
|
|
|
|
$transaction = CardService::withdrawMoneyFromCard($card, (int)$params->getItem('amount'));
|
|
|
|
|
}
|
|
|
|
|
if ($params->getItem('type') === 'add_purchase'){
|
|
|
|
|
// Flash::setMessage("success", "С карты списано " . $params->getItem('amount'));
|
|
|
|
|
// CardService::withdrawMoneyFromCard($card, (int)$params->getItem('amount'));
|
|
|
|
|
$cashback = new CashbackCondition();
|
|
|
|
|
$transaction = $cashback->handler($card, (int)$params->getItem('amount'));
|
|
|
|
|
Flash::setMessage("success", "Начислено кешбэк " . $transaction->amount);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$card = $card->fresh();
|
|
|
|
|
|
|
|
|
|
$this->cgView->render("card_action_step_3.php", ['card' => $card, 'transaction' => $transaction ?? null]);
|
2025-01-23 20:02:06 +03:00
|
|
|
|
}
|
|
|
|
|
|
2025-01-03 18:07:07 +03:00
|
|
|
|
}
|