跳转至

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「鉴权说明」)
  • 响应结构Mapstatus/message/data,详见 index.md「响应结构与错误码 - 风格一」)

控制器内 try/catch 捕获 Exception 后返回 status=0, message="error", data=null(HTTP 状态仍 200)。


1. 发表评论

在指定消息下发表评论,支持回复(toUser/toUserId)。评论正文 content.contentfilterScript 把尖角括号 </> 替换为全角以过滤脚本。

  • 接口类型: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「响应结构与错误码 - 风格一」)。 dataComment 对象(含 idsenderIdmessageIdcontentcreateTimetoUsertoUserIdavatarread 等)。

成功示例

{
  "status": 1,
  "message": "ok",
  "data": {
    "id": "<评论id>",
    "messageId": "<消息id>",
    "senderId": "<发送人id>",
    "content": "赞",
    "createTime": "2026-08-04 12:00:00"
  }
}
失败示例
{ "status": 0, "message": "error" }


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

请求示例

DELETE /api/message/comment?accessToken=<token>&commentId=<cid>&messageId=<mid> HTTP/1.1

响应

结构Mapdata:字符串 "删除成功"

成功示例

{ "status": 1, "message": "ok", "data": "删除成功" }
失败示例
{ "status": 0, "message": "error" }


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)

请求示例

GET /api/message/comment/my/reply?accessToken=<token>&_currpage=1&_rowcount=20 HTTP/1.1

响应

结构MapdataDataPackage<Comment> 分页对象(含 datasrowCountlinesPerPagepageNo 等字段)。

成功示例

{
  "status": 1,
  "message": "ok",
  "data": {
    "datas": [
      { "id": "<评论id>", "content": "...", "avatar": "<URL>", "createTime": "..." }
    ],
    "rowCount": 35,
    "linesPerPage": 20,
    "pageNo": 1
  }
}
失败示例
{ "status": 0, "message": "error" }


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

请求示例

GET /api/message/comment/my/receive?accessToken=<token>&_currpage=1&_rowcount=20 HTTP/1.1

响应

结构MapdataDataPackage<Comment> 分页对象。

成功示例

{
  "status": 1,
  "message": "ok",
  "data": { "datas": [ { "id": "...", "content": "...", "avatar": "..." } ], "rowCount": 12, "linesPerPage": 20, "pageNo": 1 }
}
失败示例
{ "status": 0, "message": "error" }


5. 消息下的评论列表

messageId 分页查询该消息下的全部评论。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/api/message/comment(完整:{message-context}/api/message/comment
  • 鉴权:是
  • Tag:评论模块

请求参数

参数名 位置 类型 必填 说明
messageId query string 所属消息 id(经 ParamsTablemessageId
_currpage query int 页码,默认 1
_rowcount query int 每页条数,默认 30

请求示例

GET /api/message/comment?accessToken=<token>&messageId=<mid>&_currpage=1&_rowcount=30 HTTP/1.1

响应

结构MapdataDataPackage<Comment> 分页对象。

成功示例

{
  "status": 1,
  "message": "ok",
  "data": { "datas": [ { "id": "...", "content": "...", "senderId": "..." } ], "rowCount": 5, "linesPerPage": 30, "pageNo": 1 }
}
失败示例
{ "status": 0, "message": "error" }


6. 标记所有未读回复为已读

将当前登录用户收到的全部未读回复(Comment.read=false)批量标记为已读。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/api/message/comment/allRead(完整:{message-context}/api/message/comment/allRead
  • 鉴权:是
  • Tag:评论模块

请求参数

参数名 位置 类型 必填 说明
无显式参数;当前用户从 token 解析

请求示例

PUT /api/message/comment/allRead?accessToken=<token> HTTP/1.1

响应

结构Mapdatanull(不写入 data 字段)。

成功示例

{ "status": 1, "message": "ok" }
失败示例
{ "status": 0, "message": "error" }