game_sync/model/idmgr.go

39 lines
718 B
Go

package model
import "math/rand"
const (
ClubId = "clubid"
)
// ID管理器
type IdManager struct {
CurList []int
}
func (this *IdManager) PopId() int {
if len(this.CurList) > 0 {
id := this.CurList[0]
this.CurList = this.CurList[1:]
return id
} else {
return 0
}
}
func (this *IdManager) PushId(id int) {
this.CurList = append(this.CurList, id)
}
func (this *IdManager) Init() {
spcId := map[int]bool{111111: true, 222222: true, 333333: true, 444444: true,
555555: true, 666666: true, 777777: true, 888888: true}
idArr := rand.Perm(999999)
for _, value := range idArr {
if _, ok := spcId[value]; ok {
continue
}
if value > 1000 {
this.CurList = append(this.CurList, value)
}
}
}