Files
team-api/internal/service/admin.go
T

538 lines
41 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================
package service
import (
"context"
v1 "github.com/qianfree/team-api/api/admin/v1"
)
type (
IAdmin interface {
// ListUsers returns a paginated list of admin users.
ListUsers(ctx context.Context, req *v1.AdminUserListReq) (*v1.AdminUserListRes, error)
// CreateUser creates a new admin user.
CreateUser(ctx context.Context, req *v1.AdminUserCreateReq) (*v1.AdminUserCreateRes, error)
// UpdateUser updates an admin user.
UpdateUser(ctx context.Context, req *v1.AdminUserUpdateReq) (*v1.AdminUserUpdateRes, error)
// DeleteUser deletes an admin user.
DeleteUser(ctx context.Context, req *v1.AdminUserDeleteReq) (*v1.AdminUserDeleteRes, error)
// UpdateUserStatus enables or disables an admin user.
UpdateUserStatus(ctx context.Context, req *v1.AdminUserUpdateStatusReq) (*v1.AdminUserUpdateStatusRes, error)
// UnlockUser 清除管理员的登录锁定状态(重置失败计数与锁定截止时间)。
UnlockUser(ctx context.Context, req *v1.AdminUserUnlockReq) (*v1.AdminUserUnlockRes, error)
// ResetUserPassword resets an admin user's password.
ResetUserPassword(ctx context.Context, req *v1.AdminUserResetPasswordReq) (*v1.AdminUserResetPasswordRes, error)
// ExportUsers exports admin users to CSV or Excel.
ExportUsers(ctx context.Context, req *v1.AdminUserExportReq) (*v1.AdminUserExportRes, error)
// CreateAgreement 创建协议版本
CreateAgreement(ctx context.Context, req *v1.AgreementCreateReq) (*v1.AgreementCreateRes, error)
// ListAgreements 协议版本列表
ListAgreements(ctx context.Context, req *v1.AgreementListReq) (*v1.AgreementListRes, error)
// GetAgreement 协议版本详情
GetAgreement(ctx context.Context, req *v1.AgreementGetReq) (*v1.AgreementGetRes, error)
// UpdateAgreement 更新协议版本(仅 draft)
UpdateAgreement(ctx context.Context, req *v1.AgreementUpdateReq) (*v1.AgreementUpdateRes, error)
// DeleteAgreement 删除协议版本(仅 draft)
DeleteAgreement(ctx context.Context, req *v1.AgreementDeleteReq) (*v1.AgreementDeleteRes, error)
// PublishAgreement 发布协议版本
PublishAgreement(ctx context.Context, req *v1.AgreementPublishReq) (*v1.AgreementPublishRes, error)
// ListAgreementAcceptances 协议接受记录列表
ListAgreementAcceptances(ctx context.Context, req *v1.AgreementAcceptanceListReq) (*v1.AgreementAcceptanceListRes, error)
// ListAdminPendingAgreements 当前管理员待接受的协议
ListAdminPendingAgreements(ctx context.Context, req *v1.AdminAgreementPendingReq) (*v1.AdminAgreementPendingRes, error)
// AcceptAdminAgreements 管理员接受协议
AcceptAdminAgreements(ctx context.Context, req *v1.AdminAgreementAcceptReq) (*v1.AdminAgreementAcceptRes, error)
// GetAuditConfig retrieves the global audit level from sys_options.
GetAuditConfig(ctx context.Context, _ *v1.AuditConfigGetReq) (*v1.AuditConfigGetRes, error)
// UpdateAuditConfig updates the global audit level.
UpdateAuditConfig(ctx context.Context, req *v1.AuditConfigUpdateReq) (*v1.AuditConfigUpdateRes, error)
// ListOperationLogs retrieves a paginated list of operation logs with optional filters.
ListOperationLogs(ctx context.Context, req *v1.OperationLogListReq) (*v1.OperationLogListRes, error)
// ListSensitiveAccessLogs retrieves a paginated list of sensitive data access logs.
ListSensitiveAccessLogs(ctx context.Context, req *v1.SensitiveLogListReq) (*v1.SensitiveLogListRes, error)
// ListRequestAuditLogs 分页查询请求审计日志(不返回 request_body/response_body 以优化性能)
// 审计数据从审计库查询,关联信息(用户名、租户名等)从主库批量查询后在应用层合并。
ListRequestAuditLogs(ctx context.Context, req *v1.RequestAuditLogListReq) (*v1.RequestAuditLogListRes, error)
// GetRequestAuditLogDetail 查询单条请求审计日志详情(含完整 request_body 和 response_body)
GetRequestAuditLogDetail(ctx context.Context, req *v1.RequestAuditLogDetailReq) (*v1.RequestAuditLogDetailRes, error)
// ForwardingTraceGet 按 request_id 查询请求转发路径追踪(仅管理员,用量日志详情懒加载用)。
// 从审计库查询 aud_request_logs(可能独立于主库),仅取 forwarding_trace 与 audit_level 两列。
// 一个 request_id 仅对应一条审计记录(任务完成审计为 UPDATE 非 INSERT),OrderDesc 取最新为防御性兜底。
ForwardingTraceGet(ctx context.Context, req *v1.ForwardingTraceGetReq) (*v1.ForwardingTraceGetRes, error)
// ExportOperationLogs exports operation logs to CSV or Excel.
ExportOperationLogs(ctx context.Context, req *v1.OperationLogExportReq) (*v1.OperationLogExportRes, error)
// ContentFilterLogList returns a paginated list of content filter interception logs.
// 审计数据从审计库查询,关联信息从主库批量查询后在应用层合并。
ContentFilterLogList(ctx context.Context, req *v1.ContentFilterLogListReq) (*v1.ContentFilterLogListRes, error)
// Login handles admin login.
Login(ctx context.Context, req *v1.AdminLoginReq) (*v1.AdminLoginRes, error)
// Logout handles admin logout.
Logout(ctx context.Context, _ *v1.AdminLogoutReq) (*v1.AdminLogoutRes, error)
// Refresh handles token refresh.
Refresh(ctx context.Context, req *v1.AdminRefreshReq) (*v1.AdminRefreshRes, error)
// ListSessions returns active sessions for the current admin user.
ListSessions(ctx context.Context, req *v1.AdminSessionListReq) (*v1.AdminSessionListRes, error)
// RevokeSession revokes a specific session.
RevokeSession(ctx context.Context, req *v1.AdminRevokeSessionReq) (*v1.AdminRevokeSessionRes, error)
// ForceLogout revokes all sessions for a specific user.
ForceLogout(ctx context.Context, req *v1.AdminForceLogoutReq) (*v1.AdminForceLogoutRes, error)
// ChangePassword handles admin password change.
ChangePassword(ctx context.Context, req *v1.AdminChangePasswordReq) (*v1.AdminChangePasswordRes, error)
// CreateChangelog 创建更新日志
CreateChangelog(ctx context.Context, req *v1.ChangelogCreateReq) (*v1.ChangelogCreateRes, error)
// ListChangelogs 更新日志列表(管理后台,含草稿)
ListChangelogs(ctx context.Context, req *v1.ChangelogListReq) (*v1.ChangelogListRes, error)
// UpdateChangelog 更新更新日志
UpdateChangelog(ctx context.Context, req *v1.ChangelogUpdateReq) (*v1.ChangelogUpdateRes, error)
// DeleteChangelog 删除更新日志
DeleteChangelog(ctx context.Context, req *v1.ChangelogDeleteReq) (*v1.ChangelogDeleteRes, error)
// PublishChangelog 发布更新日志
PublishChangelog(ctx context.Context, req *v1.ChangelogPublishReq) (*v1.ChangelogPublishRes, error)
// ListChannels 获取渠道列表
ListChannels(ctx context.Context, req *v1.ChannelListReq) (*v1.ChannelListRes, error)
// CloneChannel 克隆渠道
CloneChannel(ctx context.Context, req *v1.ChannelCloneReq) (*v1.ChannelCloneRes, error)
// CreateChannel 创建渠道
CreateChannel(ctx context.Context, req *v1.ChannelCreateReq) (*v1.ChannelCreateRes, error)
// UpdateChannel 更新渠道
UpdateChannel(ctx context.Context, req *v1.ChannelUpdateReq) (*v1.ChannelUpdateRes, error)
// DeleteChannel 删除渠道
DeleteChannel(ctx context.Context, req *v1.ChannelDeleteReq) (*v1.ChannelDeleteRes, error)
// GetChannelDetail 获取渠道详情
GetChannelDetail(ctx context.Context, req *v1.ChannelDetailReq) (*v1.ChannelDetailRes, error)
// AddChannelKey 添加渠道 API Key(已废弃:每渠道仅支持一个 Key)
AddChannelKey(ctx context.Context, req *v1.ChannelKeyCreateReq) (*v1.ChannelKeyCreateRes, error)
// DeleteChannelKey 删除渠道 API Key
DeleteChannelKey(ctx context.Context, req *v1.ChannelKeyDeleteReq) (*v1.ChannelKeyDeleteRes, error)
// SetChannelAbilities 设置渠道模型能力
SetChannelAbilities(ctx context.Context, req *v1.ChannelAbilityBatchReq) (*v1.ChannelAbilityBatchRes, error)
// GetChannelKeys 获取渠道 Key 列表
GetChannelKeys(ctx context.Context, req *v1.ChannelKeyListReq) (*v1.ChannelKeyListRes, error)
// GetChannelAbilities 获取渠道模型能力列表
GetChannelAbilities(ctx context.Context, req *v1.ChannelAbilitiesGetReq) (*v1.ChannelAbilitiesGetRes, error)
// GetProviderDefaultURLs 获取供应商默认 API 地址
GetProviderDefaultURLs(ctx context.Context, _ *v1.ProviderDefaultURLReq) (*v1.ProviderDefaultURLRes, error)
// GetChannelHealthTrend 获取渠道健康趋势数据(健康度、延迟在 SQL 层四舍五入取整,避免展示小数)
GetChannelHealthTrend(ctx context.Context, req *v1.ChannelHealthTrendReq) (*v1.ChannelHealthTrendRes, error)
// ResetChannelHealth 重置渠道健康度(渠道可能已修复、重新可用):落库健康分 80(展示层),
// 并复位熔断 + 成功率 EWMA(调度层),使渠道立即恢复被调度选择的能力。
ResetChannelHealth(ctx context.Context, req *v1.ChannelResetHealthReq) (*v1.ChannelResetHealthRes, error)
// ExportChannels exports channel list to CSV or Excel.
ExportChannels(ctx context.Context, req *v1.ChannelExportReq) (*v1.ChannelExportRes, error)
// ChannelErrorEventList 渠道错误事件列表
ChannelErrorEventList(ctx context.Context, req *v1.ChannelErrorEventListReq) (*v1.ChannelErrorEventListRes, error)
// ChannelErrorStats 渠道错误统计
ChannelErrorStats(ctx context.Context, req *v1.ChannelErrorStatsReq) (*v1.ChannelErrorStatsRes, error)
// ChannelErrorTrend 渠道错误趋势
ChannelErrorTrend(ctx context.Context, req *v1.ChannelErrorTrendReq) (*v1.ChannelErrorTrendRes, error)
// ChannelErrorTopChannels 错误最多的渠道
ChannelErrorTopChannels(ctx context.Context, req *v1.ChannelErrorTopChannelsReq) (*v1.ChannelErrorTopChannelsRes, error)
// ChannelErrorCategories 错误分类选项
ChannelErrorCategories(ctx context.Context, req *v1.ChannelErrorCategoriesReq) (*v1.ChannelErrorCategoriesRes, error)
// ChannelOAuthAuthURL 生成 OAuth 授权链接
ChannelOAuthAuthURL(ctx context.Context, req *v1.ChannelOAuthAuthURLReq) (*v1.ChannelOAuthAuthURLRes, error)
// ChannelOAuthExchange OAuth 授权码换取令牌
ChannelOAuthExchange(ctx context.Context, req *v1.ChannelOAuthExchangeReq) (*v1.ChannelOAuthExchangeRes, error)
// ChannelOAuthRefresh 手动刷新 OAuth 令牌
ChannelOAuthRefresh(ctx context.Context, req *v1.ChannelOAuthRefreshReq) (*v1.ChannelOAuthRefreshRes, error)
// TestChannel 测试渠道可用性(发送最小请求验证)
TestChannel(ctx context.Context, req *v1.ChannelTestReq) (*v1.ChannelTestRes, error)
// CronJobList returns all registered cron jobs with their last execution status.
CronJobList(ctx context.Context, _ *v1.CronJobListReq) (*v1.CronJobListRes, error)
// CronJobTrigger manually triggers a cron job.
CronJobTrigger(ctx context.Context, req *v1.CronJobTriggerReq) (*v1.CronJobTriggerRes, error)
// GetDashboardStats 获取管理后台仪表盘统计
GetDashboardStats(ctx context.Context, req *v1.AdminDashboardReq) (*v1.AdminDashboardRes, error)
// GetDashboardTrends returns daily revenue and request trends for the past N days.
GetDashboardTrends(ctx context.Context, req *v1.AdminDashboardTrendsReq) (*v1.AdminDashboardTrendsRes, error)
// GetTopTenants returns the top 10 tenants by revenue.
GetTopTenants(ctx context.Context, req *v1.AdminDashboardTopTenantsReq) (*v1.AdminDashboardTopTenantsRes, error)
// GetModelDistribution returns the model usage distribution.
GetModelDistribution(ctx context.Context, req *v1.AdminDashboardModelDistributionReq) (*v1.AdminDashboardModelDistributionRes, error)
// GetModelHourlyCost 模型费用按小时堆叠统计,用于仪表盘堆叠柱状图:
// 取最近 N 小时内费用最高的 TopN 个模型,按小时聚合费用,非 TopN 模型归并为"其他"。
GetModelHourlyCost(ctx context.Context, req *v1.AdminDashboardModelHourlyReq) (*v1.AdminDashboardModelHourlyRes, error)
// GetAllUsageLogs 获取所有租户的用量日志(管理后台)
GetAllUsageLogs(ctx context.Context, req *v1.AdminUsageLogListReq) (*v1.AdminUsageLogListRes, error)
// GetUsageLogSummary 获取用量日志统计汇总(独立接口,与列表共用筛选口径)
GetUsageLogSummary(ctx context.Context, req *v1.AdminUsageLogSummaryReq) (*v1.AdminUsageLogSummaryRes, error)
// GetAllBillingRecords 获取所有计费记录(管理后台)
GetAllBillingRecords(ctx context.Context, req *v1.AdminBillingRecordListReq) (*v1.AdminBillingRecordListRes, error)
// GetTenantWallets 获取所有租户钱包(管理后台)
GetTenantWallets(ctx context.Context, req *v1.AdminWalletListReq) (*v1.AdminWalletListRes, error)
// AdjustBalance 调整租户余额(管理后台)。
// Redis 权威化架构:余额变动以 Redis Lua 为资金提交点(扣减在权威可用余额上原子判断,
// 穿透冻结会破坏预扣一致性),DB 侧仅记流水;流水失败时逆转 Redis 已发生的变动。
AdjustBalance(ctx context.Context, req *v1.AdminWalletAdjustReq) (*v1.AdminWalletAdjustRes, error)
// OfflineRecharge 线下充值入账(管理后台)
// 场景:用户线下银行转账(人民币 CNY),运营确认到账后按平台汇率换算为 USD 入账。
// 与 AdjustBalance 的区别:走正规充值链路——余额与累计充值同步累加、触发等级检查、
// 流水类型为 recharge,并在描述中携带 CNY 快照(原始人民币 + 汇率 + 入账 USD + 转账流水号),
// 供现金对账与开票追溯。
OfflineRecharge(ctx context.Context, req *v1.AdminWalletOfflineRechargeReq) (*v1.AdminWalletOfflineRechargeRes, error)
// GetWalletInfo 获取租户钱包信息(管理后台)
GetWalletInfo(ctx context.Context, req *v1.AdminWalletInfoReq) (*v1.AdminWalletInfoRes, error)
// GetWalletTransactions 获取租户钱包交易流水(管理后台)
GetWalletTransactions(ctx context.Context, req *v1.AdminWalletTransactionListReq) (*v1.AdminWalletTransactionListRes, error)
// SetWarningThreshold 设置租户钱包预警阈值(管理后台)
SetWarningThreshold(ctx context.Context, req *v1.AdminWalletSetWarningThresholdReq) (*v1.AdminWalletSetWarningThresholdRes, error)
// GetWalletFrozenItems 获取租户钱包冻结明细(管理后台)。
// 数据源为 Redis 预扣明细(权威),DB 预扣追踪表已废弃。
GetWalletFrozenItems(ctx context.Context, req *v1.AdminWalletFrozenItemListReq) (*v1.AdminWalletFrozenItemListRes, error)
// ReleaseWalletFrozenItem 按笔释放冻结(管理后台运维逃生舱)。
// 释放走 billing.UnfreezePreDeduct 的 Redis 认领路径:认领即删预扣 hash、幂等、逐笔精确,
// 绝不直接改写钱包 hash 的 frozen_balance 汇总值。
ReleaseWalletFrozenItem(ctx context.Context, req *v1.AdminWalletFrozenReleaseReq) (*v1.AdminWalletFrozenReleaseRes, error)
// ReleaseAllWalletFrozenItems 一键释放租户全部冻结(管理后台运维逃生舱)。
// 遍历 Redis 活跃冻结明细,复用 frozenItemGuard 护栏逐项筛选:
// - 任务关联在途/待结算项自动跳过(由任务结算流程负责,禁止手动释放);
// - 保护期内(冻结不足 frozenReleaseMinAge)项默认跳过,Force=true 时才释放;
// - 其余项逐个 UnfreezePreDeduct(Lua 认领即删,幂等,与并发结算竞争安全)。
//
// 返回实际释放笔数/金额与跳过原因摘要(去重)。
ReleaseAllWalletFrozenItems(ctx context.Context, req *v1.AdminWalletFrozenReleaseAllReq) (*v1.AdminWalletFrozenReleaseAllRes, error)
// GetAllTransactions 获取所有租户交易流水(管理后台)
GetAllTransactions(ctx context.Context, req *v1.AdminTransactionListReq) (*v1.AdminTransactionListRes, error)
// GetDashboardChannelHealth 获取渠道健康概览(最不健康的5个活跃渠道)
GetDashboardChannelHealth(ctx context.Context, req *v1.AdminDashboardChannelHealthReq) (*v1.AdminDashboardChannelHealthRes, error)
// GetDashboardRecentAlerts 获取最近5条告警
GetDashboardRecentAlerts(ctx context.Context, req *v1.AdminDashboardRecentAlertsReq) (*v1.AdminDashboardRecentAlertsRes, error)
// ExportUsageLogs exports usage logs to CSV or Excel.
ExportUsageLogs(ctx context.Context, req *v1.AdminUsageLogExportReq) (*v1.AdminUsageLogExportRes, error)
// ExportBillingRecords exports billing records to CSV or Excel.
ExportBillingRecords(ctx context.Context, req *v1.AdminBillingRecordExportReq) (*v1.AdminBillingRecordExportRes, error)
DataGovernanceSettingsGet(ctx context.Context, _ *v1.DataGovernanceSettingsGetReq) (*v1.DataGovernanceSettingsGetRes, error)
// UpdateDataGovernanceSettings 更新数据治理设置
DataGovernanceSettingsUpdate(ctx context.Context, req *v1.DataGovernanceSettingsUpdateReq) (*v1.DataGovernanceSettingsUpdateRes, error)
// RequestDataExport 请求数据导出
DataGovernanceExport(ctx context.Context, req *v1.DataGovernanceExportReq) (*v1.DataGovernanceExportRes, error)
// RequestDataDeletion 请求数据删除
DataGovernanceDeletion(ctx context.Context, req *v1.DataGovernanceDeletionReq) (*v1.DataGovernanceDeletionRes, error)
// TriggerDataCleanup 手动触发数据清理
DataGovernanceCleanup(ctx context.Context, _ *v1.DataGovernanceCleanupReq) (*v1.DataGovernanceCleanupRes, error)
// ListEmailSendLogs 分页查询邮件发送记录(ntf_send_log,主库)。
// 列表不返回 body(HTML 正文较大),由详情接口返回完整记录。
ListEmailSendLogs(ctx context.Context, req *v1.EmailSendLogListReq) (*v1.EmailSendLogListRes, error)
// GetEmailSendLogDetail 查询单条邮件发送记录详情(含 body 正文)。
GetEmailSendLogDetail(ctx context.Context, req *v1.EmailSendLogDetailReq) (*v1.EmailSendLogDetailRes, error)
// ListEmailVerifyCodes 分页查询验证码申请记录(sys_email_verify_codes,主库)。
ListEmailVerifyCodes(ctx context.Context, req *v1.EmailVerifyCodeListReq) (*v1.EmailVerifyCodeListRes, error)
// ErrorLogList returns a paginated list of system error logs.
ErrorLogList(ctx context.Context, req *v1.ErrorLogListReq) (*v1.ErrorLogListRes, error)
// ErrorLogDetail returns the detail of a single error log.
ErrorLogDetail(ctx context.Context, req *v1.ErrorLogDetailReq) (*v1.ErrorLogDetailRes, error)
// ErrorLogResolve marks an error log as resolved.
ErrorLogResolve(ctx context.Context, req *v1.ErrorLogResolveReq) (*v1.ErrorLogResolveRes, error)
// ErrorLogBatchResolve marks multiple error logs as resolved.
ErrorLogBatchResolve(ctx context.Context, req *v1.ErrorLogBatchResolveReq) (*v1.ErrorLogBatchResolveRes, error)
// ErrorLogClear 硬删除全部错误日志。
// 系统报错大量堆积时用于快速释放数据库空间:用 TRUNCATE 而非逐行 DELETE,
// 秒级清空并立即归还磁盘空间(DELETE 需等 VACUUM 回收)。TRUNCATE 不返回行数,
// 故先取删除前条数作为反馈。表无数据库级外键,TRUNCATE 安全。
ErrorLogClear(ctx context.Context, _ *v1.ErrorLogClearReq) (*v1.ErrorLogClearRes, error)
// ErrorLogStats returns error log statistics.
ErrorLogStats(ctx context.Context, _ *v1.ErrorLogStatsReq) (*v1.ErrorLogStatsRes, error)
// ListAllFeedbacks 管理后台反馈列表
ListAllFeedbacks(ctx context.Context, req *v1.FeedbackListAllReq) (*v1.FeedbackListAllRes, error)
// ReplyToFeedback 管理员回复反馈
ReplyToFeedback(ctx context.Context, req *v1.FeedbackReplyReq) (*v1.FeedbackReplyRes, error)
// UpdateFeedbackStatus 更新反馈状态
UpdateFeedbackStatus(ctx context.Context, req *v1.FeedbackUpdateStatusReq) (*v1.FeedbackUpdateStatusRes, error)
// GetFeedbackStats 反馈统计
GetFeedbackStats(ctx context.Context, req *v1.FeedbackStatsReq) (*v1.FeedbackStatsRes, error)
// FileList 文件列表(分页 + 筛选)。
FileList(ctx context.Context, req *v1.FileListReq) (*v1.FileListRes, error)
// FileStats 存储占用统计(KPI)。
FileStats(ctx context.Context, req *v1.FileStatsReq) (*v1.FileStatsRes, error)
// FileDownload 生成临时预览下载链接。
FileDownload(ctx context.Context, req *v1.FileDownloadReq) (*v1.FileDownloadRes, error)
// FileDelete 删除单个文件(存储对象 + 记录)。
FileDelete(ctx context.Context, req *v1.FileDeleteReq) (*v1.FileDeleteRes, error)
// FileCleanup 手动触发一次保留期清理(导出 + 图片)。
FileCleanup(ctx context.Context, req *v1.FileCleanupReq) (*v1.FileCleanupRes, error)
// CreateHelpCategory 创建帮助分类
CreateHelpCategory(ctx context.Context, req *v1.HelpCategoryCreateReq) (*v1.HelpCategoryCreateRes, error)
// UpdateHelpCategory 更新帮助分类
UpdateHelpCategory(ctx context.Context, req *v1.HelpCategoryUpdateReq) (*v1.HelpCategoryUpdateRes, error)
// DeleteHelpCategory 删除帮助分类
DeleteHelpCategory(ctx context.Context, req *v1.HelpCategoryDeleteReq) (*v1.HelpCategoryDeleteRes, error)
// ListHelpCategories 帮助分类列表(管理后台)
ListHelpCategories(ctx context.Context, req *v1.HelpCategoryListReq) (*v1.HelpCategoryListRes, error)
// CreateHelpArticle 创建帮助文章
CreateHelpArticle(ctx context.Context, req *v1.HelpArticleCreateReq) (*v1.HelpArticleCreateRes, error)
// UpdateHelpArticle 更新帮助文章
UpdateHelpArticle(ctx context.Context, req *v1.HelpArticleUpdateReq) (*v1.HelpArticleUpdateRes, error)
// DeleteHelpArticle 删除帮助文章
DeleteHelpArticle(ctx context.Context, req *v1.HelpArticleDeleteReq) (*v1.HelpArticleDeleteRes, error)
// ListHelpArticles 帮助文章列表(管理后台)
ListHelpArticles(ctx context.Context, req *v1.HelpArticleListReq) (*v1.HelpArticleListRes, error)
// GetHelpArticle 帮助文章详情(管理后台)
GetHelpArticle(ctx context.Context, req *v1.HelpArticleGetReq) (*v1.HelpArticleGetRes, error)
// CreateMember adds a new member to a specified tenant.
CreateMember(ctx context.Context, req *v1.AdminMemberCreateReq) (*v1.AdminMemberCreateRes, error)
// ListAllMembers returns a paginated list of all tenant members across all tenants.
ListAllMembers(ctx context.Context, req *v1.AdminMemberListReq) (*v1.AdminMemberListRes, error)
// DisableMember disables a tenant member by admin.
DisableMember(ctx context.Context, req *v1.AdminMemberDisableReq) (*v1.AdminMemberDisableRes, error)
// EnableMember re-enables a tenant member by admin.
EnableMember(ctx context.Context, req *v1.AdminMemberEnableReq) (*v1.AdminMemberEnableRes, error)
// ResetMemberPassword resets a member's password by admin, returns the new random password.
ResetMemberPassword(ctx context.Context, req *v1.AdminMemberResetPasswordReq) (*v1.AdminMemberResetPasswordRes, error)
// UnlockMember 清除成员的登录锁定状态(平台视角,跨租户)。
UnlockMember(ctx context.Context, req *v1.AdminMemberUnlockReq) (*v1.AdminMemberUnlockRes, error)
// ExportMembers exports member list to CSV or Excel.
ExportMembers(ctx context.Context, req *v1.AdminMemberExportReq) (*v1.AdminMemberExportRes, error)
// ListModelOptions 获取模型选项列表(不分页,用于下拉选择)
ListModelOptions(ctx context.Context, req *v1.ModelOptionsReq) (*v1.ModelOptionsRes, error)
// ListModels 获取模型列表(含定价摘要)
ListModels(ctx context.Context, req *v1.ModelListReq) (*v1.ModelListRes, error)
// CreateModel 创建模型(自动创建默认 token 定价记录)
CreateModel(ctx context.Context, req *v1.ModelCreateReq) (*v1.ModelCreateRes, error)
// UpdateModel 更新模型(含弃用状态管理)
UpdateModel(ctx context.Context, req *v1.ModelUpdateReq) (*v1.ModelUpdateRes, error)
// DeleteModel 删除模型(同时删除定价记录、租户分配记录和分组关联)
DeleteModel(ctx context.Context, req *v1.ModelDeleteReq) (*v1.ModelDeleteRes, error)
// GetModelPricing 获取模型定价
GetModelPricing(ctx context.Context, req *v1.PricingGetReq) (*v1.PricingGetRes, error)
// SetModelPricing 设置模型定价(全量替换)
SetModelPricing(ctx context.Context, req *v1.PricingSetReq) (*v1.PricingSetRes, error)
// FetchOfficialPricing 拉取模型官方定价(来自 LiteLLM + models.dev 双数据源)
FetchOfficialPricing(ctx context.Context, req *v1.PricingFetchOfficialReq) (*v1.PricingFetchOfficialRes, error)
// FetchOfficialModelInfo 按模型名称拉取官方模型信息(上下文长度+能力特性)
// 按优先级尝试 LiteLLM → OpenRouter → BaseLLM,返回第一个匹配的结果
FetchOfficialModelInfo(ctx context.Context, req *v1.ModelFetchOfficialInfoReq) (*v1.ModelFetchOfficialInfoRes, error)
// ExportModels exports model list to CSV or Excel.
ExportModels(ctx context.Context, req *v1.ModelExportReq) (*v1.ModelExportRes, error)
// ListModelGroups 模型分组列表
ListModelGroups(ctx context.Context, req *v1.ModelGroupListReq) (*v1.ModelGroupListRes, error)
// CreateModelGroup 创建模型分组
CreateModelGroup(ctx context.Context, req *v1.ModelGroupCreateReq) (*v1.ModelGroupCreateRes, error)
// UpdateModelGroup 更新模型分组
UpdateModelGroup(ctx context.Context, req *v1.ModelGroupUpdateReq) (*v1.ModelGroupUpdateRes, error)
// DeleteModelGroup 删除模型分组
DeleteModelGroup(ctx context.Context, req *v1.ModelGroupDeleteReq) (*v1.ModelGroupDeleteRes, error)
// ListModelGroupOptions 分组选项列表(不分页,用于下拉选择)
ListModelGroupOptions(ctx context.Context, req *v1.ModelGroupOptionsReq) (*v1.ModelGroupOptionsRes, error)
// ListGroupModels 查看分组内模型列表
ListGroupModels(ctx context.Context, req *v1.GroupModelsListReq) (*v1.GroupModelsListRes, error)
// SetGroupModels 设置分组内模型(全量替换)
SetGroupModels(ctx context.Context, req *v1.GroupModelsSetReq) (*v1.GroupModelsSetRes, error)
// ListTenantGroups 查看租户关联的分组列表
ListTenantGroups(ctx context.Context, req *v1.TenantGroupsListReq) (*v1.TenantGroupsListRes, error)
// SetTenantGroups 设置租户关联的分组(全量替换)
SetTenantGroups(ctx context.Context, req *v1.TenantGroupsSetReq) (*v1.TenantGroupsSetRes, error)
// ExportModelsJson 导出模型配置为 JSON 文件(含定价数据,用于跨环境迁移)
ExportModelsJson(ctx context.Context, req *v1.ModelExportJsonReq) (*v1.ModelExportJsonRes, error)
// ImportModelsPreview 导入模型预览(解析上传文件,检测冲突)
ImportModelsPreview(ctx context.Context, req *v1.ModelImportPreviewReq) (*v1.ModelImportPreviewRes, error)
// ImportModels 确认导入模型(事务内执行)
ImportModels(ctx context.Context, req *v1.ModelImportReq) (*v1.ModelImportRes, error)
// ListTemplates 获取通知模板列表(分页)
ListTemplates(ctx context.Context, req *v1.TemplateListReq) (*v1.TemplateListRes, error)
// GetTemplate 获取单个通知模板
GetTemplate(ctx context.Context, req *v1.TemplateGetReq) (*v1.TemplateGetRes, error)
// UpdateTemplate 更新通知模板
UpdateTemplate(ctx context.Context, req *v1.TemplateUpdateReq) (*v1.TemplateUpdateRes, error)
// TestTemplate 用测试变量渲染模板,返回渲染结果(不发送)
TestTemplate(ctx context.Context, req *v1.TemplateTestReq) (*v1.TemplateTestRes, error)
// SendMessage 创建手动站内消息并推送 WebSocket 通知
SendMessage(ctx context.Context, req *v1.MessageSendReq) (*v1.MessageSendRes, error)
// SendBroadcast 创建广播消息并推送 WebSocket 通知
SendBroadcast(ctx context.Context, req *v1.MessageBroadcastReq) (*v1.MessageBroadcastRes, error)
// ListMessages 获取所有消息列表(管理后台,支持过滤)
ListMessages(ctx context.Context, req *v1.MessageListReq) (*v1.MessageListRes, error)
// CreateAnnouncement 创建公告
CreateAnnouncement(ctx context.Context, req *v1.AnnouncementCreateReq) (*v1.AnnouncementCreateRes, error)
// UpdateAnnouncement 更新公告
UpdateAnnouncement(ctx context.Context, req *v1.AnnouncementUpdateReq) (*v1.AnnouncementUpdateRes, error)
// ListAnnouncements 获取公告列表(分页)
ListAnnouncements(ctx context.Context, req *v1.AnnouncementListReq) (*v1.AnnouncementListRes, error)
// PublishAnnouncement 发布公告
PublishAnnouncement(ctx context.Context, req *v1.AnnouncementPublishReq) (*v1.AnnouncementPublishRes, error)
// ArchiveAnnouncement 归档公告
ArchiveAnnouncement(ctx context.Context, req *v1.AnnouncementArchiveReq) (*v1.AnnouncementArchiveRes, error)
// ListOrders 获取全部订单列表
ListOrders(ctx context.Context, req *v1.OrderListReq) (*v1.OrderListRes, error)
// GetOrder 获取订单详情
GetOrder(ctx context.Context, req *v1.OrderDetailReq) (*v1.OrderDetailRes, error)
// RefundOrder 发起退款(线上侧一步完成:状态流转 + 权益收回;渠道打款由管理员线下原路退回)。
//
// 退款语义(与《系统货币规则》对齐):
// - 退款认订单原始 CNY 金额(ord_ 层永远 CNY),线下按此金额原路退给用户;
// - 已履约的充值订单必须按【履约当时入账的 USD】原额扣回钱包(从入账流水取值,
// 禁止按当前汇率反算,防止汇率波动套利);
// - 已履约的套餐订单撤销对应的活跃订阅;
// - 已支付未履约(paid)的订单权益尚未发放,仅做状态流转。
RefundOrder(ctx context.Context, req *v1.OrderRefundReq) (*v1.OrderRefundRes, error)
// OrderComplete 手动完成订单
OrderComplete(ctx context.Context, req *v1.OrderCompleteReq) (*v1.OrderCompleteRes, error)
// GetPaymentChannels 获取所有渠道配置(单例模式,从 sys_options 读取)
GetPaymentChannels(ctx context.Context, _ *v1.PaymentChannelListReq) (*v1.PaymentChannelListRes, error)
// SavePaymentChannel 保存指定渠道的配置(整体覆盖)
SavePaymentChannel(ctx context.Context, req *v1.PaymentChannelSaveReq) (*v1.PaymentChannelSaveRes, error)
// GetPaymentSettings 获取全局支付设置。
GetPaymentSettings(ctx context.Context, _ *v1.PaymentSettingsGetReq) (*v1.PaymentSettingsGetRes, error)
// UpdatePaymentSettings 更新全局支付设置。
UpdatePaymentSettings(ctx context.Context, req *v1.PaymentSettingsUpdateReq) (*v1.PaymentSettingsUpdateRes, error)
// ExportOrders exports order list to CSV or Excel.
ExportOrders(ctx context.Context, req *v1.OrderExportReq) (*v1.OrderExportRes, error)
// GetUserPermissions returns permission points and data scopes for an admin user.
GetUserPermissions(ctx context.Context, req *v1.AdminPermissionListReq) (*v1.AdminPermissionListRes, error)
// UpdateUserPermissions updates permission points for an admin user.
UpdateUserPermissions(ctx context.Context, req *v1.AdminPermissionUpdateReq) (*v1.AdminPermissionUpdateRes, error)
// UpdateUserDataScopes updates data scopes for an admin user.
UpdateUserDataScopes(ctx context.Context, req *v1.AdminDataScopeUpdateReq) (*v1.AdminDataScopeUpdateRes, error)
// GetAllPermissions returns all predefined permission groups.
GetAllPermissions(ctx context.Context, _ *v1.AdminAllPermissionsReq) (*v1.AdminAllPermissionsRes, error)
// ListPlans 获取套餐列表
ListPlans(ctx context.Context, req *v1.PlanListReq) (*v1.PlanListRes, error)
// GetPlan 获取套餐详情
GetPlan(ctx context.Context, req *v1.PlanDetailReq) (*v1.PlanDetailRes, error)
// CreatePlan 创建套餐
CreatePlan(ctx context.Context, req *v1.PlanCreateReq) (*v1.PlanCreateRes, error)
// UpdatePlan 更新套餐
UpdatePlan(ctx context.Context, req *v1.PlanUpdateReq) (*v1.PlanUpdateRes, error)
// ArchivePlan 下架套餐(软删除)
ArchivePlan(ctx context.Context, req *v1.PlanArchiveReq) (*v1.PlanArchiveRes, error)
// ToggleRecommend 切换推荐标记
ToggleRecommend(ctx context.Context, req *v1.PlanToggleRecommendReq) (*v1.PlanToggleRecommendRes, error)
// ExportPlans exports plan list to CSV or Excel.
ExportPlans(ctx context.Context, req *v1.PlanExportReq) (*v1.PlanExportRes, error)
PluginList(ctx context.Context, req *v1.PluginListReq) (*v1.PluginListRes, error)
PluginDetail(ctx context.Context, req *v1.PluginDetailReq) (*v1.PluginDetailRes, error)
PluginInstall(ctx context.Context, req *v1.PluginInstallReq) (*v1.PluginInstallRes, error)
PluginEnable(ctx context.Context, req *v1.PluginEnableReq) (*v1.PluginEnableRes, error)
PluginDisable(ctx context.Context, req *v1.PluginDisableReq) (*v1.PluginDisableRes, error)
PluginUninstall(ctx context.Context, req *v1.PluginUninstallReq) (*v1.PluginUninstallRes, error)
PluginUpgrade(ctx context.Context, req *v1.PluginUpgradeReq) (*v1.PluginUpgradeRes, error)
PluginConfigUpdate(ctx context.Context, req *v1.PluginConfigUpdateReq) (*v1.PluginConfigUpdateRes, error)
PluginConfigSchema(ctx context.Context, req *v1.PluginConfigSchemaReq) (*v1.PluginConfigSchemaRes, error)
// ListPromoCodes 获取优惠码列表
ListPromoCodes(ctx context.Context, req *v1.PromoCodeListReq) (*v1.PromoCodeListRes, error)
// CreatePromoCode 创建优惠码
CreatePromoCode(ctx context.Context, req *v1.PromoCodeCreateReq) (*v1.PromoCodeCreateRes, error)
// UpdatePromoCode 更新优惠码
UpdatePromoCode(ctx context.Context, req *v1.PromoCodeUpdateReq) (*v1.PromoCodeUpdateRes, error)
// GetPromoCodeUsages 获取优惠码使用记录
GetPromoCodeUsages(ctx context.Context, req *v1.PromoCodeUsagesReq) (*v1.PromoCodeUsagesRes, error)
// ExportPromoCodes exports promo code list to CSV or Excel.
ExportPromoCodes(ctx context.Context, req *v1.PromoCodeExportReq) (*v1.PromoCodeExportRes, error)
// ListRedemptions 获取兑换码列表
ListRedemptions(ctx context.Context, req *v1.RedemptionListReq) (*v1.RedemptionListRes, error)
// BatchCreateRedemptions 批量生成兑换码
BatchCreateRedemptions(ctx context.Context, req *v1.RedemptionCreateReq) (*v1.RedemptionCreateRes, error)
// DisableRedemption 禁用兑换码
DisableRedemption(ctx context.Context, req *v1.RedemptionDisableReq) (*v1.RedemptionDisableRes, error)
// ListRedemptionUsages 获取兑换码使用记录
ListRedemptionUsages(ctx context.Context, req *v1.RedemptionUsagesReq) (*v1.RedemptionUsagesRes, error)
// ExportRedemptions exports redemption list to CSV or Excel.
ExportRedemptions(ctx context.Context, req *v1.RedemptionExportReq) (*v1.RedemptionExportRes, error)
// Verify2FA handles the 2FA verification step during admin login.
Verify2FA(ctx context.Context, req *v1.Admin2FAVerifyReq) (*v1.Admin2FAVerifyRes, error)
// Setup2FA starts the 2FA setup process for the current admin user.
Setup2FA(ctx context.Context, _ *v1.Admin2FASetupReq) (*v1.Admin2FASetupRes, error)
// Enable2FA confirms and enables 2FA after verifying the code.
Enable2FA(ctx context.Context, req *v1.Admin2FAEnableReq) (*v1.Admin2FAEnableRes, error)
// Disable2FA disables 2FA for the current admin user.
Disable2FA(ctx context.Context, req *v1.Admin2FADisableReq) (*v1.Admin2FADisableRes, error)
// RegenerateBackupCodes generates new backup codes.
RegenerateBackupCodes(ctx context.Context, req *v1.Admin2FARegenerateBackupCodesReq) (*v1.Admin2FARegenerateBackupCodesRes, error)
// ConfirmHighRisk generates a confirm token for high-risk operations.
ConfirmHighRisk(ctx context.Context, req *v1.Admin2FAConfirmReq) (*v1.Admin2FAConfirmRes, error)
// LoginHistory returns the login history for all admin users with search filters.
LoginHistory(ctx context.Context, req *v1.AdminLoginHistoryReq) (*v1.AdminLoginHistoryRes, error)
// TenantLoginHistory returns login history for tenant users (admin view).
TenantLoginHistory(ctx context.Context, req *v1.AdminTenantLoginHistoryReq) (*v1.AdminTenantLoginHistoryRes, error)
// GetSettingsCategories returns all available setting categories.
GetSettingsCategories(ctx context.Context, _ *v1.AdminSettingsCategoriesReq) (*v1.AdminSettingsCategoriesRes, error)
// GetSettings retrieves settings with schema for a given category.
GetSettings(ctx context.Context, req *v1.AdminSettingsGetReq) (*v1.AdminSettingsGetRes, error)
// UpdateSettings batch-updates settings for a given category.
UpdateSettings(ctx context.Context, req *v1.AdminSettingsUpdateReq) (*v1.AdminSettingsUpdateRes, error)
// TestStorageConfig 测试对象存储配置连通性:用生成的测试图片走一次「上传 → 下载校验 → 删除」
// 完整往返,验证凭证 / 桶 / 端点 / 读写删权限是否正常。
//
// access_key_id / secret 为空或掩码("******")时回落到已保存的配置值——与 GET 接口对敏感字段
// 的掩码逻辑(config.GetCategoryWithValues)以及 Turnstile 校验的 "******" 处理保持一致,
// 从而支持管理员在「未点保存」的状态下直接测试表单中新填/改动的配置。
TestStorageConfig(ctx context.Context, req *v1.AdminStorageTestReq) (*v1.AdminStorageTestRes, error)
// TaskList 大模型异步任务列表
TaskList(ctx context.Context, req *v1.TaskListReq) (*v1.TaskListRes, error)
// TaskDetail 大模型异步任务详情
TaskDetail(ctx context.Context, req *v1.TaskDetailReq) (*v1.TaskDetailRes, error)
// TaskCancel 取消大模型异步任务
TaskCancel(ctx context.Context, req *v1.TaskCancelReq) (*v1.TaskCancelRes, error)
// TenantSelect returns a lightweight paginated tenant list for dropdown selectors.
TenantSelect(ctx context.Context, req *v1.TenantSelectReq) (*v1.TenantSelectRes, error)
// CreateTenant creates a new tenant with its owner user and wallet.
CreateTenant(ctx context.Context, req *v1.TenantCreateReq) (*v1.TenantCreateRes, error)
// ListTenants returns a paginated list of tenants.
ListTenants(ctx context.Context, req *v1.TenantListReq) (*v1.TenantListRes, error)
// GetTenant returns detail of a single tenant.
GetTenant(ctx context.Context, req *v1.TenantGetReq) (*v1.TenantGetRes, error)
// UpdateTenantStatus updates a tenant's status.
UpdateTenantStatus(ctx context.Context, req *v1.TenantUpdateStatusReq) (*v1.TenantUpdateStatusRes, error)
// UpdateTenant updates tenant information.
UpdateTenant(ctx context.Context, req *v1.TenantUpdateReq) (*v1.TenantUpdateRes, error)
// UpdateTenantChannelScope 更新租户默认渠道范围
UpdateTenantChannelScope(ctx context.Context, req *v1.TenantChannelScopeUpdateReq) (*v1.TenantChannelScopeUpdateRes, error)
// ExportTenants exports tenant list to CSV or Excel.
ExportTenants(ctx context.Context, req *v1.TenantExportReq) (*v1.TenantExportRes, error)
ListTenantLevelConfigs(ctx context.Context, _ *v1.TenantLevelConfigListReq) (*v1.TenantLevelConfigListRes, error)
CreateTenantLevelConfig(ctx context.Context, req *v1.TenantLevelConfigCreateReq) (*v1.TenantLevelConfigCreateRes, error)
UpdateTenantLevelConfig(ctx context.Context, req *v1.TenantLevelConfigUpdateReq) (*v1.TenantLevelConfigUpdateRes, error)
DeleteTenantLevelConfig(ctx context.Context, req *v1.TenantLevelConfigDeleteReq) (*v1.TenantLevelConfigDeleteRes, error)
// ListTenantModels 列出租户已分配的模型
ListTenantModels(ctx context.Context, req *v1.TenantModelListReq) (*v1.TenantModelListRes, error)
// BatchAssignModels 批量分配模型给租户
BatchAssignModels(ctx context.Context, req *v1.TenantModelBatchAssignReq) (*v1.TenantModelBatchAssignRes, error)
// UpdateTenantModel 更新租户模型配置
UpdateTenantModel(ctx context.Context, req *v1.TenantModelUpdateReq) (*v1.TenantModelUpdateRes, error)
// DeleteTenantModel 移除租户模型分配
DeleteTenantModel(ctx context.Context, req *v1.TenantModelDeleteReq) (*v1.TenantModelDeleteRes, error)
// ListTenantAvailableModels 预览租户实际可用的所有模型(显式分配 + 分组来源,去重)
ListTenantAvailableModels(ctx context.Context, req *v1.TenantAvailableModelsPreviewReq) (*v1.TenantAvailableModelsPreviewRes, error)
// ListAllTickets 获取全部工单列表(管理后台)
ListAllTickets(ctx context.Context, req *v1.TicketListReq) (*v1.TicketListRes, error)
// GetTicketAdmin 获取工单详情(管理后台,含回复)
GetTicketAdmin(ctx context.Context, req *v1.TicketGetReq) (*v1.TicketGetRes, error)
// AssignTicket 分配工单给管理员
AssignTicket(ctx context.Context, req *v1.TicketAssignReq) (*v1.TicketAssignRes, error)
// ReplyToTicketAdmin 管理员回复工单
ReplyToTicketAdmin(ctx context.Context, req *v1.TicketReplyReq) (*v1.TicketReplyRes, error)
// UpdateTicketStatus 更新工单状态
UpdateTicketStatus(ctx context.Context, req *v1.TicketStatusUpdateReq) (*v1.TicketStatusUpdateRes, error)
// CheckUpdate checks GitHub Releases for a newer version
UpdateCheck(ctx context.Context, req *v1.UpdateCheckReq) (*v1.UpdateCheckRes, error)
// GetUpdateStatus returns the current update status
UpdateStatus(ctx context.Context, req *v1.UpdateStatusReq) (*v1.UpdateStatusRes, error)
// ExecuteUpdate triggers the system update
UpdateExecute(ctx context.Context, req *v1.UpdateExecuteReq) (*v1.UpdateExecuteRes, error)
// RollbackUpdate rolls back to the previous version
UpdateRollback(ctx context.Context, req *v1.UpdateRollbackReq) (*v1.UpdateRollbackRes, error)
UsageLogCleanupCreate(ctx context.Context, req *v1.UsageLogCleanupCreateReq) (*v1.UsageLogCleanupCreateRes, error)
UsageLogCleanupList(ctx context.Context, req *v1.UsageLogCleanupListReq) (*v1.UsageLogCleanupListRes, error)
UsageLogCleanupCancel(ctx context.Context, req *v1.UsageLogCleanupCancelReq) (*v1.UsageLogCleanupCancelRes, error)
}
)
var (
localAdmin IAdmin
)
func Admin() IAdmin {
if localAdmin == nil {
panic("implement not found for interface IAdmin, forgot register?")
}
return localAdmin
}
func RegisterAdmin(i IAdmin) {
localAdmin = i
}