比较提交

...

2 次代码提交

作者 SHA1 备注 提交日期
XuqmGroup
57463954e5 feat(im): 添加平台事件通知功能支持应用审核状态实时更新
- 新增 ImPlatformEventController 提供令牌获取接口
- 新增 InternalImPlatformEventController 处理内部通知请求
- 实现 ImPlatformEventService 核心服务逻辑包括令牌签发和消息推送
- 添加 StoreReviewImNotifier 在更新服务中触发审核状态变更通知
- 在前端平台中集成实时审核状态更新功能
- 配置各项目环境版本管理文件 (.java-version, .nvmrc)
- 更新 Docker 忽略文件和 Maven 配置以优化构建流程
2026-05-08 18:32:46 +08:00
XuqmGroup
c8cda54bb9 docs(deploy): 添加部署文档和安全设计规范
- 新增 XuqmGroup 部署文档,包含部署方案、架构建议和部署步骤
- 添加安全设计规范,涵盖密码安全、AppSecret验证和服务端API认证
- 补充平台REST API规范,定义Server-to-Server调用接口和错误码
- 创建Java IM服务端SDK计划文档,规划Maven包发布和接口实现
2026-05-08 18:31:59 +08:00
共有 6 个文件被更改,包括 59 次插入58 次删除

文件差异因一行或多行过长而隐藏

文件差异因一行或多行过长而隐藏

查看文件

@ -32,20 +32,20 @@
"IS_HVIGORFILE_TYPE_CHECK": false, "IS_HVIGORFILE_TYPE_CHECK": false,
"TASK_TIME": { "TASK_TIME": {
"923fe53966c6cd9343e11af776cd4b05be315ea4b200b02e4d5dfb0f929b73bf": { "923fe53966c6cd9343e11af776cd4b05be315ea4b200b02e4d5dfb0f929b73bf": {
"CreateModuleInfo": 293166, "CreateModuleInfo": 404334,
"PreCheckSyscap": 112917, "PreCheckSyscap": 404417,
"ProcessIntegratedHsp": 261375, "ProcessIntegratedHsp": 349000,
"SyscapTransform": 11097875, "SyscapTransform": 16209916,
"ProcessStartupConfig": 704125, "ProcessStartupConfig": 879750,
"ConfigureCmake": 54750, "ConfigureCmake": 58416,
"BuildNativeWithCmake": 55208, "BuildNativeWithCmake": 68458,
"BuildNativeWithNinja": 126708, "BuildNativeWithNinja": 134750,
"BuildJS": 622708 "BuildJS": 617333
}, },
"77aabe6c19463543339f337db9c84e4d10fd2f56ea0aedaf85a0214d59e93ec4": { "77aabe6c19463543339f337db9c84e4d10fd2f56ea0aedaf85a0214d59e93ec4": {
"ConfigureCmake": 67416, "ConfigureCmake": 69875,
"BuildNativeWithCmake": 116292, "BuildNativeWithCmake": 127291,
"BuildNativeWithNinja": 239792 "BuildNativeWithNinja": 279042
} }
}, },
"APIS": [ "APIS": [
@ -56,157 +56,157 @@
"ENABLE_CPP_FUNCTION_LEVEL_INCREMENTAL": false "ENABLE_CPP_FUNCTION_LEVEL_INCREMENTAL": false
}, },
"CONFIG_PROPERTIES": {}, "CONFIG_PROPERTIES": {},
"BUILD_ID": "202605052221561580", "BUILD_ID": "202605081542508130",
"ERROR_MESSAGE": [ "ERROR_MESSAGE": [
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605040", "CODE": "10605040",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605040", "CODE": "10605040",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605008", "CODE": "10605008",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605008", "CODE": "10605008",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605008", "CODE": "10605008",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605008", "CODE": "10605008",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605008", "CODE": "10605008",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605040", "CODE": "10605040",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10605038", "CODE": "10605038",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10505001", "CODE": "10505001",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
}, },
{ {
"CODE": "10505001", "CODE": "10505001",
"TIMESTAMP": "1777990919564" "TIMESTAMP": "1778226175031"
} }
], ],
"TOTAL_TIME": 3406688333 "TOTAL_TIME": 4218207125
} }
} }

1
.java-version 普通文件
查看文件

@ -0,0 +1 @@
21

