73 lines
2.4 KiB
Go
73 lines
2.4 KiB
Go
package controller
|
|
|
|
import (
|
|
"blazing/common/socket/errorcode"
|
|
"blazing/logic/service/item"
|
|
"blazing/logic/service/player"
|
|
"blazing/logic/service/user"
|
|
|
|
"github.com/jinzhu/copier"
|
|
)
|
|
|
|
// GetUserSimInfo 根据用户ID获取模拟用户信息
|
|
// data: 包含用户ID的输入信息
|
|
// player: 玩家对象
|
|
// 返回: 模拟用户信息及错误码
|
|
func (h Controller) GetUserSimInfo(data *SimUserInfoInboundInfo, player *player.Player) (result *user.SimUserInfoOutboundInfo, err errorcode.ErrorCode) {
|
|
result = &user.SimUserInfoOutboundInfo{}
|
|
t, ok := player.GetSpace().UserInfo.Load(data.UserId)
|
|
if ok {
|
|
copier.Copy(result, t)
|
|
} else {
|
|
r := player.Service.Info.Person(data.UserId)
|
|
if r == nil {
|
|
return nil, errorcode.ErrorCode(errorcode.ErrorCodes.ErrSystemError)
|
|
}
|
|
copier.Copy(result, r.Data)
|
|
}
|
|
|
|
return result, 0
|
|
}
|
|
|
|
// GetUserMoreInfo 获取用户的更多信息
|
|
// data: 包含用户ID的输入信息
|
|
// player: 当前玩家对象
|
|
// 返回: 包含用户更多信息的输出结果和错误码
|
|
func (h Controller) GetUserMoreInfo(data *MoreUserInfoInboundInfo, player *player.Player) (result *user.MoreUserInfoOutboundInfo, err errorcode.ErrorCode) {
|
|
result = &user.MoreUserInfoOutboundInfo{}
|
|
info := player.Service.Info.Person(data.UserId)
|
|
if info == nil {
|
|
return nil, errorcode.ErrorCode(errorcode.ErrorCodes.ErrSystemError)
|
|
}
|
|
copier.CopyWithOption(result, info.Data, copier.Option{IgnoreEmpty: true, DeepCopy: true})
|
|
|
|
//todo 待实现
|
|
return result, 0
|
|
}
|
|
|
|
// GetPlayerGoldCount 获取玩家金币数量
|
|
// data: 输入信息(无实际内容)
|
|
// player: 当前玩家对象
|
|
// 返回: 玩家金币和代币数量及错误码
|
|
func (h Controller) GetPlayerGoldCount(data *GoldOnlineRemainInboundInfo, player *player.Player) (result *item.GoldOnlineRemainOutboundInfo, err errorcode.ErrorCode) {
|
|
|
|
return &item.GoldOnlineRemainOutboundInfo{
|
|
|
|
GoldNumber: uint32(player.User.GetGold(uint(player.Info.UserID))),
|
|
Coin: player.Info.Coins,
|
|
}, 0
|
|
}
|
|
|
|
// GetPlayerExp 获取玩家经验值
|
|
// data: 输入信息(无实际内容)
|
|
// player: 当前玩家对象
|
|
// 返回: 玩家总经验值及错误码
|
|
func (h Controller) GetPlayerExp(data *ExpTotalRemainInboundInfo, player *player.Player) (result *item.ExpTotalRemainOutboundInfo, err errorcode.ErrorCode) {
|
|
|
|
return &item.ExpTotalRemainOutboundInfo{
|
|
|
|
TotalExp: uint32(player.Info.ExpPool),
|
|
TotalEv: uint32(player.Info.EVPool),
|
|
}, 0
|
|
}
|