云原生项目实践DevOps(GitOps)+K8S+BPF+SRE,从0到1使用Golang开发生产级麻将游戏服务器—第4篇 (2)

protocol/login.go

type LoginRequest struct { AppID string `json:"appId"` //用户来自于哪一个应用 ChannelID string `json:"channelId"` //用户来自于哪一个渠道 IMEI string `json:"imei"` Device Device `json:"device"` }

protocol/common.go

type Device struct { IMEI string `json:"imei"` //设备的imei号 OS string `json:"os"` //os版本号 Model string `json:"model"` //硬件型号 IP string `json:"ip"` //内网IP Remote string `json:"remote"` //外网IP }

如果没有注册,则生成一个新用户,并且注册一条用户记录

涉及到的相关 db 常量的定义:

db/const.go

const ( StatusNormal = 1 //正常 StatusDeleted = 2 //删除 StatusFreezed = 3 //冻结 StatusBound = 4 //绑定 ) const ( UserOffline = 1 //离线 UserOnline = 2 //在线 ) // Users表中role字段的取值 const ( RoleTypeAdmin = 1 //管理员账号 RoleTypeThird = 2 //三方平台账号 )

生成一个新用户:

const defaultCoin = 10 // 默认给的房卡数量是 10 user = &model.User{ Status: db.StatusNormal, IsOnline: db.UserOffline, Role: db.RoleTypeThird, Coin: defaultCoin, } db.InsertUser(user)

注册一条用户记录

db.RegisterUserLog(user, data.Device, data.AppID, data.ChannelID, protocol.RegTypeThird) //注册记录

构造 login 响应数据

相关 protocol 的定义:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzppz.html