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

81 lines
5.2 KiB
Markdown
Raw Normal View History

2026-02-08 20:08:43 +08:00
# 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 入参方法。