# Controller Map 入参改造基线(CMLR-000) ## 1. 基线范围与统计 - 目标 Controller: `UserController`、`PkController`、`AnchorsController`、`SystemMessageController`、`ChatController` - Map 入参接口总数: `18` - HTTP Method: 全部为 `POST` - 基线冻结日期: `2026-02-08` ## 2. Map 入参接口清单(URL/字段/返回类型/调用链) | Controller | URL | 入参字段(Map key) | 返回类型 | 主要调用链 | | --- | --- | --- | --- | --- | | UserController | `/user/inputUserInfo` | `code`,`id` | `ResponseData` | `UserController.inputUserInfo -> VVRequester.loginApp -> UserDao.updateById` | | UserController | `/user/loginWithPhoneNumber` | `code`,`inviterId(可选)` | `ResponseData` | `UserController.loginWithPhoneNumber -> VVRequester.queryPhoneNumber -> UserDao.queryWithPhoneNumber/insert` | | UserController | `/user/queryMyAllPkData` | `userId`,`page`,`size` | `ResponseData` | `UserController.queryMyAllPkData -> PkInfoDao.queryAllPkData` | | UserController | `/user/handlePkInfo` | `type`,`userId`,`page`,`size` | `ResponseData` | `UserController.handlePkInfo -> UserDao.findCreatedPk/getMyGuestPkList` | | UserController | `/user/pkRecordDetail` | `id` | `ResponseData` | `UserController.pkRecordDetail -> PkRecordDetailDao.queryDetail` | | UserController | `/user/pinToTop` | `articleId`,`pinExpireTime` | `ResponseData` | `UserController.pinToTop -> UserDao.selectById/updateById + PkInfoDao.updateById` | | UserController | `/user/cancelPin` | `articleId` | `ResponseData` | `UserController.cancelPin -> UserDao.updateById + PkInfoDao.updateById` | | UserController | `/user/pointsDetail` | `userId`,`page`,`size` | `ResponseData` | `UserController.pointsDetail -> CoinRecordsDao.fetchMyPointsData` | | PkController | `/pk/pkList` | `page`,`size`,`condition`,`userId(可选)` | `ResponseData` | `PkController.pkList -> PKService.getPKList` | | PkController | `/pk/queryMyCanUsePkData` | `userId` | `ResponseData` | `PkController.queryMyCanUsePkData -> PkInfoDao.queryCanUseData` | | PkController | `/pk/pkInfoDetail` | `id`,`userId`,`from` | `ResponseData` | `PkController.pkInfoDetail -> PKService.pkInfoDetail` | | PkController | `/pk/deletePkDataWithId` | `id` | `ResponseData` | `PkController.deletePkDataWithId -> PkInfoDao.deletePkDataWithId` | | PkController | `/pk/fetchDetailPkDataWithId` | `id` | `ResponseData` | `PkController.fetchDetailPkDataWithId -> PkRecordDao.fetchDetailPkDataWithId` | | PkController | `/pk/listUninvitedPublishedAnchorsByUserId` | `userId` | `ResponseData` | `PkController.listUninvitedPublishedAnchorsByUserId -> PkInfoDao.listUninvitedPublishedAnchorsByUserId` | | AnchorsController | `/anchor/list` | `id` | `ResponseData` | `AnchorsController.myAnchorList -> AnchorsService.selectMyAnchor` | | AnchorsController | `/anchor/deleteMyAnchor` | `id` | `ResponseData` | `AnchorsController.deleteMyAnchor -> AnchorsService.deleteMyAnchor` | | SystemMessageController | `/systemMessage/list` | `page`,`size` | `ResponseData` | `SystemMessageController.messageList -> SystemMessageDao.messageList` | | ChatController | `/chat/receiveImMessage` | 任意 JSON(Map 宽松接收) | `Map` | `ChatController.receiveImMessage -> 返回固定 code/content` | ## 3. 抽样 5 条请求-响应对照(可复现) > 说明:以下样本用于回归字段级比对。`BASE_URL` 默认 `http://127.0.0.1:8086`。 ### Case-01 `/user/queryMyAllPkData` ```bash curl -sS -X POST "$BASE_URL/user/queryMyAllPkData" \ -H "Content-Type: application/json" \ -d '{"userId":1,"page":0,"size":10}' ``` 期望:HTTP 200,顶层为 `ResponseData` 结构,`data` 为数组;数组元素包含原有 `PkInfoModel` 字段集合且保留 `isPin` 计算结果。 ### Case-02 `/pk/deletePkDataWithId` ```bash curl -sS -X POST "$BASE_URL/pk/deletePkDataWithId" \ -H "Content-Type: application/json" \ -d '{"id":123}' ``` 期望:HTTP 200;若目标处于置顶中,返回错误结构与文案 `"该信息在置顶中。如要删除清先取消置顶"`;否则成功返回空字符串。 ### Case-03 `/anchor/list` ```bash curl -sS -X POST "$BASE_URL/anchor/list" \ -H "Content-Type: application/json" \ -d '{"id":1}' ``` 期望:HTTP 200,`data` 为该用户主播列表;返回字段结构与当前 `AnchorsService.selectMyAnchor` 一致。 ### Case-04 `/systemMessage/list` ```bash curl -sS -X POST "$BASE_URL/systemMessage/list" \ -H "Content-Type: application/json" \ -d '{"page":0,"size":20}' ``` 期望:HTTP 200,`data` 为系统消息数组,分页偏移逻辑为 `page * size`。 ### Case-05 `/chat/receiveImMessage` ```bash curl -sS -X POST "$BASE_URL/chat/receiveImMessage" \ -H "Content-Type: application/json" \ -d '{"eventType":"im","payload":{"k":"v"},"unknownField":1}' ``` 期望:HTTP 200,返回固定结构 `{"code":200,"content":"success"}`,并保持对未知字段的宽松接收。 ## 4. 快速核验命令(接口数量) ```bash rg -n "Map<.*>\\s+\\w+\\)" src/main/java/vvpkassistant/controller/{UserController.java,PkController.java,AnchorsController.java,SystemMessageController.java,ChatController.java} ``` 期望:匹配到 `18` 个 Map 入参方法。