@@ -7,7 +7,7 @@
" CMLR-050 " , " P0 " , " 4.2 " , " backend " , " 迁移 PK 域注解 SQL 到 Lambda " , " 迁移 PK 域静态注解 SQL( PkInfoDao/PkRecordDao/PkRecordDetailDao) 到 Lambda; 动态查询 selectPkInfoByCondition 留给 CMLR-070, 跨表明细归位留给 CMLR-060。 " , " 除 selectPkInfoByCondition、fetchDetailPkDataWithId、checkIfUnfinishedPKExistsWithAnchor( 跨表项) 外, PK 域注解 SQL 完成 Lambda 迁移:查询可用/全部PK、删除、按主播+时间、置顶时间更新、未邀请列表、当日列表、用户相关记录、待处理邀请、单条记录、主播存在性、明细查询。 " , " AUTOSERVER " , " 逐方法核对 where 条件、排序、limit/时间比较语义等价;明确拆分到 CMLR-060/CMLR-070 的方法不在本条重复改动。 " , " 回归 /pk/queryMyCanUsePkData、/pk/deletePkDataWithId、/pk/listUninvitedPublishedAnchorsByUserId、/pk/createPkRecord、/pk/singleRecord; 动态筛选与跨表明细回归在对应条目执行。 " , " 已完成 " , " 已完成 " , " 已完成 " , " 已提交 " , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:21;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:183;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:184;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:14;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:17;src/main/java/vvpkassistant/pk/mapper/PkRecordDetailDao.java:15;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:47;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:75;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:18;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:34;src/main/java/vvpkassistant/pk/mapper/PkRecordDetailDao.java:14 " , " picked_reason:P0且覆盖PK主流程DAO, 先迁移可提前锁定筛选/排序语义风险。 | scope_adjusted:selectPkInfoByCondition归CMLR-070, fetchDetailPkDataWithId归CMLR-060, 避免重复迁移。 | scope_adjusted:checkIfUnfinishedPKExistsWithAnchor 同属跨表pk_record查询, 转交CMLR-060统一归位。 | review_initial:PK域静态注解SQL已迁移为Lambda default方法, 保留原条件与排序/分页语义。 | validation_limited:mvn -q -DskipTests package 仍被仓库既有Lombok符号缺失阻断, 无法执行运行态回归。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package; 回归 /pk/queryMyCanUsePkData、/pk/deletePkDataWithId、/pk/listUninvitedPublishedAnchorsByUserId、/pk/createPkRecord、/pk/singleRecord。 | evidence:PkInfoDao/PkRecordDao/PkRecordDetailDao 静态SQL方法已改为 default+Wrappers 实现。 | evidence:selectPkInfoByCondition 与跨表明细项按拆分保留到 CMLR-070/CMLR-060。 | risk:medium pk_time 字段历史为字符串,时间比较与数据库函数差异需在联调环境复核。 | done_at:2026-02-08 "
" CMLR-060 " , " P0 " , " 5 " , " backend " , " 修复跨表归属并新增 SignInRecordDao " , " 将 UserDao 中跨表 SQL 迁移到正确 Mapper, 新增 SignInRecord 实体与 Dao, 迁移明细查询到 PkRecordDetailDao。 " , " 新增 `SignInRecord`+`SignInRecordDao` 并接入;`UserDao` 不再承载 `pk_record` 与 `sign_in_records` SQL; 详情查询归位到 `PkRecordDetailDao`。 " , " AUTOSERVER " , " 评审需确认实体@TableName、字段映射、Mapper 扫描路径与事务边界正确。 " , " 执行签到链路、PK 详情链路、handlePkInfo 链路回归,确认依赖注入与事务无回归。 " , " 已完成 " , " 已完成 " , " 已完成 " , " 已提交 " , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:22;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:91;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:93;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:137;src/main/java/vvpkassistant/User/model/SignInRecord.java:1;src/main/java/vvpkassistant/User/mapper/SignInRecordDao.java:15;src/main/java/vvpkassistant/User/mapper/UserDao.java:10;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:43;src/main/java/vvpkassistant/controller/UserController.java:252;src/main/java/vvpkassistant/controller/UserController.java:270;src/main/java/vvpkassistant/controller/PkController.java:121;src/main/java/vvpkassistant/pk/service/PKServiceImpl.java:224 " , " picked_reason:已完成静态SQL迁移后优先处理跨表归位, 避免Mapper职责继续漂移。 | review_initial:新增 SignInRecord+SignInRecordDao, 并将 UserDao 中 pk_record/sign_in_records 跨表方法全部迁出。 | validation_limited:mvn -q -DskipTests package 仍因仓库既有Lombok符号缺失失败, 未能执行可运行回归。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package; 回归 /user/signIn、/user/checkSignStatus、/user/handlePkInfo、/pk/fetchDetailPkDataWithId。 | evidence:UserController 已改调 recordDao.findCreatedPk/getMyGuestPkList 与 signInRecordDao.signIn/checkSignStatus。 | evidence:PkController 明细查询已归位 detailDao.queryDetail; PKServiceImpl 未完成记录检查改调 PkRecordDao。 | risk:medium 日期写入从数据库CURDATE改为Asia/Shanghai本地日期, 需在生产时区配置下验证一致性。 | done_at:2026-02-08 "
" CMLR-070 " , " P0 " , " 6 " , " backend " , " 动态查询 selectPkInfoByCondition 等价迁移 " , " 将 `selectPkInfoByCondition` 迁移为 Lambda 条件拼装并保留原排序语义,必要处使用 `last` 保序。 " , " 在相同输入下,迁移前后结果集数量、顺序、关键字段完全一致;覆盖 condition 为空/有值、有无 userId 两类场景。 " , " AUTOSERVER " , " 评审需检查 every condition 分支、排序表达式与 SQL 注入风险控制。 " , " 执行首页筛选、主播 ID 脱敏、置顶排序回归;输出前后结果对比记录。 " , " 已完成 " , " 已完成 " , " 已完成 " , " 已提交 " , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:23;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:189;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:196;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:14;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:16;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:59;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:112;src/main/java/vvpkassistant/pk/service/PKServiceImpl.java:162 " , " picked_reason:跨表归位已完成,当前可独立处理动态筛选与排序保序风险。 | review_initial:selectPkInfoByCondition 已改为 Lambda 条件拼装,保留 sex/coin/country/pkTime/type 分支与 invite_status=0 过滤。 | validation_limited:mvn -q -DskipTests package 因仓库既有Lombok符号缺失失败, 无法执行真实结果集对比。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package; 回归 /pk/pkList 在 condition 为空/有值、含/不含 userId 场景并核对顺序。 | evidence:排序通过 wrapper.last 保留 pin_expire_time + pin_create_time + id 组合语义。 | evidence:新增 asMap/asLong/asInteger 做条件值兼容解析,未知/非法值安全忽略。 | risk:medium 条件值类型异常时采用忽略策略,需业务确认是否应转为参数错误。 | done_at:2026-02-08 "
" CMLR-080 " , " P0 " , " 7 " , " backend " , " 完成编译与分层自动化测试 " , " 完成全量编译,并为改造影响的 Controller/DAO 补齐最低成功+失败用例,确保可持续回归。 " , " `mvn clean test` 通过;涉及改造的每个 Controller 至少 1 个成功 + 1 个失败/校验用例;关键 DAO 有等价查询测试。 " , " AUTOSERVER " , " 测试需覆盖分页、幂等、非法参数、空结果等分支;失败断言使用稳定错误码/消息。 " , " 回归前后测试结果可追溯(命令+结果),新增测试不得依赖脆弱时间窗口。 " , " 未开始 " , " 未开始 " , " 未开始 " , " 未 提交" , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:24;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:148;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:199;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:236" , " "
" CMLR-080 " , " P0 " , " 7 " , " backend " , " 完成编译与分层自动化测试 " , " 完成全量编译,并为改造影响的 Controller/DAO 补齐最低成功+失败用例,确保可持续回归。 " , " `mvn clean test` 通过;涉及改造的每个 Controller 至少 1 个成功 + 1 个失败/校验用例;关键 DAO 有等价查询测试。 " , " AUTOSERVER " , " 测试需覆盖分页、幂等、非法参数、空结果等分支;失败断言使用稳定错误码/消息。 " , " 回归前后测试结果可追溯(命令+结果),新增测试不得依赖脆弱时间窗口。 " , " 已完成 " , " 已完成 " , " 已完成 " , " 已 提交" , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:24;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:148;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:199;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:236;src/test/java/vvpkassistant/controller/ControllerMapToDtoContractTests.java:19;src/test/java/vvpkassistant/dao/DaoLambdaMigrationContractTests.java:18 " , " picked_reason:P0测试门槛用于收敛已完成改造, 先补契约测试并固定失败原因。 | review_initial:补充控制器与DAO迁移契约测试, 覆盖Map->DTO与注解SQL迁移约束。 | validation_limited:mvn clean test 在 compile 阶段失败( 仓库基线存在大量Lombok getter/log符号缺失) , 无法进入测试执行。 | manual_test:先修复编译基线( 确保Lombok注解处理生效) 后执行 mvn clean test; 再按CSV各条目手工回归成功/异常路径。 | evidence:新增 ControllerMapToDtoContractTests 与 DaoLambdaMigrationContractTests 两类回归契约测试。 | evidence:已实际执行 mvn clean test 并记录失败原因与受影响模块。 | risk:high 自动化测试无法运行,当前仅有静态与代码级验证。 | done_at:2026-02-08 "
" CMLR-090 " , " P0 " , " 8 " , " both " , " 核心链路端到端回归 " , " 围绕分页、置顶、邀请状态、主播 ID 脱敏、签到幂等等关键路径执行联调回归,确认接口输出完全兼容。 " , " 关键路径回归清单全部通过;至少覆盖 10 条核心接口用例并完成字段级比对;无阻断级差异。 " , " AUTOE2E " , " 联调前固定测试数据与时间窗口,避免误判;接口对比需包含状态码与响应字段。 " , " 增加并发与边界复测(重复邀请、重复签到、置顶过期边界),确认无行为漂移。 " , " 未开始 " , " 未开始 " , " 未开始 " , " 未提交 " , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:25;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:146;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:197;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:367 " , " "
" CMLR-100 " , " P1 " , " 8.1 " , " both " , " 非改造模块冒烟回归 " , " 对 FunctionConfig/File/OTP 三个无 Map 改造模块执行冒烟,确保全局扫描与参数绑定未受影响。 " , " `getAllConfig/updateConfigValue`、文件上传、OTP 获取各至少 1 成功 + 1 异常路径通过;返回结构与历史一致。 " , " AUTOE2E " , " 检查 Mapper 扫描、全局配置与 multipart 绑定是否因改造受影响。 " , " 回归覆盖配置更新可见性、空文件上传、密钥异常等边界。 " , " 未开始 " , " 未开始 " , " 未开始 " , " 未提交 " , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:305;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:329;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:352 " , " "
" CMLR-110 " , " P2 " , " 9 " , " backend " , " 输出迁移映射与兼容性说明 " , " 沉淀旧注解方法到新 Lambda 实现的映射表与兼容性结论,作为审计与后续维护依据。 " , " 形成可提交文档, 至少包含方法映射、风险点、回滚策略、兼容性结论四部分; refs 可追溯到代码位置。 " , " AUTOSERVER " , " 文档评审要求“可审计、可定位、可回滚”,禁止仅描述结论不附证据。 " , " 发布前复核文档与实际代码一致性,抽查不少于 5 条映射记录。 " , " 未开始 " , " 未开始 " , " 未开始 " , " 未提交 " , " " , " plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:26;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:364;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:370 " , " "