From 9d79a630600bcf663083ba0409f82a104376b15a Mon Sep 17 00:00:00 2001 From: mx Date: Tue, 3 May 2022 10:31:23 +0700 Subject: [PATCH] add agent manager --- app/Admin/Controllers/AgentController.php | 296 ++++++++++++++++++++++ app/Admin/routes.php | 1 + app/Agent.php | 10 + 3 files changed, 307 insertions(+) create mode 100644 app/Admin/Controllers/AgentController.php create mode 100644 app/Agent.php diff --git a/app/Admin/Controllers/AgentController.php b/app/Admin/Controllers/AgentController.php new file mode 100644 index 0000000..538d446 --- /dev/null +++ b/app/Admin/Controllers/AgentController.php @@ -0,0 +1,296 @@ +model()->orderBy('id', 'desc'); + + $grid->filter(function ($filter) { + + // 去掉默认的id过滤器 + $filter->disableIdFilter(); + + // 在这里添加字段过滤器 + $filter->like('address', '钱包地址'); + $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(); + + 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('balance', '平台币')->expand(function ($model) { + $data = Vault3::where(['id' => $model['id']])->first(); + + 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 "正常"; + } else { + return "禁用"; + } + }); + $grid->column('use1', __('收益状态'))->display(function ($title) { + if ($title == 1) { + return "正常"; + } else { + return "禁用"; + } + }); + + $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) { + return (int)((time() - strtotime($title)) / 60) . '分钟'; + }); + + $grid->actions(function ($actions) { + // 去掉查看 + $actions->disableView(); + $actions->add(new Replicate()); + $actions->add(new Airdrop()); + $actions->add(new Swap()); + }); + + + $grid->disableCreateButton(); + return $grid; + } + + /** + * Make a show builder. + * + * @param mixed $id + * @return Show + */ + protected function detail($id) + { + $show = new Show(User::findOrFail($id)); + + $show->field('id', __('ID')); + $show->field('created_at', __('Created at')); + $show->field('updated_at', __('Updated at')); + + return $show; + } + + /** + * Make a form builder. + * + * @return Form + */ + 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(); + $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('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('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_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); + $form->switch('use', '本金状态')->states($states); + $form->switch('use1', '收益状态')->states($states); + + $form->setAction('post'); + + return $form; + } + + + public function post(Request $request) + { + $id = $request->id; + + $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"), + ]); + + + + $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("use") == 'off') { + $use = 2; + } else { + $use = 1; + } + if ($request->input("use1") == 'off') { + $use1 = 2; + } else { + $use1 = 1; + } + + $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"), + 'remark' => $request->input("remark"), + 'use' => $use, + 'use1' => $use1, + 'user_type' => $user_type + ]); + + return redirect('/admin/user'); + } +} diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 79edd51..f622674 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -35,4 +35,5 @@ Route::group([ $router->resource('adminusers', AdminusersController::class); $router->resource('system', SystemController::class); $router->resource('setting', SettingController::class); + $router->resource('agent', AgentController::class); }); diff --git a/app/Agent.php b/app/Agent.php new file mode 100644 index 0000000..755b645 --- /dev/null +++ b/app/Agent.php @@ -0,0 +1,10 @@ +