完善 channel remove 测试用例

This commit is contained in:
2025-04-03 13:30:57 +08:00
parent 116fa8ec18
commit 309aa6d0e2
9 changed files with 388 additions and 278 deletions

View File

@@ -1,8 +1,11 @@
package main
import (
m "platform/web/models"
"gorm.io/driver/postgres"
"gorm.io/gen"
"gorm.io/gen/field"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
@@ -26,5 +29,19 @@ func main() {
models := g.GenerateAllTable()
g.ApplyBasic(models...)
modelChannel := g.GenerateModel("channel",
gen.FieldRelateModel(field.BelongsTo, "Node", &m.Node{}, &field.RelateConfig{
RelatePointer: true,
}),
gen.FieldRelateModel(field.BelongsTo, "User", &m.User{}, &field.RelateConfig{
RelatePointer: true,
}),
gen.FieldRelateModel(field.BelongsTo, "Proxy", &m.Proxy{}, &field.RelateConfig{
RelatePointer: true,
}),
)
g.ApplyBasic(modelChannel)
g.Execute()
}

View File

@@ -1,78 +1,7 @@
package main
import (
"encoding/json"
"platform/pkg/orm"
m "platform/web/models"
q "platform/web/queries"
"time"
"github.com/glebarez/sqlite"
"gorm.io/gorm"
)
func main() {
open, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
if err != nil {
panic(err)
for i := range 3 {
println(i)
}
err = open.AutoMigrate(&m.Resource{}, &m.ResourcePss{})
if err != nil {
panic(err)
}
q.SetDefault(open)
var r = &m.Resource{
ID: 1,
UserID: 101,
Active: true,
}
open.Create(r)
var resourcePss = &m.ResourcePss{
ID: 1,
ResourceID: 1,
Type: 1,
Live: 180,
Expire: time.Now().AddDate(1, 0, 0),
DailyLimit: 10000,
}
open.Create(resourcePss)
var resource = new(ResourceInfo)
data := q.Resource.As("data")
pss := q.ResourcePss.As("pss")
err = data.Scopes(orm.Alias(data)).
Select(
data.ID, data.UserID, data.Active,
pss.Type, pss.Live, pss.DailyUsed, pss.DailyLimit, pss.DailyLast, pss.Quota, pss.Used, pss.Expire,
).
LeftJoin(q.ResourcePss.As("pss"), pss.ResourceID.EqCol(data.ID)).
Where(data.ID.Eq(1)).
Scan(&resource)
if err != nil {
panic(err)
}
bytes, err := json.MarshalIndent(resource, "", " ")
if err != nil {
panic(err)
}
println(string(bytes))
}
type ResourceInfo struct {
Id int32
UserId int32
Active bool
Type int32
Live int32
DailyLimit int32
DailyUsed int32
DailyLast time.Time
Quota int32
Used int32
Expire time.Time
}