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 }