11package repo
22
33import (
4- "gorm.io/gorm"
54 "watchAlert/internal/models"
5+
6+ "gorm.io/gorm"
67)
78
89type (
1415 Create (params models.Topology ) error
1516 Update (params models.Topology ) error
1617 Delete (tenantId , id string ) error
17- List (tenantId , query string ) ([]models.TopologyList , error )
18+ List (tenantId , query string , page models. Page ) ([]models.TopologyList , int64 , error )
1819 Get (tenantId , id string ) (models.Topology , error )
1920 GetDetail (tenantId , id string ) (models.Topology , error )
2021 }
@@ -68,10 +69,11 @@ func (t topologyRepo) Delete(tenantId, id string) error {
6869 return nil
6970}
7071
71- func (t topologyRepo ) List (tenantId , query string ) ([]models.TopologyList , error ) {
72+ func (t topologyRepo ) List (tenantId , query string , page models. Page ) ([]models.TopologyList , int64 , error ) {
7273 var (
73- data []models.TopologyList
74- db = t .db .Model (& models.Topology {})
74+ data []models.TopologyList
75+ db = t .db .Model (& models.Topology {})
76+ count int64
7577 )
7678
7779 if tenantId != "" {
@@ -81,12 +83,14 @@ func (t topologyRepo) List(tenantId, query string) ([]models.TopologyList, error
8183 db .Where ("name LIKE ? OR id LIKE ?" , "%" + query + "%" , "%" + query + "%" )
8284 }
8385
86+ db .Count (& count )
87+ db .Limit (int (page .Size )).Offset (int ((page .Index - 1 ) * page .Size ))
8488 err := db .Find (& data ).Error
8589 if err != nil {
86- return nil , err
90+ return nil , 0 , err
8791 }
8892
89- return data , nil
93+ return data , count , nil
9094}
9195
9296func (t topologyRepo ) Get (tenantId , id string ) (models.Topology , error ) {
@@ -112,4 +116,4 @@ func (t topologyRepo) Get(tenantId, id string) (models.Topology, error) {
112116// GetDetail 获取拓扑的完整信息,包括nodes和edges
113117func (t topologyRepo ) GetDetail (tenantId , id string ) (models.Topology , error ) {
114118 return t .Get (tenantId , id )
115- }
119+ }
0 commit comments