devfutures / sources
Full node library
Requires
- ext-bcmath: *
- ext-curl: *
- ext-mbstring: *
- bacon/bacon-qr-code: ^2.0
- barryvdh/laravel-cors: ^0.11.2
- belphemur/laravel-gettext: ^7.1
- buzz/laravel-google-captcha: ^2.1
- guzzlehttp/guzzle: 6.*
- illuminate/support: ~5
- intervention/image: ^2.4
- nesbot/carbon: *
- pragmarx/google2fa-laravel: ^1.0.1
- pragmarx/google2fa-qrcode: ^1.0
- selfreliance/bitgo: *
- selfreliance/coinpayments: *
- selfreliance/payeer: *
- selfreliance/perfectmoney: *
- selfreliance/pulse-bitcoin: *
- tymon/jwt-auth: 1.0.*
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~7.0
- sempro/phpunit-pretty-print: ^1.0
- dev-master
- dev-feature/DFN-247-affiliate-team
- dev-feature/DFN-265-last-withdraw
- dev-feature/DFN-196-liberta-functionality
- dev-feature/DFN-200-amount
- dev-feature/DFN-156-reg-auth-log
- dev-revert-pr-119
- dev-feature/DFN-152-google-fcm
- dev-feature/DFN-154-tests-and-factory
- dev-feature/DFN-104-tickets
- dev-feature/DFN-115-auth-ref
- dev-feature/DFN-99-roles
- dev-feature/DFN-91-auth-jwt
- dev-feature/DFN-54
- dev-feature/DFN-69-ps-list
- dev-feature/DFN-55-faq-controllers
- dev-feature/DFN-16
- dev-feature/DF-5
This package is auto-updated.
Last update: 2025-03-17 21:48:36 UTC
README
How to install
composer require devfutures/sources
After install execute commands
php artisan libair:install
config/emitters.php
- copy fileApp/LibAir/
- copy all libs to directoryconfig/app.php
- change privoder for load libair
php artisan migrate
Add trait to App\User
use Tymon\JWTAuth\Contracts\JWTSubject;
use Emitters\UsersData\Traits\AddUpline;
class User extends Authenticatable implements JWTSubject
{
use Notifiable, AddUpline;
Open file App\Http\Kernel.php
protected $middleware = [
// ...
\Barryvdh\Cors\HandleCors::class,
]
protected $routeMiddleware = [
// ...
'jwt.verify' => \Emitters\LibrariesAir\Middleware\JwtMiddleware::class,
]
Develope packeges
Install laravel last version
composer create-project --prefer-dist laravel/laravel dev_futures
Add docker files to main dir from devfutures/sources/docker.zip
- unzip
Run docker
docker-compose up -d
docker-compose exec app bash
http://localhost:3099
- sitehttp://localhost:8989
- phpmyadminDB name
-emitters
DB user
-root
DB password
-root
Create dir packages/
and git clone devfutures/sources
Add to file composer.json
"autoload": {
"psr-4": {
"Emitters\\": "packages/DevFutures/Sources/src/Emitters/"
}
}
Add providers config/app.php
providers
Emitters\AdminControl\AdminControlServiceProvider::class,
Emitters\Balance\BalanceServiceProvider::class,
Emitters\ConvertingCurrencyRate\ConvertingCurrencyRateServiceProvider::class,
Emitters\DepositPlans\DepositPlansServiceProvider::class,
Emitters\DepositUsers\DepositUsersServiceProvider::class,
Emitters\Faq\FaqServiceProvider::class,
Emitters\LibrariesAir\LibrariesAirServiceProvider::class,
Emitters\News\NewsManagerServiceProvider::class,
Emitters\PaymentSystems\PaymentSystemsServiceProvider::class,
Emitters\UsersData\UsersDataServiceProvider::class,
Payment Systems
Использование в коде
use App\LibrariesAir\PaymentSystems\PaymentSystemsManager;
function load(PaymentSystemsManager $payment_systems_manager){
// Get list from db
$payment_systems_manager->get();
}
$payment_systems_manager = app()->make('libair.paymentsystems');
// Get list from db
$payment_systems_manager->get();
// Get balance and users wallet
$payment_systems_manager->getAll(App\User::find(1));
Получение не модифицированого списка платежных систем
public function get(array $sort = ['sort', 'asc']);
Изменить платежную систему по идентификатору
public function change($id, array $data, $field = 'id');
Добавить платежную систему
public function addPaymentSystem(array $data);
Удалить платежную систему по идентификатору
public function destroy($id, $field = 'id');
Востановить удаленную платежную систему
public function restore($id, $field = 'id');
Получить платежную систему по идентификатору 1 результат
public function getOne($id, $field = 'id');
Получить платежные системы с кошельками и балансом
public function getAll($user, array $sort = ['sort', 'asc']);
Модификатор добавления ссылки на blockchain
public function addBlockchainLink($currency, $transaction);
Модификатор ссылки для платежа в блокчейне
public function addBlockchainPayLink($currency, $value, $amount);
Платежные системы с кошельками пользователя
abstract protected function addWallets($user, $payment_system);
Платежные системы с балансом
abstract protected function addBalance($user, $payment_system);
Получить платежные системы с балансом и кошельками
abstract protected function getWithWalletBalance($user, array $sort);
Получить одно уникальное значение из платежных систем, например только уникальные title или currency, вторым аргументом массив который нужно исключить из конечного результата
public function getPluckUniqValues($search_key = 'currency', $ignore = ['usd']);
Balance
Извлечение BalanceManager
Получение через IoC
$balanceManager = resolve('librariesair.balance');
Использование в контроллере с помощью type-hinting
use App\LibrariesAir\Balance\BalanceManager;
...
public function index(BalanceManager $balanceManager) {
...
}
Методы BalanceManager
Получение всех балансов пользователя
$balanceManager->getAll($user, $paymentSystemIds, $original);
- $user - объект модели User
- $paymentSystemIds - массив id платежных систем для которых требуется получить баланс
- $original - получение не округленных балансов в случае если указан true, по умолчанию false
- return type - array
Округление балансов
$balanceManager->decimalBalance($balances);
- $balances - массив балансов
- return type - array
Изменение баланса
$balanceManager->changeBalance($data);
$data - массив данных для изменения баланса
$exampleData = [
'user_id' => 1, //id пользователя для которого необходимо изменить баланс.
'payment_system_id' => 3, //id платежной системы
'type' => 'buy' // 'buy' в случае покупки, 'sell' в случае продажы.
];
- return type - boolean true/false.
Deposit Plans
Извлечение DepositPlansManager
Получение через IoC
$depositPlans = resolve('libair.depositplans');
Использование в контроллере с помощью type-hinting
use App\LibrariesAir\DepositPlans\DepositPlansManager;
...
public function index(DepositPlansManager $depositPlans) {
...
}
Validation create/update
use Emitters\DepositPlans\Requests\DepositPlanRequest;
function save(DepositPlanRequest $request, DepositPlansManager $depositPlans){
$depositPlans->store($request->all());
}
Методы DepositPlansManager
Создание нового плана
$balanceManager->store(array $data);
- $data['name'] - Название плана
- $data['description'] - Описание плана
- $data['duration_plan'] - количество начислений по плану
- $data['accrual_period'] - период начислений депозита в секунда, 24 часа 86400 секунд
- $data['status'] - (int) 0 - не активный, 1 - активный, 2 - скрыт
- $data['minimum_amount'] - минимальная сумма депозита в USD
- $data['maximum_amount'] - максимальная сумма депозита в USD
- $data['payments_days_percent'] - array ключ день недели, в нем статус и процент
- $data['principal_return_percent'] - процент возврата по окончанию депозита
- return type model object
Список всех доступных планов по всем статусам
$balanceManger->getPlans();
Получить план по идентификатору
$balanceManger->getPlanById($id);
Получить план по сумме
$balanceManger->getPlanByAmount($amount)
Модифицирование результата при фунциях getPlans
& getPlanById
$balanceManger->modifyPlan();
Дата выхода в безубыток
$balanceManger->getBreakEvenDate($plan);
- Добавляет значение
break_event
- Carbon\Carbon;
Дата когда депозит будет закрыт
$balanceManger->getDateCloseDeposit($plan);
- Добавляет значение
deposit_close
- Carbon\Carbon;
Получить дату следующего начисления
$balanceManger->getNextAccruals($plan, $date = null);
Получить процент по идентификатору плана
$balanceManger->getPercent($plan_id, $date = null);
- return percent or false
Извленеие процента из плана, проходим по массиву payments_days_percent
$balanceManger->extractionPercent($plan, $date = null);
Получение конвертируемых сумм для всех платежных систем
$balanceManger->getMinMaxAmount($plan);
- добавляем значенеи
minimum_amount_{CURRENCY}
- минимальная сумма в валюте - добавляем значенеи
maximum_amount_{CURRENCY}
- максимальная сумма в валюте
Считаем сумму к профиту через bcmath( $amount*$percent/100)
$balanceManger->getAmountToProfit(string $amount, string $percent);
Массив для хранения процентов по дням недели
$balanceManger->defaultPaymentDaysPercent();
Заполняем перед занесением в базу данных начисления по дням недели
$balanceManger->comparePaymentDaysPercent(array $preCreatedData);
Deposit Users
Извлечение DepositUsersManager
Получение через IoC
$depositUsers = resolve('libair.depositusers');
Использование в контроллере с помощью type-hinting
use App\LibrariesAir\DepositUsers\DepositUsersManager;
...
public function index(DepositUsersManager $depositUsers) {
...
}
Методы DepositUsersManager
Создание нового депозита
$depositUsers->createDeposit($user, $plan, $amount, $payment_system);
- App\User - object
- Emitters\DepositPlans\Models\Deposit_Plans - object
- amount - сумма депозита
- платежная система ID
- return type model object
Активные депозиты пользователя
$depositUsers->getDepositUser(User $user);
Получит информацию о депозите с планом
$depositUsers->getDepositOne(int $deposit_id);
Неактивные депозиты пользователя
$depositUsers->getDepositUserEnd(User $user);
Список депозитов всех пользователей с постраничной навигацией и фильтрами
$depositUsers->getDeposits(array $filter = [])
Изменить количество депозитов на одной странице
$depositUsers->setPaginateNum(20);
Проверить может ли пользователь иметь такое количество депозитов по условия плана
$this->checkCountDepositsUsers(User $user, Deposit_Plans $plan);
Количество депозитов пользователя с дополнительным условием плана
$depositUsers->countDepositsUsers(User $user, Deposit_Plans $plan = null);
Обновить сумму депозита
$depositUsers->updateDepositAmount($depositId = null, $amount, $fromBalance = false);
- depositId - int идентификатор депозита
- сколько необходимо добавить к сумме депозита
- операция добавления с баланса или нет