完善联调标准化与诊断链路

This commit is contained in:
2026-04-03 17:01:04 +08:00
parent 114c524044
commit b09c21c814
35 changed files with 2677 additions and 175 deletions

View File

@@ -3,6 +3,7 @@ import { getEventPlay, launchEvent, type BackendCourseVariantSummary, type Backe
import { adaptBackendLaunchResultToEnvelope } from '../../utils/backendLaunchAdapter'
import { formatBackendPlayActionText, formatBackendPlayStatusText } from '../../utils/backendPlayCopy'
import { prepareMapPageUrlForLaunch } from '../../utils/gameLaunch'
import { reportBackendClientLog } from '../../utils/backendClientLogs'
import { HeartRateController } from '../../engine/sensor/heartRateController'
const PREFERRED_HEART_RATE_DEVICE_STORAGE_KEY = 'cmr.preferredHeartRateDevice'
@@ -290,12 +291,32 @@ Page({
result.play.assignmentMode,
result.play.courseVariants,
)
const assignmentMode = result.play.assignmentMode ? result.play.assignmentMode : null
const logVariantId = assignmentMode === 'manual' && selectedVariantId ? selectedVariantId : null
const selectableVariants = buildSelectableVariants(
selectedVariantId,
result.play.assignmentMode,
result.play.courseVariants,
)
const selectedVariant = selectableVariants.find((item) => item.id === selectedVariantId) || null
reportBackendClientLog({
level: 'info',
category: 'event-prepare',
message: 'prepare play loaded',
eventId: result.event.id || this.data.eventId || '',
releaseId: result.resolvedRelease && result.resolvedRelease.releaseId
? result.resolvedRelease.releaseId
: '',
manifestUrl: result.resolvedRelease && result.resolvedRelease.manifestUrl
? result.resolvedRelease.manifestUrl
: '',
details: {
pageEventId: this.data.eventId || '',
resultEventId: result.event.id || '',
selectedVariantId: logVariantId,
assignmentMode,
},
})
this.setData({
loading: false,
titleText: `${result.event.displayName} / 开始前准备`,
@@ -586,6 +607,22 @@ Page({
})
try {
const assignmentMode = this.data.assignmentMode ? this.data.assignmentMode : null
const selectedVariantId = assignmentMode === 'manual' && this.data.selectedVariantId
? this.data.selectedVariantId
: null
reportBackendClientLog({
level: 'info',
category: 'event-prepare',
message: 'launch requested',
eventId: this.data.eventId || '',
details: {
pageEventId: this.data.eventId || '',
selectedVariantId,
assignmentMode,
phase: 'launch-requested',
},
})
const app = getApp<IAppOption>()
if (app.globalData) {
const pendingDeviceName = prepareHeartRateController && prepareHeartRateController.currentDeviceName
@@ -608,6 +645,32 @@ Page({
clientType: 'wechat',
deviceKey: 'mini-dev-device-001',
})
reportBackendClientLog({
level: 'info',
category: 'event-prepare',
message: 'launch response received',
eventId: result.launch.business && result.launch.business.eventId ? result.launch.business.eventId : this.data.eventId || '',
releaseId: result.launch.config && result.launch.config.releaseId ? result.launch.config.releaseId : '',
sessionId: result.launch.business && result.launch.business.sessionId ? result.launch.business.sessionId : '',
manifestUrl: result.launch.resolvedRelease && result.launch.resolvedRelease.manifestUrl
? result.launch.resolvedRelease.manifestUrl
: '',
details: {
pageEventId: this.data.eventId || '',
launchEventId: result.launch.business && result.launch.business.eventId ? result.launch.business.eventId : '',
launchSessionId: result.launch.business && result.launch.business.sessionId ? result.launch.business.sessionId : '',
configUrl: result.launch.config && result.launch.config.configUrl ? result.launch.config.configUrl : '',
releaseId: result.launch.config && result.launch.config.releaseId ? result.launch.config.releaseId : '',
resolvedReleaseId: result.launch.resolvedRelease && result.launch.resolvedRelease.releaseId
? result.launch.resolvedRelease.releaseId
: '',
resolvedManifestUrl: result.launch.resolvedRelease && result.launch.resolvedRelease.manifestUrl
? result.launch.resolvedRelease.manifestUrl
: '',
launchVariantId: result.launch.variant && result.launch.variant.id ? result.launch.variant.id : null,
phase: 'launch-response',
},
})
const envelope = adaptBackendLaunchResultToEnvelope(result)
wx.navigateTo({
url: prepareMapPageUrlForLaunch(envelope),