CommentController(消息评论)¶
cn.myapps.message.comment.controller.CommentController — 消息/公告下的评论 CRUD 与查询。继承 BaseController<Comment>,类级 @Controller("message-comment-controller"),方法返回 Map<String, Object> 经 Jackson 序列化。
- 基址:
${myapps.context-path.message:}/api/message/comment(完整:{message-context}/api/message/comment) - Tag:评论模块
- 鉴权:是(需 accessToken;详见 index.md「鉴权说明」)
- 响应结构:
Map(status/message/data,详见 index.md「响应结构与错误码 - 风格一」)
控制器内
try/catch捕获Exception后返回status=0, message="error", data=null(HTTP 状态仍 200)。
1. 发表评论¶
在指定消息下发表评论,支持回复(toUser/toUserId)。评论正文 content.content 经 filterScript 把尖角括号 </> 替换为全角以过滤脚本。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/api/message/comment(完整:{message-context}/api/message/comment) - 鉴权:是
- Tag:评论模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| content.toUser | query/body | string | 否 | 被回复人名称 |
| content.toUserId | query/body | string | 否 | 被回复人 id |
| content.messageId | query/body | string | 否 | 所属消息 id |
| content.content | query/body | string | 否 | 评论正文(自动做尖角号过滤) |
参数经
ParamsTable.convertHTTP(request)收集,既可放在 query 也可放在 form body。控制器内部用getParams().getParameterAsString("content.xxx")取值。
请求示例¶
POST /api/message/comment?accessToken=<token>&content.messageId=<msgId>&content.content=赞&content.toUserId=<uid> HTTP/1.1
响应¶
结构:Map(见 index.md「响应结构与错误码 - 风格一」)。
data:Comment 对象(含 id、senderId、messageId、content、createTime、toUser、toUserId、avatar、read 等)。
成功示例:
{
"status": 1,
"message": "ok",
"data": {
"id": "<评论id>",
"messageId": "<消息id>",
"senderId": "<发送人id>",
"content": "赞",
"createTime": "2026-08-04 12:00:00"
}
}
2. 删除评论¶
按 commentId + messageId 删除一条评论;domainId 取自当前登录用户。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/api/message/comment(完整:{message-context}/api/message/comment) - 鉴权:是
- Tag:评论模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| commentId | query | string | 是 | 评论 id(@RequestParam) |
| messageId | query | string | 是 | 所属消息 id(@RequestParam) |
请求示例¶
响应¶
结构:Map。
data:字符串 "删除成功"。
成功示例:
失败示例:3. 我回复的评论¶
分页查询当前登录用户**作为回复者**发出的评论列表,并按 senderId 经 Feign(UserAPI.getUserById)回填每条评论发送人的 avatar。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/api/message/comment/my/reply(完整:{message-context}/api/message/comment/my/reply) - 鉴权:是
- Tag:评论模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| content | query | string | 否 | 关键字(按正文模糊匹配) |
| _currpage | query | int | 否 | 页码,默认 1(<=0 时取 1) |
| _rowcount | query | int | 否 | 每页条数,默认 30(<=0 时取 30) |
请求示例¶
响应¶
结构:Map。
data:DataPackage<Comment> 分页对象(含 datas、rowCount、linesPerPage、pageNo 等字段)。
成功示例:
{
"status": 1,
"message": "ok",
"data": {
"datas": [
{ "id": "<评论id>", "content": "...", "avatar": "<URL>", "createTime": "..." }
],
"rowCount": 35,
"linesPerPage": 20,
"pageNo": 1
}
}
4. 回复我的评论¶
分页查询**回复当前登录用户**的评论列表,发送人 avatar 同样经 Feign 回填。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/api/message/comment/my/receive(完整:{message-context}/api/message/comment/my/receive) - 鉴权:是
- Tag:评论模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| content | query | string | 否 | 关键字(按正文模糊匹配) |
| _currpage | query | int | 否 | 页码,默认 1 |
| _rowcount | query | int | 否 | 每页条数,默认 30 |
请求示例¶
响应¶
结构:Map。
data:DataPackage<Comment> 分页对象。
成功示例:
{
"status": 1,
"message": "ok",
"data": { "datas": [ { "id": "...", "content": "...", "avatar": "..." } ], "rowCount": 12, "linesPerPage": 20, "pageNo": 1 }
}
5. 消息下的评论列表¶
按 messageId 分页查询该消息下的全部评论。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/api/message/comment(完整:{message-context}/api/message/comment) - 鉴权:是
- Tag:评论模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| messageId | query | string | 否 | 所属消息 id(经 ParamsTable 取 messageId) |
| _currpage | query | int | 否 | 页码,默认 1 |
| _rowcount | query | int | 否 | 每页条数,默认 30 |
请求示例¶
响应¶
结构:Map。
data:DataPackage<Comment> 分页对象。
成功示例:
{
"status": 1,
"message": "ok",
"data": { "datas": [ { "id": "...", "content": "...", "senderId": "..." } ], "rowCount": 5, "linesPerPage": 30, "pageNo": 1 }
}
6. 标记所有未读回复为已读¶
将当前登录用户收到的全部未读回复(Comment.read=false)批量标记为已读。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/api/message/comment/allRead(完整:{message-context}/api/message/comment/allRead) - 鉴权:是
- Tag:评论模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| — | — | — | — | 无显式参数;当前用户从 token 解析 |
请求示例¶
响应¶
结构:Map。
data:null(不写入 data 字段)。
成功示例:
失败示例: