This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"time"
|
||||
|
||||
commonLogic "github.com/perfect-panel/server/internal/logic/common"
|
||||
"github.com/perfect-panel/server/internal/model/group"
|
||||
"github.com/perfect-panel/server/internal/model/node"
|
||||
"github.com/perfect-panel/server/internal/model/user"
|
||||
"github.com/perfect-panel/server/internal/svc"
|
||||
@@ -117,20 +118,24 @@ func (l *QueryUserSubscribeNodeListLogic) getServers(userSub *user.Subscribe) (u
|
||||
l.Debugw("[GetServers] Failed to check group enabled", logger.Field("error", err.Error()))
|
||||
// Continue with tag-based filtering
|
||||
}
|
||||
nodeIds := tool.StringToInt64Slice(subDetails.Nodes)
|
||||
tags := normalizeSubscribeNodeTags(subDetails.NodeTags)
|
||||
|
||||
isGroupEnabled := (groupEnabled == "true" || groupEnabled == "1")
|
||||
|
||||
enable := true
|
||||
|
||||
_, nodes, err := l.svcCtx.NodeModel.FilterNodeList(l.ctx, &node.FilterNodeParams{
|
||||
Page: 1,
|
||||
Size: 1000,
|
||||
NodeId: nodeIds,
|
||||
Tag: tags,
|
||||
Enabled: &enable, // Only get enabled nodes
|
||||
})
|
||||
var nodes []*node.Node
|
||||
if isGroupEnabled {
|
||||
// Group mode: use group_ids to filter nodes
|
||||
nodes, err = l.getNodesByGroup(userSub)
|
||||
if err != nil {
|
||||
l.Errorw("[GetServers] Failed to get nodes by group", logger.Field("error", err.Error()))
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
// Tag mode: use node_ids and tags to filter nodes
|
||||
nodes, err = l.getNodesByTag(userSub)
|
||||
if err != nil {
|
||||
l.Errorw("[GetServers] Failed to get nodes by tag", logger.Field("error", err.Error()))
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// Process nodes and create response
|
||||
if len(nodes) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user