go_dreamfactory/sys/db/user.go
2022-06-07 09:59:48 +08:00

62 lines
1.5 KiB
Go

package db
import (
"go_dreamfactory/pb"
"github.com/liwei1dao/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(account string) (*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(account string) (*pb.DB_UserData, error) {
filter := bson.D{
{"account", account},
}
sr := this.mgo.FindOne(DB_UserTable, filter)
user := &pb.DB_UserData{}
err := sr.Decode(user)
return user, 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,
"email": data.Email,
}},
options.FindOneAndUpdate().SetUpsert(false).SetReturnDocument(options.After),
).Decode(data)
return err
}