package space import ( "blazing/common/data/xmlres" "golang.org/x/sync/singleflight" ) var requestGroup singleflight.Group // SingleFlight 实例 // MapHotInfo 表示地图热度信息 type MapHotInfo struct { MapID uint32 `json:"mapId"` // 地图ID Count uint32 `json:"count"` // 地图里的人数 } func GetMapHot() []MapHotInfo { result1, _, _ := requestGroup.Do("map_hot", func() (interface{}, error) { tt := make(map[uint32]uint32) for _, v := range xmlres.MapConfig.Maps { t1, ok := tt[uint32(v.Super)] if ok { tt[uint32(v.Super)] = uint32(int(t1) + GetSpace(uint32(v.ID)).Len()) } else { tt[uint32(v.Super)] = uint32(GetSpace(uint32(v.ID)).Len()) } } var result = make([]MapHotInfo, 0) for k, v := range tt { result = append(result, MapHotInfo{ MapID: uint32(k), Count: uint32(v), }) } return result, nil }) return result1.([]MapHotInfo) }