package models import ( "context" mhayaTime "github.com/mhaya/extend/time" "github.com/mhaya/game/game_cluster/internal/code" "github.com/mhaya/game/game_cluster/internal/constant" "github.com/mhaya/game/game_cluster/internal/guid" "github.com/mhaya/game/game_cluster/internal/mdb" "github.com/mhaya/game/game_cluster/internal/param" "go.mongodb.org/mongo-driver/bson" ) type Account struct { UserName string `json:"username" bson:"userName"` OpenId string `json:"-" bson:"openId"` JoinIp string `json:"joinip" bson:"JoinIp"` JoinTime int64 `json:"jointime" bson:"JoinTime"` } func AccountRegisterOrLogin(req *param.LoginReq) (*Account, int32) { var account Account findFilter := bson.M{"openId": req.OpenID} mdb.MDB.Collection(constant.CNameAccount).FindOne(context.Background(), findFilter).Decode(&account) if account.OpenId != "" { return &account, code.OK } devAccountTable := &Account{ UserName: guid.Next(), OpenId: req.OpenID, JoinIp: req.IP, JoinTime: mhayaTime.Now().Unix(), } _, err := mdb.MDB.Collection(constant.CNameAccount).InsertOne(context.Background(), devAccountTable) if err != nil { return nil, code.LoginError } return devAccountTable, code.OK }