Логгирование уехало в класс.

This commit is contained in:
Igor Barkov (iwork) 2021-01-27 13:30:11 +02:00
parent 938002ae57
commit a10f3911f2
3 changed files with 57 additions and 16 deletions

View File

@ -90,17 +90,7 @@ class Bank
$receiverId = $this->user_id; $receiverId = $this->user_id;
$text .= " Комиссия: " . $this->bankCommission($amount); $text .= " Комиссия: " . $this->bankCommission($amount);
} }
GameLogs::addBankLog($senderId,$receiverId,$amount,$operationType,$text);
$db = new SQLite3('databases/logs.sqlite');
$db->exec("CREATE TABLE IF NOT EXISTS bank_logs (id integer constraint bank_logs_pk primary key autoincrement, sender_id integer, receiver_id integer, amount integer, type text, text text)");
$logLine = $db->prepare("INSERT INTO bank_logs (sender_id, receiver_id, amount, type, text) VALUES (?, ?, ?, ?, ?)");
$logLine->bindParam(1, $senderId, SQLITE3_INTEGER);
$logLine->bindParam(2, $receiverId, SQLITE3_INTEGER);
$logLine->bindParam(3, $amount, SQLITE3_INTEGER);
$logLine->bindParam(4, $operationType, SQLITE3_TEXT);
$logLine->bindParam(5, $text, SQLITE3_TEXT);
$logLine->execute();
$logLine->close();
} }
/** /**

View File

@ -0,0 +1,54 @@
<?php
namespace Battles;
use SQLite3;
class GameLogs
{
/**
* Добавление записи в лог банковских операций.
* @param int $senderId отправитель средств.
* @param int $receiverId получатель средств.
* @param int $amount сумма на счету после проведения операции.
* @param string $type тип операции.
* @param string $text комментарий.
*/
public static function addBankLog(int $senderId, int $receiverId, int $amount, string $type, string $text)
{
$db = new SQLite3('databases/logs.sqlite');
$row = $db->prepare("INSERT INTO bank_logs (sender_id, receiver_id, amount, type, text) VALUES (?, ?, ?, ?, ?)");
$row->bindParam(1, $senderId, SQLITE3_INTEGER);
$row->bindParam(2, $receiverId, SQLITE3_INTEGER);
$row->bindParam(3, $amount, SQLITE3_INTEGER);
$row->bindParam(4, $type, SQLITE3_TEXT);
$row->bindParam(5, $text, SQLITE3_TEXT);
$row->execute();
$row->close();
}
/**
* Добавление записи в лог пользовательских операций (личное дело).
* @param int $userId кому добавляется запись.
* @param string $text текст записи.
* @param string $type тип записи.
* @param int $authorId кто добавляет запись. Использовать -1 для системной записи по умолчанию.
*/
public static function addUserLog(int $userId, string $text, string $type = '', int $authorId = 0)
{
if (empty($authorId)) {
$authorId = -1;
}
if (empty($type)) {
$type = "system";
}
$db = new SQLite3('databases/logs.sqlite');
$row = $db->prepare("INSERT INTO users_logs (user_id, author_id, type, text) VALUES (?,?,?,?)");
$row->bindParam(1, $userId, SQLITE3_INTEGER);
$row->bindParam(2, $authorId, SQLITE3_INTEGER);
$row->bindParam(3, $type, SQLITE3_TEXT);
$row->bindParam(4, $text, SQLITE3_TEXT);
$row->execute();
$row->close();
}
}

View File

@ -1,5 +1,6 @@
<?php <?php
use Battles\GameLogs;
use Battles\Template; use Battles\Template;
session_start(); session_start();
@ -29,11 +30,7 @@ if ($username && $password) {
if (!$error) { if (!$error) {
# Проверка на мультоводство по используемому кукису. # Проверка на мультоводство по используемому кукису.
if ($battle != null && $user_query['id'] != $battle) { if ($battle != null && $user_query['id'] != $battle) {
$db = new SQLite3('databases/logs.sqlite'); GameLogs::addUserLog($user_query['id'],'Разные ID на входе. Возможно используются несколько аккаунтов.', 'multiaccounts');
$logLine = $db->prepare("INSERT INTO users_logs (user_id, type, text) VALUES (?, 'multiaccounts', 'Разные ID на входе. Возможно используются несколько аккаунтов.')");
$logLine->bindParam(1, $user_query['id'], SQLITE3_INTEGER);
$logLine->execute();
$logLine->close();
} }
setcookie("battle", $user_query['id']); setcookie("battle", $user_query['id']);