75 lines
2.5 KiB
Go
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 }
|