perf: 减少统计页面资料读取并优化区服选项查询

This commit is contained in:
Yvan
2026-11-04 16:42:11 +08:00
parent 503f3b1a7d
commit 2efce4d821
8 changed files with 184 additions and 13 deletions
@@ -85,3 +85,30 @@ func TestServerAnalysisStorageScopeSnapshotAndPreference(t *testing.T) {
t.Fatal("缺身份表应明确未接入")
}
}
func TestServerOptionsPreservePlatformFilterAndDoNotDuplicateMatches(t *testing.T) {
db := openTestDB(t)
for _, sql := range []string{
"CREATE TABLE tab_game(id INTEGER,source_db TEXT,game_name TEXT)",
"INSERT INTO tab_game VALUES(1,'lx','甲'),(1,'lx','甲'),(1,'hw','乙'),(2,'lx','乙')",
"CREATE TABLE tab_game_server(id INTEGER,source_db TEXT,game_id INTEGER,server_num TEXT,server_name TEXT,start_time INTEGER)",
"INSERT INTO tab_game_server VALUES(1,'lx',1,'001','一区',100),(2,'lx',1,'002','二区',200),(3,'hw',1,'001','其他平台',300),(4,'lx',2,'001','其他游戏',400)",
} {
if err := db.Exec(sql).Error; err != nil {
t.Fatal(err)
}
}
repo := NewServerAnalysisRepo(testData{db})
rows, err := repo.Servers(context.Background(), nil, []string{"甲"}, "", 100)
if err != nil || len(rows) != 2 || rows[0].Name != "一区" || rows[1].Number != "002" {
t.Fatalf("相同游戏资料不能扩增区服,异平台同号不能匹配: %+v %v", rows, err)
}
rows, err = repo.Servers(context.Background(), []string{"lx"}, []string{"甲", "乙"}, "区", 1)
if err != nil || len(rows) != 1 || rows[0].Name != "一区" {
t.Fatalf("名称筛选、排序或数量限制改变: %+v %v", rows, err)
}
rows, err = repo.Servers(context.Background(), []string{"hw"}, []string{"甲"}, "", 100)
if err != nil || len(rows) != 0 {
t.Fatalf("平台筛选被忽略: %+v %v", rows, err)
}
}