From d7485b186f72742ee0a1bf34e7fc818b53f20870 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 12 十一月 2021 16:02:18 +0800
Subject: [PATCH] fix foreach

---
 bolt_store.go |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/bolt_store.go b/bolt_store.go
index be490ba..505e2ea 100644
--- a/bolt_store.go
+++ b/bolt_store.go
@@ -3,7 +3,6 @@
 import (
 	"errors"
 	"github.com/boltdb/bolt"
-	"strconv"
 	"time"
 )
 
@@ -243,7 +242,7 @@
 	return tx.Commit()
 }
 
-func (b *BoltStore) ForEach(f func(v []byte) error) {
+func (b *BoltStore) ForEach(f func(lc *LogCon) error) {
 	tx, err := b.conn.Begin(true)
 	if err != nil {
 		return
@@ -254,7 +253,13 @@
 	end, _ := b.LastIndex(confBucket)
 
 	for ; start <= end; start++ {
-		bucketName := bucketPre + strconv.Itoa(int(start))
+		cLog := &confLog{}
+		err := b.GetConfLog(start, cLog)
+		if err != nil {
+			return
+		}
+
+		bucketName := cLog.BucketName
 		bucket := tx.Bucket([]byte(bucketName))
 		if bucket == nil {
 			return
@@ -263,7 +268,10 @@
 		bucket.ForEach(func(k, v []byte) error {
 			log := &Log{}
 			err := decodeMsgPack(v, log)
-			f(log.Data)
+			if err == nil {
+				f(&LogCon{cLog, log})
+			}
+
 			return err
 		})
 	}

--
Gitblit v1.8.0