Files
EasyGoAdmin_GoFrame_EleVue/internal/service/monitor.go
T
2026-10-20 11:37:25 +08:00

75 lines
2.5 KiB
Go

// ================================================================================
// 手维护服务接口:监控域无表模块(在线用户/服务器监控/缓存监控)
// ================================================================================
package service
import (
"context"
"easygoadmin/api/v1"
)
// IOnlineUser 在线用户服务接口
type IOnlineUser interface {
// Page 在线用户分页
Page(ctx context.Context, req *v1.OnlineUserPageReq) (res *v1.OnlineUserPageRes, err error)
// Detail 在线会话详情(含令牌原文)
Detail(ctx context.Context, req *v1.OnlineUserDetailReq) (res *v1.OnlineUserDetailRes, err error)
// ForceLogout 强制下线
ForceLogout(ctx context.Context, req *v1.OnlineUserForceLogoutReq) (res *v1.OnlineUserForceLogoutRes, err error)
// ForceLogoutUser 踢出该用户全部设备
ForceLogoutUser(ctx context.Context, req *v1.OnlineUserForceLogoutUserReq) (res *v1.OnlineUserForceLogoutUserRes, err error)
}
// IServerMonitor 服务器监控服务接口
type IServerMonitor interface {
// Info 服务器监控信息
Info(ctx context.Context, req *v1.ServerInfoReq) (res *v1.ServerInfoRes, err error)
}
// ICacheMonitor 缓存监控服务接口
type ICacheMonitor interface {
// Info 缓存监控信息
Info(ctx context.Context, req *v1.CacheInfoReq) (res *v1.CacheInfoRes, err error)
}
var (
localOnlineUser IOnlineUser
localServerMonitor IServerMonitor
localCacheMonitor ICacheMonitor
)
// OnlineUser 获取在线用户服务实例
func OnlineUser() IOnlineUser {
if localOnlineUser == nil {
panic("implement not found for interface IOnlineUser, forgot register?")
}
return localOnlineUser
}
// RegisterOnlineUser 注册在线用户服务实现
func RegisterOnlineUser(i IOnlineUser) { localOnlineUser = i }
// ServerMonitor 获取服务器监控服务实例
func ServerMonitor() IServerMonitor {
if localServerMonitor == nil {
panic("implement not found for interface IServerMonitor, forgot register?")
}
return localServerMonitor
}
// RegisterServerMonitor 注册服务器监控服务实现
func RegisterServerMonitor(i IServerMonitor) { localServerMonitor = i }
// CacheMonitor 获取缓存监控服务实例
func CacheMonitor() ICacheMonitor {
if localCacheMonitor == nil {
panic("implement not found for interface ICacheMonitor, forgot register?")
}
return localCacheMonitor
}
// RegisterCacheMonitor 注册缓存监控服务实现
func RegisterCacheMonitor(i ICacheMonitor) { localCacheMonitor = i }