Files
pkAssistant/plan/2026-02-08_20-03-29-controller-map-baseline.md

81 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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<Object>` | `UserController.inputUserInfo -> VVRequester.loginApp -> UserDao.updateById` |
| UserController | `/user/loginWithPhoneNumber` | `code`,`inviterId(可选)` | `ResponseData<Object>` | `UserController.loginWithPhoneNumber -> VVRequester.queryPhoneNumber -> UserDao.queryWithPhoneNumber/insert` |
| UserController | `/user/queryMyAllPkData` | `userId`,`page`,`size` | `ResponseData<Object>` | `UserController.queryMyAllPkData -> PkInfoDao.queryAllPkData` |
| UserController | `/user/handlePkInfo` | `type`,`userId`,`page`,`size` | `ResponseData<Object>` | `UserController.handlePkInfo -> UserDao.findCreatedPk/getMyGuestPkList` |
| UserController | `/user/pkRecordDetail` | `id` | `ResponseData<Object>` | `UserController.pkRecordDetail -> PkRecordDetailDao.queryDetail` |
| UserController | `/user/pinToTop` | `articleId`,`pinExpireTime` | `ResponseData<Object>` | `UserController.pinToTop -> UserDao.selectById/updateById + PkInfoDao.updateById` |
| UserController | `/user/cancelPin` | `articleId` | `ResponseData<Object>` | `UserController.cancelPin -> UserDao.updateById + PkInfoDao.updateById` |
| UserController | `/user/pointsDetail` | `userId`,`page`,`size` | `ResponseData<Object>` | `UserController.pointsDetail -> CoinRecordsDao.fetchMyPointsData` |
| PkController | `/pk/pkList` | `page`,`size`,`condition`,`userId(可选)` | `ResponseData<Object>` | `PkController.pkList -> PKService.getPKList` |
| PkController | `/pk/queryMyCanUsePkData` | `userId` | `ResponseData<Object>` | `PkController.queryMyCanUsePkData -> PkInfoDao.queryCanUseData` |
| PkController | `/pk/pkInfoDetail` | `id`,`userId`,`from` | `ResponseData<Object>` | `PkController.pkInfoDetail -> PKService.pkInfoDetail` |
| PkController | `/pk/deletePkDataWithId` | `id` | `ResponseData<Object>` | `PkController.deletePkDataWithId -> PkInfoDao.deletePkDataWithId` |
| PkController | `/pk/fetchDetailPkDataWithId` | `id` | `ResponseData<Object>` | `PkController.fetchDetailPkDataWithId -> PkRecordDao.fetchDetailPkDataWithId` |
| PkController | `/pk/listUninvitedPublishedAnchorsByUserId` | `userId` | `ResponseData<Object>` | `PkController.listUninvitedPublishedAnchorsByUserId -> PkInfoDao.listUninvitedPublishedAnchorsByUserId` |
| AnchorsController | `/anchor/list` | `id` | `ResponseData<Object>` | `AnchorsController.myAnchorList -> AnchorsService.selectMyAnchor` |
| AnchorsController | `/anchor/deleteMyAnchor` | `id` | `ResponseData<Object>` | `AnchorsController.deleteMyAnchor -> AnchorsService.deleteMyAnchor` |
| SystemMessageController | `/systemMessage/list` | `page`,`size` | `ResponseData<Object>` | `SystemMessageController.messageList -> SystemMessageDao.messageList` |
| ChatController | `/chat/receiveImMessage` | 任意 JSONMap 宽松接收) | `Map<String,Object>` | `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 入参方法。