la_bot_back/app/modules/tgbot/controllers/TgMainController.php

100 lines
3.3 KiB
PHP
Raw Normal View History

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
}