refactor(user): 重构用户服务相关代码,将login模块功能迁移至user模块并优化相关结构体定义
This commit is contained in:
@@ -5,25 +5,26 @@ import (
|
||||
"blazing/cool"
|
||||
|
||||
"blazing/logic/service/common"
|
||||
"blazing/logic/service/login"
|
||||
|
||||
"blazing/logic/service/player"
|
||||
"blazing/logic/service/space"
|
||||
"blazing/logic/service/user"
|
||||
blservice "blazing/modules/blazing/service"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// 处理命令: 1001
|
||||
func (h *Controller) CreatePlayer(data *login.CreatePlayerInboundInfo, c *player.Conn) (result *login.CreatePlayerOutInfo, err errorcode.ErrorCode) {
|
||||
func (h *Controller) CreatePlayer(data *user.CreatePlayerInboundInfo, c *player.Conn) (result *user.CreatePlayerOutInfo, err errorcode.ErrorCode) {
|
||||
|
||||
blservice.NewUserService(data.Head.UserID).Reg(cool.Filter.Replace(data.Nickname, '*'), data.Color)
|
||||
return result, 0
|
||||
}
|
||||
|
||||
func (h *Controller) ChangePlayerName(data *login.ChangePlayerNameInboundInfo, c *player.Player) (result *login.ChangePlayerNameOutboundInfo, err errorcode.ErrorCode) {
|
||||
func (h *Controller) ChangePlayerName(data *user.ChangePlayerNameInboundInfo, c *player.Player) (result *user.ChangePlayerNameOutboundInfo, err errorcode.ErrorCode) {
|
||||
newnice := cool.Filter.Replace(strings.Trim(data.Nickname, "\x00"), '*')
|
||||
|
||||
c.Info.Nick = newnice
|
||||
result = &login.ChangePlayerNameOutboundInfo{
|
||||
result = &user.ChangePlayerNameOutboundInfo{
|
||||
Nickname: newnice,
|
||||
UserID: c.Info.UserID,
|
||||
}
|
||||
|
||||
@@ -3,14 +3,14 @@ package controller
|
||||
import (
|
||||
"blazing/common/socket/errorcode"
|
||||
|
||||
"blazing/logic/service/commendsvr"
|
||||
"blazing/logic/service/player"
|
||||
"blazing/logic/service/user"
|
||||
)
|
||||
|
||||
// 处理命令: 105
|
||||
func (h *Controller) GetServer(data *commendsvr.SidInfo, c *player.Conn) (result *commendsvr.CommendSvrInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
|
||||
result = commendsvr.NewInInfo()
|
||||
result.ServerList = commendsvr.GetServerInfoList()
|
||||
func (h *Controller) COMMEND_ONLINE(data *user.SidInfo, c *player.Conn) (result *user.CommendSvrInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
|
||||
result = user.NewInInfo()
|
||||
result.ServerList = user.GetServerInfoList()
|
||||
return
|
||||
|
||||
//return //TODO 这里待实现改成接口调用Ret方法
|
||||
|
||||
@@ -6,7 +6,8 @@ import (
|
||||
"blazing/common/socket/errorcode"
|
||||
|
||||
"blazing/logic/service/common"
|
||||
"blazing/logic/service/login"
|
||||
"blazing/logic/service/user"
|
||||
|
||||
"blazing/logic/service/maps"
|
||||
"blazing/logic/service/player"
|
||||
"blazing/logic/service/space"
|
||||
@@ -29,7 +30,7 @@ func IsToday(t time.Time) bool {
|
||||
}
|
||||
|
||||
// 处理命令: 1001
|
||||
func (h *Controller) Login(data *login.InInfo, c *player.Conn) (result *login.OutInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
|
||||
func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c *player.Conn) (result *user.LoginMSInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
|
||||
|
||||
if tt := data.CheakSession(); tt { //说明sid正确
|
||||
h.RPCClient.Kick(data.Head.UserID) //先踢人
|
||||
@@ -65,7 +66,7 @@ func (h *Controller) Login(data *login.InInfo, c *player.Conn) (result *login.Ou
|
||||
|
||||
glog.Debug(context.Background(), "登录成功,初始地图 人数:", space.GetSpace(t.Info.MapID).Len())
|
||||
|
||||
result = login.NewOutInfo() //设置登录消息
|
||||
result = user.NewOutInfo() //设置登录消息
|
||||
|
||||
result.PlayerInfo = *t.Info
|
||||
|
||||
|
||||
@@ -6,8 +6,6 @@ import (
|
||||
"blazing/logic/service/player"
|
||||
"blazing/logic/service/task"
|
||||
"blazing/modules/blazing/model"
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -53,15 +51,6 @@ func (h Controller) AddTaskBuf(data *task.AddTaskBufInboundInfo, c *player.Playe
|
||||
return &task.AddTaskBufOutboundInfo{}, 0
|
||||
}
|
||||
|
||||
// 生成0-24的随机整数
|
||||
func randInt0To24() int {
|
||||
// 初始化随机种子(仅需初始化一次)
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
// 生成0-24的随机数(Intn(n)返回[0, n)的整数)
|
||||
return rand.Intn(25)
|
||||
}
|
||||
|
||||
/**
|
||||
* 完成任务
|
||||
*/
|
||||
|
||||
@@ -8,12 +8,21 @@ import (
|
||||
"github.com/jinzhu/copier"
|
||||
)
|
||||
|
||||
// UserSimInfo 根据用户ID获取模拟用户信息
|
||||
// data: 包含用户ID的输入信息
|
||||
// c: 玩家对象
|
||||
// 返回: 模拟用户信息及错误码
|
||||
func (h Controller) UserSimInfo(data *user.SimUserInfoInboundInfo, c *player.Player) (result *user.SimUserInfoOutboundInfo, err errorcode.ErrorCode) {
|
||||
ret := &user.SimUserInfoOutboundInfo{}
|
||||
|
||||
copier.Copy(ret, c.Service.PersonOther(data.UserId))
|
||||
return ret, 0
|
||||
}
|
||||
|
||||
// UserMoreInfo 获取用户的更多信息。
|
||||
// data: 包含用户ID的输入信息。
|
||||
// c: 当前玩家对象。
|
||||
// 返回: 包含用户更多信息的输出结果和错误码。
|
||||
func (h Controller) UserMoreInfo(data *user.MoreUserInfoInboundInfo, c *player.Player) (result *user.MoreUserInfoOutboundInfo, err errorcode.ErrorCode) {
|
||||
ret := &user.MoreUserInfoOutboundInfo{}
|
||||
info := c.Service.PersonOther(data.UserId)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package login
|
||||
package user
|
||||
|
||||
import "blazing/logic/service/player"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package commendsvr
|
||||
package user
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
@@ -15,9 +15,7 @@ type SidInfo struct { //这里直接使用组合来实现将传入的原始头
|
||||
Head player.TomeeHeader `cmd:"105" struc:"[0]pad"` //玩家登录
|
||||
|
||||
Sid []byte `struc:"[20]byte"` // 登录会话ID,固定长度16字节
|
||||
ret []byte `struc:"[0]pad"`
|
||||
// NotLogin uint32 `error="10001"|struc:"[0]pad"` //返回错误码 ,不序列化,仅作为错误码
|
||||
// ErrorPassWord uint32 `struc:"[0]pad"`
|
||||
// ret []byte `struc:"[0]pad"`
|
||||
}
|
||||
|
||||
// CommendSvrInfo 初始连接请求信息结构体
|
||||
@@ -5,20 +5,17 @@ import (
|
||||
"blazing/modules/blazing/model"
|
||||
)
|
||||
|
||||
// SimUserInfoInboundInfo 对应 Java 的 SimUserInfoInboundInfo 类
|
||||
type SimUserInfoInboundInfo struct {
|
||||
Head player.TomeeHeader `cmd:"2051" struc:"[0]pad"`
|
||||
UserId uint32 `fieldDescription:"米米号" uint:"true" codec:"true"`
|
||||
}
|
||||
type SimUserInfoOutboundInfo struct {
|
||||
// UserID 米米号
|
||||
// 对应 Java 注解: @FieldDescription("米米号") @UInt
|
||||
UserID uint32 `codec:"true"`
|
||||
|
||||
Nick string `struc:"[16]byte" default:"seer" json:"nick"` // 16字节昵称
|
||||
|
||||
// Color rgb颜色
|
||||
// 对应 Java 注解: @FieldDescription("rgb颜色") @UInt
|
||||
Color uint32 `codec:"true"`
|
||||
|
||||
// Texture 纹理 0
|
||||
@@ -1,4 +1,4 @@
|
||||
package login
|
||||
package user
|
||||
|
||||
import (
|
||||
"blazing/common/data/share"
|
||||
@@ -12,14 +12,14 @@ import (
|
||||
)
|
||||
|
||||
// LoginSidInfo 登录携带的凭证结构体
|
||||
type InInfo struct { //这里直接使用组合来实现将传入的原始头部数据和结构体参数序列化
|
||||
type MAIN_LOGIN_IN struct { //这里直接使用组合来实现将传入的原始头部数据和结构体参数序列化
|
||||
Head player.TomeeHeader `cmd:"1001" struc:"[0]pad"` //玩家登录
|
||||
|
||||
Sid []byte `struc:"[16]byte"` // 登录会话ID,固定长度16字节
|
||||
|
||||
}
|
||||
|
||||
func (l *InInfo) CheakSession() bool {
|
||||
func (l *MAIN_LOGIN_IN) CheakSession() bool {
|
||||
// tt, _ := cool.CacheManager.Keys(context.Background())
|
||||
//g.Dump(tt)
|
||||
t1 := hex.EncodeToString(l.Sid)
|
||||
@@ -33,13 +33,13 @@ func (l *InInfo) CheakSession() bool {
|
||||
return t == l.Head.UserID
|
||||
}
|
||||
|
||||
type OutInfo struct {
|
||||
type LoginMSInfo struct {
|
||||
model.PlayerInfo
|
||||
}
|
||||
|
||||
func NewOutInfo() *OutInfo {
|
||||
func NewOutInfo() *LoginMSInfo {
|
||||
|
||||
l := &OutInfo{
|
||||
l := &LoginMSInfo{
|
||||
PlayerInfo: *model.NewPlayerInfo(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user