package apps import ( "strings" "github.com/iwind/TeaGo/maps" ) func mockApps() []maps.Map { return []maps.Map{ { "id": int64(1), "name": "主站移动业务", "appId": "ab12xc34s2", "clusterId": int64(1), "domainCount": 3, "isOn": true, "authStatus": "enabled", "ecsMode": "auto", "pinningMode": "report", "sanMode": "strict", "riskLevel": "medium", "riskSummary": "Pinning 处于观察模式", "secretVersion": "v2026.02.20", }, { "id": int64(2), "name": "视频网关业务", "appId": "vd8992ksm1", "clusterId": int64(2), "domainCount": 1, "isOn": true, "authStatus": "enabled", "ecsMode": "custom", "pinningMode": "enforce", "sanMode": "strict", "riskLevel": "low", "riskSummary": "已启用强校验", "secretVersion": "v2026.02.18", }, { "id": int64(3), "name": "海外灰度测试", "appId": "ov7711hkq9", "clusterId": int64(1), "domainCount": 2, "isOn": false, "authStatus": "disabled", "ecsMode": "off", "pinningMode": "off", "sanMode": "report", "riskLevel": "high", "riskSummary": "应用关闭且证书策略偏弱", "secretVersion": "v2026.01.30", }, } } func filterApps(keyword string, riskLevel string, ecsMode string, pinningMode string) []maps.Map { all := mockApps() if len(keyword) == 0 && len(riskLevel) == 0 && len(ecsMode) == 0 && len(pinningMode) == 0 { return all } keyword = strings.ToLower(strings.TrimSpace(keyword)) result := make([]maps.Map, 0) for _, app := range all { if len(keyword) > 0 { name := strings.ToLower(app.GetString("name")) appID := strings.ToLower(app.GetString("appId")) if !strings.Contains(name, keyword) && !strings.Contains(appID, keyword) { continue } } if len(riskLevel) > 0 && app.GetString("riskLevel") != riskLevel { continue } if len(ecsMode) > 0 && app.GetString("ecsMode") != ecsMode { continue } if len(pinningMode) > 0 && app.GetString("pinningMode") != pinningMode { continue } result = append(result, app) } return result } func pickApp(appID int64) maps.Map { apps := mockApps() if appID <= 0 { return apps[0] } for _, app := range apps { if app.GetInt64("id") == appID { return app } } return apps[0] } func mockDomains(appID int64) []maps.Map { _ = appID return []maps.Map{ { "id": int64(101), "name": "api.business.com", }, { "id": int64(102), "name": "payment.business.com", }, } } func pickDomain(domainID int64) maps.Map { domains := mockDomains(0) if domainID <= 0 { return domains[0] } for _, domain := range domains { if domain.GetInt64("id") == domainID { return domain } } return domains[0] }