81 lines
1.9 KiB
Go
81 lines
1.9 KiB
Go
//go:build plus
|
|
|
|
package models
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
|
"github.com/iwind/TeaGo/logs"
|
|
)
|
|
|
|
// DecodeTrafficPrice 解析流量价格配置
|
|
func (this *Plan) DecodeTrafficPrice() *serverconfigs.PlanTrafficPriceConfig {
|
|
var config = &serverconfigs.PlanTrafficPriceConfig{}
|
|
|
|
if len(this.TrafficPrice) == 0 {
|
|
return config
|
|
}
|
|
|
|
err := json.Unmarshal(this.TrafficPrice, config)
|
|
if err != nil {
|
|
logs.Error(err)
|
|
}
|
|
|
|
return config
|
|
}
|
|
|
|
// DecodeBandwidthPrice 解析带宽价格配置
|
|
func (this *Plan) DecodeBandwidthPrice() *serverconfigs.PlanBandwidthPriceConfig {
|
|
var config = &serverconfigs.PlanBandwidthPriceConfig{}
|
|
|
|
if len(this.BandwidthPrice) == 0 {
|
|
return config
|
|
}
|
|
|
|
err := json.Unmarshal(this.BandwidthPrice, config)
|
|
if err != nil {
|
|
logs.Error(err)
|
|
}
|
|
|
|
return config
|
|
}
|
|
|
|
// DecodeTrafficLimit 解析流量限制
|
|
func (this *Plan) DecodeTrafficLimit() *serverconfigs.TrafficLimitConfig {
|
|
if IsNull(this.TrafficLimit) {
|
|
return nil
|
|
}
|
|
var trafficLimitConfig = &serverconfigs.TrafficLimitConfig{}
|
|
err := json.Unmarshal(this.TrafficLimit, trafficLimitConfig)
|
|
if err != nil {
|
|
logs.Error(err)
|
|
}
|
|
return trafficLimitConfig
|
|
}
|
|
|
|
// DecodeBandwidthLimitPerNode 解析单节点流量限制
|
|
func (this *Plan) DecodeBandwidthLimitPerNode() *shared.BitSizeCapacity {
|
|
if IsNull(this.BandwidthLimitPerNode) {
|
|
return nil
|
|
}
|
|
var capacity = &shared.BitSizeCapacity{}
|
|
err := json.Unmarshal(this.BandwidthLimitPerNode, capacity)
|
|
if err != nil {
|
|
logs.Error(err)
|
|
}
|
|
return capacity
|
|
}
|
|
|
|
// DecodeMaxUploadSize 解析文件上传最大尺寸
|
|
func (this *Plan) DecodeMaxUploadSize() *shared.SizeCapacity {
|
|
var size = &shared.SizeCapacity{Unit: shared.SizeCapacityUnitGB}
|
|
if IsNotNull(this.MaxUploadSize) {
|
|
err := json.Unmarshal(this.MaxUploadSize, size)
|
|
if err != nil {
|
|
logs.Error(err)
|
|
}
|
|
}
|
|
return size
|
|
}
|