|
|
|
@ -12,6 +12,7 @@ import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/go-redis/redis/v8"
|
|
|
|
|
"github.com/gogo/protobuf/sortkeys"
|
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
|
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
|
|
|
"math/rand"
|
|
|
|
@ -262,13 +263,15 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st
|
|
|
|
|
func (d *DataBases) GetUserMsgListByIndex(ID string, index int64) (*UserChat, error) {
|
|
|
|
|
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
|
|
|
|
|
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat)
|
|
|
|
|
regex := fmt.Sprintf("^%s", ID)
|
|
|
|
|
regex := fmt.Sprintf("/^%s/", ID)
|
|
|
|
|
findOpts := options.Find().SetLimit(1).SetSkip(index).SetSort(bson.M{"uid": 1})
|
|
|
|
|
var msgs []UserChat
|
|
|
|
|
cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": regex}}, findOpts)
|
|
|
|
|
cursor, err := c.Find(ctx, bson.M{"uid": bson.M{"$regex": primitive.Regex{Pattern: regex}}}, findOpts)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, utils.Wrap(err, "")
|
|
|
|
|
}
|
|
|
|
|
v, err := cursor.Current.Values()
|
|
|
|
|
log.NewInfo("", "values", v, err)
|
|
|
|
|
err = cursor.Decode(&msgs)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, utils.Wrap(err, fmt.Sprintf("cursor is %s", cursor.Current.String()))
|
|
|
|
|