Files
waf-platform/EdgeUser/internal/web/actions/default/ns/routes/internal.go
2026-02-04 20:27:13 +08:00

90 lines
2.5 KiB
Go

// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
package clusters
import (
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeUser/internal/web/actions/actionutils"
"github.com/iwind/TeaGo/lists"
"github.com/iwind/TeaGo/maps"
)
type InternalAction struct {
actionutils.ParentAction
}
func (this *InternalAction) Init() {
this.Nav("", "", "internal")
}
func (this *InternalAction) RunGet(params struct{}) {
this.Data["ispRoutes"] = dnsconfigs.AllDefaultISPRoutes
this.Data["chinaProvinceRoutes"] = dnsconfigs.AllDefaultChinaProvinceRoutes
this.Data["worldRegionRoutes"] = dnsconfigs.AllDefaultWorldRegionRoutes
// Agent相关线路
agentsResp, err := this.RPC().NSRouteRPC().FindAllAgentNSRoutes(this.UserContext(), &pb.FindAllAgentNSRoutesRequest{})
if err != nil {
this.ErrorPage(err)
return
}
var agentRouteMaps = []maps.Map{}
for _, route := range agentsResp.NsRoutes {
agentRouteMaps = append(agentRouteMaps, maps.Map{
"name": route.Name,
"code": route.Code,
})
}
this.Data["agentRoutes"] = agentRouteMaps
// 系统内置公用线路
publicRoutesResp, err := this.RPC().NSRouteRPC().FindAllPublicNSRoutes(this.UserContext(), &pb.FindAllPublicRoutesRequest{})
if err != nil {
this.ErrorPage(err)
return
}
var publicCategoryMaps = []maps.Map{}
var publicCategoryIds = []int64{}
var publicRouteMaps = []maps.Map{}
for _, route := range publicRoutesResp.NsRoutes {
var categoryId int64 = 0
if route.NsRouteCategory != nil {
categoryId = route.NsRouteCategory.Id
}
publicRouteMaps = append(publicRouteMaps, maps.Map{
"id": route.Id,
"name": route.Name,
"code": route.Code,
"categoryId": categoryId,
})
// 未分类
if route.NsRouteCategory == nil {
if !lists.ContainsInt64(publicCategoryIds, 0) {
publicCategoryIds = append(publicCategoryIds, 0)
publicCategoryMaps = append(publicCategoryMaps, maps.Map{
"id": 0,
"name": "官方线路",
})
}
continue
}
// 有分类
if !lists.ContainsInt64(publicCategoryIds, route.NsRouteCategory.Id) {
publicCategoryIds = append(publicCategoryIds, route.NsRouteCategory.Id)
publicCategoryMaps = append(publicCategoryMaps, maps.Map{
"id": route.NsRouteCategory.Id,
"name": route.NsRouteCategory.Name,
})
}
}
this.Data["publicCategories"] = publicCategoryMaps
this.Data["publicRoutes"] = publicRouteMaps
this.Show()
}