Files
waf-platform/EdgeUser/internal/web/actions/default/dashboard/ns.go

68 lines
1.5 KiB
Go

// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
package dashboard
import (
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeUser/internal/configloaders"
"github.com/TeaOSLab/EdgeUser/internal/web/actions/actionutils"
"github.com/iwind/TeaGo/maps"
)
type NsAction struct {
actionutils.ParentAction
}
func (this *NsAction) Init() {
this.Nav("", "", "")
}
func (this *NsAction) RunGet(params struct{}) {
// 是否开启了CDN
registerConfig, err := configloaders.LoadRegisterConfig()
if err != nil {
this.ErrorPage(err)
return
}
if registerConfig != nil && !registerConfig.NSIsOn {
// 显示空白
this.View("@blank")
this.Show()
return
}
resp, err := this.RPC().NSRPC().ComposeNSUserBoard(this.UserContext(), &pb.ComposeNSUserBoardRequest{})
if err != nil {
this.ErrorPage(err)
return
}
var planName = ""
if resp.NsUserPlan != nil && resp.NsUserPlan.NsPlan != nil {
planName = resp.NsUserPlan.NsPlan.Name
}
this.Data["board"] = maps.Map{
"countDomains": resp.CountNSDomains,
"countRecords": resp.CountNSRecords,
"countRoutes": resp.CountNSRoutes,
"planName": planName,
}
// 域名排行
{
var statMaps = []maps.Map{}
for _, stat := range resp.TopNSDomainStats {
statMaps = append(statMaps, maps.Map{
"domainId": stat.NsDomainId,
"domainName": stat.NsDomainName,
"countRequests": stat.CountRequests,
"bytes": stat.Bytes,
})
}
this.Data["topDomainStats"] = statMaps
}
this.Show()
}