go_dreamfactory/modules/friend/model_friend.go
2022-06-16 15:14:46 +08:00

56 lines
1.3 KiB
Go

package friend
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"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"
DB_UserTable core.SqlTable = "user" //用户表
)
type ModelFriend struct {
modules.Model_Comp
}
func (this *ModelFriend) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.Model_Comp.Init(service, module, comp, options)
this.TableName = "friend"
return
}
//好友
func (this *ModelFriend) Friend_SaveOrUpdate(data *pb.DB_FriendData) (err error) {
err = this.DB.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.DB.InsertOne(DB_FriendTable, data)
}
}
return
}
func (this *ModelFriend) Frined_FindCond(nickName string) *pb.DB_UserData {
var user *pb.DB_UserData
err := this.DB.FindOne(DB_UserTable, bson.M{
"name": nickName,
}).Decode(&user)
if err != nil {
log.Errorf("findCond err:%v", err)
return nil
}
return user
}