| 217 | } |
| 218 | |
| 219 | func (this *SQLiteIPList) ReadItems(offset int64, size int64) (items []*pb.IPItem, goNext bool, err error) { |
| 220 | if this.isClosed { |
| 221 | return |
| 222 | } |
| 223 | |
| 224 | rows, err := this.selectItemsStmt.Query(offset, size) |
| 225 | if err != nil { |
| 226 | return nil, false, err |
| 227 | } |
| 228 | defer func() { |
| 229 | _ = rows.Close() |
| 230 | }() |
| 231 | |
| 232 | for rows.Next() { |
| 233 | // "listId", "listType", "isGlobal", "type", "itemId", "ipFrom", "ipTo", "expiredAt", "eventLevel", "isDeleted", "version", "nodeId", "serverId" |
| 234 | var pbItem = &pb.IPItem{} |
| 235 | err = rows.Scan(&pbItem.ListId, &pbItem.ListType, &pbItem.IsGlobal, &pbItem.Type, &pbItem.Id, &pbItem.IpFrom, &pbItem.IpTo, &pbItem.ExpiredAt, &pbItem.EventLevel, &pbItem.IsDeleted, &pbItem.Version, &pbItem.NodeId, &pbItem.ServerId) |
| 236 | if err != nil { |
| 237 | return nil, false, err |
| 238 | } |
| 239 | items = append(items, pbItem) |
| 240 | } |
| 241 | |
| 242 | goNext = int64(len(items)) == size |
| 243 | return |
| 244 | } |
| 245 | |
| 246 | // ReadMaxVersion 读取当前最大版本号 |
| 247 | func (this *SQLiteIPList) ReadMaxVersion() (int64, error) { |