From b69a8bc7932a2df05eca9d28f81fd09c71f7dba1 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Mon, 13 Jul 2026 14:24:00 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=A0=87=E8=AE=B0=E4=B8=BA=E5=B7=B2=E8=AF=BB=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SysMessageController.java | 27 ++++++++++++++++--- .../system/service/ISysMessageService.java | 18 +++++++++++++ .../service/impl/SysMessageServiceImpl.java | 26 ++++++++++++++++++ 3 files changed, 68 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMessageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMessageController.java index ba2e74a3e..83c98e4de 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMessageController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMessageController.java @@ -6,9 +6,7 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.vo.SysMessageBoxVo; import org.dromara.system.service.ISysMessageService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 消息记录控制器 @@ -31,4 +29,27 @@ public class SysMessageController extends BaseController { public R getBox() { return R.ok(messageService.queryMessageBox(LoginHelper.getUserId())); } + + /** + * 将指定单条消息标记为已读 + * + * @param messageId 消息主键ID + * @return 操作结果 + */ + @PutMapping("/{messageId}/read") + public R markMessageRead(@PathVariable Long messageId) { + return toAjax(messageService.readMessage(LoginHelper.getUserId(), messageId)); + } + + /** + * 将当前用户指定分类下所有未读消息标记为已读 + * + * @param category 消息分类标识 + * @return 操作结果 + */ + @PutMapping("/read/category/{category}") + public R markCategoryAllRead(@PathVariable String category) { + return toAjax(messageService.readAllMessages(LoginHelper.getUserId(), category)); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java index f53d51807..e4b59f4f0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMessageService.java @@ -21,6 +21,24 @@ public interface ISysMessageService { */ SysMessageBoxVo queryMessageBox(Long userId); + /** + * 将指定消息标记为已读 + * + * @param userId 当前登录用户ID + * @param messageId 待标记的消息主键ID + * @return 结果 + */ + boolean readMessage(Long userId, Long messageId); + + /** + * 将当前用户指定分类下所有未读消息标记为已读 + * + * @param userId 当前登录用户ID + * @param category 消息分类标识 + * @return 结果 + */ + boolean readAllMessages(Long userId, String category); + /** * 发送指定用户文本消息 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java index f4e3567bd..dd894781e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMessageServiceImpl.java @@ -81,6 +81,32 @@ public class SysMessageServiceImpl implements ISysMessageService, MessageService return box; } + /** + * 将指定消息标记为已读 + * + * @param userId 当前登录用户ID + * @param messageId 待标记的消息主键ID + * @return 结果 + */ + @Override + public boolean readMessage(Long userId, Long messageId) { + // TODO 自行实现单条消息标记已读业务逻辑 + return false; + } + + /** + * 将当前用户指定分类下所有未读消息标记为已读 + * + * @param userId 当前登录用户ID + * @param category 消息分类标识 + * @return 结果 + */ + @Override + public boolean readAllMessages(Long userId, String category) { + // TODO 自行实现全部消息批量标记已读业务逻辑 + return false; + } + /** * 发送指定用户文本消息 *