docs(private): 更新私有化SDK设计文档添加配置管理和错误码规范

- Flutter包名格式从xuqm_private_flutter_*改为xuqm_private_*
- 添加configVersion字段用于追踪配置变更,格式为YYYY.MM.DD-序号
- 添加配置版本管理说明,包含schemaVersion兼容性策略
- 添加配置热更新机制,支持冷加载和热加载两种方式
- 添加多环境配置支持,可通过activeProfile指定生效环境
- 添加统一错误码规范,覆盖配置缺失、格式错误、版本不兼容等场景
- 更新验收标准,包含热更新、多环境切换、错误码一致性要求
- 添加私有化开发计划中的错误码规范、文档同步、数据迁移等任务
- 补充MySQL运维细节、证书自动续期、监控告警、日志收集等部署要求
- 添加性能基准指标,包含HTTP API、WebSocket、文件传输等性能要求
- 修复应用商店审核状态轮询中的逻辑错误,添加小米商店特殊处理
- 更新前端界面显示审核版本信息,优化状态刷新逻辑
这个提交包含在:
XuqmGroup 2026-05-18 19:17:44 +08:00
父节点 a1e4d5741b
当前提交 b6f2aedc70

查看文件

@ -70,7 +70,7 @@
<div class="store-review-tags">
<template v-for="item in parseStoreReview(row.storeReviewStatus)" :key="item.store">
<el-tooltip
v-if="item.state === 'REJECTED' && item.reason"
v-if="item.reason"
:content="item.reason"
placement="top"
>
@ -671,6 +671,10 @@
<span class="meta-label">线上版本</span>
<span class="meta-value">{{ [item.liveVersionName, item.liveVersionCode].filter(Boolean).join(' · ') }}</span>
</div>
<div v-if="item.reviewVersionName || item.reviewVersionCode" class="review-card-meta-item">
<span class="meta-label">审核版本</span>
<span class="meta-value">{{ [item.reviewVersionName, item.reviewVersionCode].filter(Boolean).join(' · ') }}</span>
</div>
</div>
<!-- Rejection / withdrawal reason -->
@ -1576,6 +1580,8 @@ type StoreReviewItem = {
nonCurrentRelease?: boolean
liveVersionName?: string
liveVersionCode?: string
reviewVersionName?: string
reviewVersionCode?: string
}
const storeReviewDetailItems = ref<StoreReviewItem[]>([])
const storeReviewDetailLive = ref(false)
@ -1640,26 +1646,14 @@ async function handleRefreshReviewStatus() {
if (!storeReviewDetailVersion.value) return
refreshingReviewStatus.value = true
try {
const res = await updateAdminApi.refreshStoreReviewStatus(storeReviewDetailVersion.value.id)
const result = res.data.data
if (result && result.stores) {
// Merge refreshed states into the detail items
for (const s of result.stores) {
const idx = storeReviewDetailItems.value.findIndex(i => i.store === s.storeType)
if (idx >= 0) {
// Re-parse the row's storeReviewStatus to get updated fields from DB
const row = appVersions.value.find(v => v.id === storeReviewDetailVersion.value!.id)
if (row) {
const parsed = parseStoreReview(row.storeReviewStatus)
const updated = parsed.find(p => p.store === s.storeType)
if (updated) {
storeReviewDetailItems.value[idx] = updated
}
}
}
}
}
const versionId = storeReviewDetailVersion.value.id
await updateAdminApi.refreshStoreReviewStatus(versionId)
await loadAppVersions()
const row = appVersions.value.find(v => v.id === versionId)
if (row) {
storeReviewDetailVersion.value = row
storeReviewDetailItems.value = parseStoreReview(row.storeReviewStatus)
}
ElMessage.success('厂商状态已刷新')
} catch {
ElMessage.error('刷新失败,请稍后重试')
@ -2527,6 +2521,8 @@ function parseStoreReview(json?: string): StoreReviewItem[] {
nonCurrentRelease: item.nonCurrentRelease === true,
liveVersionName: String(item.liveVersionName ?? ''),
liveVersionCode: String(item.liveVersionCode ?? ''),
reviewVersionName: String(item.reviewVersionName ?? ''),
reviewVersionCode: String(item.reviewVersionCode ?? ''),
}
}
return { store, state: String(value ?? ''), reason: '' }