refactor(user): 重构用户服务相关代码,将login模块功能迁移至user模块并优化相关结构体定义

This commit is contained in:
1
2025-09-22 09:15:26 +00:00
parent 47614c4d57
commit 1b62f6fec1
9 changed files with 31 additions and 36 deletions

View File

@@ -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,
}

View File

@@ -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方法

View File

@@ -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

View File

@@ -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)
}
/**
* 完成任务
*/

View File

@@ -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)

View File

@@ -1,4 +1,4 @@
package login
package user
import "blazing/logic/service/player"

View File

@@ -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 初始连接请求信息结构体

View File

@@ -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

View File

@@ -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(),
}