Более явное документирование функций банка, логгирование получения средств.
This commit is contained in:
parent
4251027063
commit
8a9bb64b53
2
bank.php
2
bank.php
@ -87,6 +87,6 @@ Template::header('Банк');
|
|||||||
<input type="hidden" name="action" value="sendMoney">
|
<input type="hidden" name="action" value="sendMoney">
|
||||||
<input type="submit" value="Перевести кредиты">
|
<input type="submit" value="Перевести кредиты">
|
||||||
</form>
|
</form>
|
||||||
<span class="wrap">Комиссия: <?= Config::$bank_comission * 100 ?>% от переводимой суммы, но не менее 1 кр.</span>
|
<span class="wrap">Комиссия: <?= Config::$bank_commission * 100 ?>% от переводимой суммы, но не менее 1 кр.</span>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
@ -37,58 +37,60 @@ class Bank
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Комиссия: self::BANK_COMISSION от переводимой суммы, но не менее 1 кр.
|
* Комиссия: процент от переводимой суммы, но не менее 1 кр. Задаётся в config.php.
|
||||||
*
|
*
|
||||||
* @param $amount
|
* @param int $amount сумма.
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
private function bankComission($amount)
|
private function bankCommission(int $amount):int
|
||||||
{
|
{
|
||||||
$bankComission = round($amount * Config::$bank_comission);
|
$bankCommission = round($amount * Config::$bank_commission);
|
||||||
if ($bankComission < 1) {
|
if ($bankCommission < 1) {
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
return (int)$bankComission;
|
return (int)$bankCommission;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Пишем банковское событие в лог в БД
|
* Пишем банковское событие в лог в БД
|
||||||
*
|
*
|
||||||
* @param int $receiverId - user_id получателя
|
* @param int $receiverId ID получателя.
|
||||||
* @param int $amount
|
* @param int $amount сумма.
|
||||||
* @param string $operationType
|
* @param string $operationType тип банковской операции.
|
||||||
* @param int $senderId
|
* @param int $senderId ID отправителя (ID игрока, если не указано иное).
|
||||||
*
|
*
|
||||||
|
* @return void
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
* @throws \Krugozor\Database\Mysql\Exception
|
||||||
*/
|
*/
|
||||||
private function bankLogs(int $receiverId, int $amount, string $operationType, int $senderId = 0)
|
private function bankLogs(int $receiverId, int $amount, string $operationType, int $senderId = 0):void
|
||||||
{
|
{
|
||||||
if (!$senderId) {
|
if (!$senderId) {
|
||||||
$senderId = $this->user_id;
|
$senderId = $this->user_id;
|
||||||
}
|
}
|
||||||
$text = '';
|
$text = '';
|
||||||
if ($operationType === "sendMoney") {
|
if ($operationType == "sendMoney") {
|
||||||
$text = self::LOG_SEND . " Комиссия: " . $this->bankComission($amount);
|
$text = self::LOG_SEND . " Комиссия: " . $this->bankCommission($amount);
|
||||||
} elseif ($operationType === "depositMoney") {
|
} elseif ($operationType == "depositMoney") {
|
||||||
$receiverId = $this->user_id;
|
$receiverId = $this->user_id;
|
||||||
$text = self::LOG_DEPOSIT;
|
$text = self::LOG_DEPOSIT;
|
||||||
} elseif ($operationType === "withdrawMoney") {
|
} elseif ($operationType == "withdrawMoney") {
|
||||||
$receiverId = $this->user_id;
|
$receiverId = $this->user_id;
|
||||||
$text = self::LOG_WITHDRAW . " Комиссия: " . $this->bankComission($amount);
|
$text = self::LOG_WITHDRAW . " Комиссия: " . $this->bankCommission($amount);
|
||||||
|
} elseif ($operationType == "receiveMoney") {
|
||||||
|
$text = self::LOG_RECEIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
db::c()->query('INSERT INTO `bank_logs` (sender_id, receiver_id, amount_result, type, text)
|
db::c()->query('INSERT INTO `bank_logs` (sender_id, receiver_id, amount_result, type, text)
|
||||||
VALUES (?i, ?i, ?i, "?s", "?s")', $senderId, $receiverId, $amount, $operationType, $text);
|
VALUES (?i, ?i, ?i, "?s", "?s")', $senderId, $receiverId, $amount, $operationType, $text);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Перевод денег между бансковскими счетами игроков с банковской комиссией.
|
* Перевод денег между банковскими счетами игроков с банковской комиссией.
|
||||||
*
|
*
|
||||||
* @param int $receiver
|
* @param int $receiver ID получателя.
|
||||||
* @param int $amount
|
* @param int $amount сумма.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
* @throws \Krugozor\Database\Mysql\Exception
|
||||||
@ -102,7 +104,7 @@ class Bank
|
|||||||
if (!$receiverWallet) {
|
if (!$receiverWallet) {
|
||||||
throw new Exception(self::ERROR_NO_BANK_ACCOUNT);
|
throw new Exception(self::ERROR_NO_BANK_ACCOUNT);
|
||||||
}
|
}
|
||||||
$amountWithComission = $amount + $this->bankComission($amount);
|
$amountWithComission = $amount + $this->bankCommission($amount);
|
||||||
if ($amountWithComission > $this->money) {
|
if ($amountWithComission > $this->money) {
|
||||||
throw new Exception(self::ERROR_NO_MONEY_IN_BANK_ACCOUNT);
|
throw new Exception(self::ERROR_NO_MONEY_IN_BANK_ACCOUNT);
|
||||||
}
|
}
|
||||||
@ -119,7 +121,7 @@ class Bank
|
|||||||
/**
|
/**
|
||||||
* Пополнение банковского счёта игрока
|
* Пополнение банковского счёта игрока
|
||||||
*
|
*
|
||||||
* @param int $amount - сумма
|
* @param int $amount сумма.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
* @throws \Krugozor\Database\Mysql\Exception
|
||||||
@ -146,7 +148,7 @@ class Bank
|
|||||||
/**
|
/**
|
||||||
* Снятие денег с банковского счёта игрока с банковской комиссией.
|
* Снятие денег с банковского счёта игрока с банковской комиссией.
|
||||||
*
|
*
|
||||||
* @param int $amount - сумма
|
* @param int $amount сумма.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
* @throws \Krugozor\Database\Mysql\Exception
|
||||||
@ -156,7 +158,7 @@ class Bank
|
|||||||
if ($amount <= 0) {
|
if ($amount <= 0) {
|
||||||
throw new Exception(self::ERROR_WRONG_AMOUNT);
|
throw new Exception(self::ERROR_WRONG_AMOUNT);
|
||||||
}
|
}
|
||||||
$amountWithComission = $amount + $this->bankComission($amount);
|
$amountWithComission = $amount + $this->bankCommission($amount);
|
||||||
if ($this->money < $amountWithComission) {
|
if ($this->money < $amountWithComission) {
|
||||||
throw new Exception(self::ERROR_NO_MONEY_IN_BANK_ACCOUNT);
|
throw new Exception(self::ERROR_NO_MONEY_IN_BANK_ACCOUNT);
|
||||||
}
|
}
|
||||||
@ -177,6 +179,7 @@ class Bank
|
|||||||
* @param int $user_id ID пользователя.
|
* @param int $user_id ID пользователя.
|
||||||
* @param string $operationType Тип операции. По умолчанию пусто. Если ввести, система запишет событие в банковский лог.
|
* @param string $operationType Тип операции. По умолчанию пусто. Если ввести, система запишет событие в банковский лог.
|
||||||
*
|
*
|
||||||
|
* @return void
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
* @throws \Krugozor\Database\Mysql\Exception
|
||||||
*/
|
*/
|
||||||
public static function setBankMoney(int $amount, int $user_id, string $operationType = ''): void
|
public static function setBankMoney(int $amount, int $user_id, string $operationType = ''): void
|
||||||
@ -190,9 +193,10 @@ class Bank
|
|||||||
/**
|
/**
|
||||||
* Установить количество денег на руках.
|
* Установить количество денег на руках.
|
||||||
*
|
*
|
||||||
* @param int $amount - сумма.
|
* @param int $amount сумма.
|
||||||
* @param int $user_id - ID пользователя.
|
* @param int $user_id ID пользователя.
|
||||||
*
|
*
|
||||||
|
* @return void
|
||||||
* @throws \Krugozor\Database\Mysql\Exception
|
* @throws \Krugozor\Database\Mysql\Exception
|
||||||
*/
|
*/
|
||||||
public static function setWalletMoney(int $amount, int $user_id): void
|
public static function setWalletMoney(int $amount, int $user_id): void
|
||||||
|
@ -66,7 +66,7 @@ trait Config
|
|||||||
public static $clan_register_cost = 10000; //стоимость
|
public static $clan_register_cost = 10000; //стоимость
|
||||||
public static $clan_register_lock = 1; //запрет на регистрацию
|
public static $clan_register_lock = 1; //запрет на регистрацию
|
||||||
//Банк
|
//Банк
|
||||||
public static $bank_comission = 0.05; //5%
|
public static $bank_commission = 0.05; //5%
|
||||||
// Старая таблица опыта
|
// Старая таблица опыта
|
||||||
public static $exptable = [
|
public static $exptable = [
|
||||||
0 => [0, 0, 0, 0, 0, 20],
|
0 => [0, 0, 0, 0, 0, 20],
|
||||||
|
Loading…
Reference in New Issue
Block a user