fix(platform): clarify vehicle service status labels
This commit is contained in:
@@ -159,6 +159,9 @@ func TestHandlerVehicleCoverageTreatsMissingCanonicalSourceAsDegraded(t *testing
|
||||
if row.ServiceStatus == nil || row.ServiceStatus.Status != "degraded" {
|
||||
t.Fatalf("missing canonical source should degrade vehicle service, got row=%+v body=%s", row, rec.Body.String())
|
||||
}
|
||||
if row.ServiceStatus.Title != "来源不完整" {
|
||||
t.Fatalf("missing canonical source should use explicit incomplete-source title, got row=%+v body=%s", row, rec.Body.String())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,6 +413,9 @@ func TestHandlerVehicleServiceSummaryEndpoint(t *testing.T) {
|
||||
}
|
||||
noDataStatusFound := false
|
||||
for _, status := range body.Data.ServiceStatuses {
|
||||
if status.Status == "degraded" && status.Title != "来源异常" {
|
||||
t.Fatalf("summary degraded status should use broad source exception title, got %+v", status)
|
||||
}
|
||||
if status.Status == "no_data" {
|
||||
noDataStatusFound = true
|
||||
if status.Title != "暂无数据来源" || status.Count != body.Data.NoDataVehicles {
|
||||
|
||||
@@ -46,7 +46,7 @@ func (m *MockStore) DashboardSummary(context.Context) (DashboardSummary, error)
|
||||
},
|
||||
ServiceStatuses: []ServiceStatusStat{
|
||||
{Status: "healthy", Title: "服务正常", Count: 2},
|
||||
{Status: "degraded", Title: "部分来源离线", Count: 1},
|
||||
{Status: "degraded", Title: "来源异常", Count: 1},
|
||||
{Status: "offline", Title: "车辆离线", Count: 1},
|
||||
{Status: "identity_required", Title: "身份未绑定", Count: 0},
|
||||
},
|
||||
@@ -184,7 +184,7 @@ func (m *MockStore) VehicleServiceSummary(ctx context.Context) (VehicleServiceSu
|
||||
}
|
||||
statusCounts := map[string]*ServiceStatusStat{
|
||||
"healthy": {Status: "healthy", Title: "服务正常"},
|
||||
"degraded": {Status: "degraded", Title: "部分来源离线"},
|
||||
"degraded": {Status: "degraded", Title: "来源异常"},
|
||||
"offline": {Status: "offline", Title: "车辆离线"},
|
||||
"no_data": {Status: "no_data", Title: "暂无数据来源"},
|
||||
"identity_required": {Status: "identity_required", Title: "身份未绑定"},
|
||||
|
||||
@@ -76,7 +76,7 @@ func (s *ProductionStore) DashboardSummary(ctx context.Context) (DashboardSummar
|
||||
func (s *ProductionStore) serviceStatusStats(ctx context.Context) ([]ServiceStatusStat, error) {
|
||||
definitions := []ServiceStatusStat{
|
||||
{Status: "healthy", Title: "服务正常"},
|
||||
{Status: "degraded", Title: "部分来源离线"},
|
||||
{Status: "degraded", Title: "来源异常"},
|
||||
{Status: "offline", Title: "车辆离线"},
|
||||
{Status: "no_data", Title: "暂无数据来源"},
|
||||
{Status: "identity_required", Title: "身份未绑定"},
|
||||
@@ -149,7 +149,7 @@ GROUP BY v.vin
|
||||
}
|
||||
summary.ServiceStatuses = []ServiceStatusStat{
|
||||
{Status: "healthy", Title: "服务正常", Count: healthy},
|
||||
{Status: "degraded", Title: "部分来源离线", Count: degraded},
|
||||
{Status: "degraded", Title: "来源异常", Count: degraded},
|
||||
{Status: "offline", Title: "车辆离线", Count: offline},
|
||||
{Status: "no_data", Title: "暂无数据来源", Count: summary.NoDataVehicles},
|
||||
{Status: "identity_required", Title: "身份未绑定", Count: summary.IdentityRequiredVehicles},
|
||||
|
||||
@@ -970,6 +970,16 @@ func buildVehicleCoverageServiceStatus(row VehicleCoverageRow) *VehicleServiceSt
|
||||
OnlineSourceCount: row.OnlineSourceCount,
|
||||
}
|
||||
}
|
||||
if len(row.MissingProtocols) > 0 {
|
||||
return &VehicleServiceStatus{
|
||||
Status: "degraded",
|
||||
Severity: "warning",
|
||||
Title: "来源不完整",
|
||||
Detail: sourceCoverageDetail(row.SourceCount, row.OnlineSourceCount, "车辆服务可用但缺少 "+strings.Join(row.MissingProtocols, "、")+" 来源。"),
|
||||
SourceCount: row.SourceCount,
|
||||
OnlineSourceCount: row.OnlineSourceCount,
|
||||
}
|
||||
}
|
||||
if row.OnlineSourceCount < row.SourceCount {
|
||||
return &VehicleServiceStatus{
|
||||
Status: "degraded",
|
||||
@@ -980,16 +990,6 @@ func buildVehicleCoverageServiceStatus(row VehicleCoverageRow) *VehicleServiceSt
|
||||
OnlineSourceCount: row.OnlineSourceCount,
|
||||
}
|
||||
}
|
||||
if len(row.MissingProtocols) > 0 {
|
||||
return &VehicleServiceStatus{
|
||||
Status: "degraded",
|
||||
Severity: "warning",
|
||||
Title: "部分来源离线",
|
||||
Detail: sourceCoverageDetail(row.SourceCount, row.OnlineSourceCount, "车辆服务可用但缺少 "+strings.Join(row.MissingProtocols, "、")+" 来源。"),
|
||||
SourceCount: row.SourceCount,
|
||||
OnlineSourceCount: row.OnlineSourceCount,
|
||||
}
|
||||
}
|
||||
return &VehicleServiceStatus{
|
||||
Status: "healthy",
|
||||
Severity: "ok",
|
||||
|
||||
Reference in New Issue
Block a user