go_dreamfactory/sys/db/friend.go
2022-06-10 14:20:25 +08:00

49 lines
1.1 KiB
Go

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
}