battles/classes/Battles/GameLogs.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();
}
}