perf: 减少统计页面资料读取并优化区服选项查询
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user