From 414998ce367eee32f3eca4fa2c5a809c40329479 Mon Sep 17 00:00:00 2001 From: Mars <3361409208a@gmail.com> Date: Mon, 8 Jun 2026 15:34:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin,api,player):=20=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E5=B1=82=E7=BA=A7=E7=AE=A1=E7=90=86=E3=80=81=E9=A2=9D=E5=BA=A6?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E5=88=86=E4=B8=8E=E7=8E=A9=E5=AE=B6=E9=92=B1?= =?UTF-8?q?=E5=8C=85=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增代理管理器与二级代理体系,完善信用额度/上下分上下文与冻结策略;代理端玩家与子代理管理增强;玩家端新增钱包详情页与交易筛选优化。 Co-authored-by: Cursor --- apps/admin/src/api.ts | 75 +- .../src/components/AgentCreditContext.vue | 137 ++ .../src/components/WalletTransferContext.vue | 116 ++ .../src/composables/useAdminPlayerTransfer.ts | 132 ++ apps/admin/src/i18n/admin-messages.ts | 54 +- apps/admin/src/i18n/admin-pages-ms.ts | 18 +- apps/admin/src/i18n/admin-pages.ts | 100 + apps/admin/src/i18n/form-validation.ts | 14 + apps/admin/src/layouts/ManageLayout.vue | 17 +- apps/admin/src/main.ts | 11 +- apps/admin/src/router/index.ts | 20 +- apps/admin/src/stores/auth.ts | 84 +- apps/admin/src/utils/agent-credit-context.ts | 71 + apps/admin/src/utils/expandable-table.ts | 17 + apps/admin/src/utils/session-hydrate.ts | 79 + .../src/utils/wallet-transfer-context.ts | 51 + apps/admin/src/views/AgentManager.vue | 1644 +++++++++++++++++ apps/admin/src/views/Agents.vue | 28 +- apps/admin/src/views/Cashback.vue | 19 +- apps/admin/src/views/HomeEntry.vue | 24 +- apps/admin/src/views/Login.vue | 4 + apps/admin/src/views/Users.vue | 93 +- apps/admin/src/views/agent-form.ts | 59 + apps/admin/src/views/agent/Dashboard.vue | 501 ++++- apps/admin/src/views/agent/Players.vue | 999 +++++++++- apps/admin/src/views/agent/SubAgents.vue | 438 ++++- .../src/views/agent/agent-player-form.ts | 133 ++ .../src/views/agent/agent-sub-agent-form.ts | 151 ++ apps/admin/src/views/dashboard-types.ts | 57 + apps/admin/src/views/user-form.ts | 6 + .../applications/admin/admin.controller.ts | 109 +- .../agent/agent-portal.controller.ts | 186 +- .../applications/player/player.controller.ts | 3 +- apps/api/src/domains/agent/agents.module.ts | 3 +- apps/api/src/domains/agent/agents.service.ts | 817 +++++++- .../src/domains/identity/auth.controller.ts | 23 +- apps/api/src/domains/identity/auth.service.ts | 18 + apps/api/src/domains/ledger/wallet.service.ts | 19 +- apps/api/src/integration.spec.ts | 10 + .../shared/config/system-config.service.ts | 35 + apps/player/src/api/index.ts | 8 +- apps/player/src/assets/images/钱包.png | Bin 2378089 -> 2382492 bytes .../src/components/WalletStatsPanel.vue | 27 +- apps/player/src/layouts/MainLayout.vue | 8 +- apps/player/src/main.ts | 9 + apps/player/src/router/index.ts | 1 + apps/player/src/utils/walletTx.ts | 7 +- apps/player/src/views/BetDetailView.vue | 30 +- apps/player/src/views/MatchDetailView.vue | 25 + apps/player/src/views/ProfileEditView.vue | 30 +- apps/player/src/views/ProfileView.vue | 32 +- apps/player/src/views/WalletDetailView.vue | 357 ++++ .../src/views/WalletTransactionDetailView.vue | 30 +- apps/player/src/views/WalletView.vue | 183 +- 54 files changed, 6641 insertions(+), 481 deletions(-) create mode 100644 apps/admin/src/components/AgentCreditContext.vue create mode 100644 apps/admin/src/components/WalletTransferContext.vue create mode 100644 apps/admin/src/composables/useAdminPlayerTransfer.ts create mode 100644 apps/admin/src/utils/agent-credit-context.ts create mode 100644 apps/admin/src/utils/expandable-table.ts create mode 100644 apps/admin/src/utils/session-hydrate.ts create mode 100644 apps/admin/src/utils/wallet-transfer-context.ts create mode 100644 apps/admin/src/views/AgentManager.vue create mode 100644 apps/admin/src/views/agent/agent-player-form.ts create mode 100644 apps/admin/src/views/agent/agent-sub-agent-form.ts create mode 100644 apps/player/src/views/WalletDetailView.vue diff --git a/apps/admin/src/api.ts b/apps/admin/src/api.ts index dd3d176..32dcd35 100644 --- a/apps/admin/src/api.ts +++ b/apps/admin/src/api.ts @@ -1,28 +1,101 @@ import axios from 'axios'; import router from './router'; -import { clearStaffSession } from './stores/auth'; +import { clearStaffSession, reconcileStaffSessionFromToken, useAuthStore } from './stores/auth'; +import { ensureStaffSession, resetStaffSessionHydration } from './utils/session-hydrate'; const api = axios.create({ baseURL: '/api' }); let handling401 = false; +let handling403Portal = false; + +const PORTAL_MISMATCH_MESSAGES = new Set(['Admin access only', 'Agent access only']); + +function requestPath(config: { url?: string; baseURL?: string } | undefined): string { + if (!config?.url) return ''; + const base = config.baseURL ?? ''; + return `${base}${config.url}`; +} api.interceptors.request.use((config) => { const t = localStorage.getItem('manage_token'); if (t) config.headers.Authorization = `Bearer ${t}`; + + reconcileStaffSessionFromToken(); + const auth = useAuthStore(); + const path = requestPath(config); + + if (path.includes('/admin/') && auth.isAgent.value) { + return Promise.reject( + Object.assign(new Error('Agent portal blocked admin API'), { + isPortalMismatch: true, + blockedPath: path, + }), + ); + } + if (path.includes('/agent/') && auth.isAdmin.value) { + return Promise.reject( + Object.assign(new Error('Admin portal blocked agent API'), { + isPortalMismatch: true, + blockedPath: path, + }), + ); + } + return config; }); api.interceptors.response.use( (res) => res, async (err) => { + if (err.isPortalMismatch) { + await ensureStaffSession(); + if (router.currentRoute.value.path !== '/login') { + await router.replace('/'); + } + return Promise.reject(err); + } + if (err.response?.status === 401 && !handling401) { handling401 = true; clearStaffSession(); + resetStaffSessionHydration(); if (router.currentRoute.value.path !== '/login') { await router.replace('/login'); } handling401 = false; } + + if ( + err.response?.status === 403 && + !handling403Portal && + PORTAL_MISMATCH_MESSAGES.has(err.response?.data?.message) + ) { + handling403Portal = true; + await ensureStaffSession(); + handling403Portal = false; + + const auth = useAuthStore(); + const path = requestPath(err.config); + const isAdminApi = path.includes('/admin/'); + const isAgentApi = path.includes('/agent/'); + + if ((isAdminApi && auth.isAgent.value) || (isAgentApi && auth.isAdmin.value)) { + if (router.currentRoute.value.path !== '/login') { + await router.replace('/'); + } + return Promise.reject(err); + } + + if (err.config) { + return api.request(err.config); + } + + clearStaffSession(); + if (router.currentRoute.value.path !== '/login') { + await router.replace('/login'); + } + } + return Promise.reject(err); }, ); diff --git a/apps/admin/src/components/AgentCreditContext.vue b/apps/admin/src/components/AgentCreditContext.vue new file mode 100644 index 0000000..6780e22 --- /dev/null +++ b/apps/admin/src/components/AgentCreditContext.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/apps/admin/src/components/WalletTransferContext.vue b/apps/admin/src/components/WalletTransferContext.vue new file mode 100644 index 0000000..be3c3e5 --- /dev/null +++ b/apps/admin/src/components/WalletTransferContext.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/apps/admin/src/composables/useAdminPlayerTransfer.ts b/apps/admin/src/composables/useAdminPlayerTransfer.ts new file mode 100644 index 0000000..dfeb908 --- /dev/null +++ b/apps/admin/src/composables/useAdminPlayerTransfer.ts @@ -0,0 +1,132 @@ +import { ref, computed } from 'vue'; +import { ElMessage } from 'element-plus'; +import api from '../api'; +import { useAdminLocale } from './useAdminLocale'; +import { + depositAmountCap, + parsePlayerAvailable, + type WalletTransferContext, +} from '../utils/wallet-transfer-context'; + +export type PlayerTransferTarget = { id: string; username?: string }; + +export function useAdminPlayerTransfer(onSuccess?: () => void | Promise) { + const { t } = useAdminLocale(); + + const transferVisible = ref(false); + const transferLoading = ref(false); + const transferType = ref<'deposit' | 'withdraw'>('deposit'); + const transferTarget = ref(null); + const transferAmount = ref(100); + const transferRemark = ref(''); + const transferContext = ref(null); + const transferContextLoading = ref(false); + + const transferAmountRange = computed(() => { + if (transferType.value === 'withdraw') { + const cap = parsePlayerAvailable(transferContext.value); + if (cap <= 0) return { min: 0, max: 0 }; + return { min: Math.min(0.01, cap), max: cap }; + } + const cap = depositAmountCap(transferContext.value); + if (cap === undefined) return { min: 0.01, max: undefined as number | undefined }; + if (cap <= 0) return { min: 0, max: 0 }; + return { min: Math.min(0.01, cap), max: cap }; + }); + + const transferAmountDisabled = computed(() => transferAmountRange.value.max === 0); + + function transferTitle() { + const name = transferTarget.value?.username ?? transferTarget.value?.id ?? ''; + return transferType.value === 'deposit' + ? t('agent_portal.transfer_title_deposit', { name }) + : t('agent_portal.transfer_title_withdraw', { name }); + } + + async function openTransfer(type: 'deposit' | 'withdraw', row: PlayerTransferTarget) { + transferType.value = type; + transferTarget.value = row; + transferContext.value = null; + transferAmount.value = 100; + transferRemark.value = type === 'deposit' ? t('user.deposit_remark_default') : ''; + transferVisible.value = true; + transferContextLoading.value = true; + try { + const { data } = await api.get(`/admin/wallet/transfer-context/${row.id}`); + transferContext.value = data.data as WalletTransferContext; + if (type === 'deposit') { + const cap = depositAmountCap(transferContext.value); + transferAmount.value = + cap !== undefined && cap > 0 ? Math.min(100, cap) : cap === undefined ? 100 : 0; + } else { + const cap = parsePlayerAvailable(transferContext.value); + transferAmount.value = cap > 0 ? Math.min(100, cap) : 0; + } + } catch (e: unknown) { + const err = e as { response?: { data?: { error?: string } } }; + ElMessage.error(err.response?.data?.error ?? t('msg.load_failed')); + transferVisible.value = false; + } finally { + transferContextLoading.value = false; + } + } + + async function submitTransfer() { + if (!transferTarget.value) return; + if (transferAmount.value <= 0) { + ElMessage.warning(t('msg.amount_gt_zero')); + return; + } + const max = transferAmountRange.value.max; + if (max !== undefined && transferAmount.value > max) { + ElMessage.warning( + transferType.value === 'deposit' + ? t('err.insufficient_credit') + : t('transfer.context.withdraw_exceed'), + ); + return; + } + const userId = transferTarget.value.id; + const amount = transferAmount.value; + transferLoading.value = true; + try { + const requestId = `${transferType.value === 'deposit' ? 'dep' : 'wd'}-${userId}-${Date.now()}`; + const endpoint = + transferType.value === 'deposit' ? '/admin/wallet/deposit' : '/admin/wallet/withdraw'; + await api.post(endpoint, { + userId, + amount, + remark: transferRemark.value || undefined, + requestId, + }); + ElMessage.success( + transferType.value === 'deposit' ? t('msg.topup_ok') : t('msg.withdraw_ok'), + ); + transferVisible.value = false; + await onSuccess?.(); + } catch (e: unknown) { + const err = e as { response?: { data?: { error?: string } } }; + const fallback = + transferType.value === 'deposit' ? t('msg.topup_failed') : t('msg.transfer_failed'); + ElMessage.error(err.response?.data?.error ?? fallback); + } finally { + transferLoading.value = false; + } + } + + return { + transferVisible, + transferLoading, + transferType, + transferTarget, + transferAmount, + transferRemark, + transferContext, + transferContextLoading, + transferAmountRange, + transferAmountDisabled, + transferTitle, + openTransfer, + submitTransfer, + }; +} diff --git a/apps/admin/src/i18n/admin-messages.ts b/apps/admin/src/i18n/admin-messages.ts index 5087abe..5474c7c 100644 --- a/apps/admin/src/i18n/admin-messages.ts +++ b/apps/admin/src/i18n/admin-messages.ts @@ -26,12 +26,14 @@ const zh: Record = { 'login.quick_label': '快速登录(调试)', 'login.quick_admin': '管理员', 'login.quick_agent': '一级代理', + 'login.quick_agent2': '二级代理', 'login.captcha_ph': '验证码', 'login.captcha_refresh': '点击刷新', 'nav.dashboard': '概览', 'nav.users': '玩家管理', 'nav.agents': '代理管理', + 'nav.agents_players': '代理&玩家', 'nav.matches': '赛事管理', 'nav.outrights': '优胜冠军', 'nav.bets': '注单管理', @@ -49,6 +51,8 @@ const zh: Record = { 'breadcrumb.outright_edit': '编辑优胜冠军', 'role.admin': '系统管理员', 'role.agent': '代理账号', + 'role.tier1_agent': '一级代理', + 'role.tier2_agent': '二级代理', 'logout': '退出', 'lang': '语言', 'portal.admin': '平台后台', @@ -135,11 +139,21 @@ const zh: Record = { 'page.audit.desc': '记录所有管理员操作行为', 'page.settlement.title': '赛事结算', 'page.agent_dash.title': '代理概览', - 'page.agent_dash.desc': '实时数据总览', + 'page.agent_dash.desc': '下线经营概况与分布', + 'agent_dash.load_error_hint': '无法加载概览数据,请检查网络或重新登录后再试。', + 'agent_dash.board_hint': '一屏查看下线经营趋势与分布', + 'agent_dash.kpi_players': '直属玩家 / 下级代理', + 'agent_dash.kpi_pending_sub': '{bets} 单待结算', + 'agent_dash.pie_credit': '授信占用', + 'agent_dash.pie_players': '直属玩家', + 'agent_dash.credit_available': '可用额度', + 'agent_dash.credit_used': '已用额度', + 'agent_dash.liability_direct': '玩家余额占用', + 'agent_dash.liability_child': '下级代理占用', 'page.agent_players.title': '直属玩家', 'page.agent_players.desc': '管理你名下的直属玩家', 'page.agent_sub.title': '下级代理', - 'page.agent_sub.desc': '仅一级代理可见', + 'page.agent_sub.desc': '管理二级代理账号与授信分配', 'page.agent_bets.title': '注单查询', 'page.agent_bets.desc': '下级玩家的全部投注记录', @@ -190,12 +204,14 @@ const en: Record = { 'login.quick_label': 'Quick sign-in (debug)', 'login.quick_admin': 'Admin', 'login.quick_agent': 'Tier-1 agent', + 'login.quick_agent2': 'Tier-2 agent', 'login.captcha_ph': 'Captcha', 'login.captcha_refresh': 'Click to refresh', 'nav.dashboard': 'Overview', 'nav.users': 'Players', 'nav.agents': 'Agents', + 'nav.agents_players': 'Agents & Players', 'nav.matches': 'Matches', 'nav.outrights': 'Outrights', 'nav.bets': 'Bets', @@ -213,6 +229,8 @@ const en: Record = { 'breadcrumb.outright_edit': 'Edit outright', 'role.admin': 'Administrator', 'role.agent': 'Agent', + 'role.tier1_agent': 'Tier-1 Agent', + 'role.tier2_agent': 'Tier-2 Agent', 'logout': 'Logout', 'lang': 'Language', 'portal.admin': 'Platform Admin', @@ -299,11 +317,21 @@ const en: Record = { 'page.audit.desc': 'Administrator action history', 'page.settlement.title': 'Settlement', 'page.agent_dash.title': 'Agent overview', - 'page.agent_dash.desc': 'Live summary', + 'page.agent_dash.desc': 'Downline performance at a glance', + 'agent_dash.load_error_hint': 'Could not load overview. Check your network or sign in again.', + 'agent_dash.board_hint': 'Trends and distribution for your downline', + 'agent_dash.kpi_players': 'Direct players / Sub-agents', + 'agent_dash.kpi_pending_sub': '{bets} pending bets', + 'agent_dash.pie_credit': 'Credit usage', + 'agent_dash.pie_players': 'Direct players', + 'agent_dash.credit_available': 'Available', + 'agent_dash.credit_used': 'Used', + 'agent_dash.liability_direct': 'Player balance', + 'agent_dash.liability_child': 'Sub-agent exposure', 'page.agent_players.title': 'My players', 'page.agent_players.desc': 'Players under your account', 'page.agent_sub.title': 'Sub-agents', - 'page.agent_sub.desc': 'Tier-1 agents only', + 'page.agent_sub.desc': 'Manage tier-2 agents and credit allocation', 'page.agent_bets.title': 'Bet search', 'page.agent_bets.desc': 'All bets from downstream players', @@ -354,12 +382,14 @@ const ms: Record = { 'login.quick_label': 'Log masuk pantas (debug)', 'login.quick_admin': 'Admin', 'login.quick_agent': 'Ejen peringkat 1', + 'login.quick_agent2': 'Ejen peringkat 2', 'login.captcha_ph': 'Captcha', 'login.captcha_refresh': 'Klik untuk muat semula', 'nav.dashboard': 'Gambaran', 'nav.users': 'Pemain', 'nav.agents': 'Ejen', + 'nav.agents_players': 'Ejen & Pemain', 'nav.matches': 'Perlawanan', 'nav.outrights': 'Juara', 'nav.bets': 'Pertaruhan', @@ -377,6 +407,8 @@ const ms: Record = { 'breadcrumb.outright_edit': 'Edit juara', 'role.admin': 'Pentadbir', 'role.agent': 'Ejen', + 'role.tier1_agent': 'Ejen Peringkat 1', + 'role.tier2_agent': 'Ejen Peringkat 2', 'logout': 'Log keluar', 'lang': 'Bahasa', 'portal.admin': 'Admin Platform', @@ -463,11 +495,21 @@ const ms: Record = { 'page.audit.desc': 'Sejarah tindakan pentadbir', 'page.settlement.title': 'Penyelesaian', 'page.agent_dash.title': 'Gambaran ejen', - 'page.agent_dash.desc': 'Ringkasan langsung', + 'page.agent_dash.desc': 'Prestasi downline sepintas lalu', + 'agent_dash.load_error_hint': 'Gagal memuatkan gambaran. Semak rangkaian atau log masuk semula.', + 'agent_dash.board_hint': 'Trend dan taburan downline anda', + 'agent_dash.kpi_players': 'Pemain terus / Ejen bawahan', + 'agent_dash.kpi_pending_sub': '{bets} pertaruhan belum selesai', + 'agent_dash.pie_credit': 'Penggunaan kredit', + 'agent_dash.pie_players': 'Pemain terus', + 'agent_dash.credit_available': 'Tersedia', + 'agent_dash.credit_used': 'Digunakan', + 'agent_dash.liability_direct': 'Baki pemain', + 'agent_dash.liability_child': 'Pendedahan ejen bawahan', 'page.agent_players.title': 'Pemain saya', 'page.agent_players.desc': 'Pemain di bawah akaun anda', 'page.agent_sub.title': 'Sub-ejen', - 'page.agent_sub.desc': 'Ejen peringkat 1 sahaja', + 'page.agent_sub.desc': 'Urus ejen peringkat 2 dan peruntukan kredit', 'page.agent_bets.title': 'Carian pertaruhan', 'page.agent_bets.desc': 'Semua pertaruhan pemain hiliran', diff --git a/apps/admin/src/i18n/admin-pages-ms.ts b/apps/admin/src/i18n/admin-pages-ms.ts index c1ee8ea..8de3e72 100644 --- a/apps/admin/src/i18n/admin-pages-ms.ts +++ b/apps/admin/src/i18n/admin-pages-ms.ts @@ -94,13 +94,17 @@ export const adminPagesMs: Record = { 'user.field.account_type': 'Jenis akaun', 'user.type.player': 'Pemain', 'user.type.tier1_agent': 'Ejen peringkat 1', + 'user.type.sub_agent': 'Sub-ejen', 'user.hint.account_type': 'Ejen guna had kredit; pemain boleh di bawah ejen', 'agent.create_btn': '+ Ejen peringkat 1 baharu', + 'agent.create_sub': 'Cipta sub-ejen', + 'agent.hint.creating_under_agent': 'Cipta akaun di bawah ejen ini', 'agent.filter.username_ph': 'Nama pengguna', 'agent.col.level': 'Peringkat', 'agent.col.credit': 'Had / Digunakan / Tersedia', 'agent.col.direct_players': 'Pemain terus', + 'agent.col.sub_agents': 'Sub-ejen', 'agent.col.cashback': 'Kadar rebat', 'agent.col.phone': 'Telefon', 'agent.col.created': 'Dicipta', @@ -359,9 +363,9 @@ export const adminPagesMs: Record = { 'err.password_min': 'Kata laluan sekurang-kurangnya 8 aksara', 'err.password_mismatch': 'Kata laluan tidak sepadan', 'err.credit_negative': 'Had kredit tidak boleh negatif', + 'err.insufficient_credit': 'Kredit tersedia tidak mencukupi. Kurangkan jumlah atau minta penambahan had.', 'err.kickoff_required': 'Sila isi masa mula', 'err.team_country_required': 'Pilih pasukan tuan rumah dan pelawat', - 'err.team_country_required': 'Pilih pasukan tuan rumah dan pelawat', 'err.teams_required': 'Isi nama pasukan tuan rumah dan pelawat (ZH atau EN)', 'err.teams_same': 'Pasukan tuan rumah dan pelawat mesti berbeza', 'err.league_required': 'Sila isi nama liga', @@ -433,6 +437,18 @@ export const adminPagesMs: Record = { 'agent_portal.withdraw_btn_label': 'Keluarkan', 'agent_portal.transfer_title_deposit': 'Tambah baki {name}', 'agent_portal.transfer_title_withdraw': 'Keluarkan dari {name}', + 'agent_portal.create_player_dialog': 'Pemain baharu', + 'agent_portal.edit_player_dialog': 'Edit pemain langsung', + 'agent_portal.credit_available_hint': 'Kredit tersedia: {amount} (tambah baki ditolak dari had)', + 'agent_portal.initial_deposit_hint': 'Pilihan. Tambah baki awal dari kredit anda semasa pendaftaran', + 'agent_portal.search_player_ph': 'Nama pengguna atau ID', + 'agent_portal.no_players': 'Tiada pemain langsung. Klik butang di atas untuk cipta.', + 'agent_portal.search_sub_agent_ph': 'Nama pengguna atau ID', + 'agent_portal.no_sub_agents': 'Tiada ejen peringkat 2. Klik butang di atas untuk cipta.', + 'agent_portal.create_sub_agent_dialog': 'Ejen peringkat 2 baharu', + 'agent_portal.sub_agent_credit_hint': 'Kredit awal diperuntukkan dari had tersedia anda', + 'agent_portal.adjust_credit_dialog': 'Laraskan kredit {name}', + 'agent_portal.credit_adjust_hint': 'Positif untuk tambah, negatif untuk kurangkan', 'msg.agent_sub_created': 'Sub-ejen dicipta', 'msg.withdraw_ok': 'Pengeluaran berjaya', diff --git a/apps/admin/src/i18n/admin-pages.ts b/apps/admin/src/i18n/admin-pages.ts index 1b8c8b5..41fdb57 100644 --- a/apps/admin/src/i18n/admin-pages.ts +++ b/apps/admin/src/i18n/admin-pages.ts @@ -94,13 +94,17 @@ export const adminPagesZh: Record = { 'user.field.account_type': '账号类型', 'user.type.player': '玩家', 'user.type.tier1_agent': '一级代理', + 'user.type.sub_agent': '二级代理', 'user.hint.account_type': '代理使用授信额度;玩家可挂靠代理并上分', 'agent.create_btn': '+ 新建一级代理', + 'agent.create_sub': '创建二级代理', + 'agent.hint.creating_under_agent': '在此代理下创建账号', 'agent.filter.username_ph': '用户名', 'agent.col.level': '层级', 'agent.col.credit': '授信 / 已用 / 可用', 'agent.col.direct_players': '直属玩家', + 'agent.col.sub_agents': '下级代理', 'agent.col.cashback': '返水率', 'agent.col.phone': '手机', 'agent.col.created': '创建时间', @@ -118,6 +122,9 @@ export const adminPagesZh: Record = { 'agent.field.sub_agent_exposure': '下级代理敞口', 'agent.hint.credit_limit': '代理可向直属玩家上分的总额度上限', 'agent.hint.cashback_example': '例如 0.01 表示 1%', + 'agent.field.max_single_deposit': '单笔上分限额', + 'agent.field.max_daily_deposit': '日上分限额', + 'agent.hint.deposit_limit_empty': '0 表示不限;下级代理不能超过上级设置', 'agent.hint.credit_adjust': '正数为增加授信,负数为减少', 'agent.hint.credit_remark': '选填,写入额度流水', 'agent.section.credit_log': '最近额度变动', @@ -131,6 +138,18 @@ export const adminPagesZh: Record = { 'agent.field.select_user': '选择用户', 'agent.ph.select_user': '搜索玩家用户名', 'agent.hint.select_user': '从已有玩家账号中选择,将其设为一级代理(不新建登录账号)', + 'agent.suspend.settings_title': '代理停用策略', + 'agent.suspend.settings_hint': 'MVP 默认仅停用代理操作权限,不自动冻结或禁止其直属玩家登录。', + 'agent.suspend.freeze_direct_players': '停用时允许级联冻结直属玩家', + 'agent.suspend.block_player_login': '上级代理停用时禁止直属玩家登录', + 'agent.suspend.cascade_disabled_hint': '未开启级联冻结,仅停用该代理操作权限,直属玩家不受影响。', + 'agent.freeze.confirm_freeze_title': '确认停用代理', + 'agent.freeze.confirm_freeze_body': '确定停用代理「{name}」?停用后该代理无法登录代理端。', + 'agent.freeze.confirm_unfreeze_body': '确定恢复代理「{name}」为正常状态?', + 'agent.freeze.cascade_hint': '是否同时冻结该代理名下所有直属玩家账号?', + 'agent.freeze.cascade_label': '级联冻结直属玩家', + 'agent.msg.cascade_freeze_done': '已停用代理并冻结其直属玩家', + 'agent.msg.freeze_done': '已{action}', 'match.create_btn': '+ 新增赛事', 'match.create_fixture_btn': '+ 新增单场', @@ -361,6 +380,7 @@ export const adminPagesZh: Record = { 'err.password_min': '密码至少 8 位', 'err.password_mismatch': '两次密码不一致', 'err.credit_negative': '授信额度不能为负', + 'err.insufficient_credit': '可用授信不足,请减少上分金额或联系上级调额', 'err.kickoff_required': '请填写开赛时间', 'err.team_country_required': '请选择主客队', 'err.teams_required': '请填写主客队名称(中文、英文或马来文至少一项)', @@ -466,6 +486,36 @@ export const adminPagesZh: Record = { 'agent_portal.withdraw_btn_label': '下分', 'agent_portal.transfer_title_deposit': '给 {name} 上分', 'agent_portal.transfer_title_withdraw': '从 {name} 下分', + 'transfer.context.player_section': '玩家余额', + 'transfer.context.agent_section': '授信代理 · {name}(L{level})', + 'transfer.context.withdrawable': '可下分金额', + 'transfer.context.deposit_cap': '本次最多可上分', + 'transfer.context.daily_used': '今日已上分', + 'transfer.context.unlimited': '不限', + 'transfer.context.no_agent': '平台直属玩家,上分不受代理授信约束', + 'transfer.context.admin_credit_only': '管理员上分仅受上级可用授信约束,不受单笔/日限', + 'transfer.context.withdraw_exceed': '下分金额不能超过玩家可用余额', + 'credit.context.target_section': '目标代理授信', + 'credit.context.parent_section': '上级代理 · {name}', + 'credit.context.max_increase': '最多可增加授信', + 'credit.context.no_parent': '一级代理由平台直管,增信不受上级约束', + 'credit.context.after_adjust': '调整后授信额度', + 'credit.context.direct_liability': '直属玩家占用', + 'credit.context.child_exposure': '下级代理占用', + 'credit.context.acting_agent': '当前代理', + 'agent_portal.create_player_dialog': '新建直属玩家', + 'agent_portal.edit_player_dialog': '编辑直属玩家', + 'agent_portal.credit_available_hint': '当前可用授信:{amount}(上分将从授信中扣除)', + 'agent_portal.sub_agent_players_readonly': '以下为该二级代理直属玩家,仅可查看;开户、上分等操作由二级代理自行处理。', + 'agent_portal.initial_deposit_hint': '可选。开户时从您的授信中给玩家上分,不能超过可用授信', + 'agent_portal.search_player_ph': '用户名或 ID', + 'agent_portal.no_players': '暂无直属玩家,点击右上角创建', + 'agent_portal.search_sub_agent_ph': '用户名或 ID', + 'agent_portal.no_sub_agents': '暂无二级代理,点击右上角创建', + 'agent_portal.create_sub_agent_dialog': '新建二级代理', + 'agent_portal.sub_agent_credit_hint': '初始授信从您的可用额度中划拨,不能超过可用授信', + 'agent_portal.adjust_credit_dialog': '调整 {name} 授信', + 'agent_portal.credit_adjust_hint': '正数为增加授信,负数为减少授信', 'msg.agent_sub_created': '下级代理已创建', 'msg.withdraw_ok': '下分成功', @@ -728,13 +778,17 @@ export const adminPagesEn: Record = { 'user.field.account_type': 'Account type', 'user.type.player': 'Player', 'user.type.tier1_agent': 'Tier-1 agent', + 'user.type.sub_agent': 'Sub-agent', 'user.hint.account_type': 'Agents use credit limits; players can belong to an agent and receive top-ups', 'agent.create_btn': '+ New tier-1 agent', + 'agent.create_sub': 'Create sub-agent', + 'agent.hint.creating_under_agent': 'Create account under this agent', 'agent.filter.username_ph': 'Username', 'agent.col.level': 'Level', 'agent.col.credit': 'Limit / Used / Available', 'agent.col.direct_players': 'Direct players', + 'agent.col.sub_agents': 'Sub-agents', 'agent.col.cashback': 'Cashback rate', 'agent.col.phone': 'Phone', 'agent.col.created': 'Created', @@ -752,6 +806,9 @@ export const adminPagesEn: Record = { 'agent.field.sub_agent_exposure': 'Sub-agent exposure', 'agent.hint.credit_limit': 'Max total top-up capacity for direct players', 'agent.hint.cashback_example': 'e.g. 0.01 = 1%', + 'agent.field.max_single_deposit': 'Max single top-up', + 'agent.field.max_daily_deposit': 'Max daily top-up', + 'agent.hint.deposit_limit_empty': '0 = unlimited; sub-agents cannot exceed parent limits', 'agent.hint.credit_adjust': 'Positive increases, negative decreases', 'agent.hint.credit_remark': 'Optional, written to credit ledger', 'agent.section.credit_log': 'Recent credit changes', @@ -765,6 +822,18 @@ export const adminPagesEn: Record = { 'agent.field.select_user': 'Select user', 'agent.ph.select_user': 'Search player username', 'agent.hint.select_user': 'Pick an existing player account to promote to tier-1 agent (no new login)', + 'agent.suspend.settings_title': 'Agent suspension policy', + 'agent.suspend.settings_hint': 'MVP default: suspend agent operations only; do not auto-freeze or block direct players.', + 'agent.suspend.freeze_direct_players': 'Allow cascade freeze of direct players on suspend', + 'agent.suspend.block_player_login': 'Block direct player login when parent agent is suspended', + 'agent.suspend.cascade_disabled_hint': 'Cascade freeze is off; only the agent is suspended, direct players are unaffected.', + 'agent.freeze.confirm_freeze_title': 'Confirm suspend agent', + 'agent.freeze.confirm_freeze_body': 'Suspend agent "{name}"? They will not be able to sign in to the agent portal.', + 'agent.freeze.confirm_unfreeze_body': 'Restore agent "{name}" to active status?', + 'agent.freeze.cascade_hint': 'Also freeze all direct player accounts under this agent?', + 'agent.freeze.cascade_label': 'Cascade freeze direct players', + 'agent.msg.cascade_freeze_done': 'Agent suspended and direct players frozen', + 'agent.msg.freeze_done': '{action} completed', 'match.create_btn': '+ New tournament', 'match.create_fixture_btn': '+ Add fixture', @@ -995,6 +1064,7 @@ export const adminPagesEn: Record = { 'err.password_min': 'Password must be at least 8 characters', 'err.password_mismatch': 'Passwords do not match', 'err.credit_negative': 'Credit limit cannot be negative', + 'err.insufficient_credit': 'Insufficient available credit. Reduce the amount or request a limit increase.', 'err.kickoff_required': 'Kickoff time is required', 'err.team_country_required': 'Select home and away teams', 'err.teams_required': 'Enter home and away team names (ZH or EN)', @@ -1101,6 +1171,36 @@ export const adminPagesEn: Record = { 'agent_portal.withdraw_btn_label': 'Withdraw', 'agent_portal.transfer_title_deposit': 'Top up {name}', 'agent_portal.transfer_title_withdraw': 'Withdraw from {name}', + 'transfer.context.player_section': 'Player balance', + 'transfer.context.agent_section': 'Credit agent · {name} (L{level})', + 'transfer.context.withdrawable': 'Withdrawable', + 'transfer.context.deposit_cap': 'Max top-up this time', + 'transfer.context.daily_used': 'Topped up today', + 'transfer.context.unlimited': 'No limit', + 'transfer.context.no_agent': 'Platform-direct player — not limited by agent credit', + 'transfer.context.admin_credit_only': 'Admin top-up is capped by parent available credit only (not single/daily limits)', + 'transfer.context.withdraw_exceed': 'Withdrawal cannot exceed player available balance', + 'credit.context.target_section': 'Target agent credit', + 'credit.context.parent_section': 'Parent agent · {name}', + 'credit.context.max_increase': 'Max increase', + 'credit.context.no_parent': 'Tier-1 agents are platform-managed; increases are not capped by a parent', + 'credit.context.after_adjust': 'Credit limit after adjustment', + 'credit.context.direct_liability': 'Direct player exposure', + 'credit.context.child_exposure': 'Sub-agent exposure', + 'credit.context.acting_agent': 'Current agent', + 'agent_portal.create_player_dialog': 'New direct player', + 'agent_portal.edit_player_dialog': 'Edit direct player', + 'agent_portal.credit_available_hint': 'Available credit: {amount} (top-ups deduct from your limit)', + 'agent_portal.sub_agent_players_readonly': 'Players under this sub-agent are read-only here. Account opening and top-ups are handled by the sub-agent.', + 'agent_portal.initial_deposit_hint': 'Optional. Initial top-up from your credit at account creation', + 'agent_portal.search_player_ph': 'Username or ID', + 'agent_portal.no_players': 'No direct players yet. Use the button above to create one.', + 'agent_portal.search_sub_agent_ph': 'Username or ID', + 'agent_portal.no_sub_agents': 'No tier-2 agents yet. Use the button above to create one.', + 'agent_portal.create_sub_agent_dialog': 'New tier-2 agent', + 'agent_portal.sub_agent_credit_hint': 'Initial credit is allocated from your available limit', + 'agent_portal.adjust_credit_dialog': 'Adjust credit for {name}', + 'agent_portal.credit_adjust_hint': 'Positive to increase, negative to decrease', 'msg.agent_sub_created': 'Sub-agent created', 'msg.withdraw_ok': 'Withdrawal successful', diff --git a/apps/admin/src/i18n/form-validation.ts b/apps/admin/src/i18n/form-validation.ts index 70071bb..4a14010 100644 --- a/apps/admin/src/i18n/form-validation.ts +++ b/apps/admin/src/i18n/form-validation.ts @@ -14,3 +14,17 @@ export function resolveFormError(e: unknown, t: (key: string) => string): string if (e instanceof Error && e.message.startsWith('err.')) return t(e.message); return t('msg.form_invalid'); } + +/** 从 API 错误响应提取可读文案(Nest 全局过滤器返回 `error` 字段) */ +export function resolveApiError( + err: unknown, + t: (key: string) => string, + fallbackKey = 'msg.save_failed', +): string { + const data = (err as { response?: { data?: { error?: string | string[]; message?: string | string[] } } }) + ?.response?.data; + const raw = data?.error ?? data?.message; + if (Array.isArray(raw)) return raw.join(';'); + if (typeof raw === 'string' && raw.trim()) return raw; + return t(fallbackKey); +} diff --git a/apps/admin/src/layouts/ManageLayout.vue b/apps/admin/src/layouts/ManageLayout.vue index ed7a2a8..fa10123 100644 --- a/apps/admin/src/layouts/ManageLayout.vue +++ b/apps/admin/src/layouts/ManageLayout.vue @@ -17,19 +17,17 @@ const isMobileNav = ref(false); const adminMenus = computed(() => [ { path: '/', label: t('nav.dashboard') }, { path: '/matches', label: t('nav.matches'), matchPrefix: true }, - { path: '/bets', label: t('nav.bets') }, - { path: '/users', label: t('nav.users') }, - { path: '/agents', label: t('nav.agents') }, + { path: '/users', label: t('nav.agents_players') }, { path: '/cashback', label: t('nav.cashback') }, + { path: '/bets', label: t('nav.bets') }, { path: '/contents', label: t('nav.contents') }, { path: '/audit', label: t('nav.audit') }, ]); const agentMenus = computed(() => [ { path: '/', label: t('nav.dashboard') }, - { path: '/my-players', label: t('nav.players') }, + { path: '/my-players', label: t('nav.agents_players') }, { path: '/my-bets', label: t('nav.myBets') }, - { path: '/sub-agents', label: t('nav.subAgents') }, ]); const menus = computed(() => (auth.isAdmin.value ? adminMenus.value : agentMenus.value)); @@ -55,6 +53,13 @@ const currentLabel = computed(() => { const topbarCrumbs = computed(() => resolveAdminBreadcrumb(route.path, t)); +const roleLabel = computed(() => { + if (auth.isAdmin.value) return t('role.admin'); + if (auth.isTier1Agent.value) return t('role.tier1_agent'); + if (auth.isTier2Agent.value) return t('role.tier2_agent'); + return t('role.agent'); +}); + const userInitial = computed(() => (auth.user?.username ?? '').charAt(0).toUpperCase() ); @@ -171,7 +176,7 @@ watch(() => route.path, () => {
{{ userInitial }}
diff --git a/apps/admin/src/main.ts b/apps/admin/src/main.ts index 072348d..4f36e9c 100644 --- a/apps/admin/src/main.ts +++ b/apps/admin/src/main.ts @@ -5,5 +5,14 @@ import 'element-plus/dist/index.css'; import App from './App.vue'; import router from './router'; import i18n from './i18n'; +import { ensureStaffSession } from './utils/session-hydrate'; -createApp(App).use(i18n).use(router).use(ElementPlus).mount('#app'); +async function bootstrap() { + if (localStorage.getItem('manage_token')) { + await ensureStaffSession(); + } + + createApp(App).use(i18n).use(router).use(ElementPlus).mount('#app'); +} + +void bootstrap(); diff --git a/apps/admin/src/router/index.ts b/apps/admin/src/router/index.ts index 377c8ef..1a5647c 100644 --- a/apps/admin/src/router/index.ts +++ b/apps/admin/src/router/index.ts @@ -1,5 +1,6 @@ import { createRouter, createWebHistory } from 'vue-router'; import { useAuthStore } from '../stores/auth'; +import { ensureStaffSession } from '../utils/session-hydrate'; const router = createRouter({ history: createWebHistory(), @@ -13,13 +14,12 @@ const router = createRouter({ { path: '', component: () => import('../views/HomeEntry.vue') }, { path: 'users', - component: () => import('../views/Users.vue'), + component: () => import('../views/AgentManager.vue'), meta: { adminOnly: true }, }, { path: 'agents', - component: () => import('../views/Agents.vue'), - meta: { adminOnly: true }, + redirect: '/users', }, { path: 'matches', @@ -83,8 +83,7 @@ const router = createRouter({ }, { path: 'sub-agents', - component: () => import('../views/agent/SubAgents.vue'), - meta: { agentOnly: true }, + redirect: '/my-players', }, { path: 'my-bets', @@ -96,9 +95,14 @@ const router = createRouter({ ], }); -router.beforeEach((to) => { +router.beforeEach(async (to) => { const auth = useAuthStore(); const hasToken = !!auth.token.value; + + if (hasToken) { + await ensureStaffSession(); + } + const hasUser = !!auth.user.value?.userType; if (to.meta.public) { @@ -119,6 +123,10 @@ router.beforeEach((to) => { return '/'; } + if (to.meta.tier1AgentOnly && !auth.isTier1Agent.value) { + return '/'; + } + return true; }); diff --git a/apps/admin/src/stores/auth.ts b/apps/admin/src/stores/auth.ts index ed9d32d..26f9e5f 100644 --- a/apps/admin/src/stores/auth.ts +++ b/apps/admin/src/stores/auth.ts @@ -8,15 +8,43 @@ export interface StaffUser { userType: StaffUserType; locale?: string; role?: string; + agentLevel?: number | null; } const TOKEN_KEY = 'manage_token'; const USER_KEY = 'manage_user'; +function decodeJwtStaffClaims(rawToken: string): Partial | null { + try { + const segment = rawToken.split('.')[1]; + if (!segment) return null; + const padded = segment.replace(/-/g, '+').replace(/_/g, '/'); + const payload = JSON.parse(atob(padded)) as { + sub?: string; + username?: string; + userType?: string; + role?: string; + }; + if (payload.userType !== 'ADMIN' && payload.userType !== 'AGENT') return null; + if (!payload.sub || !payload.username) return null; + return { + id: payload.sub, + username: payload.username, + userType: payload.userType as StaffUserType, + role: payload.role, + }; + } catch { + return null; + } +} + function loadUser(): StaffUser | null { try { const raw = localStorage.getItem(USER_KEY); - return raw ? (JSON.parse(raw) as StaffUser) : null; + if (!raw) return null; + const parsed = JSON.parse(raw) as Partial; + if (!parsed.id || !parsed.username || !parsed.userType) return null; + return parsed as StaffUser; } catch { return null; } @@ -28,14 +56,14 @@ function migrateLegacyTokens() { const legacyAgent = localStorage.getItem('agent_token'); if (legacyAdmin) { localStorage.setItem(TOKEN_KEY, legacyAdmin); - localStorage.setItem(USER_KEY, JSON.stringify({ userType: 'ADMIN' })); localStorage.removeItem('admin_token'); + localStorage.removeItem(USER_KEY); return; } if (legacyAgent) { localStorage.setItem(TOKEN_KEY, legacyAgent); - localStorage.setItem(USER_KEY, JSON.stringify({ userType: 'AGENT' })); localStorage.removeItem('agent_token'); + localStorage.removeItem(USER_KEY); } } @@ -44,6 +72,42 @@ migrateLegacyTokens(); const token = ref(localStorage.getItem(TOKEN_KEY) || ''); const user = ref(loadUser()); +/** Align manage_user.userType with JWT when localStorage is stale (common after account switch). */ +export function reconcileStaffSessionFromToken(): boolean { + if (!token.value) return false; + const claims = decodeJwtStaffClaims(token.value); + if (!claims?.userType || !claims.id || !claims.username) return false; + + if ( + user.value?.id === claims.id && + user.value.username === claims.username && + user.value.userType === claims.userType + ) { + return true; + } + + const next: StaffUser = { + id: claims.id, + username: claims.username, + userType: claims.userType, + locale: user.value?.locale, + role: claims.role ?? user.value?.role, + }; + user.value = next; + localStorage.setItem(USER_KEY, JSON.stringify(next)); + return true; +} + +reconcileStaffSessionFromToken(); + +if (typeof window !== 'undefined') { + window.addEventListener('storage', () => { + token.value = localStorage.getItem(TOKEN_KEY) || ''; + user.value = loadUser(); + reconcileStaffSessionFromToken(); + }); +} + export function clearStaffSession() { token.value = ''; user.value = null; @@ -51,11 +115,18 @@ export function clearStaffSession() { localStorage.removeItem(USER_KEY); localStorage.removeItem('admin_token'); localStorage.removeItem('agent_token'); + void import('../utils/session-hydrate').then((m) => m.resetStaffSessionHydration()); +} + +function resolveUserType(): StaffUserType | null { + return user.value?.userType ?? decodeJwtStaffClaims(token.value)?.userType ?? null; } export function useAuthStore() { - const isAdmin = computed(() => user.value?.userType === 'ADMIN'); - const isAgent = computed(() => user.value?.userType === 'AGENT'); + const isAdmin = computed(() => resolveUserType() === 'ADMIN'); + const isAgent = computed(() => resolveUserType() === 'AGENT'); + const isTier1Agent = computed(() => isAgent.value && user.value?.agentLevel === 1); + const isTier2Agent = computed(() => isAgent.value && user.value?.agentLevel === 2); const portalLabel = computed(() => (isAdmin.value ? '平台后台' : '代理后台')); function setSession(newToken: string, newUser: StaffUser) { @@ -76,9 +147,12 @@ export function useAuthStore() { user, isAdmin, isAgent, + isTier1Agent, + isTier2Agent, portalLabel, setSession, logout, clearStaffSession, + reconcileStaffSessionFromToken, }; } diff --git a/apps/admin/src/utils/agent-credit-context.ts b/apps/admin/src/utils/agent-credit-context.ts new file mode 100644 index 0000000..e4ad848 --- /dev/null +++ b/apps/admin/src/utils/agent-credit-context.ts @@ -0,0 +1,71 @@ +import type { AgentDetail, AgentRow } from '../views/agent-form'; +import type { AgentSubAgentRow } from '../views/agent/agent-sub-agent-form'; +import api from '../api'; + +export type AgentCreditSnapshot = { + username: string; + level?: number; + creditLimit: string; + usedCredit: string; + availableCredit: string; + directPlayerLiability?: string; + childAgentExposure?: string; +}; + +export type AgentCreditAdjustContext = { + target: AgentCreditSnapshot; + parent?: AgentCreditSnapshot; +}; + +function dec(value: string | number | null | undefined): number { + const n = Number(value ?? 0); + return Number.isFinite(n) ? n : 0; +} + +export function snapshotFromAgentRow( + row: Pick< + AgentRow | AgentDetail | AgentSubAgentRow, + 'username' | 'creditLimit' | 'usedCredit' | 'availableCredit' | 'level' + > & { + directPlayerLiability?: string; + childAgentExposure?: string; + }, +): AgentCreditSnapshot { + return { + username: row.username, + level: row.level, + creditLimit: String(row.creditLimit), + usedCredit: String(row.usedCredit), + availableCredit: String(row.availableCredit), + directPlayerLiability: row.directPlayerLiability, + childAgentExposure: row.childAgentExposure, + }; +} + +export async function fetchAdminAgentCreditContext(userId: string): Promise { + const { data } = await api.get(`/admin/agents/${userId}`); + const detail = data.data as AgentDetail; + const target = snapshotFromAgentRow(detail); + if (!detail.parentAgentId) { + return { target }; + } + const { data: parentRes } = await api.get(`/admin/agents/${detail.parentAgentId}`); + const parentDetail = parentRes.data as AgentDetail; + return { + target, + parent: snapshotFromAgentRow(parentDetail), + }; +} + +/** 下级代理增信时,正数调整量上限约等于上级可用授信(与后端 exposure 校验一致) */ +export function maxCreditIncreaseAmount(ctx: AgentCreditAdjustContext | null): number | undefined { + if (!ctx?.parent) return undefined; + return Math.max(0, dec(ctx.parent.availableCredit)); +} + +export function projectedCreditLimit(ctx: AgentCreditAdjustContext | null, adjustAmount: number): string | null { + if (!ctx || !Number.isFinite(adjustAmount)) return null; + const after = dec(ctx.target.creditLimit) + adjustAmount; + if (after < 0) return null; + return String(after); +} diff --git a/apps/admin/src/utils/expandable-table.ts b/apps/admin/src/utils/expandable-table.ts new file mode 100644 index 0000000..0c31d1e --- /dev/null +++ b/apps/admin/src/utils/expandable-table.ts @@ -0,0 +1,17 @@ +/** Skip row-click expand when the user interacts with controls inside the row. */ +export function isExpandRowInteractiveClick(target: EventTarget | null): boolean { + if (!(target instanceof HTMLElement)) return false; + return !!target.closest( + '.action-btns, .el-button, .el-link, a, input, textarea, .el-input, .el-select, .el-checkbox, .el-switch, .el-dropdown', + ); +} + +export function shouldToggleExpandOnRowClick(event: MouseEvent): boolean { + const el = event.target as HTMLElement; + if (el.closest('.el-table__expand-icon')) return false; + return !isExpandRowInteractiveClick(event.target); +} + +export function expandableTableRowClassName(): string { + return 'row-expandable'; +} diff --git a/apps/admin/src/utils/session-hydrate.ts b/apps/admin/src/utils/session-hydrate.ts new file mode 100644 index 0000000..c3894ab --- /dev/null +++ b/apps/admin/src/utils/session-hydrate.ts @@ -0,0 +1,79 @@ +import { + reconcileStaffSessionFromToken, + useAuthStore, + type StaffUser, + type StaffUserType, +} from '../stores/auth'; + +let hydratePromise: Promise | null = null; + +function isStaffUserType(value: unknown): value is StaffUserType { + return value === 'ADMIN' || value === 'AGENT'; +} + +export function resetStaffSessionHydration() { + hydratePromise = null; +} + +function hasCompleteStaffUser(u: StaffUser | null | undefined): u is StaffUser { + return !!(u?.id && u.username && u.userType); +} + +/** Sync manage_user from JWT + /manage/auth/me (fixes stale localStorage userType). */ +export async function hydrateStaffSession(): Promise { + const auth = useAuthStore(); + if (!auth.token.value) return false; + if (hydratePromise) return hydratePromise; + + hydratePromise = (async () => { + reconcileStaffSessionFromToken(); + + if (!hasCompleteStaffUser(auth.user.value)) { + auth.clearStaffSession(); + return false; + } + + try { + const { default: api } = await import('../api'); + const { data } = await api.get('/manage/auth/me'); + const raw = data.data as Partial; + if (!raw?.id || !raw.username || !isStaffUserType(raw.userType)) { + return true; + } + auth.setSession(auth.token.value, { + id: raw.id, + username: raw.username, + userType: raw.userType, + locale: raw.locale, + role: raw.role, + agentLevel: typeof raw.agentLevel === 'number' ? raw.agentLevel : null, + }); + return true; + } catch (e: unknown) { + const status = (e as { response?: { status?: number } })?.response?.status; + if (status === 401) { + auth.clearStaffSession(); + return false; + } + return hasCompleteStaffUser(auth.user.value); + } finally { + hydratePromise = null; + } + })(); + + return hydratePromise; +} + +/** Run before any authenticated route — JWT reconcile + optional /me refresh. */ +export async function ensureStaffSession(): Promise { + reconcileStaffSessionFromToken(); + const auth = useAuthStore(); + if (!auth.token.value) return false; + if (!hasCompleteStaffUser(auth.user.value)) { + reconcileStaffSessionFromToken(); + } + if (!hasCompleteStaffUser(auth.user.value)) { + return false; + } + return hydrateStaffSession(); +} diff --git a/apps/admin/src/utils/wallet-transfer-context.ts b/apps/admin/src/utils/wallet-transfer-context.ts new file mode 100644 index 0000000..6062394 --- /dev/null +++ b/apps/admin/src/utils/wallet-transfer-context.ts @@ -0,0 +1,51 @@ +export interface WalletTransferCreditContext { + agentId: string; + agentUsername: string; + agentLevel: number; + creditLimit: string; + usedCredit: string; + availableCredit: string; + maxSingleDeposit: string | null; + maxDailyDeposit: string | null; + dailyDepositUsed: string | null; + appliesDepositLimits: boolean; +} + +export interface WalletTransferContext { + player: { + id: string; + username: string; + availableBalance: string; + frozenBalance: string; + }; + credit: WalletTransferCreditContext | null; +} + +export function parseCreditAvailable(ctx: WalletTransferContext | null): number { + const n = Number(ctx?.credit?.availableCredit ?? NaN); + return Number.isFinite(n) ? Math.max(0, n) : Infinity; +} + +export function parsePlayerAvailable(ctx: WalletTransferContext | null): number { + const n = Number(ctx?.player?.availableBalance ?? NaN); + return Number.isFinite(n) ? Math.max(0, n) : 0; +} + +/** 上分金额上限:可用授信;代理端再叠加单笔/日限 */ +export function depositAmountCap(ctx: WalletTransferContext | null): number | undefined { + if (!ctx?.credit) return undefined; + const available = parseCreditAvailable(ctx); + if (!Number.isFinite(available)) return undefined; + let cap = available; + if (ctx.credit.appliesDepositLimits) { + const single = ctx.credit.maxSingleDeposit ? Number(ctx.credit.maxSingleDeposit) : Infinity; + if (Number.isFinite(single)) cap = Math.min(cap, single); + if (ctx.credit.maxDailyDeposit) { + const dailyRem = + Number(ctx.credit.maxDailyDeposit) - Number(ctx.credit.dailyDepositUsed ?? 0); + if (Number.isFinite(dailyRem)) cap = Math.min(cap, Math.max(0, dailyRem)); + } + } + if (cap <= 0) return 0; + return cap; +} diff --git a/apps/admin/src/views/AgentManager.vue b/apps/admin/src/views/AgentManager.vue new file mode 100644 index 0000000..f003d0a --- /dev/null +++ b/apps/admin/src/views/AgentManager.vue @@ -0,0 +1,1644 @@ + + + + + + + diff --git a/apps/admin/src/views/Agents.vue b/apps/admin/src/views/Agents.vue index cf7c917..31503f5 100644 --- a/apps/admin/src/views/Agents.vue +++ b/apps/admin/src/views/Agents.vue @@ -24,6 +24,11 @@ import { shouldCompactAmount as shouldCompact, } from '../utils/format-amount'; import AdminTableEmpty from '../components/AdminTableEmpty.vue'; +import AgentCreditContext from '../components/AgentCreditContext.vue'; +import { + fetchAdminAgentCreditContext, + type AgentCreditAdjustContext, +} from '../utils/agent-credit-context'; const agents = ref([]); const total = ref(0); @@ -56,6 +61,8 @@ const detail = ref(null); const editingId = ref(''); const creditForm = ref({ amount: 10000, remark: '' }); +const creditContext = ref(null); +const creditContextLoading = ref(false); onMounted(load); @@ -130,10 +137,21 @@ async function openEdit(userId: string) { editVisible.value = true; } -function openCredit(row: AgentRow) { +async function openCredit(row: AgentRow) { editingId.value = row.userId; creditForm.value = { amount: 10000, remark: '' }; + creditContext.value = null; creditVisible.value = true; + creditContextLoading.value = true; + try { + creditContext.value = await fetchAdminAgentCreditContext(row.userId); + } catch (e: unknown) { + const err = e as { response?: { data?: { error?: string } } }; + ElMessage.error(err.response?.data?.error ?? t('msg.load_failed')); + creditVisible.value = false; + } finally { + creditContextLoading.value = false; + } } async function submitCreate() { @@ -271,6 +289,7 @@ function creditTypeLabel(type: string) { + @@ -389,7 +408,12 @@ function creditTypeLabel(type: string) { - + + diff --git a/apps/admin/src/views/Cashback.vue b/apps/admin/src/views/Cashback.vue index 66a1c9b..e2ed1e7 100644 --- a/apps/admin/src/views/Cashback.vue +++ b/apps/admin/src/views/Cashback.vue @@ -5,6 +5,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'; import { useAdminLocale } from '../composables/useAdminLocale'; import { formatAmount, formatAmountFull } from '../utils/format-amount'; import AdminTableEmpty from '../components/AdminTableEmpty.vue'; +import { resolveApiError } from '../i18n/form-validation'; import api from '../api'; interface CashbackBatch { @@ -104,13 +105,6 @@ function statusTagType(status: string) { return 'warning'; } -function apiErrorMessage(err: unknown, fallback: string) { - const msg = (err as { response?: { data?: { message?: string | string[] } } })?.response?.data?.message; - if (Array.isArray(msg)) return msg.join(';'); - if (typeof msg === 'string' && msg.trim()) return msg; - return fallback; -} - function tableSummary(param: { columns: TableColumnCtx[]; data: CashbackPreviewItem[]; @@ -141,6 +135,8 @@ async function loadHistory() { }); history.value = (data.data.items ?? []) as CashbackBatch[]; historyTotal.value = data.data.total ?? 0; + } catch (err) { + ElMessage.error(resolveApiError(err, t, 'msg.load_failed')); } finally { historyLoading.value = false; } @@ -162,7 +158,7 @@ async function generatePreview() { } await loadHistory(); } catch (err) { - ElMessage.error(apiErrorMessage(err, t('msg.error'))); + ElMessage.error(resolveApiError(err, t, 'msg.save_failed')); } finally { loading.value = false; } @@ -186,7 +182,7 @@ async function confirmBatchId(batchId: string) { if (detail.value?.batch.id === batchId) detailVisible.value = false; await loadHistory(); } catch (err) { - ElMessage.error(apiErrorMessage(err, t('msg.error'))); + ElMessage.error(resolveApiError(err, t, 'msg.save_failed')); } } @@ -208,7 +204,7 @@ async function cancelBatchId(batchId: string) { if (detail.value?.batch.id === batchId) detailVisible.value = false; await loadHistory(); } catch (err) { - ElMessage.error(apiErrorMessage(err, t('msg.error'))); + ElMessage.error(resolveApiError(err, t, 'msg.save_failed')); } } @@ -224,6 +220,9 @@ async function openDetail(batchId: string) { try { const { data } = await api.get(`/admin/cashbacks/${batchId}`); detail.value = data.data as CashbackPreview; + } catch (err) { + detailVisible.value = false; + ElMessage.error(resolveApiError(err, t, 'msg.load_failed')); } finally { detailLoading.value = false; } diff --git a/apps/admin/src/views/HomeEntry.vue b/apps/admin/src/views/HomeEntry.vue index 05fb3f8..7f9500c 100644 --- a/apps/admin/src/views/HomeEntry.vue +++ b/apps/admin/src/views/HomeEntry.vue @@ -1,12 +1,28 @@ + + diff --git a/apps/admin/src/views/Login.vue b/apps/admin/src/views/Login.vue index 26c8efb..f319e34 100644 --- a/apps/admin/src/views/Login.vue +++ b/apps/admin/src/views/Login.vue @@ -93,6 +93,10 @@ async function login() { {{ t('login.quick_agent') }} agent1 + diff --git a/apps/admin/src/views/Users.vue b/apps/admin/src/views/Users.vue index 41bd257..7bdc649 100644 --- a/apps/admin/src/views/Users.vue +++ b/apps/admin/src/views/Users.vue @@ -1,5 +1,5 @@ diff --git a/apps/admin/src/views/agent/Players.vue b/apps/admin/src/views/agent/Players.vue index 9b8fb7c..801159a 100644 --- a/apps/admin/src/views/agent/Players.vue +++ b/apps/admin/src/views/agent/Players.vue @@ -1,61 +1,353 @@ diff --git a/apps/admin/src/views/agent/agent-player-form.ts b/apps/admin/src/views/agent/agent-player-form.ts new file mode 100644 index 0000000..3f17c58 --- /dev/null +++ b/apps/admin/src/views/agent/agent-player-form.ts @@ -0,0 +1,133 @@ +import { FormValidationError } from '../../i18n/form-validation'; + +export interface AgentPlayerCreateForm { + username: string; + password: string; + confirmPassword: string; + phone: string; + email: string; + initialDeposit: number; + remark: string; +} + +export interface AgentPlayerRow { + id: string; + username: string; + status: string; + createdAt: string; + wallet?: { availableBalance: string; frozenBalance?: string }; +} + +export interface AgentPlayerDetail { + id: string; + username: string; + status: string; + phone: string | null; + email: string | null; + managedPassword: string | null; + availableBalance: string; + frozenBalance: string; + lastLoginAt: string | null; + loginFailCount: number; + betCount: number; + totalStake: string; + totalReturn: string; + createdAt: string; +} + +export interface AgentPlayerEditForm { + id: string; + username: string; + status: string; + phone: string; + email: string; + managedPassword: string | null; + newPassword: string; + availableBalance: string; + frozenBalance: string; + betCount: number; + totalStake: string; + totalReturn: string; + lastLoginAt: string | null; + loginFailCount: number; +} + +export function emptyAgentPlayerCreateForm(): AgentPlayerCreateForm { + return { + username: '', + password: 'Player@123', + confirmPassword: 'Player@123', + phone: '', + email: '', + initialDeposit: 0, + remark: '', + }; +} + +export function buildAgentCreatePlayerPayload(form: AgentPlayerCreateForm) { + if (!form.username.trim()) throw new FormValidationError('err.username_required'); + if (form.password.length < 8) throw new FormValidationError('err.password_min'); + if (form.password !== form.confirmPassword) throw new FormValidationError('err.password_mismatch'); + if (form.initialDeposit < 0) throw new FormValidationError('err.amount_negative'); + + return { + username: form.username.trim(), + password: form.password, + phone: form.phone.trim() || undefined, + email: form.email.trim() || undefined, + initialDeposit: form.initialDeposit > 0 ? form.initialDeposit : undefined, + remark: form.remark.trim() || undefined, + }; +} + +export function emptyAgentPlayerEditForm(): AgentPlayerEditForm { + return { + id: '', + username: '', + status: 'ACTIVE', + phone: '', + email: '', + managedPassword: null, + newPassword: '', + availableBalance: '0', + frozenBalance: '0', + betCount: 0, + totalStake: '0', + totalReturn: '0', + lastLoginAt: null, + loginFailCount: 0, + }; +} + +export function editFormFromAgentDetail(d: AgentPlayerDetail): AgentPlayerEditForm { + return { + id: d.id, + username: d.username, + status: d.status, + phone: d.phone ?? '', + email: d.email ?? '', + managedPassword: d.managedPassword, + newPassword: '', + availableBalance: d.availableBalance, + frozenBalance: d.frozenBalance, + betCount: d.betCount, + totalStake: d.totalStake, + totalReturn: d.totalReturn, + lastLoginAt: d.lastLoginAt, + loginFailCount: d.loginFailCount, + }; +} + +export function buildAgentUpdatePlayerPayload(form: AgentPlayerEditForm) { + if (!form.username.trim()) throw new FormValidationError('err.username_required'); + if (form.newPassword && form.newPassword.length < 8) { + throw new FormValidationError('err.password_min'); + } + + return { + username: form.username.trim(), + phone: form.phone.trim() || undefined, + email: form.email.trim() || undefined, + password: form.newPassword.trim() || undefined, + }; +} diff --git a/apps/admin/src/views/agent/agent-sub-agent-form.ts b/apps/admin/src/views/agent/agent-sub-agent-form.ts new file mode 100644 index 0000000..d2a68d3 --- /dev/null +++ b/apps/admin/src/views/agent/agent-sub-agent-form.ts @@ -0,0 +1,151 @@ +import { FormValidationError } from '../../i18n/form-validation'; + +export interface AgentSubAgentRow { + userId: string; + username: string; + userStatus: string; + status: string; + level: number; + creditLimit: string; + usedCredit: string; + availableCredit: string; + directPlayerCount: number; + createdAt: string; +} + +export interface AgentSubAgentDetail { + userId: string; + username: string; + userStatus: string; + status: string; + level: number; + creditLimit: string; + usedCredit: string; + availableCredit: string; + directPlayerCount: number; + phone: string | null; + email: string | null; + managedPassword: string | null; + loginFailCount: number; + lastLoginAt: string | null; +} + +export interface AgentSubAgentEditForm { + userId: string; + username: string; + status: string; + phone: string; + email: string; + managedPassword: string | null; + newPassword: string; + creditLimit: string; + usedCredit: string; + availableCredit: string; + directPlayerCount: number; + loginFailCount: number; + lastLoginAt: string | null; + level: number; +} + +export interface AgentSubAgentCreateForm { + username: string; + password: string; + confirmPassword: string; + creditLimit: number; + cashbackRate: number; + maxSingleDeposit: number; + maxDailyDeposit: number; +} + +export function emptyAgentSubAgentCreateForm(): AgentSubAgentCreateForm { + return { + username: '', + password: 'Agent@123', + confirmPassword: 'Agent@123', + creditLimit: 10000, + cashbackRate: 0, + maxSingleDeposit: 0, + maxDailyDeposit: 0, + }; +} + +export function buildAgentSubAgentCreatePayload(form: AgentSubAgentCreateForm) { + if (!form.username.trim()) throw new FormValidationError('err.username_required'); + if (form.password.length < 8) throw new FormValidationError('err.password_min'); + if (form.password !== form.confirmPassword) throw new FormValidationError('err.password_mismatch'); + if (form.creditLimit < 0) throw new FormValidationError('err.amount_negative'); + + return { + username: form.username.trim(), + password: form.password, + creditLimit: form.creditLimit, + cashbackRate: form.cashbackRate, + maxSingleDeposit: form.maxSingleDeposit > 0 ? form.maxSingleDeposit : undefined, + maxDailyDeposit: form.maxDailyDeposit > 0 ? form.maxDailyDeposit : undefined, + }; +} + +export function emptyAgentSubAgentEditForm(): AgentSubAgentEditForm { + return { + userId: '', + username: '', + status: 'ACTIVE', + phone: '', + email: '', + managedPassword: null, + newPassword: '', + creditLimit: '0', + usedCredit: '0', + availableCredit: '0', + directPlayerCount: 0, + loginFailCount: 0, + lastLoginAt: null, + level: 2, + }; +} + +export function editFormFromSubAgentDetail(d: AgentSubAgentDetail): AgentSubAgentEditForm { + return { + userId: d.userId, + username: d.username, + status: d.userStatus ?? d.status, + phone: d.phone ?? '', + email: d.email ?? '', + managedPassword: d.managedPassword ?? null, + newPassword: '', + creditLimit: d.creditLimit, + usedCredit: d.usedCredit, + availableCredit: d.availableCredit, + directPlayerCount: d.directPlayerCount, + loginFailCount: d.loginFailCount ?? 0, + lastLoginAt: d.lastLoginAt ?? null, + level: d.level, + }; +} + +export function buildAgentSubAgentUpdatePayload(form: AgentSubAgentEditForm) { + if (!form.username.trim()) throw new FormValidationError('err.username_required'); + const payload: { + username: string; + phone?: string; + email?: string; + status: string; + password?: string; + } = { + username: form.username.trim(), + status: form.status, + phone: form.phone.trim() || undefined, + email: form.email.trim() || undefined, + }; + const newPwd = form.newPassword.trim(); + if (newPwd) { + if (newPwd.length < 8) throw new FormValidationError('err.password_min'); + payload.password = newPwd; + } + return payload; +} + +/** Prefer account lock status over profile status for list/actions. */ +export function subAgentAccountStatus(row: Pick) { + return row.userStatus ?? row.status; +} diff --git a/apps/admin/src/views/dashboard-types.ts b/apps/admin/src/views/dashboard-types.ts index 89dd6a7..b3fb0da 100644 --- a/apps/admin/src/views/dashboard-types.ts +++ b/apps/admin/src/views/dashboard-types.ts @@ -69,3 +69,60 @@ export interface AdminDashboard { createdAt: string; }[]; } + +export interface AgentDashboard { + generatedAt: string; + trend7d: DashboardTrendDay[]; + today: { + betCount: number; + stake: string; + payout: string; + ggr: string; + newPlayers: number; + }; + yesterday: { + betCount: number; + stake: string; + payout: string; + ggr: string; + }; + players: { + directTotal: number; + active: number; + suspended: number; + newToday: number; + }; + subAgents: { + total: number; + active: number; + }; + wallets: { + totalAvailable: string; + totalFrozen: string; + playerWalletCount: number; + }; + credit: { + creditLimit: string; + usedCredit: string; + availableCredit: string; + directPlayerLiability: string; + childAgentExposure: string; + }; + bets: { + pendingTotal: number; + todayByStatus: Record; + }; + recentBets: { + betNo: string; + username: string; + stake: string; + status: string; + placedAt: string; + }[]; + recentPlayers: { + id: string; + username: string; + status: string; + createdAt: string; + }[]; +} diff --git a/apps/admin/src/views/user-form.ts b/apps/admin/src/views/user-form.ts index b0a2a5a..20f12e5 100644 --- a/apps/admin/src/views/user-form.ts +++ b/apps/admin/src/views/user-form.ts @@ -13,6 +13,8 @@ export interface PlayerCreateForm { asTier1Agent: boolean; creditLimit: number; cashbackRate: number; + maxSingleDeposit: number; + maxDailyDeposit: number; } export interface PlayerEditForm { @@ -73,6 +75,8 @@ export function emptyPlayerCreateForm(): PlayerCreateForm { asTier1Agent: false, creditLimit: 50000, cashbackRate: 0, + maxSingleDeposit: 0, + maxDailyDeposit: 0, }; } @@ -136,6 +140,8 @@ export function buildCreatePlayerPayload(form: PlayerCreateForm) { asTier1Agent: true, creditLimit: form.creditLimit, cashbackRate: form.cashbackRate, + maxSingleDeposit: form.maxSingleDeposit > 0 ? form.maxSingleDeposit : undefined, + maxDailyDeposit: form.maxDailyDeposit > 0 ? form.maxDailyDeposit : undefined, }; } return { diff --git a/apps/api/src/applications/admin/admin.controller.ts b/apps/api/src/applications/admin/admin.controller.ts index 6f01e5c..f6a0a77 100644 --- a/apps/api/src/applications/admin/admin.controller.ts +++ b/apps/api/src/applications/admin/admin.controller.ts @@ -101,6 +101,15 @@ class CreatePlayerAdminDto { @IsOptional() asTier1Agent?: boolean; + /** 创建为二级代理(需要 parentAgentId) */ + @IsOptional() + asSubAgent?: boolean; + + /** 二级代理的上级代理 ID */ + @IsOptional() + @IsString() + parentAgentId?: string; + @IsOptional() @IsNumber() @Min(0) @@ -110,6 +119,16 @@ class CreatePlayerAdminDto { @IsNumber() @Min(0) cashbackRate?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxSingleDeposit?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxDailyDeposit?: number; } class UpdatePlayerAdminDto { @@ -154,6 +173,16 @@ class PlayerAccountSettingsDto { allowUsernameChange?: boolean; } +class AgentSuspendSettingsDto { + @IsOptional() + @IsBoolean() + suspendFreezeDirectPlayers?: boolean; + + @IsOptional() + @IsBoolean() + suspendBlockPlayerLogin?: boolean; +} + class ResetDatabaseDto { @IsString() @Equals('RESET') @@ -181,6 +210,16 @@ class CreateAgentAdminDto { @IsNumber() @Min(0) cashbackRate?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxSingleDeposit?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxDailyDeposit?: number; } class UpdateAgentAdminDto { @@ -204,6 +243,29 @@ class UpdateAgentAdminDto { @IsNumber() @Min(0) cashbackRate?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxSingleDeposit?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxDailyDeposit?: number; + + @IsOptional() + @IsString() + username?: string; + + @IsOptional() + @IsString() + password?: string; + + /** 冻结时是否级联冻结直属玩家 */ + @IsOptional() + @IsBoolean() + freezeDirectPlayers?: boolean; } class DepositDto { @@ -717,6 +779,30 @@ export class AdminController { return jsonResponse(settings); } + @Get('agents/settings/suspend') + @RequirePermissions(P.settings) + async getAgentSuspendSettings() { + const settings = await this.systemConfig.getAgentSuspendSettings(); + return jsonResponse(settings); + } + + @Put('agents/settings/suspend') + @RequirePermissions(P.settings) + async updateAgentSuspendSettings( + @CurrentUser('id') operatorId: bigint, + @Body() dto: AgentSuspendSettingsDto, + ) { + const settings = await this.systemConfig.updateAgentSuspendSettings(dto); + await this.audit.log({ + operatorId, + operatorType: 'ADMIN', + action: 'UPDATE_AGENT_SUSPEND_SETTINGS', + module: 'AGENTS', + afterData: JSON.stringify(settings), + }); + return jsonResponse(settings); + } + @Get('settings/betting-limits') @RequirePermissions(P.settings) async getBettingLimits() { @@ -830,17 +916,21 @@ export class AdminController { depositRemark: dto.remark, depositRequestId: `create-player-${dto.username}-${Date.now()}`, asTier1Agent: dto.asTier1Agent, + asSubAgent: dto.asSubAgent, + parentAgentId: dto.parentAgentId ? BigInt(dto.parentAgentId) : undefined, creditLimit: dto.creditLimit, cashbackRate: dto.cashbackRate, + maxSingleDeposit: dto.maxSingleDeposit, + maxDailyDeposit: dto.maxDailyDeposit, }); await this.audit.log({ operatorId, operatorType: 'ADMIN', - action: dto.asTier1Agent ? 'CREATE_AGENT' : 'CREATE_PLAYER', - module: dto.asTier1Agent ? 'AGENTS' : 'USERS', + action: dto.asTier1Agent || dto.asSubAgent ? 'CREATE_AGENT' : 'CREATE_PLAYER', + module: dto.asTier1Agent || dto.asSubAgent ? 'AGENTS' : 'USERS', targetId: user.id.toString(), }); - if (dto.asTier1Agent) { + if (dto.asTier1Agent || dto.asSubAgent) { const detail = await this.agents.getAgentAdminDetail(user.id); return jsonResponse(detail); } @@ -884,11 +974,13 @@ export class AdminController { @Query('page') page?: string, @Query('pageSize') pageSize?: string, @Query('keyword') keyword?: string, + @Query('parentAgentId') parentAgentId?: string, ) { const result = await this.agents.listAgentsAdmin({ page: page ? parseInt(page, 10) : 1, pageSize: pageSize ? parseInt(pageSize, 10) : 10, keyword, + parentAgentId: parentAgentId ? BigInt(parentAgentId) : undefined, }); return jsonResponse(result); } @@ -929,6 +1021,8 @@ export class AdminController { phone: dto.phone, email: dto.email, cashbackRate: dto.cashbackRate, + maxSingleDeposit: dto.maxSingleDeposit, + maxDailyDeposit: dto.maxDailyDeposit, }); await this.audit.log({ operatorId, @@ -961,7 +1055,7 @@ export class AdminController { @Post('wallet/deposit') @RequirePermissions(P.walletDeposit) async deposit(@CurrentUser('id') operatorId: bigint, @Body() dto: DepositDto & { userId: string }) { - const result = await this.wallet.deposit( + const result = await this.agents.adminDepositToPlayer( BigInt(dto.userId), dto.amount, operatorId, @@ -971,6 +1065,13 @@ export class AdminController { return jsonResponse(result); } + @Get('wallet/transfer-context/:userId') + @RequirePermissions(P.walletDeposit, P.walletWithdraw) + async walletTransferContext(@Param('userId') userId: string) { + const ctx = await this.agents.getPlayerTransferContext(BigInt(userId), { forAdmin: true }); + return jsonResponse(ctx); + } + @Post('wallet/withdraw') @RequirePermissions(P.walletWithdraw) async withdraw(@CurrentUser('id') operatorId: bigint, @Body() dto: DepositDto & { userId: string }) { diff --git a/apps/api/src/applications/agent/agent-portal.controller.ts b/apps/api/src/applications/agent/agent-portal.controller.ts index 83da514..becd314 100644 --- a/apps/api/src/applications/agent/agent-portal.controller.ts +++ b/apps/api/src/applications/agent/agent-portal.controller.ts @@ -2,6 +2,7 @@ import { Controller, Get, Post, + Put, Body, Param, Query, @@ -15,7 +16,7 @@ import { AgentsService } from '../../domains/agent/agents.service'; import { WalletService } from '../../domains/ledger/wallet.service'; import { BetsService } from '../../domains/betting/bets.service'; import { PrismaService } from '../../shared/prisma/prisma.service'; -import { IsString, IsNumber, MinLength, IsOptional } from 'class-validator'; +import { IsString, IsNumber, MinLength, IsOptional, Min, IsBoolean } from 'class-validator'; class CreatePlayerDto { @IsString() @@ -24,12 +25,71 @@ class CreatePlayerDto { @IsString() @MinLength(8) password!: string; + + @IsOptional() + @IsString() + phone?: string; + + @IsOptional() + @IsString() + email?: string; + + @IsOptional() + @IsString() + locale?: string; + + @IsOptional() + @IsNumber() + @Min(0) + initialDeposit?: number; + + @IsOptional() + @IsString() + remark?: string; } class CreateSubAgentDto extends CreatePlayerDto { @IsOptional() @IsNumber() creditLimit?: number; + + @IsOptional() + @IsNumber() + @Min(0) + cashbackRate?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxSingleDeposit?: number; + + @IsOptional() + @IsNumber() + @Min(0) + maxDailyDeposit?: number; +} + +class UpdatePlayerDto { + @IsOptional() + @IsString() + username?: string; + + @IsOptional() + @IsString() + @MinLength(8) + password?: string; + + @IsOptional() + @IsString() + phone?: string; + + @IsOptional() + @IsString() + email?: string; + + @IsOptional() + @IsString() + status?: string; } class TransferDto { @@ -46,6 +106,33 @@ class CreditDto extends TransferDto { remark?: string; } +class UpdateSubAgentDto { + @IsOptional() + @IsString() + username?: string; + + @IsOptional() + @IsString() + @MinLength(8) + password?: string; + + @IsOptional() + @IsString() + phone?: string; + + @IsOptional() + @IsString() + email?: string; + + @IsOptional() + @IsString() + status?: string; + + @IsOptional() + @IsBoolean() + freezeDirectPlayers?: boolean; +} + @ApiTags('Agent Portal') @Controller('agent') @UseGuards(JwtAuthGuard, AgentGuard) @@ -76,8 +163,57 @@ export class AgentPortalController { username: dto.username, password: dto.password, parentId: agentId, + locale: dto.locale, + phone: dto.phone, + email: dto.email, }); - return jsonResponse(user); + + if (dto.initialDeposit != null && dto.initialDeposit > 0) { + await this.agents.depositToPlayer( + agentId, + user.id, + dto.initialDeposit, + `agent-create-${user.id}-${Date.now()}`, + dto.remark ?? '开户初始余额', + ); + } + + const wallet = await this.prisma.wallet.findUnique({ where: { userId: user.id } }); + + return jsonResponse({ + id: user.id, + username: user.username, + status: user.status, + createdAt: user.createdAt, + availableBalance: wallet?.availableBalance ?? 0, + }); + } + + @Get('players/:id') + async getPlayer(@CurrentUser('id') agentId: bigint, @Param('id') playerId: string) { + const detail = await this.agents.getDirectPlayerDetail(agentId, BigInt(playerId)); + return jsonResponse(detail); + } + + @Get('players/:id/transfer-context') + async getPlayerTransferContext( + @CurrentUser('id') agentId: bigint, + @Param('id') playerId: string, + ) { + const ctx = await this.agents.getPlayerTransferContext(BigInt(playerId), { + actingAgentId: agentId, + }); + return jsonResponse(ctx); + } + + @Put('players/:id') + async updatePlayer( + @CurrentUser('id') agentId: bigint, + @Param('id') playerId: string, + @Body() dto: UpdatePlayerDto, + ) { + const detail = await this.agents.updateDirectPlayer(agentId, BigInt(playerId), dto); + return jsonResponse(detail); } @Get('agents') @@ -85,7 +221,7 @@ export class AgentPortalController { if (level !== 1) { return jsonResponse([]); } - const agents = await this.agents.getChildAgents(agentId); + const agents = await this.agents.listChildAgentsSummary(agentId); return jsonResponse(agents); } @@ -100,6 +236,9 @@ export class AgentPortalController { level: 2, parentAgentId: agentId, creditLimit: dto.creditLimit, + cashbackRate: dto.cashbackRate, + maxSingleDeposit: dto.maxSingleDeposit, + maxDailyDeposit: dto.maxDailyDeposit, }); return jsonResponse(user); } @@ -124,6 +263,47 @@ export class AgentPortalController { return jsonResponse(result); } + @Get('agents/:id') + async getSubAgent( + @CurrentUser('id') agentId: bigint, + @CurrentUser('agentLevel') level: number, + @Param('id') subAgentId: string, + ) { + if (level !== 1) { + return jsonResponse(null, 'Only level 1 agents can manage sub-agents'); + } + const detail = await this.agents.getSubAgentForParent(agentId, BigInt(subAgentId)); + return jsonResponse(detail); + } + + @Put('agents/:id') + async updateSubAgent( + @CurrentUser('id') agentId: bigint, + @CurrentUser('agentLevel') level: number, + @Param('id') subAgentId: string, + @Body() dto: UpdateSubAgentDto, + ) { + if (level !== 1) { + return jsonResponse(null, 'Only level 1 agents can manage sub-agents'); + } + const detail = await this.agents.updateSubAgentForParent(agentId, BigInt(subAgentId), dto); + return jsonResponse(detail); + } + + @Get('agents/:id/players') + async listSubAgentPlayers( + @CurrentUser('id') agentId: bigint, + @CurrentUser('agentLevel') level: number, + @Param('id') subAgentId: string, + ) { + if (level !== 1) { + return jsonResponse([]); + } + await this.agents.assertDirectChildAgent(agentId, BigInt(subAgentId)); + const players = await this.agents.getDirectPlayers(BigInt(subAgentId)); + return jsonResponse(players); + } + @Post('agents/:id/credit') async allocateCredit( @CurrentUser('id') agentId: bigint, diff --git a/apps/api/src/applications/player/player.controller.ts b/apps/api/src/applications/player/player.controller.ts index 2fbb89f..3408f5d 100644 --- a/apps/api/src/applications/player/player.controller.ts +++ b/apps/api/src/applications/player/player.controller.ts @@ -250,8 +250,9 @@ export class PlayerController { async transactions( @CurrentUser('id') userId: bigint, @Query('page') page?: string, + @Query('type') type?: string, ) { - const result = await this.wallet.getTransactions(userId, page ? parseInt(page) : 1); + const result = await this.wallet.getTransactions(userId, page ? parseInt(page) : 1, 20, type); return jsonResponse(result); } diff --git a/apps/api/src/domains/agent/agents.module.ts b/apps/api/src/domains/agent/agents.module.ts index 295c79f..01deca1 100644 --- a/apps/api/src/domains/agent/agents.module.ts +++ b/apps/api/src/domains/agent/agents.module.ts @@ -2,9 +2,10 @@ import { Module } from '@nestjs/common'; import { AgentsService } from './agents.service'; import { WalletModule } from '../ledger/wallet.module'; import { AuthModule } from '../identity/auth.module'; +import { SystemConfigModule } from '../../shared/config/system-config.module'; @Module({ - imports: [WalletModule, AuthModule], + imports: [WalletModule, AuthModule, SystemConfigModule], providers: [AgentsService], exports: [AgentsService], }) diff --git a/apps/api/src/domains/agent/agents.service.ts b/apps/api/src/domains/agent/agents.service.ts index 503f818..342af98 100644 --- a/apps/api/src/domains/agent/agents.service.ts +++ b/apps/api/src/domains/agent/agents.service.ts @@ -4,19 +4,30 @@ import { ForbiddenException, NotFoundException, } from '@nestjs/common'; +import * as bcrypt from 'bcryptjs'; import { Prisma } from '@prisma/client'; import { PrismaService } from '../../shared/prisma/prisma.service'; import { WalletService } from '../ledger/wallet.service'; import { AuthService } from '../identity/auth.service'; +import { SystemConfigService } from '../../shared/config/system-config.service'; import { Decimal } from '@prisma/client/runtime/library'; import { generateBatchNo } from '../../shared/common/decorators'; +function dec(v: Decimal | null | undefined) { + return v?.toString() ?? '0'; +} + +function sub(a: Decimal | null | undefined, b: Decimal | null | undefined) { + return new Decimal(a ?? 0).sub(b ?? 0).toString(); +} + @Injectable() export class AgentsService { constructor( private prisma: PrismaService, private wallet: WalletService, private auth: AuthService, + private systemConfig: SystemConfigService, ) {} async getProfile(agentId: bigint) { @@ -84,6 +95,10 @@ export class AgentsService { const creditAfter = creditBefore.add(amt); if (creditAfter.lt(0)) throw new BadRequestException('Credit limit cannot be negative'); + if (profile.parentAgentId) { + await this.assertChildCreditWithinParent(profile.parentAgentId, profile, creditAfter); + } + await this.prisma.$transaction(async (tx) => { await tx.agentProfile.update({ where: { userId: agentId }, @@ -111,16 +126,275 @@ export class AgentsService { return { creditAfter }; } + /** 代理只能操作直属玩家(parentId === 当前代理) */ + private async requireDirectPlayer(agentId: bigint, playerId: bigint) { + const player = await this.prisma.user.findFirst({ + where: { id: playerId, userType: 'PLAYER', deletedAt: null }, + include: { auth: true, wallet: true, preferences: true }, + }); + if (!player) throw new NotFoundException('玩家不存在'); + if (player.parentId !== agentId) { + throw new ForbiddenException('Can only manage direct players'); + } + return player; + } + + private async assertChildAgentWithinParent( + parentAgentId: bigint, + child: { + creditLimit?: number | Decimal; + cashbackRate?: number | Decimal; + maxSingleDeposit?: number | Decimal | null; + maxDailyDeposit?: number | Decimal | null; + }, + ) { + const parent = await this.prisma.agentProfile.findUnique({ + where: { userId: parentAgentId }, + }); + if (!parent) throw new BadRequestException('上级代理不存在'); + + if (child.creditLimit !== undefined) { + const limit = new Decimal(child.creditLimit); + if (limit.lt(0)) throw new BadRequestException('授信额度不能为负'); + if (limit.gt(parent.creditLimit)) { + throw new BadRequestException('下级代理授信不能超过上级授信额度'); + } + } + + if (child.cashbackRate !== undefined) { + const rate = new Decimal(child.cashbackRate); + if (rate.lt(0)) throw new BadRequestException('回水比例不能为负'); + if (rate.gt(parent.cashbackRate)) { + throw new BadRequestException('下级代理回水比例不能超过上级'); + } + } + + if (child.maxSingleDeposit != null && parent.maxSingleDeposit != null) { + if (new Decimal(child.maxSingleDeposit).gt(parent.maxSingleDeposit)) { + throw new BadRequestException('下级代理单笔限额不能超过上级'); + } + } + if (child.maxSingleDeposit != null && new Decimal(child.maxSingleDeposit).lt(0)) { + throw new BadRequestException('单笔限额不能为负'); + } + + if (child.maxDailyDeposit != null && parent.maxDailyDeposit != null) { + if (new Decimal(child.maxDailyDeposit).gt(parent.maxDailyDeposit)) { + throw new BadRequestException('下级代理日限额不能超过上级'); + } + } + if (child.maxDailyDeposit != null && new Decimal(child.maxDailyDeposit).lt(0)) { + throw new BadRequestException('日限额不能为负'); + } + } + + private resolveEffectiveDepositLimits( + profile: { + maxSingleDeposit: Decimal | null; + maxDailyDeposit: Decimal | null; + }, + parent?: { maxSingleDeposit: Decimal | null; maxDailyDeposit: Decimal | null } | null, + ) { + let maxSingleDeposit = profile.maxSingleDeposit; + let maxDailyDeposit = profile.maxDailyDeposit; + + if (parent) { + if (parent.maxSingleDeposit != null) { + maxSingleDeposit = + maxSingleDeposit != null + ? Decimal.min(maxSingleDeposit, parent.maxSingleDeposit) + : parent.maxSingleDeposit; + } + if (parent.maxDailyDeposit != null) { + maxDailyDeposit = + maxDailyDeposit != null + ? Decimal.min(maxDailyDeposit, parent.maxDailyDeposit) + : parent.maxDailyDeposit; + } + } + + return { maxSingleDeposit, maxDailyDeposit }; + } + + private normalizeOptionalLimit(value?: number | null) { + if (value == null || value <= 0) return null; + return new Decimal(value); + } + + /** 玩家有所属代理时,上分金额不得超过该代理当前可用授信(会先重算 usedCredit) */ + async assertPlayerParentCreditForDeposit(playerId: bigint, amount: Decimal | number) { + const user = await this.prisma.user.findFirst({ + where: { id: playerId, userType: 'PLAYER', deletedAt: null }, + select: { parentId: true }, + }); + if (!user?.parentId) return; + + await this.recalculateUsedCredit(user.parentId); + const profile = await this.getProfile(user.parentId); + const available = new Decimal(profile.creditLimit).sub(profile.usedCredit); + const amt = new Decimal(amount); + if (available.lt(amt)) { + throw new BadRequestException('超过玩家上级代理可用授信,无法上分'); + } + } + + /** 管理员给玩家上分:校验上级授信后入账,并刷新代理占用额度 */ + async adminDepositToPlayer( + playerId: bigint, + amount: number, + operatorId: bigint, + remark?: string, + requestId?: string, + ) { + await this.assertPlayerParentCreditForDeposit(playerId, amount); + const result = await this.wallet.deposit( + playerId, + amount, + operatorId, + remark, + requestId, + ); + const player = await this.prisma.user.findUnique({ + where: { id: playerId }, + select: { parentId: true }, + }); + if (player?.parentId) { + await this.recalculateUsedCredit(player.parentId); + } + return result; + } + + /** 上下分弹窗:玩家余额 + 授信代理可用额度/限额上下文 */ + async getPlayerTransferContext( + playerId: bigint, + options: { forAdmin?: boolean; actingAgentId?: bigint } = {}, + ) { + const player = await this.prisma.user.findFirst({ + where: { id: playerId, userType: 'PLAYER', deletedAt: null }, + include: { wallet: true }, + }); + if (!player) throw new NotFoundException('玩家不存在'); + + if (options.actingAgentId) { + await this.requireDirectPlayer(options.actingAgentId, playerId); + } + + const creditAgentId = options.forAdmin ? player.parentId : (options.actingAgentId ?? null); + + let credit: Record | null = null; + if (creditAgentId) { + await this.recalculateUsedCredit(creditAgentId); + const profile = await this.getProfile(creditAgentId); + const parent = profile.parentAgentId + ? await this.prisma.agentProfile.findUnique({ where: { userId: profile.parentAgentId } }) + : null; + const { maxSingleDeposit, maxDailyDeposit } = this.resolveEffectiveDepositLimits(profile, parent); + + let dailyDepositUsed: string | null = null; + if (!options.forAdmin) { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const dailyAgg = await this.prisma.walletTransaction.aggregate({ + where: { + operatorId: creditAgentId, + transactionType: 'MANUAL_DEPOSIT', + createdAt: { gte: today }, + }, + _sum: { amount: true }, + }); + dailyDepositUsed = dec(dailyAgg._sum.amount); + } + + const agentUser = await this.prisma.user.findUnique({ + where: { id: creditAgentId }, + select: { username: true }, + }); + + credit = { + agentId: creditAgentId.toString(), + agentUsername: agentUser?.username ?? '', + agentLevel: profile.level, + creditLimit: dec(profile.creditLimit), + usedCredit: dec(profile.usedCredit), + availableCredit: dec(profile.availableCredit), + maxSingleDeposit: maxSingleDeposit?.toString() ?? null, + maxDailyDeposit: maxDailyDeposit?.toString() ?? null, + dailyDepositUsed, + appliesDepositLimits: !options.forAdmin, + }; + } + + return { + player: { + id: player.id.toString(), + username: player.username, + availableBalance: dec(player.wallet?.availableBalance), + frozenBalance: dec(player.wallet?.frozenBalance), + }, + credit, + }; + } + + private async assertAgentDepositLimits(creditAgentId: bigint, amount: Decimal) { + const profile = await this.prisma.agentProfile.findUnique({ + where: { userId: creditAgentId }, + }); + if (!profile) return; + + const parent = profile.parentAgentId + ? await this.prisma.agentProfile.findUnique({ + where: { userId: profile.parentAgentId }, + }) + : null; + const { maxSingleDeposit, maxDailyDeposit } = this.resolveEffectiveDepositLimits(profile, parent); + + if (maxSingleDeposit && amount.gt(maxSingleDeposit)) { + throw new BadRequestException('超过代理单笔上分限额'); + } + + if (maxDailyDeposit) { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const dailyAgg = await this.prisma.walletTransaction.aggregate({ + where: { + operatorId: creditAgentId, + transactionType: 'MANUAL_DEPOSIT', + createdAt: { gte: today }, + }, + _sum: { amount: true }, + }); + const dailyTotal = new Decimal(dailyAgg._sum.amount ?? 0).add(amount); + if (dailyTotal.gt(maxDailyDeposit)) { + throw new BadRequestException('超过代理日上分限额'); + } + } + } + + private async assertChildCreditWithinParent( + parentAgentId: bigint, + childProfile: { userId: bigint; creditLimit: Decimal; usedCredit: Decimal }, + creditAfter: Decimal, + ) { + await this.assertChildAgentWithinParent(parentAgentId, { creditLimit: creditAfter }); + + const parent = await this.getProfile(parentAgentId); + const parentAvailable = new Decimal(parent.creditLimit).sub(parent.usedCredit); + const oldExposure = Decimal.max(childProfile.creditLimit, childProfile.usedCredit); + const newExposure = Decimal.max(creditAfter, childProfile.usedCredit); + const exposureDelta = newExposure.sub(oldExposure); + if (exposureDelta.gt(0) && exposureDelta.gt(parentAvailable)) { + throw new BadRequestException('上级可用授信不足'); + } + } + async depositToPlayer( agentId: bigint, playerId: bigint, amount: number, requestId: string, + remark?: string, ) { - const player = await this.prisma.user.findUnique({ where: { id: playerId } }); - if (!player || player.parentId !== agentId) { - throw new ForbiddenException('Can only deposit to direct players'); - } + await this.requireDirectPlayer(agentId, playerId); const profile = await this.getProfile(agentId); const available = new Decimal(profile.creditLimit).sub(profile.usedCredit); @@ -130,7 +404,9 @@ export class AgentsService { throw new BadRequestException('Insufficient agent credit'); } - await this.wallet.deposit(playerId, amt, agentId, 'Agent deposit', requestId); + await this.assertAgentDepositLimits(agentId, amt); + + await this.wallet.deposit(playerId, amt, agentId, remark ?? 'Agent deposit', requestId); await this.recalculateUsedCredit(agentId); return { success: true }; @@ -142,10 +418,7 @@ export class AgentsService { amount: number, requestId: string, ) { - const player = await this.prisma.user.findUnique({ where: { id: playerId } }); - if (!player || player.parentId !== agentId) { - throw new ForbiddenException('Can only withdraw from direct players'); - } + await this.requireDirectPlayer(agentId, playerId); await this.wallet.withdraw(playerId, amount, agentId, 'Agent withdraw', requestId); await this.recalculateUsedCredit(agentId); @@ -153,16 +426,124 @@ export class AgentsService { return { success: true }; } + async getDirectPlayerDetail(agentId: bigint, playerId: bigint) { + const user = await this.requireDirectPlayer(agentId, playerId); + + const [betCount, betStake] = await Promise.all([ + this.prisma.bet.count({ where: { userId: playerId } }), + this.prisma.bet.aggregate({ + where: { userId: playerId }, + _sum: { stake: true, actualReturn: true }, + }), + ]); + + return { + id: user.id.toString(), + username: user.username, + status: user.status, + phone: user.preferences?.phone ?? null, + email: user.preferences?.email ?? null, + managedPassword: user.preferences?.managedPassword ?? null, + availableBalance: user.wallet?.availableBalance?.toString() ?? '0', + frozenBalance: user.wallet?.frozenBalance?.toString() ?? '0', + lastLoginAt: user.auth?.lastLoginAt ?? null, + loginFailCount: user.auth?.loginFailCount ?? 0, + betCount, + totalStake: betStake._sum.stake?.toString() ?? '0', + totalReturn: betStake._sum.actualReturn?.toString() ?? '0', + createdAt: user.createdAt, + }; + } + + async updateDirectPlayer( + agentId: bigint, + playerId: bigint, + data: { + username?: string; + password?: string; + phone?: string; + email?: string; + status?: string; + }, + ) { + const user = await this.requireDirectPlayer(agentId, playerId); + + if (data.status && !['ACTIVE', 'SUSPENDED'].includes(data.status)) { + throw new BadRequestException('无效状态'); + } + + if (data.username !== undefined) { + const nextUsername = data.username.trim(); + if (!nextUsername) throw new BadRequestException('账号名称不能为空'); + if (nextUsername !== user.username) { + const taken = await this.prisma.user.findUnique({ where: { username: nextUsername } }); + if (taken) throw new BadRequestException('账号名称已被占用'); + await this.prisma.user.update({ + where: { id: playerId }, + data: { username: nextUsername }, + }); + } + } + + if (data.password !== undefined) { + const nextPassword = data.password; + if (nextPassword.length < 8) throw new BadRequestException('密码至少 8 位'); + if (!user.auth) throw new BadRequestException('账号认证信息缺失'); + const hash = await bcrypt.hash(nextPassword, 10); + await this.prisma.userAuth.update({ + where: { userId: playerId }, + data: { passwordHash: hash, loginFailCount: 0, lockedUntil: null }, + }); + await this.prisma.userPreference.upsert({ + where: { userId: playerId }, + create: { userId: playerId, managedPassword: nextPassword }, + update: { managedPassword: nextPassword }, + }); + } + + if (data.status) { + await this.prisma.user.update({ + where: { id: playerId }, + data: { status: data.status }, + }); + } + + const prefPatch: { phone?: string | null; email?: string | null } = {}; + if (data.phone !== undefined) prefPatch.phone = data.phone.trim() || null; + if (data.email !== undefined) prefPatch.email = data.email.trim() || null; + + if (Object.keys(prefPatch).length > 0) { + await this.prisma.userPreference.upsert({ + where: { userId: playerId }, + create: { + userId: playerId, + phone: prefPatch.phone ?? null, + email: prefPatch.email ?? null, + }, + update: prefPatch, + }); + } + + return this.getDirectPlayerDetail(agentId, playerId); + } + async listAgentsAdmin(params?: { page?: number; pageSize?: number; keyword?: string; + parentAgentId?: bigint; }) { const page = Math.max(1, params?.page ?? 1); const pageSize = Math.min(Math.max(1, params?.pageSize ?? 10), 100); const skip = (page - 1) * pageSize; const where: Prisma.AgentProfileWhereInput = {}; + if (params?.parentAgentId !== undefined) { + where.parentAgentId = params.parentAgentId; + } else { + // Default: only show top-level agents (no parent) + where.parentAgentId = null; + } const kw = params?.keyword?.trim(); if (kw) { where.user = { username: { contains: kw, mode: 'insensitive' } }; @@ -199,6 +580,18 @@ export class AgentsService { playerCounts.map((g) => [g.parentId?.toString(), g._count._all]), ); + const childAgentCounts = + agentIds.length > 0 + ? await this.prisma.agentProfile.groupBy({ + by: ['parentAgentId'], + where: { parentAgentId: { in: agentIds } }, + _count: { _all: true }, + }) + : []; + const childAgentCountMap = new Map( + childAgentCounts.map((g) => [g.parentAgentId?.toString(), g._count._all]), + ); + const items = profiles.map((p) => { const available = new Decimal(p.creditLimit).sub(p.usedCredit); return { @@ -215,7 +608,10 @@ export class AgentsService { directPlayerLiability: p.directPlayerLiability.toString(), childAgentExposure: p.childAgentExposure.toString(), cashbackRate: p.cashbackRate.toString(), + maxSingleDeposit: p.maxSingleDeposit?.toString() ?? null, + maxDailyDeposit: p.maxDailyDeposit?.toString() ?? null, directPlayerCount: countMap.get(p.userId.toString()) ?? 0, + childAgentCount: childAgentCountMap.get(p.userId.toString()) ?? 0, phone: p.user.preferences?.phone ?? null, email: p.user.preferences?.email ?? null, locale: p.user.locale, @@ -234,10 +630,13 @@ export class AgentsService { }); if (!profile) throw new NotFoundException('代理不存在'); - const [directPlayerCount, recentCredits] = await Promise.all([ + const [directPlayerCount, childAgentCount, recentCredits] = await Promise.all([ this.prisma.user.count({ where: { parentId: agentId, userType: 'PLAYER', deletedAt: null }, }), + this.prisma.agentProfile.count({ + where: { parentAgentId: agentId }, + }), this.prisma.agentCreditTransaction.findMany({ where: { agentId }, orderBy: { createdAt: 'desc' }, @@ -270,11 +669,16 @@ export class AgentsService { directPlayerLiability: profile.directPlayerLiability.toString(), childAgentExposure: profile.childAgentExposure.toString(), cashbackRate: profile.cashbackRate.toString(), + maxSingleDeposit: profile.maxSingleDeposit?.toString() ?? null, + maxDailyDeposit: profile.maxDailyDeposit?.toString() ?? null, directPlayerCount, + childAgentCount, phone: profile.user.preferences?.phone ?? null, email: profile.user.preferences?.email ?? null, + managedPassword: profile.user.preferences?.managedPassword ?? null, locale: profile.user.locale, lastLoginAt: profile.user.auth?.lastLoginAt ?? null, + loginFailCount: profile.user.auth?.loginFailCount ?? 0, createdAt: profile.createdAt, updatedAt: profile.updatedAt, recentCreditTransactions: recentCredits.map((t) => ({ @@ -297,6 +701,11 @@ export class AgentsService { phone?: string; email?: string; cashbackRate?: number; + maxSingleDeposit?: number | null; + maxDailyDeposit?: number | null; + username?: string; + password?: string; + freezeDirectPlayers?: boolean; }, ) { const profile = await this.prisma.agentProfile.findUnique({ @@ -309,6 +718,38 @@ export class AgentsService { throw new BadRequestException('无效状态'); } + // Handle username change + if (data.username !== undefined) { + const nextUsername = data.username.trim(); + if (!nextUsername) throw new BadRequestException('账号名称不能为空'); + if (nextUsername !== profile.user.username) { + const taken = await this.prisma.user.findUnique({ where: { username: nextUsername } }); + if (taken) throw new BadRequestException('账号名称已被占用'); + await this.prisma.user.update({ + where: { id: agentId }, + data: { username: nextUsername }, + }); + } + } + + // Handle password change + if (data.password !== undefined) { + const nextPassword = data.password; + if (nextPassword.length < 8) throw new BadRequestException('密码至少 8 位'); + const hash = await bcrypt.hash(nextPassword, 10); + await this.prisma.userAuth.upsert({ + where: { userId: agentId }, + create: { userId: agentId, passwordHash: hash, loginFailCount: 0, lockedUntil: null }, + update: { passwordHash: hash, loginFailCount: 0, lockedUntil: null }, + }); + await this.prisma.userPreference.upsert({ + where: { userId: agentId }, + create: { userId: agentId, managedPassword: nextPassword }, + update: { managedPassword: nextPassword }, + }); + } + + // Handle status change (with optional cascade freeze) if (data.status) { await this.prisma.$transaction([ this.prisma.user.update({ @@ -320,6 +761,19 @@ export class AgentsService { data: { status: data.status }, }), ]); + + // 级联冻结:需后台开启且管理员/操作方显式勾选(MVP 默认不冻结玩家) + const suspendSettings = await this.systemConfig.getAgentSuspendSettings(); + if ( + data.status === 'SUSPENDED' && + data.freezeDirectPlayers && + suspendSettings.suspendFreezeDirectPlayers + ) { + await this.prisma.user.updateMany({ + where: { parentId: agentId, userType: 'PLAYER', deletedAt: null }, + data: { status: 'SUSPENDED' }, + }); + } } if (data.locale) { @@ -330,12 +784,40 @@ export class AgentsService { } if (data.cashbackRate !== undefined) { + if (profile.parentAgentId) { + await this.assertChildAgentWithinParent(profile.parentAgentId, { + cashbackRate: data.cashbackRate, + }); + } await this.prisma.agentProfile.update({ where: { userId: agentId }, data: { cashbackRate: data.cashbackRate }, }); } + const limitPatch: { + maxSingleDeposit?: Decimal | null; + maxDailyDeposit?: Decimal | null; + } = {}; + if (data.maxSingleDeposit !== undefined) { + limitPatch.maxSingleDeposit = this.normalizeOptionalLimit(data.maxSingleDeposit); + } + if (data.maxDailyDeposit !== undefined) { + limitPatch.maxDailyDeposit = this.normalizeOptionalLimit(data.maxDailyDeposit); + } + if (Object.keys(limitPatch).length > 0) { + if (profile.parentAgentId) { + await this.assertChildAgentWithinParent(profile.parentAgentId, { + maxSingleDeposit: limitPatch.maxSingleDeposit ?? undefined, + maxDailyDeposit: limitPatch.maxDailyDeposit ?? undefined, + }); + } + await this.prisma.agentProfile.update({ + where: { userId: agentId }, + data: limitPatch, + }); + } + if (data.phone !== undefined || data.email !== undefined || data.locale) { const phone = data.phone !== undefined ? data.phone?.trim() || null : undefined; const email = data.email !== undefined ? data.email?.trim() || null : undefined; @@ -389,6 +871,8 @@ export class AgentsService { data: { creditLimit: number; cashbackRate?: number; + maxSingleDeposit?: number | null; + maxDailyDeposit?: number | null; phone?: string; email?: string; }, @@ -450,6 +934,8 @@ export class AgentsService { parentAgentId: null, creditLimit: data.creditLimit, cashbackRate: data.cashbackRate ?? 0, + maxSingleDeposit: this.normalizeOptionalLimit(data.maxSingleDeposit), + maxDailyDeposit: this.normalizeOptionalLimit(data.maxDailyDeposit), }, }); @@ -481,6 +967,8 @@ export class AgentsService { phone?: string; email?: string; cashbackRate?: number; + maxSingleDeposit?: number | null; + maxDailyDeposit?: number | null; }, ) { if (data.level !== 1 && data.level !== 2) { @@ -490,6 +978,18 @@ export class AgentsService { throw new BadRequestException('Level 2 agent requires parent'); } + if (data.parentAgentId) { + await this.assertChildAgentWithinParent(data.parentAgentId, { + creditLimit: data.creditLimit ?? 0, + cashbackRate: data.cashbackRate ?? 0, + maxSingleDeposit: data.maxSingleDeposit, + maxDailyDeposit: data.maxDailyDeposit, + }); + } + + const maxSingleDeposit = this.normalizeOptionalLimit(data.maxSingleDeposit); + const maxDailyDeposit = this.normalizeOptionalLimit(data.maxDailyDeposit); + const hash = await this.auth.hashPassword(data.password); return this.prisma.$transaction(async (tx) => { @@ -524,6 +1024,8 @@ export class AgentsService { parentAgentId: data.parentAgentId, creditLimit: data.creditLimit ?? 0, cashbackRate: data.cashbackRate ?? 0, + maxSingleDeposit, + maxDailyDeposit, }, }); @@ -567,8 +1069,12 @@ export class AgentsService { depositRemark?: string; depositRequestId?: string; asTier1Agent?: boolean; + asSubAgent?: boolean; + parentAgentId?: bigint; creditLimit?: number; cashbackRate?: number; + maxSingleDeposit?: number | null; + maxDailyDeposit?: number | null; }, ) { if (data.asTier1Agent) { @@ -590,6 +1096,29 @@ export class AgentsService { }); } + if (data.asSubAgent) { + if (data.parentAgentId == null && data.parentId == null) { + throw new BadRequestException('二级代理必须指定上级代理'); + } + if (data.initialDeposit && data.initialDeposit > 0) { + throw new BadRequestException('设为代理时请使用授信额度,勿填玩家初始余额'); + } + const parentAgentId = data.parentAgentId ?? data.parentId; + return this.createAgent(operatorId, { + username: data.username, + password: data.password, + level: 2, + parentAgentId, + creditLimit: data.creditLimit ?? 0, + cashbackRate: data.cashbackRate ?? 0, + maxSingleDeposit: data.maxSingleDeposit, + maxDailyDeposit: data.maxDailyDeposit, + locale: data.locale, + phone: data.phone, + email: data.email, + }); + } + let parentId: bigint | null = null; if (data.parentId != null) { const parent = await this.prisma.user.findUnique({ where: { id: data.parentId } }); @@ -597,6 +1126,11 @@ export class AgentsService { throw new BadRequestException('上级必须为代理账号'); } parentId = data.parentId; + + const operator = await this.prisma.user.findUnique({ where: { id: operatorId } }); + if (operator?.userType === 'AGENT' && parentId !== operatorId) { + throw new ForbiddenException('Can only create direct players'); + } } const hash = await this.auth.hashPassword(data.password); @@ -641,6 +1175,7 @@ export class AgentsService { if (initial > 0) { const requestId = data.depositRequestId ?? `admin-create-${user.id}-${Date.now()}`; + await this.assertPlayerParentCreditForDeposit(user.id, initial); await this.wallet.deposit( user.id, initial, @@ -660,6 +1195,7 @@ export class AgentsService { return this.prisma.user.findMany({ where: { parentId: agentId, userType: 'PLAYER' }, include: { wallet: true }, + orderBy: { createdAt: 'desc' }, }); } @@ -670,34 +1206,253 @@ export class AgentsService { }); } + async listChildAgentsSummary(parentAgentId: bigint) { + const profiles = await this.getChildAgents(parentAgentId); + const agentIds = profiles.map((p) => p.userId); + const playerCounts = + agentIds.length > 0 + ? await this.prisma.user.groupBy({ + by: ['parentId'], + where: { + userType: 'PLAYER', + parentId: { in: agentIds }, + deletedAt: null, + }, + _count: { _all: true }, + }) + : []; + + const countMap = new Map( + playerCounts.map((g) => [g.parentId?.toString(), g._count._all]), + ); + + return profiles.map((p) => { + const available = new Decimal(p.creditLimit).sub(p.usedCredit); + return { + userId: p.userId.toString(), + username: p.user.username, + userStatus: p.user.status, + status: p.status, + level: p.level, + creditLimit: dec(p.creditLimit), + usedCredit: dec(p.usedCredit), + availableCredit: available.toString(), + directPlayerCount: countMap.get(p.userId.toString()) ?? 0, + createdAt: p.createdAt, + }; + }); + } + + async assertDirectChildAgent(parentAgentId: bigint, subAgentId: bigint) { + const profile = await this.prisma.agentProfile.findUnique({ + where: { userId: subAgentId }, + }); + if (!profile || profile.parentAgentId !== parentAgentId) { + throw new ForbiddenException('Not your sub-agent'); + } + return profile; + } + + async getSubAgentForParent(parentAgentId: bigint, subAgentId: bigint) { + await this.assertDirectChildAgent(parentAgentId, subAgentId); + return this.getAgentAdminDetail(subAgentId); + } + + async updateSubAgentForParent( + parentAgentId: bigint, + subAgentId: bigint, + data: { + username?: string; + password?: string; + phone?: string; + email?: string; + status?: string; + freezeDirectPlayers?: boolean; + }, + ) { + await this.assertDirectChildAgent(parentAgentId, subAgentId); + const { freezeDirectPlayers: _ignored, ...safeData } = data; + return this.updateAgentAdmin(subAgentId, safeData); + } + + async getSubtreeAgentIds(agentId: bigint) { + const descendants = await this.prisma.agentClosure.findMany({ + where: { ancestorId: agentId }, + select: { descendantId: true }, + }); + return descendants.map((d) => d.descendantId); + } + async getReportSummary(agentId: bigint) { const profile = await this.getProfile(agentId); - const players = await this.getDirectPlayers(agentId); + const agentIds = await this.getSubtreeAgentIds(agentId); + const betScope = { agentId: { in: agentIds } }; + const playerWhere = { + parentId: agentId, + userType: 'PLAYER' as const, + deletedAt: null, + }; + const today = new Date(); today.setHours(0, 0, 0, 0); + const yesterday = new Date(today.getTime() - 86400000); - const todayBets = await this.prisma.bet.aggregate({ - where: { - agentId, - placedAt: { gte: today }, - }, - _sum: { stake: true, actualReturn: true }, - _count: true, - }); + const trend7d = await Promise.all( + Array.from({ length: 7 }, (_, i) => { + const dayStart = new Date(today); + dayStart.setDate(dayStart.getDate() - (6 - i)); + const dayEnd = new Date(dayStart); + dayEnd.setDate(dayEnd.getDate() + 1); + return this.prisma.bet + .aggregate({ + where: { ...betScope, placedAt: { gte: dayStart, lt: dayEnd } }, + _sum: { stake: true, actualReturn: true }, + _count: true, + }) + .then((agg) => ({ + date: dayStart.toISOString().slice(0, 10), + label: `${dayStart.getMonth() + 1}/${dayStart.getDate()}`, + betCount: agg._count, + stake: dec(agg._sum.stake), + payout: dec(agg._sum.actualReturn), + ggr: sub(agg._sum.stake, agg._sum.actualReturn), + })); + }), + ); + + const [ + todayBets, + yesterdayBets, + pendingBets, + betStatusToday, + playerTotal, + playerActive, + playerSuspended, + newPlayersToday, + subAgentTotal, + subAgentsActive, + walletAgg, + recentBets, + recentPlayers, + ] = await Promise.all([ + this.prisma.bet.aggregate({ + where: { ...betScope, placedAt: { gte: today } }, + _sum: { stake: true, actualReturn: true }, + _count: true, + }), + this.prisma.bet.aggregate({ + where: { ...betScope, placedAt: { gte: yesterday, lt: today } }, + _sum: { stake: true, actualReturn: true }, + _count: true, + }), + this.prisma.bet.count({ where: { ...betScope, status: 'PENDING' } }), + this.prisma.bet.groupBy({ + by: ['status'], + where: { ...betScope, placedAt: { gte: today } }, + _count: { _all: true }, + _sum: { stake: true }, + }), + this.prisma.user.count({ where: playerWhere }), + this.prisma.user.count({ where: { ...playerWhere, status: 'ACTIVE' } }), + this.prisma.user.count({ where: { ...playerWhere, status: 'SUSPENDED' } }), + this.prisma.user.count({ + where: { ...playerWhere, createdAt: { gte: today } }, + }), + this.prisma.agentProfile.count({ where: { parentAgentId: agentId } }), + this.prisma.agentProfile.count({ + where: { parentAgentId: agentId, status: 'ACTIVE' }, + }), + this.prisma.wallet.aggregate({ + where: { user: playerWhere }, + _sum: { availableBalance: true, frozenBalance: true }, + _count: { _all: true }, + }), + this.prisma.bet.findMany({ + where: betScope, + take: 8, + orderBy: { placedAt: 'desc' }, + include: { user: { select: { username: true } } }, + }), + this.prisma.user.findMany({ + where: playerWhere, + take: 6, + orderBy: { createdAt: 'desc' }, + select: { + id: true, + username: true, + status: true, + createdAt: true, + }, + }), + ]); + + const todayBetByStatus: Record = {}; + for (const g of betStatusToday) { + todayBetByStatus[g.status] = { + count: g._count._all, + stake: dec(g._sum.stake), + }; + } + + const creditLimit = profile.creditLimit ?? new Decimal(0); + const usedCredit = profile.usedCredit ?? new Decimal(0); + const availableCredit = new Decimal(creditLimit).sub(usedCredit); return { - profile, - directPlayerCount: players.length, - directPlayerTotalBalance: players.reduce( - (sum, p) => - sum + - Number(p.wallet?.availableBalance ?? 0) + - Number(p.wallet?.frozenBalance ?? 0), - 0, - ), - todayBetCount: todayBets._count, - todayStake: todayBets._sum.stake, - todayReturn: todayBets._sum.actualReturn, + generatedAt: new Date().toISOString(), + trend7d, + today: { + betCount: todayBets._count, + stake: dec(todayBets._sum.stake), + payout: dec(todayBets._sum.actualReturn), + ggr: sub(todayBets._sum.stake, todayBets._sum.actualReturn), + newPlayers: newPlayersToday, + }, + yesterday: { + betCount: yesterdayBets._count, + stake: dec(yesterdayBets._sum.stake), + payout: dec(yesterdayBets._sum.actualReturn), + ggr: sub(yesterdayBets._sum.stake, yesterdayBets._sum.actualReturn), + }, + players: { + directTotal: playerTotal, + active: playerActive, + suspended: playerSuspended, + newToday: newPlayersToday, + }, + subAgents: { + total: subAgentTotal, + active: subAgentsActive, + }, + wallets: { + totalAvailable: dec(walletAgg._sum.availableBalance), + totalFrozen: dec(walletAgg._sum.frozenBalance), + playerWalletCount: walletAgg._count._all, + }, + credit: { + creditLimit: dec(creditLimit), + usedCredit: dec(usedCredit), + availableCredit: availableCredit.toString(), + directPlayerLiability: dec(profile.directPlayerLiability), + childAgentExposure: dec(profile.childAgentExposure), + }, + bets: { + pendingTotal: pendingBets, + todayByStatus: todayBetByStatus, + }, + recentBets: recentBets.map((b) => ({ + betNo: b.betNo, + username: b.user.username, + stake: dec(b.stake), + status: b.status, + placedAt: b.placedAt, + })), + recentPlayers: recentPlayers.map((p) => ({ + id: p.id.toString(), + username: p.username, + status: p.status, + createdAt: p.createdAt, + })), }; } } diff --git a/apps/api/src/domains/identity/auth.controller.ts b/apps/api/src/domains/identity/auth.controller.ts index 16ff885..22cdfef 100644 --- a/apps/api/src/domains/identity/auth.controller.ts +++ b/apps/api/src/domains/identity/auth.controller.ts @@ -1,4 +1,4 @@ -import { Controller, Post, Body, UseGuards } from '@nestjs/common'; +import { Controller, Get, Post, Body, UseGuards } from '@nestjs/common'; import { ApiTags, ApiBearerAuth } from '@nestjs/swagger'; import { AuthService } from './auth.service'; import { LoginDto, ChangePasswordDto } from './auth.dto'; @@ -39,6 +39,27 @@ export class AuthController { return jsonResponse(result); } + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + @Get('manage/auth/me') + async manageMe( + @CurrentUser('id') userId: bigint, + @CurrentUser('username') username: string, + @CurrentUser('userType') userType: string, + @CurrentUser('locale') locale: string | undefined, + @CurrentUser('role') role: string | undefined, + @CurrentUser('agentLevel') agentLevel: number | null | undefined, + ) { + return jsonResponse({ + id: userId.toString(), + username, + userType, + locale, + role, + agentLevel: userType === 'AGENT' ? agentLevel ?? null : null, + }); + } + @UseGuards(JwtAuthGuard) @ApiBearerAuth() @Post('player/auth/change-password') diff --git a/apps/api/src/domains/identity/auth.service.ts b/apps/api/src/domains/identity/auth.service.ts index 670a773..6320c3c 100644 --- a/apps/api/src/domains/identity/auth.service.ts +++ b/apps/api/src/domains/identity/auth.service.ts @@ -56,6 +56,23 @@ export class AuthService { throw new ForbiddenException('Account disabled'); } + if (portal === 'agent' && user.status === 'SUSPENDED') { + throw new ForbiddenException('Agent account suspended'); + } + + if (portal === 'player' && user.parentId) { + const agentSettings = await this.systemConfig.getAgentSuspendSettings(); + if (agentSettings.suspendBlockPlayerLogin) { + const parentAgent = await this.prisma.user.findUnique({ + where: { id: user.parentId }, + select: { userType: true, status: true }, + }); + if (parentAgent?.userType === 'AGENT' && parentAgent.status !== 'ACTIVE') { + throw new ForbiddenException('上级代理已停用,暂无法登录'); + } + } + } + if (user.auth.lockedUntil && user.auth.lockedUntil > new Date()) { throw new ForbiddenException('Account locked, try again later'); } @@ -101,6 +118,7 @@ export class AuthService { userType: user.userType, locale: user.locale, role: user.adminRole?.role?.code, + agentLevel: user.userType === 'AGENT' ? user.agentLevel : null, }, }; } diff --git a/apps/api/src/domains/ledger/wallet.service.ts b/apps/api/src/domains/ledger/wallet.service.ts index 1a3950d..ae29d89 100644 --- a/apps/api/src/domains/ledger/wallet.service.ts +++ b/apps/api/src/domains/ledger/wallet.service.ts @@ -281,16 +281,29 @@ export class WalletService { }; } - async getTransactions(userId: bigint, page = 1, pageSize = 20) { + async getTransactions(userId: bigint, page = 1, pageSize = 20, typeFilter?: string) { const skip = (page - 1) * pageSize; + + let typeWhere: Record = {}; + if (typeFilter === 'deposit') { + typeWhere = { transactionType: { in: ['MANUAL_DEPOSIT', 'DEPOSIT', 'MANUAL_ADJUST'] } }; + } else if (typeFilter === 'withdraw') { + typeWhere = { transactionType: { in: ['MANUAL_WITHDRAW', 'WITHDRAW'] } }; + } else if (typeFilter === 'bet') { + typeWhere = { transactionType: { in: ['BET_FREEZE', 'BET_DEDUCT', 'BET_SETTLE_WIN', 'BET_SETTLE_LOSE', 'BET_SETTLE_PUSH', 'BET_WIN', 'BET_REFUND', 'BET_VOID', 'BET_VOID_REFUND', 'RESETTLE_REVERSE'] } }; + } else if (typeFilter === 'cashback') { + typeWhere = { transactionType: { in: ['CASHBACK', 'CASHBACK_DEPOSIT'] } }; + } + + const where = { userId, ...typeWhere }; const [items, total] = await Promise.all([ this.prisma.walletTransaction.findMany({ - where: { userId }, + where, orderBy: { createdAt: 'desc' }, skip, take: pageSize, }), - this.prisma.walletTransaction.count({ where: { userId } }), + this.prisma.walletTransaction.count({ where }), ]); return { items, total, page, pageSize }; } diff --git a/apps/api/src/integration.spec.ts b/apps/api/src/integration.spec.ts index c423061..4289f38 100644 --- a/apps/api/src/integration.spec.ts +++ b/apps/api/src/integration.spec.ts @@ -63,6 +63,16 @@ describe('Agent Credit Rules', () => { const canDeposit = agentId === playerParentId; expect(canDeposit).toBe(false); }); + + it('A008: admin deposit cannot exceed parent agent available credit', () => { + const creditLimit = 5000; + const usedCredit = 4800; + const depositAmount = 300; + const available = creditLimit - usedCredit; + expect(depositAmount).toBeGreaterThan(available); + const allowed = depositAmount <= available; + expect(allowed).toBe(false); + }); }); describe('Bet Validation Rules (B001-B010)', () => { diff --git a/apps/api/src/shared/config/system-config.service.ts b/apps/api/src/shared/config/system-config.service.ts index 096cdaf..c10d347 100644 --- a/apps/api/src/shared/config/system-config.service.ts +++ b/apps/api/src/shared/config/system-config.service.ts @@ -3,12 +3,21 @@ import { PrismaService } from '../prisma/prisma.service'; export const PLAYER_ALLOW_PASSWORD_CHANGE = 'player.allow_password_change'; export const PLAYER_ALLOW_USERNAME_CHANGE = 'player.allow_username_change'; +export const AGENT_SUSPEND_FREEZE_DIRECT_PLAYERS = 'agent.suspend_freeze_direct_players'; +export const AGENT_SUSPEND_BLOCK_PLAYER_LOGIN = 'agent.suspend_block_player_login'; export type PlayerAccountSettings = { allowPasswordChange: boolean; allowUsernameChange: boolean; }; +export type AgentSuspendSettings = { + /** 停用代理时是否允许级联冻结其直属玩家(需管理员显式勾选) */ + suspendFreezeDirectPlayers: boolean; + /** 上级代理停用时是否禁止其直属玩家登录 */ + suspendBlockPlayerLogin: boolean; +}; + @Injectable() export class SystemConfigService { constructor(private prisma: PrismaService) {} @@ -56,4 +65,30 @@ export class SystemConfigService { } return this.getPlayerAccountSettings(); } + + async getAgentSuspendSettings(): Promise { + const [suspendFreezeDirectPlayers, suspendBlockPlayerLogin] = await Promise.all([ + this.getBoolean(AGENT_SUSPEND_FREEZE_DIRECT_PLAYERS, false), + this.getBoolean(AGENT_SUSPEND_BLOCK_PLAYER_LOGIN, false), + ]); + return { suspendFreezeDirectPlayers, suspendBlockPlayerLogin }; + } + + async updateAgentSuspendSettings(data: Partial) { + if (data.suspendFreezeDirectPlayers !== undefined) { + await this.setBoolean( + AGENT_SUSPEND_FREEZE_DIRECT_PLAYERS, + data.suspendFreezeDirectPlayers, + '停用代理时是否允许级联冻结直属玩家', + ); + } + if (data.suspendBlockPlayerLogin !== undefined) { + await this.setBoolean( + AGENT_SUSPEND_BLOCK_PLAYER_LOGIN, + data.suspendBlockPlayerLogin, + '上级代理停用时是否禁止直属玩家登录', + ); + } + return this.getAgentSuspendSettings(); + } } diff --git a/apps/player/src/api/index.ts b/apps/player/src/api/index.ts index 37ce008..20f4ea1 100644 --- a/apps/player/src/api/index.ts +++ b/apps/player/src/api/index.ts @@ -12,8 +12,12 @@ api.interceptors.response.use( (res) => res, (err) => { if (err.response?.status === 401) { - localStorage.removeItem('token'); - window.location.href = '/login'; + const url: string = err.config?.url ?? ''; + // Don't redirect on login/auth failures — let the caller handle the error + if (!url.includes('/auth/login')) { + localStorage.removeItem('token'); + window.location.href = '/login'; + } } return Promise.reject(err); }, diff --git a/apps/player/src/assets/images/钱包.png b/apps/player/src/assets/images/钱包.png index a03dbca2de8ab6bfe25724317082282cfe457997..86de48b9827d47e3c88fee31bc1637f568766b16 100644 GIT binary patch delta 2307899 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⁡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

;{$hCtrWkJOafTdJW;Ke}u_J0$aD5BnwM}7UW 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%0D|Pa6!x)m8G@Db-n>$z|vgXcpAmx43rph5dumQj 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