feat: address

This commit is contained in:
hashbro
2026-09-12 18:27:49 +08:00
parent 0996d4e563
commit 021a030069
2 changed files with 77 additions and 1 deletions
@@ -30,10 +30,18 @@ class WalletAddressController extends Controller
->orderBy('source')
->pluck('source');
$chainTypes = WalletAddress::query()
->whereNotNull('chain_type')
->where('chain_type', '!=', '')
->distinct()
->orderBy('chain_type')
->pluck('chain_type');
return view('admin.addresses.index', [
'portal' => $this->portal(),
'agents' => $agents,
'sources' => $sources,
'chainTypes' => $chainTypes,
]);
}
@@ -259,6 +267,10 @@ class WalletAddressController extends Controller
$deviceKey = trim((string) $request->query('device_key', ''));
$address = trim((string) $request->query('address', ''));
$source = trim((string) $request->query('source', ''));
$chainType = trim((string) $request->query('chain_type', ''));
$monitor = $request->query('monitor');
$monitorSynced = $request->query('monitor_synced');
$hasUsdt = $request->query('has_usdt');
$hasMnemonic = $request->query('has_mnemonic');
$hasBalance = $request->query('has_balance');
if ($channelId !== '') {
@@ -273,6 +285,29 @@ class WalletAddressController extends Controller
if ($source !== '') {
$q->where('wallet_addresses.source', $source);
}
if ($chainType !== '') {
$q->where('wallet_addresses.chain_type', $chainType);
}
if ($monitor === '1' || $monitor === 1) {
$q->where('wallet_addresses.monitor', 1);
} elseif ($monitor === '0' || $monitor === 0) {
$q->where('wallet_addresses.monitor', 0);
}
if ($monitorSynced === '1' || $monitorSynced === 1) {
$q->where('wallet_addresses.monitor', 1)
->where('wallet_addresses.monitor_synced', true);
} elseif ($monitorSynced === '0' || $monitorSynced === 0) {
$q->where('wallet_addresses.monitor', 1)
->where('wallet_addresses.monitor_synced', false);
}
if ($hasUsdt === '1' || $hasUsdt === 1) {
$q->where('wallet_addresses.usdt', '>', 0);
} elseif ($hasUsdt === '0' || $hasUsdt === 0) {
$q->where(function (Builder $coin) {
$coin->whereNull('wallet_addresses.usdt')
->orWhere('wallet_addresses.usdt', '<=', 0);
});
}
if ($hasMnemonic === '1' || $hasMnemonic === 1) {
$q->whereNotNull('wallet_addresses.mnemonic_id');
} elseif ($hasMnemonic === '0' || $hasMnemonic === 0) {
@@ -52,6 +52,47 @@
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">链</label>
<div class="layui-input-block">
<select name="chain_type">
<option value="">全部</option>
@foreach ($chainTypes as $ct)
<option value="{{ $ct }}">{{ $ct }}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">监听开关</label>
<div class="layui-input-block">
<select name="monitor">
<option value="">全部</option>
<option value="1">开</option>
<option value="0">关</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">已同步</label>
<div class="layui-input-block">
<select name="monitor_synced">
<option value="">全部</option>
<option value="1">是</option>
<option value="0">否</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">USDT</label>
<div class="layui-input-block">
<select name="has_usdt">
<option value="">全部</option>
<option value="1">有余额</option>
<option value="0">无余额</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">助记词</label>
<div class="layui-input-block">
@@ -221,7 +262,7 @@ layui.use(['table', 'form', 'layer'], function () {
if (f === 0) { return '0'; }
return '<span class="addr-monitor-off">' + f + '</span>';
}},
{ field: 'monitor_synced', title: '已同步', width: 90, templet: function (d) {
{ field: 'monitor_synced', title: '已同步', width: 90, fixed: 'right', templet: function (d) {
if (Number(d.monitor) !== 1) { return '—'; }
return d.monitor_synced
? '<span class="addr-monitor-on">是</span>'