63 lines
1.5 KiB
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
|
|
}
|