82 lines
3.2 KiB
PHP
82 lines
3.2 KiB
PHP
<?php
|
|
|
|
|
|
namespace Battles;
|
|
|
|
use Config;
|
|
use SQLite3;
|
|
use SQLite3Result;
|
|
|
|
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(GameConfigs::DB_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(GameConfigs::DB_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();
|
|
}
|
|
|
|
public static function getUserLogs($userId = null, $type = null): SQLite3Result
|
|
{
|
|
$db = new SQLite3(GameConfigs::DB_SQLITE);
|
|
|
|
if ($userId && $type) {
|
|
$query = "SELECT * FROM users_logs WHERE user_id = ? AND type = ?";
|
|
$row = $db->prepare($query);
|
|
$row->bindValue(1, $userId, SQLITE3_INTEGER);
|
|
$row->bindValue(2, $type, SQLITE3_TEXT);
|
|
} elseif ($userId && !$type) {
|
|
$query = "SELECT * FROM users_logs WHERE user_id = ?";
|
|
$row = $db->prepare($query);
|
|
$row->bindValue(1, $userId, SQLITE3_INTEGER);
|
|
} elseif (!$userId && $type) {
|
|
$query = "SELECT * FROM users_logs WHERE type= ?";
|
|
$row = $db->prepare($query);
|
|
$row->bindValue(1, $type, SQLITE3_TEXT);
|
|
} elseif (!$userId && !$type) {
|
|
$query = "SELECT * FROM users_logs";
|
|
$row = $db->prepare($query);
|
|
}
|
|
|
|
return $row->execute();
|
|
}
|
|
} |