167 lines
4.0 KiB
Go
167 lines
4.0 KiB
Go
|
|
package gameServerMgr
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"fmt"
|
|||
|
|
|
|||
|
|
. "Framework/managecenterModel"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
var (
|
|||
|
|
mServerMap = make(map[int32][]*Server, 0)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
//合作商、服务器组合列表
|
|||
|
|
type PartnerServer struct {
|
|||
|
|
//合作商Id
|
|||
|
|
mPartnerId int32
|
|||
|
|
|
|||
|
|
//服务器Id
|
|||
|
|
mServerId int32
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//解析服务器信息
|
|||
|
|
func ParseServerInfo(serverList []*Server) {
|
|||
|
|
tempServerMap := make(map[int32][]*Server, 0)
|
|||
|
|
for _, server := range serverList {
|
|||
|
|
_, exist := tempServerMap[server.PartnerId]
|
|||
|
|
if !exist {
|
|||
|
|
tempServerMap[server.PartnerId] = make([]*Server, 0)
|
|||
|
|
}
|
|||
|
|
tempServerMap[server.PartnerId] = append(tempServerMap[server.PartnerId], server)
|
|||
|
|
}
|
|||
|
|
mServerMap = tempServerMap
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//获取服务器对象
|
|||
|
|
func GetServerItem(partnerId, serverId int32) (server *Server, exist bool) {
|
|||
|
|
serverList, existServer := mServerMap[partnerId]
|
|||
|
|
if !existServer {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
for _, serverItem := range serverList {
|
|||
|
|
if serverItem.Id == serverId {
|
|||
|
|
server = serverItem
|
|||
|
|
exist = true
|
|||
|
|
break
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//判断服务器是否存在
|
|||
|
|
func IfServerExists(partnerId, serverId int32) (exists bool) {
|
|||
|
|
_, exists = GetPartnerItem(partnerId)
|
|||
|
|
if !exists {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
_, exists = GetServerItem(partnerId, serverId)
|
|||
|
|
if !exists {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//获取服务器名称
|
|||
|
|
func GetServerName(partnerId, serverId int32) (serverName string) {
|
|||
|
|
_, existPartner := GetPartnerItem(partnerId)
|
|||
|
|
if !existPartner {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
server, existServer := GetServerItem(partnerId, serverId)
|
|||
|
|
if !existServer {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
serverName = server.Name
|
|||
|
|
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//检测是否有游戏版本更新
|
|||
|
|
func CheckNewGameVersion(partnerId, serverId, gameVersionId int32) (gameVersionUrl string, exist bool) {
|
|||
|
|
server, existServer := GetServerItem(partnerId, serverId)
|
|||
|
|
if !existServer {
|
|||
|
|
exist = existServer
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if gameVersionId < server.MinGameVersionId {
|
|||
|
|
partner, existPartner := GetPartnerItem(partnerId)
|
|||
|
|
if !existPartner {
|
|||
|
|
exist = existPartner
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
exist = true
|
|||
|
|
gameVersionUrl = partner.GameVersionUrl
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//获取合作商、服务器的组合字符串
|
|||
|
|
//字符串格式:PartnerId_ServerId|PartnerId_ServerId|
|
|||
|
|
func GetPartnerServerPairString() (partnerServerPair string) {
|
|||
|
|
for _, ps := range GetPartnerServerPairList() {
|
|||
|
|
partnerServerPair += fmt.Sprintf("%d_%d|", ps.mPartnerId, ps.mServerId)
|
|||
|
|
}
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//获取合作商、服务器的组合列表
|
|||
|
|
func GetPartnerServerPairList() (partnerServerList []*PartnerServer) {
|
|||
|
|
for key := range mServerMap {
|
|||
|
|
for _, server := range mServerMap[key] {
|
|||
|
|
if server.GroupId == GetServerGroup().Id {
|
|||
|
|
var ps *PartnerServer = &PartnerServer{server.PartnerId, server.Id}
|
|||
|
|
partnerServerList = append(partnerServerList, ps)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// // 获取合作商、服务器的组合字符串
|
|||
|
|
// // serverGroupId:服务器组Id
|
|||
|
|
// // 返回值
|
|||
|
|
// // 合作商、服务器的组合字符串
|
|||
|
|
// func (this *ManageCenterUtil) GetPartnerServerPairString(serverGroupId int32) string {
|
|||
|
|
// var buf bytes.Buffer
|
|||
|
|
|
|||
|
|
// serverList := managecenterMgr.GetServerList(serverGroupId)
|
|||
|
|
// for _, item := range serverList {
|
|||
|
|
// buf.WriteString(fmt.Sprintf("%d_%d|", item.PartnerId, item.Id))
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// return buf.String()
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// // 是否是有效的合作商、服务器组合
|
|||
|
|
// // partnerId:合作商Id
|
|||
|
|
// // serverId:服务器Id
|
|||
|
|
// // parnterServerPairString:合作商、服务器的组合字符串,格式为:PartnerId_ServerId|PartnerId_ServerId|
|
|||
|
|
// // 返回值
|
|||
|
|
// // 是否有效
|
|||
|
|
// func (this *ManageCenterUtil) IfValidPartnerServerPair(partnerId, serverId int32, parnterServerPairString string) bool {
|
|||
|
|
// if parnterServerPairString == "" {
|
|||
|
|
// return false
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// partnerServerPairStringList := strings.Split(parnterServerPairString, "|")
|
|||
|
|
// if len(partnerServerPairStringList) == 0 {
|
|||
|
|
// return false
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// // 获得玩家的合作商、服务器组合字符串
|
|||
|
|
// partnerServerPair := fmt.Sprintf("%d_%d", partnerId, serverId)
|
|||
|
|
|
|||
|
|
// // 遍历寻找
|
|||
|
|
// for _, item := range partnerServerPairStringList {
|
|||
|
|
// if item == partnerServerPair {
|
|||
|
|
// return true
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// return false
|
|||
|
|
// }
|