// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . //go:build plus package models import ( "github.com/TeaOSLab/EdgeAPI/internal/errors" "github.com/TeaOSLab/EdgeCommon/pkg/userconfigs" "github.com/iwind/TeaGo/dbs" ) // CreatePackage 创建流量包 func (this *TrafficPackageDAO) CreatePackage(tx *dbs.Tx, size int32, unit string) (int64, error) { if !userconfigs.IsValidTrafficPackageSizeUnit(unit) { return 0, errors.New("invalid package size unit '" + unit + "'") } var op = NewTrafficPackageOperator() op.Size = size op.Unit = unit op.Bytes = userconfigs.TrafficPackageSizeBytes(size, unit) op.IsOn = true op.State = TrafficPackageStateEnabled return this.SaveInt64(tx, op) } // UpdatePackage 修改流量包 func (this *TrafficPackageDAO) UpdatePackage(tx *dbs.Tx, packageId int64, isOn bool) error { if packageId <= 0 { return errors.New("invalid packageId") } var op = NewTrafficPackageOperator() op.Id = packageId op.IsOn = isOn return this.Save(tx, op) } // FindAllPackages 查找所有流量包 func (this *TrafficPackageDAO) FindAllPackages(tx *dbs.Tx) (result []*TrafficPackage, err error) { _, err = this.Query(tx). State(TrafficPackageStateEnabled). Asc("bytes"). Asc("id"). Slice(&result). FindAll() return } // FindAllAvailablePackages 查找所有可用流量包 func (this *TrafficPackageDAO) FindAllAvailablePackages(tx *dbs.Tx) (result []*TrafficPackage, err error) { _, err = this.Query(tx). State(TrafficPackageStateEnabled). Attr("isOn", true). Asc("bytes"). Asc("id"). Slice(&result). FindAll() return }