2026-07-13 取餐记录补传关键代码注释
变更目的
为本次新增的取餐记录实时上传与周期补传代码补充中文注释,说明关键业务边界、并发保护和状态迁移原因,方便后续维护与设备测试排查。
本次仅增加注释,不改变接口、数据库结构、补传策略或运行逻辑。
注释原则
- 只注释重要方法块、关键状态迁移和不直观的并发处理。
- 不为普通赋值、getter/setter 和显而易见的分支堆叠注释。
- 注释重点说明“为什么这样处理”,避免简单重复代码含义。
覆盖内容
PickMealRetryProcessor:单轮最多 20 条、严格串行、断网停止和原子占用失败后的跳过规则。PickMealUploadCoordinator:实时上传与周期补传共用链路、实时最多 3 次、同步等待上一条结果。PickMealUploadStore:待补传记录排序、条件更新原子占用、失败次数累计、超时UPLOADING恢复和追加状态日志。PickMealRetryScheduler、AlarmReceiver、PickMealRetryWorker:固定 3 分钟续订、唯一任务、防并发和无网络时等待下一周期。CustomDBHelper、PickMealRecord、PickMealRecordImpl:数据库 v3 补传字段、状态日志表、查询索引和统一状态定义。WeightMainActivity:先落库再上传、统一协调器入口以及无效记录进入IGNORED的原因。ApiResultUtils:响应data=null时保留真实业务码,避免补传结果误判。PickMealUploadPolicy、PickMealUploadResult:固定策略参数、状态含义、业务结果分类与失败封顶规则。
验证记录
执行:
git diff --check
JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash ./gradlew -q :app:testDebugUnitTest :app:compileDebugJavaWithJavac --no-daemon
结果:两项命令均退出码为 0;单元测试和 Debug Java 编译通过。构建仍有项目原有的 Java 主版本提示和过时/未检查 API 警告,本次未新增编译错误。
影响范围
- 仅影响源代码可读性和维护性。
- 不修改 Android 端现有补传行为。
- 不修改服务端接口及请求字段。