// Code generated by excel export. DO NOT EDIT. package data var AreaServer = &areaServerConfig{} func init() { _allList = append(_allList, AreaServer) } type ( AreaServerRow struct { AreaID int32 `json:"AreaID"` // 大区ID ServerID int32 `json:"ServerID"` // 服务器ID ServerName string `json:"ServerName"` // 区服名 Status int32 `json:"Status"` // 开服状态 MergedServerID int32 `json:"MergedServerID"` // 合服ID } areaServerConfig struct { baseConfig list []*AreaServerRow // all list areaIDListMaps map[int32][]*AreaServerRow // key:areaID areaIDServerIDUniMaps map[int32]map[int32]*AreaServerRow // key:areaID, serverID } ) func (p *areaServerConfig) Name() string { return "area_server" } func (p *areaServerConfig) Init() { p.areaIDListMaps = map[int32][]*AreaServerRow{} p.areaIDServerIDUniMaps = map[int32]map[int32]*AreaServerRow{} } func (p *areaServerConfig) OnLoad(maps interface{}, reload bool) (int, error) { if reload && p.denyLoad { return 0, nil } var list []*AreaServerRow if err := DecodeData(maps, &list); err != nil { return 0, err } p.list = list areaIDListMaps := map[int32][]*AreaServerRow{} for _, row := range list { areaIDListMaps[row.AreaID] = append(areaIDListMaps[row.AreaID], row) } p.areaIDListMaps = areaIDListMaps areaIDServerIDUniMaps := map[int32]map[int32]*AreaServerRow{} for _, row := range list { itemMap := areaIDServerIDUniMaps[row.AreaID] if itemMap == nil { itemMap = map[int32]*AreaServerRow{} areaIDServerIDUniMaps[row.AreaID] = itemMap } itemMap[row.ServerID] = row } p.areaIDServerIDUniMaps = areaIDServerIDUniMaps return len(list), nil } // func (p *areaServerConfig) OnAfterLoad(_ bool) { // } func (p *areaServerConfig) List() []*AreaServerRow { return p.list } func (p *areaServerConfig) ListByAreaID(areaID int32) ([]*AreaServerRow, bool) { value, found := p.areaIDListMaps[areaID] return value, found } func (p *areaServerConfig) ListContainAreaID(areaID int32) bool { _, found := p.areaIDListMaps[areaID] return found } func (p *areaServerConfig) GetByAreaIDServerID(areaID int32, serverID int32) (*AreaServerRow, bool) { mapItem, found := p.areaIDServerIDUniMaps[areaID] if !found { return nil, false } value, found := mapItem[serverID] return value, found } func (p *areaServerConfig) ContainAreaIDServerID(areaID int32, serverID int32) bool { mapItem, found := p.areaIDServerIDUniMaps[areaID] if !found { return false } _, found = mapItem[serverID] return found }