diff --git a/docs/acceptance/b261-user-find-full-404.md b/docs/acceptance/b261-user-find-full-404.md new file mode 100644 index 0000000..ac5de04 --- /dev/null +++ b/docs/acceptance/b261-user-find-full-404.md @@ -0,0 +1,64 @@ +# B-261 Android「我的信息」404 + +分支:本卡施工分支(基于联网修复复测包 `1895830` / `agent/agent/a4ad7eed`) +对照用户安装包:Gitea `v3.8.3-network-fix-retest`(`changlian-android-3.8.3-b225.apk`) +本卡只改客户端用户资料读取,不改现网服务、不改账号数据、不覆盖旧 Release。 + +**结论:404 是客户端把官方 chat 接口打到了账号服务。责任在客户端。已改为走 OpenIM SDK,不再请求 `/user/find/full`。** + +## 直接原因 + +用户截图:`GET http://192.168.200.11:10010/user/find/full` → 404。 + +| 核对项 | 结果 | +|---|---| +| 账号服务真实路由 | 只有 `/api/login`、`/api/directory`、`/api/rtc_token`、管理接口;没有 `/user/find/full` | +| 现网探测 | `GET/POST http://192.168.200.11:10010/user/find/full` 均 404;`GET /api/health` 200,员工数 3 | +| 当前发布包调用方 | 官方页「我的信息」走 `Apis.queryMyFullInfo()` → `HttpUtil.post(Urls.getUsersFullInfo)` | +| URL 来源 | B-225 把 `Config.appAuthUrl` 从已关闭的 :10008 改到 :10010,登录能通,但这条 chat 路径仍打到账号服务 | +| 代码方法 | 源码是 POST;GET/POST 对不存在的路径都是 404,和截图一致 | + +旧 `mobile/` 和 PC 早已用 OpenIM SDK 取资料,不打这条路径。新 `mobile-next/` 漏改。 + +责任边界:客户端请求了账号服务没有的接口。不是工号密码错误,也不是服务器宕机。不需要改现网。 + +## 最小修复 + +`Apis.getUserFullInfo` / `queryMyFullInfo` / `searchUserFullInfo` / `updateUserInfo` 改为 OpenIM SDK(与 PC `pc-client/src/api/login.ts` 同一策略)。 + +- 能同步:工号、昵称、头像、勿扰 +- 不再有值:手机号、邮箱、性别、生日等原 chat 业务字段 +- 未改:`account-service/`、docker、旧 `mobile/`、PC + +## 回退 + +从新到旧:`git revert` 本验收记录提交,再 `git revert` 代码提交。用户侧可继续用 `v3.8.3-network-fix-retest` 或旧包 `v1.0.6-internal-test`。 + +## 构建 + +- Flutter 3.24.5 / Dart 3.5.4 / Temurin 17.0.20 +- `flutter build apk --release` 成功 +- 上游告警同 B-225:Flutter Gradle apply-script 弃用;部分依赖 Kotlin metadata 1.8.0 vs 工程预期 1.6.0。release 通过。 + +| 产物 | 版本 | 包名 | 大小 | SHA256 | +|---|---|---|---|---| +| Android release APK | 3.8.3+180 | `io.openim.flutter.demo` | 53,286,915 B | `42D74E85AEC52A3889ED79CE7345C3BA5F69B4B3FA994032C2D38DF6A9CF5987` | + +路径:`mobile-next/build/app/outputs/flutter-apk/app-release.apk`(APK 内嵌时间戳,哈希不可位级复现) + +## 已测 / 未测 + +已测: + +- 现网 `:10010/user/find/full` GET/POST 404,`/api/health` 200 +- `UserFullInfoMapper` 单测 3 项通过 +- 改动文件 `flutter analyze` 无新增 error(剩余 8 条均为 `apis.dart` 原有 warning/info) +- Android release 构建通过,校验值见上表 +- `Apis` 不再引用 `Urls.getUsersFullInfo` / `updateUserInfo` / `searchUserFullInfo` + +未测(不得写成已通过): + +- 公司内网真机登录后打开「我的信息」 +- 登录、联系人、发消息完整回归 + +残余:官方 `searchFriendInfo`、改密、验证码仍指向已下线 chat 路径;工号登录主路径和「我的信息」不再走这些接口。