Skip to content

fix(gym): speed queries, map shared courts and sync OA contacts - #115

Merged
HeZeBang merged 3 commits into
HeZeBang:masterfrom
wangzh12023:fix/gym-query-court-mapping
Oct 9, 2026
Merged

HeZeBang merged 3 commits into
HeZeBang:masterfrom
wangzh12023:fix/gym-query-court-mapping

Conversation

@wangzh12023

@wangzh12023 wangzh12023 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

修复“所有场地 + 多个时段”预约记录查询的 30 秒超时,并统一网球、匹克球共享场地。场馆顶部“个人”改为“个人信息”,绑定或重新绑定 eGate 后自动读取本人 OA 姓名、完整手机号和邮箱,用于预约联系人。

  • 支持后端一次日期查询后分组;旧后端使用小批次、最多三个并发任务查询。当前账号和登录态在内存中复用 OA Cookie,元数据请求合并。
  • 网球可选网球1–3号及匹克球1号,匹克球可选匹克球1号及网球1号;始终排除不存在的匹克球2号。同一物理场地同一时段互斥选择,提交前再次去重。
  • 可用性按小时显示进度并顺序读取。切换条件后丢弃旧结果;缺少结果明确报错,提交超时提示先查记录,避免重复预约。
  • OA 联系人独立同步,不阻塞登录或查询;按 TechPie 主账号与 eGate 学号隔离缓存。自动同步保留手动修改,忽略换绑后的旧响应及同步期间手动保存前发出的响应;可通过“从 OA 同步”主动重新填入学校资料。
  • 修正重新绑定后内部 UUID 被误作学号的问题。界面、OA 校验和预约使用学校身份,CpDaily 协议/续期保留内部 UUID;兼容旧密码与短信绑定,真实学号不匹配仍拒绝。
  • 掩码手机号不会当作有效号码,预约不再回退使用主账号手机号。旧后端没有个人信息接口时仍可手动填写、查询和预约。

配套后端:后端 PR #18

建议先合并后端。后端通过当前登录用户自身资料入口读取联系方式,不提供查询其他人员的参数;客户端仍兼容旧部署。

验证:

  • Flutter 3.27.4:flutter analyze --no-pub 无问题;全量测试 627 项通过,体育馆服务测试 25 项。
  • 真实重新登录后绑定返回学号与 OA 一致,完整手机号/邮箱可同步;用户刚绑定的旧格式登录态在 Xcode 重启后直接恢复,无需再次解绑。
  • 本机连接真实 OA:截图条件(2026-10-06、所有场地、16:00–20:00)返回32条唯一记录约1.92秒;新个人信息接口约3.00秒返回完整手机号、邮箱及与测试账号一致的学号。没有提交真实预约。
  • Xcode26.6、已有 iPhone17Pro / iOS26.5:预约/查询场地映射及共享选择已验证;正常 lib/main.dart 下,真实用户登录后个人信息自动填入完整手机号/邮箱,主动同步也成功。
  • 模拟器使用隔离工程副本,临时替换不支持 arm64 模拟器的扫码原生实现并移除 Watch target;正式 iOS 工程及依赖未修改,不覆盖相机、Watch、正式签名IPA。没有下载额外模拟器。
  • Python 参考项目同一场地映射的11项测试和编译检查通过,保留原有未提交工作;原 Flutter 工作树的七个配置文件保持原样。

完整原因、测量、验证范围和上线顺序见 docs/gym-reservation-verification.md。

@wangzh12023 wangzh12023 changed the title fix(gym): speed queries and support shared tennis and pickleball courts fix(gym): speed queries, map shared courts and sync OA contacts Oct 8, 2026
@wangzh12023

wangzh12023 commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor Author

本地xcode simulator ios端测试功能全部正常。安卓端暂时未测试并做功能性验证

@HeZeBang
HeZeBang merged commit 4d499a5 into HeZeBang:master Oct 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants