<?php
include_once(dirname(__FILE__) . '/inc/bootstrap.php');

// 首页变量说明：
// - $flashNotice：提交设置后跳回首页时显示的弹窗提示。
// - $oldInput：上一次提交失败后保留的表单内容。
// - $adminRow / $adminId：当前已登录邀请后台账号信息及其主键。
// - $depositAmount：当前邀请人设置的新站长保证金金额。
// - $contactWay：当前邀请人填写的联系方式。
$flashNotice = invite_pull_flash_notice();
$oldInput = invite_pull_old_input();
$adminRow = invite_require_login();
$adminId = intval($adminRow['id']);
$adminRow = $db->prepare_fetch_first('SELECT * FROM invite_admins WHERE id=? LIMIT 1', array($adminId));
invite_refresh_admin_session($adminRow);
$inviteType = invite_normalize_invite_type($adminRow['invite_type'] ?? 'agent');
$showHzsInvite = $inviteType === 'all' || $inviteType === 'hzs';
$showAgentInvite = $inviteType === 'all' || $inviteType === 'agent';
$hasActivationDepositColumn = invite_table_has_column('invite_admins', 'activation_deposit_amount');
$hasContactWayColumn = invite_table_has_column('invite_admins', 'contact_way');
$depositAmount = invite_get_activation_deposit_amount($adminRow);
$contactWay = (string)($adminRow['contact_way'] ?? '');
$invitedHzsRow = $db->prepare_fetch_first('SELECT COUNT(*) AS cnt FROM users_hz WHERE inviter_admin_id=?', array($adminId));
$downlineUserRow = $db->prepare_fetch_first(
    'SELECT COUNT(DISTINCT u.id) AS cnt FROM users u INNER JOIN users_hz hz ON hz.id=u.yid WHERE hz.inviter_admin_id=?',
    array($adminId)
);
$invitedHzsCount = intval($invitedHzsRow['cnt'] ?? 0);
$downlineUserCount = intval($downlineUserRow['cnt'] ?? 0);
$officialYid = invite_get_official_yid();
$hasAgentInviterColumn = invite_table_has_column('agent', 'inviter_agent_id');
$invitedAgentCount = 0;
$agentDownlineUserCount = 0;
if ($officialYid > 0 && $hasAgentInviterColumn)
{
    $invitedAgentRow = $db->prepare_fetch_first(
        'SELECT IFNULL(COUNT(*),0) AS cnt FROM agent WHERE yid=? AND inviter_agent_id=?',
        array($officialYid, $adminId)
    );
    $agentDownlineRow = $db->prepare_fetch_first(
        'SELECT IFNULL(COUNT(*),0) AS cnt FROM users WHERE tjid IN (SELECT uid FROM agent WHERE yid=? AND inviter_agent_id=?) AND id NOT IN (SELECT uid FROM users_inner)',
        array($officialYid, $adminId)
    );
    $invitedAgentCount = intval($invitedAgentRow['cnt'] ?? 0);
    $agentDownlineUserCount = intval($agentDownlineRow['cnt'] ?? 0);
}

// 首页包含两个可提交的设置表单：
// 1. 保证金金额设置；
// 2. 联系方式设置。
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'save_activation_deposit')
{
    $requestSecurityError = invite_validate_post_request();
    if ($requestSecurityError !== '')
    {
        invite_redirect_with_notice('index.php', 'error', $requestSecurityError, array(
            'activation_deposit_amount' => (string)($_POST['activation_deposit_amount'] ?? ''),
        ));
    }
    else
    {
    // 邀请后台可以单独配置自己名下新合作商的保证金金额。
    // 该金额会在注册完成后直接生成待支付激活订单。
    $newDepositAmount = round(floatval($_POST['activation_deposit_amount'] ?? 0), 2);
    if (!$hasActivationDepositColumn)
    {
        invite_redirect_with_notice('index.php', 'error', '当前数据库缺少保证金字段，请先执行补丁SQL。', array(
            'activation_deposit_amount' => (string)($_POST['activation_deposit_amount'] ?? ''),
        ));
    }
    elseif ($newDepositAmount < 10000 || $newDepositAmount > 20000)
    {
        invite_redirect_with_notice('index.php', 'error', '保证金金额必须大于等于 10000 元且小于等于 20000 元', array(
            'activation_deposit_amount' => (string)($_POST['activation_deposit_amount'] ?? ''),
        ));
    }
    else
    {
        $db->prepare_execute('UPDATE invite_admins SET activation_deposit_amount=? WHERE id=?', array($newDepositAmount, $adminId));
        invite_redirect_with_notice('index.php', 'success', '保证金金额已保存');
    }
    }
}
elseif ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'save_contact_way')
{
    $requestSecurityError = invite_validate_post_request();
    if ($requestSecurityError !== '')
    {
        invite_redirect_with_notice('index.php', 'error', $requestSecurityError, array(
            'contact_way' => (string)($_POST['contact_way'] ?? ''),
        ));
    }
    else
    {
    $newContactWay = trim($_POST['contact_way'] ?? '');
    if (!$hasContactWayColumn)
    {
        invite_redirect_with_notice('index.php', 'error', '当前数据库缺少联系方式字段，请先执行补丁SQL。', array(
            'contact_way' => (string)($_POST['contact_way'] ?? ''),
        ));
    }
    elseif ($newContactWay === '')
    {
        invite_redirect_with_notice('index.php', 'error', '联系方式不能为空', array(
            'contact_way' => (string)($_POST['contact_way'] ?? ''),
        ));
    }
    elseif (mb_strlen($newContactWay, 'UTF-8') > 100)
    {
        invite_redirect_with_notice('index.php', 'error', '联系方式长度不能超过 100 个字符', array(
            'contact_way' => (string)($_POST['contact_way'] ?? ''),
        ));
    }
    else
    {
        $db->prepare_execute('UPDATE invite_admins SET contact_way=? WHERE id=?', array($newContactWay, $adminId));
        invite_redirect_with_notice('index.php', 'success', '联系方式已保存');
    }
    }
}

// 以下变量用于页面展示统计卡片、邀请链接和余额明细弹窗。
$totalWithdrawAmount = (float)($adminRow['total_withdraw_amount'] ?? 0);
$withdrawableAmount = (float)($adminRow['withdrawable_amount'] ?? 0);
$hasBalanceDetailTable = invite_table_exists(invite_admin_balance_details_table());
$balanceDetailRows = invite_fetch_admin_balance_details($adminId, 100);
$inviteLink = invite_register_url($adminRow['invite_code'] ?? '');
$agentInviteLink = invite_agent_register_url($adminRow['invite_code'] ?? '');
$hzsShareRate = round(floatval($adminRow['default_share_rate'] ?? 0), 2);
$agentShareRate = round(floatval($adminRow['agent_share_rate'] ?? 0), 2);
$hzsLoginUrl = invite_hzs_login_url();
$agentSiteUrl = invite_official_agent_site_url();
$invitePageTitle = '邀请后台';
$invitePageMeta = '当前账号：' . ($adminRow['display_name'] ?: $adminRow['username']) . '（' . ($adminRow['username'] ?? '') . '）';
$inviteActivePage = 'index';
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>邀请后台</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="assets/css/common.css?v=20260414" />
</head>
<body class="invite-admin-body">
<?php echo invite_render_flash_popup($flashNotice); ?>
<div class="page">
<?php include(dirname(__FILE__) . '/inc/top_nav.php'); ?>
<div class="wrap">
    <div class="stats">
        <?php if ($showHzsInvite) { ?>
        <div class="stat-card"><div class="label">已邀请站长数</div><div class="value"><?php echo $invitedHzsCount; ?></div></div>
        <div class="stat-card"><div class="label">下级用户数</div><div class="value"><?php echo $downlineUserCount; ?></div></div>
        <?php } ?>
        <?php if ($showAgentInvite) { ?>
        <div class="stat-card"><div class="label">已邀请代理数</div><div class="value"><?php echo $invitedAgentCount; ?></div></div>
        <div class="stat-card"><div class="label">代理下级用户数</div><div class="value"><?php echo $agentDownlineUserCount; ?></div></div>
        <?php } ?>
        <div class="stat-card"><div class="label">累计提现金额</div><div class="value"><?php echo number_format($totalWithdrawAmount, 2); ?></div></div>
        <div class="stat-card"><div class="label">当前可申请金额</div><div><div class="value"><?php echo number_format($withdrawableAmount, 2); ?><button class="detail-btn " style="margin-left:10px;"  id="openBalanceDetail" type="button">明细</button></div></div></div>
    </div>
    <div class="panel">
        <h3>我的邀请链接</h3>
        <div class="linkbox">
            <?php if ($showHzsInvite) { ?>
            <div class="note mt-12 w-100">网站用户投注流水抽成比例：0.002%</div>
            <div class="note mt-0 w-100">邀请站长分成比例：<?php echo number_format($hzsShareRate, 2); ?>%</div>
            <div class="note mt-0 w-100">站长注册链接</div>
            <div class="link-row">
                <input class="linkinput js-copy-source" id="inviteRegisterLink" type="text" readonly value="<?php echo invite_escape($inviteLink); ?>" onclick="this.select();" />
                <button class="copy-btn js-copy-btn" type="button" data-copy-target="inviteRegisterLink">复制链接</button>
            </div>
            <div class="note">通过该链接注册的站长，会自动绑定到当前邀请账号名下</div>
            <div class="note w-100">站长后台地址</div>
            <div class="link-row">
                <input class="linkinput js-copy-source" id="inviteHzsLoginLink" type="text" readonly value="<?php echo invite_escape($hzsLoginUrl); ?>" onclick="this.select();" />
                <button class="copy-btn js-copy-btn" type="button" data-copy-target="inviteHzsLoginLink">复制链接</button>
            </div>
            <div class="note">站长后台测试账号：testadmin　密码：a123456</div>
            <div class="note mt-12">设置站长保证金金额</div>
        <form method="post" class="inline-form mt-8">
            <?php echo invite_csrf_input(); ?>
            <input type="hidden" name="action" value="save_activation_deposit" />
            <input class="input" type="number" name="activation_deposit_amount" value="<?php echo invite_escape(invite_old_input_value($oldInput, 'activation_deposit_amount', number_format($depositAmount, 2, '.', ''))); ?>" placeholder="请输入保证金金额" step="0.01" min="10000" max="20000" />
            <button class="btn-mini" type="submit">保存</button>
        </form>
        <div class="note">该金额将作为新注册站长的待支付保证金，付款成功<span style="color: red;">提成直接到账</span>。该金额<span style="color: red;">不支持退款</span>，用于后期支付流水费用，请提前告知，范围：10000-20000 元</div>
            <?php } ?>
            </div>
            <div class="linkbox" style="margin-top: 14px;">
            <?php if ($showAgentInvite) { ?>
            <div class="note mt-12 w-100">代理用户投注流水抽成比例：0.0025%</div>
            <div class="note <?php echo $showHzsInvite ? 'mt-0 ' : 'mt-0 '; ?>w-100">邀请代理分成比例：<?php echo number_format($agentShareRate, 2); ?>%</div>
            <div class="note <?php echo $showHzsInvite ? 'mt-0 ' : 'mt-0 '; ?>w-100">代理邀请链接</div>
            <div class="link-row">
                <input class="linkinput js-copy-source" id="inviteAgentRegisterLink" type="text" readonly value="<?php echo invite_escape($agentInviteLink); ?>" onclick="this.select();" />
                <button class="copy-btn js-copy-btn" type="button" data-copy-target="inviteAgentRegisterLink">复制链接</button>
            </div>
            <div class="note">通过该链接可查看代理邀请页面，并跳转到官方直营代理网站</div>
            <div class="note w-100">代理网站地址</div>
            <div class="link-row">
                <input class="linkinput js-copy-source" id="inviteAgentSiteLink" type="text" readonly value="<?php echo invite_escape($agentSiteUrl); ?>" onclick="this.select();" />
                <button class="copy-btn js-copy-btn" type="button" data-copy-target="inviteAgentSiteLink">复制链接</button>
            </div>
            <div class="note">代理网站地址通过官方直营YID自动读取，若为空请先到后台配置官方直营YID及直营网站地址</div>
            <?php } ?>
        </div>

        <div class="note mt-12">联系方式</div>
        <form method="post" class="inline-form mt-8">
            <?php echo invite_csrf_input(); ?>
            <input type="hidden" name="action" value="save_contact_way" />
            <input class="input" type="text" name="contact_way" value="<?php echo invite_escape(invite_old_input_value($oldInput, 'contact_way', $contactWay)); ?>" placeholder="请输入手机号 / 微信号 / QQ号" maxlength="100" />
            <button class="btn-mini" type="submit">保存</button>
        </form>
        <div class="note">可填写手机号、微信号或 QQ，邀请页面会出现联系方式。如微信：abc123</div>
    </div>

    <div class="modal-mask" id="balanceDetailModal">
        <div class="modal" role="dialog" aria-modal="true" aria-labelledby="balanceDetailTitle">
            <div class="modal-title" id="balanceDetailTitle">余额明细</div>
            <div class="modal-sub">当前可申请金额：<?php echo number_format($withdrawableAmount, 2); ?>，展示最近 100 条记录</div>
            <div class="detail-list">
                <?php if (!$hasBalanceDetailTable) { ?>
                <div class="detail-card"><div class="note mt-0">当前数据库尚未创建余额明细表，请先执行最新补丁 SQL。</div></div>
                <?php } elseif (!$balanceDetailRows) { ?>
                <div class="detail-card"><div class="note mt-0">暂无余额明细</div></div>
                <?php } else { foreach ($balanceDetailRows as $detailRow) { $changeAmount = (float)($detailRow['change_amount'] ?? 0); ?>
                <div class="detail-card">
                    <div class="data-card-title">
                        <span>#<?php echo intval($detailRow['id']); ?></span>
                        <span><?php echo ($changeAmount > 0 ? '+' : '') . number_format($changeAmount, 2); ?></span>
                    </div>
                    <div class="data-item"><div class="data-label">余额</div><div class="data-value"><?php echo number_format((float)($detailRow['balance_amount'] ?? 0), 2); ?></div></div>
                    <div class="data-item"><div class="data-label">变化数量</div><div class="data-value"><?php echo ($changeAmount > 0 ? '+' : '') . number_format($changeAmount, 2); ?></div></div>
                    <div class="data-item"><div class="data-label">时间</div><div class="data-value"><?php echo invite_escape($detailRow['created_at'] ?? ''); ?></div></div>
                    <div class="data-item"><div class="data-label">描述</div><div class="data-value"><?php echo invite_escape($detailRow['description'] ?? ''); ?></div></div>
                </div>
                <?php } } ?>
            </div>
            <div class="modal-actions">
                <button class="btn-ghost" id="closeBalanceDetail" type="button">关闭</button>
            </div>
        </div>
    </div>
</div>
</div>
<script>
document.querySelectorAll('.js-copy-btn').forEach(function (btn) {
    btn.addEventListener('click', function () {
        var targetId = this.getAttribute('data-copy-target');
        var input = targetId ? document.getElementById(targetId) : null;
        var text = input ? input.value : '';
        if (!text) {
            return;
        }
        if (navigator.clipboard && navigator.clipboard.writeText) {
            navigator.clipboard.writeText(text).then(function () {
                btn.textContent = '已复制';
                setTimeout(function () { btn.textContent = '复制链接'; }, 1200);
            });
            return;
        }
        if (input) {
            input.focus();
            input.select();
            try {
                document.execCommand('copy');
                btn.textContent = '已复制';
                setTimeout(function () { btn.textContent = '复制链接'; }, 1200);
            } catch (e) {}
        }
    });
});

(function () {
    var openBtn = document.getElementById('openBalanceDetail');
    var closeBtn = document.getElementById('closeBalanceDetail');
    var modal = document.getElementById('balanceDetailModal');
    if (!openBtn || !closeBtn || !modal) {
        return;
    }
    function closeModal() {
        modal.classList.remove('show');
        document.body.style.overflow = '';
    }
    openBtn.addEventListener('click', function () {
        modal.classList.add('show');
        document.body.style.overflow = 'hidden';
    });
    closeBtn.addEventListener('click', closeModal);
    modal.addEventListener('click', function (event) {
        if (event.target === modal) {
            closeModal();
        }
    });
    document.addEventListener('keydown', function (event) {
        if (event.key === 'Escape' && modal.classList.contains('show')) {
            closeModal();
        }
    });
})();
</script>
<?php include(dirname(__FILE__) . '/inc/customer_service_launcher.php'); ?>
<?php echo invite_render_form_submit_guard(); ?>
</body>
</html>
