fix(stats): map protocol mileage fields

This commit is contained in:
lingniu
2026-07-08 11:23:06 +08:00
parent 4e356876b1
commit fdcac05559
4 changed files with 94 additions and 30 deletions

View File

@@ -30,7 +30,6 @@ func BuildFieldsEnvelope(env envelope.FrameEnvelope) (envelope.FrameEnvelope, bo
if !ok {
return envelope.FrameEnvelope{}, false
}
statFields := fieldsWithCanonicalStats(fields, env.Fields)
out := envelope.FrameEnvelope{
EventID: env.StableEventID() + ":fields",
TraceID: env.TraceID,
@@ -45,7 +44,7 @@ func BuildFieldsEnvelope(env envelope.FrameEnvelope) (envelope.FrameEnvelope, bo
SourceEndpoint: env.SourceEndpoint,
EventTimeMS: env.EventTimeMS,
ReceivedAtMS: env.ReceivedAtMS,
Fields: statFields,
Fields: fields,
ParsedFields: fields,
ParsedFieldTypes: fieldTypes,
Parsed: map[string]any{
@@ -57,22 +56,6 @@ func BuildFieldsEnvelope(env envelope.FrameEnvelope) (envelope.FrameEnvelope, bo
return out, true
}
func fieldsWithCanonicalStats(mapped map[string]any, canonical map[string]any) map[string]any {
out := cloneAnyMap(mapped)
for _, key := range []string{
envelope.FieldTotalMileageKM,
envelope.FieldSpeedKMH,
envelope.FieldSOCPercent,
envelope.FieldLongitude,
envelope.FieldLatitude,
} {
if value, ok := canonical[key]; ok && value != nil {
out[key] = value
}
}
return out
}
func EnsureParsedFields(env *envelope.FrameEnvelope) bool {
if env == nil {
return false