devfutures / sources
dev-master
2020-01-17 09:53 UTC
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: 2024-09-17 20:35:15 UTC
README
如何安装
composer require devfutures/sources
安装后执行命令
php artisan libair:install
config/emitters.php
- 复制文件App/LibAir/
- 将所有库复制到目录config/app.php
- 更改加载libair的提供者
php artisan migrate
向App\User
添加特质
use Tymon\JWTAuth\Contracts\JWTSubject;
use Emitters\UsersData\Traits\AddUpline;
class User extends Authenticatable implements JWTSubject
{
use Notifiable, AddUpline;
打开文件App\Http\Kernel.php
protected $middleware = [
// ...
\Barryvdh\Cors\HandleCors::class,
]
protected $routeMiddleware = [
// ...
'jwt.verify' => \Emitters\LibrariesAir\Middleware\JwtMiddleware::class,
]
开发包
安装laravel最新版本
composer create-project --prefer-dist laravel/laravel dev_futures
从devfutures/sources/docker.zip
将docker文件添加到主目录 - 解压缩
运行docker
docker-compose up -d
docker-compose exec app bash
https://:3099
- 网站https://:8989
- phpmyadminDB name
-emitters
DB user
-root
DB password
-root
创建目录packages/
并将devfutures/sources
克隆到git
添加到文件composer.json
"autoload": {
"psr-4": {
"Emitters\\": "packages/DevFutures/Sources/src/Emitters/"
}
}
将提供者添加到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,
支付系统
在代码中使用
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']);
添加区块链链接的修改器
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']);
余额
提取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
- 返回类型 - 数组
四舍五入余额
$balanceManager->decimalBalance($balances);
- $balances - 余额数组
- 返回类型 - 数组
修改余额
$balanceManager->changeBalance($data);
$data - 修改余额的数据数组
$exampleData = [
'user_id' => 1, //id пользователя для которого необходимо изменить баланс.
'payment_system_id' => 3, //id платежной системы
'type' => 'buy' // 'buy' в случае покупки, 'sell' в случае продажы.
];
- 返回类型 - 布尔值 true/false.
存款计划
提取DepositPlansManager
通过IoC获取
$depositPlans = resolve('libair.depositplans');
使用type-hinting在控制器中使用
use App\LibrariesAir\DepositPlans\DepositPlansManager;
...
public function index(DepositPlansManager $depositPlans) {
...
}
创建/更新验证
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'] - 数组,键为星期几,值为状态和百分比
- $data['principal_return_percent'] - 存款到期后的回报百分比
- 返回类型 - 模型对象
获取所有状态的所有可用计划列表
$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);
- 返回百分比或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);
存款用户
提取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 - 对象
- Emitters\DepositPlans\Models\Deposit_Plans - 对象
- amount - 存款金额
- 支付系统ID
- 返回类型 - 模型对象
用户活跃的存款
$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 存款标识符
- 需要添加到存款金额的金额
- 是否从余额中添加操作