// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . package packages import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/finance/financeutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/maps" "strings" ) type IndexAction struct { actionutils.ParentAction } func (this *IndexAction) Init() { this.Nav("", "", "index") } func (this *IndexAction) RunGet(params struct{}) { // 是否已启用 config, err := financeutils.ReadPriceConfig(this.AdminContext()) if err != nil { this.ErrorPage(err) return } this.Data["enableTrafficPackages"] = config != nil && config.EnableTrafficPackages // 流量包列表 packagesResp, err := this.RPC().TrafficPackageRPC().FindAllTrafficPackages(this.AdminContext(), &pb.FindAllTrafficPackagesRequest{}) if err != nil { this.ErrorPage(err) return } var packageMaps = []maps.Map{} for _, p := range packagesResp.TrafficPackages { // prices countPricesResp, err := this.RPC().TrafficPackagePriceRPC().CountTrafficPackagePrices(this.AdminContext(), &pb.CountTrafficPackagePricesRequest{TrafficPackageId: p.Id}) if err != nil { this.ErrorPage(err) return } packageMaps = append(packageMaps, maps.Map{ "id": p.Id, "size": p.Size, "unit": strings.ToUpper(p.Unit), "isOn": p.IsOn, "countPrices": countPricesResp.Count, }) } this.Data["packages"] = packageMaps // 所有区域 regionsResp, err := this.RPC().NodeRegionRPC().FindAllAvailableNodeRegions(this.AdminContext(), &pb.FindAllAvailableNodeRegionsRequest{}) if err != nil { this.ErrorPage(err) return } // 有效期 periodsResp, err := this.RPC().TrafficPackagePeriodRPC().FindAllAvailableTrafficPackagePeriods(this.AdminContext(), &pb.FindAllAvailableTrafficPackagePeriodsRequest{}) if err != nil { this.ErrorPage(err) return } this.Data["totalPriceItems"] = len(regionsResp.NodeRegions) * len(periodsResp.TrafficPackagePeriods) this.Show() }