feat(admin+api): 代理停用默认、结算加固与冒烟配置探针

- 代理层级默认授信比例与停用冻结/禁登全局默认

- 结算预览去重、比分校验、串关当场判负与市场类型校验

- 站内信 Banner/公告自动通知开关;开发环境动态 API 端口

- 扩充 RBAC/结算/认证/返现单元测试与 agent skills
This commit is contained in:
2026-06-23 11:08:41 +08:00
parent fa06fee64c
commit ce84226219
47 changed files with 9284 additions and 118 deletions

View File

@@ -19,6 +19,10 @@ export type InboxNotifySettings = {
inboxEnabled: boolean;
/** 充值审核通过/拒绝时发送站内信 */
deposit: boolean;
/** 发布 Banner 内容时发送站内信推广 */
banner: boolean;
/** 发布公告/滚动条内容时发送站内信推广 */
announcement: boolean;
};
export type PlatformDirectCashbackSettings = {
@@ -41,9 +45,9 @@ export type PlayerAccountSettings = {
};
export type AgentSuspendSettings = {
/** 停用代理时是否允许级联冻结直属玩家(需管理员显式勾选 */
/** 停用代理时默认级联冻结直属玩家(单次操作仍可覆盖 */
suspendFreezeDirectPlayers: boolean;
/** 上级代理停用时是否禁止直属玩家登录 */
/** 停用代理时默认禁止直属玩家登录(单次操作仍可覆盖) */
suspendBlockPlayerLogin: boolean;
};
@@ -239,11 +243,13 @@ export class SystemConfigService {
}
async getInboxNotifySettings(): Promise<InboxNotifySettings> {
const [inboxEnabled, deposit] = await Promise.all([
const [inboxEnabled, deposit, banner, announcement] = await Promise.all([
this.getBoolean(INBOX_FEATURE_ENABLED, true),
this.getBoolean(INBOX_NOTIFY_DEPOSIT, true),
this.getBoolean(INBOX_NOTIFY_BANNER, true),
this.getBoolean(INBOX_NOTIFY_ANNOUNCEMENT, true),
]);
return { inboxEnabled, deposit };
return { inboxEnabled, deposit, banner, announcement };
}
async updateInboxNotifySettings(data: Partial<InboxNotifySettings>) {
@@ -261,6 +267,20 @@ export class SystemConfigService {
'充值审核结果是否通过站内邮箱通知玩家',
);
}
if (data.banner !== undefined) {
await this.setBoolean(
INBOX_NOTIFY_BANNER,
data.banner,
'发布 Banner 内容时是否发送站内信推广',
);
}
if (data.announcement !== undefined) {
await this.setBoolean(
INBOX_NOTIFY_ANNOUNCEMENT,
data.announcement,
'发布公告/滚动条内容时是否发送站内信推广',
);
}
return this.getInboxNotifySettings();
}