package db import ( "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) const ( DB_FriendTable core.SqlTable = "friend" ) type IFriend interface { Friend_SaveOrUpdate(data *pb.Cache_FriendData) (err error) Frined_FindCond(nickName string) *pb.DB_UserData } //好友 func (this *DB) Friend_SaveOrUpdate(data *pb.Cache_FriendData) (err error) { err = this.mgo.FindOneAndUpdate(DB_FriendTable, bson.M{"_id": data.UserId}, bson.M{"$set": bson.M{ "friendids": data.FriendIds, "applyids": data.ApplyIds}}, options.FindOneAndUpdate().SetUpsert(true)).Err() if err != nil { if err == mongo.ErrNoDocuments { _, err = this.mgo.InsertOne(DB_FriendTable, data) } } return } func (this *DB) Frined_FindCond(nickName string) *pb.DB_UserData { var user *pb.DB_UserData err := this.mgo.FindOne(DB_UserTable, bson.M{ "nicename": nickName, }).Decode(&user) if err != nil { log.Errorf("findCond err:%v", err) return nil } return user }