card action

This commit is contained in:
2025-01-26 14:42:47 +03:00
parent 08cdf44b67
commit 824130df26
27 changed files with 430 additions and 53 deletions

View File

@ -2,14 +2,19 @@
namespace app\modules\tgbot\controllers;
use app\modules\tgbot\models\forms\CardActionStep2Form;
use app\modules\tgbot\models\Tgbot;
use app\modules\tgbot\services\TgBotService;
use Cassandra\Decimal;
use kernel\app_modules\card\conditions\CashbackCondition;
use kernel\app_modules\card\models\Card;
use kernel\app_modules\card\services\CardService;
use kernel\app_modules\tag\service\TagService;
use kernel\Controller;
use kernel\Flash;
use kernel\helpers\Debug;
use kernel\modules\post\models\Post;
use kernel\Request;
class TgMainController extends Controller
{
@ -47,11 +52,49 @@ class TgMainController extends Controller
$this->cgView->render("scanner.php");
}
public function actionCardAction(int $cardId): void
public function actionCardActionStep1(int $cardId): void
{
$card = Card::where("id", $cardId)->first();
$this->cgView->render("card_action.php", ['card' => $card]);
$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]);
}
}