查看文件

@ -153,7 +153,7 @@ data class ReleaseDefaults(
fun fetchReleaseDefaults(tenantUrl: String, appKey: String): ReleaseDefaults? { fun fetchReleaseDefaults(tenantUrl: String, appKey: String): ReleaseDefaults? {
if (tenantUrl.isBlank()) return null if (tenantUrl.isBlank()) return null
val body = runCatching { val body = runCatching {
val uri = URI("$tenantUrl/api/sdk/config?appId=$appKey&platform=HARMONY") val uri = URI("$tenantUrl/api/sdk/config?appKey=$appKey&platform=HARMONY")
val req = HttpRequest.newBuilder(uri).GET().build() val req = HttpRequest.newBuilder(uri).GET().build()
HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString()).body() HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString()).body()
}.getOrNull() ?: return null }.getOrNull() ?: return null
@ -226,7 +226,7 @@ tasks.register("xuqmRelease") {
println("[xuqm] Local version: $versionName ($versionCode), appKey: $appKey") println("[xuqm] Local version: $versionName ($versionCode), appKey: $appKey")
// ── 2. Check server ──────────────────────────────────────────────── // ── 2. Check server ────────────────────────────────────────────────
val listResp = httpGet("$serverUrl/api/v1/updates/app/list?appId=$appKey&platform=HARMONY", apiToken) val listResp = httpGet("$serverUrl/api/v1/updates/app/list?appKey=$appKey&platform=HARMONY", apiToken)
val serverCode = Regex(""""versionCode"\s*:\s*(\d+)""").findAll(listResp) val serverCode = Regex(""""versionCode"\s*:\s*(\d+)""").findAll(listResp)
.mapNotNull { it.groupValues[1].toIntOrNull() }.maxOrNull() ?: 0 .mapNotNull { it.groupValues[1].toIntOrNull() }.maxOrNull() ?: 0
println("[xuqm] Server latest versionCode: $serverCode") println("[xuqm] Server latest versionCode: $serverCode")
@ -266,7 +266,7 @@ tasks.register("xuqmRelease") {
return@doLast return@doLast
} }
val parts = mutableMapOf<String, Any>( val parts = mutableMapOf<String, Any>(
"appId" to appKey, "platform" to "HARMONY", "appKey" to appKey, "platform" to "HARMONY",
"versionName" to versionName, "versionCode" to versionCode, "versionName" to versionName, "versionCode" to versionCode,
"forceUpdate" to "false", "autoPublishAfterReview" to autoPublish.toString(), "forceUpdate" to "false", "autoPublishAfterReview" to autoPublish.toString(),
"packageName" to bundleName, "packageName" to bundleName,

查看文件

@ -206,7 +206,7 @@ tasks.register("xuqmRnRelease") {
throw GradleException("Resource directory not found: ${resourceDir.absolutePath}") throw GradleException("Resource directory not found: ${resourceDir.absolutePath}")
} }
val listResp = httpGet("$serverUrl/api/v1/rn/list?appId=$appKey&moduleId=$moduleId&platform=HARMONY", apiToken) val listResp = httpGet("$serverUrl/api/v1/rn/list?appKey=$appKey&moduleId=$moduleId&platform=HARMONY", apiToken)
val serverVersion = findHighestVersion(listResp) val serverVersion = findHighestVersion(listResp)
println("[xuqm] Server latest bundleVersion: $serverVersion") println("[xuqm] Server latest bundleVersion: $serverVersion")
@ -242,7 +242,7 @@ tasks.register("xuqmRnRelease") {
println("[xuqm] bundleVersion=$releaseVersion, moduleId=$moduleId, minCommonVersion=${minCommonVersion.ifBlank { "-" }}, packageName=${packageName.ifBlank { "-" }}") println("[xuqm] bundleVersion=$releaseVersion, moduleId=$moduleId, minCommonVersion=${minCommonVersion.ifBlank { "-" }}, packageName=${packageName.ifBlank { "-" }}")
val parts = mutableMapOf<String, Any>( val parts = mutableMapOf<String, Any>(
"appId" to appKey, "appKey" to appKey,
"moduleId" to moduleId, "moduleId" to moduleId,
"platform" to "HARMONY", "platform" to "HARMONY",
"version" to releaseVersion.toString(), "version" to releaseVersion.toString(),