go_dreamfactory/sys/db/user.go

63 lines
1.5 KiB
Go

package db
import (
"go_dreamfactory/pb"
"go_dreamfactory/lego/core"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo/options"
)
const ( //Redis
DB_UserTable core.SqlTable = "user" //用户表
)
type IUser interface {
User_FindUserByAccount(user *pb.DB_UserData) (*pb.DB_UserData, error)
User_FindUserById(id string) (*pb.DB_UserData, error)
User_CreateUser(user *pb.DB_UserData) error
User_UpdateUser(data *pb.DB_UserData) (err error)
}
func (this *DB) User_FindUserByAccount(user *pb.DB_UserData) (*pb.DB_UserData, error) {
filter := bson.D{
{"serverid", user.ServerId},
{"account", user.Account},
}
sr := this.mgo.FindOne(DB_UserTable, filter)
var nd *pb.DB_UserData
err := sr.Decode(&nd)
return nd, err
}
func (this *DB) User_FindUserById(id string) (*pb.DB_UserData, error) {
filter := bson.D{
{"_id", id},
}
sr := this.mgo.FindOne(DB_UserTable, filter)
user := &pb.DB_UserData{}
err := sr.Decode(user)
return user, err
}
func (this *DB) User_CreateUser(user *pb.DB_UserData) (err error) {
user.UserId = primitive.NewObjectID().Hex()
_, err = this.mgo.InsertOne(DB_UserTable, user)
return err
}
//更新用户数据到DB
func (this *DB) User_UpdateUser(data *pb.DB_UserData) (err error) {
err = this.mgo.FindOneAndUpdate(
DB_UserTable,
bson.M{"_id": data.UserId},
bson.M{"$set": bson.M{
"niceName": data.NiceName,
}},
options.FindOneAndUpdate().SetUpsert(false).SetReturnDocument(options.After),
).Decode(data)
return err
}