From 5840a880e340ed9ac2998a3b5aad2535fab9a6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Sat, 14 Mar 2026 10:29:23 +0800 Subject: [PATCH] refactor: migrate SysUserMessage to manage-notify module --- .../db/converter/SysUserMessageConverter.java | 2 +- .../repository/SysUserMessageRepository.java | 4 +- .../notify}/core/domain/SysUserMessage.java | 8 +-- .../repository/ISysUserMessageRepository.java | 12 +--- .../core/service/ISysUserMessageService.java | 14 ---- .../service/impl/SysUserMessageService.java | 69 ------------------- .../message/SysUserMessageHandler.java | 55 --------------- 7 files changed, 7 insertions(+), 157 deletions(-) rename novalon-manage-api/{manage-sys/src/main/java/cn/novalon/manage/sys => manage-notify/src/main/java/cn/novalon/manage/notify}/core/domain/SysUserMessage.java (90%) rename novalon-manage-api/{manage-sys/src/main/java/cn/novalon/manage/sys => manage-notify/src/main/java/cn/novalon/manage/notify}/core/repository/ISysUserMessageRepository.java (73%) delete mode 100644 novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/ISysUserMessageService.java delete mode 100644 novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/impl/SysUserMessageService.java delete mode 100644 novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/handler/message/SysUserMessageHandler.java diff --git a/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/converter/SysUserMessageConverter.java b/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/converter/SysUserMessageConverter.java index 02bf9ce..f2311ed 100644 --- a/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/converter/SysUserMessageConverter.java +++ b/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/converter/SysUserMessageConverter.java @@ -1,6 +1,6 @@ package cn.novalon.manage.db.converter; -import cn.novalon.manage.sys.core.domain.SysUserMessage; +import cn.novalon.manage.notify.core.domain.SysUserMessage; import cn.novalon.manage.db.entity.SysUserMessageEntity; import org.springframework.stereotype.Component; diff --git a/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/repository/SysUserMessageRepository.java b/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/repository/SysUserMessageRepository.java index 8821be7..dddbbb9 100644 --- a/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/repository/SysUserMessageRepository.java +++ b/novalon-manage-api/manage-db/src/main/java/cn/novalon/manage/db/repository/SysUserMessageRepository.java @@ -1,7 +1,7 @@ package cn.novalon.manage.db.repository; -import cn.novalon.manage.sys.core.domain.SysUserMessage; -import cn.novalon.manage.sys.core.repository.ISysUserMessageRepository; +import cn.novalon.manage.notify.core.domain.SysUserMessage; +import cn.novalon.manage.notify.core.repository.ISysUserMessageRepository; import cn.novalon.manage.db.converter.SysUserMessageConverter; import cn.novalon.manage.db.entity.SysUserMessageEntity; import cn.novalon.manage.db.dao.SysUserMessageDao; diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/domain/SysUserMessage.java b/novalon-manage-api/manage-notify/src/main/java/cn/novalon/manage/notify/core/domain/SysUserMessage.java similarity index 90% rename from novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/domain/SysUserMessage.java rename to novalon-manage-api/manage-notify/src/main/java/cn/novalon/manage/notify/core/domain/SysUserMessage.java index f32a8e9..35bc18f 100644 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/domain/SysUserMessage.java +++ b/novalon-manage-api/manage-notify/src/main/java/cn/novalon/manage/notify/core/domain/SysUserMessage.java @@ -1,13 +1,7 @@ -package cn.novalon.manage.sys.core.domain; +package cn.novalon.manage.notify.core.domain; import java.time.LocalDateTime; -/** - * 用户消息领域对象 - * - * @author 张翔 - * @date 2026-03-13 - */ public class SysUserMessage { private Long id; diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/repository/ISysUserMessageRepository.java b/novalon-manage-api/manage-notify/src/main/java/cn/novalon/manage/notify/core/repository/ISysUserMessageRepository.java similarity index 73% rename from novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/repository/ISysUserMessageRepository.java rename to novalon-manage-api/manage-notify/src/main/java/cn/novalon/manage/notify/core/repository/ISysUserMessageRepository.java index 51019e0..6b274f0 100644 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/repository/ISysUserMessageRepository.java +++ b/novalon-manage-api/manage-notify/src/main/java/cn/novalon/manage/notify/core/repository/ISysUserMessageRepository.java @@ -1,15 +1,9 @@ -package cn.novalon.manage.sys.core.repository; +package cn.novalon.manage.notify.core.repository; -import cn.novalon.manage.sys.core.domain.SysUserMessage; +import cn.novalon.manage.notify.core.domain.SysUserMessage; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -/** - * 用户消息仓储接口 - * - * @author 张翔 - * @date 2026-03-13 - */ public interface ISysUserMessageRepository { Flux findByUserIdOrderByCreateTimeDesc(Long userId); @@ -23,4 +17,4 @@ public interface ISysUserMessageRepository { Mono findById(Long id); Mono deleteById(Long id); -} \ No newline at end of file +} diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/ISysUserMessageService.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/ISysUserMessageService.java deleted file mode 100644 index d27e612..0000000 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/ISysUserMessageService.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.novalon.manage.sys.core.service; - -import cn.novalon.manage.sys.core.domain.SysUserMessage; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -public interface ISysUserMessageService { - Flux findByUserId(Long userId); - Flux findByUserIdAndIsRead(Long userId, String isRead); - Mono countUnread(Long userId); - Mono save(SysUserMessage message); - Mono markAsRead(Long id); - Mono deleteById(Long id); -} diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/impl/SysUserMessageService.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/impl/SysUserMessageService.java deleted file mode 100644 index dfd9a4d..0000000 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/core/service/impl/SysUserMessageService.java +++ /dev/null @@ -1,69 +0,0 @@ -package cn.novalon.manage.sys.core.service.impl; - -import cn.novalon.manage.sys.core.domain.SysUserMessage; -import cn.novalon.manage.sys.core.repository.ISysUserMessageRepository; -import cn.novalon.manage.sys.core.service.ISysUserMessageService; -import cn.novalon.manage.sys.core.service.IWebSocketService; -import org.springframework.stereotype.Service; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -/** - * 用户消息服务实现类 - * - * @author 张翔 - * @date 2026-03-14 - */ -@Service -public class SysUserMessageService implements ISysUserMessageService { - - private final ISysUserMessageRepository repository; - private final IWebSocketService webSocketService; - - public SysUserMessageService(ISysUserMessageRepository repository, - IWebSocketService webSocketService) { - this.repository = repository; - this.webSocketService = webSocketService; - } - - @Override - public Flux findByUserId(Long userId) { - return repository.findByUserIdOrderByCreateTimeDesc(userId); - } - - @Override - public Flux findByUserIdAndIsRead(Long userId, String isRead) { - return repository.findByUserIdAndIsReadOrderByCreateTimeDesc(userId, isRead); - } - - @Override - public Mono countUnread(Long userId) { - return repository.countByUserIdAndIsRead(userId, "0"); - } - - @Override - public Mono save(SysUserMessage message) { - return repository.save(message) - .flatMap(savedMessage -> { - return webSocketService.notifyNewMessage( - savedMessage.getUserId(), - savedMessage.getTitle(), - savedMessage.getContent()).thenReturn(savedMessage); - }); - } - - @Override - public Mono markAsRead(Long id) { - return repository.findById(id) - .flatMap(entity -> { - entity.setIsRead("1"); - return repository.save(entity); - }) - .then(); - } - - @Override - public Mono deleteById(Long id) { - return repository.deleteById(id); - } -} diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/handler/message/SysUserMessageHandler.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/handler/message/SysUserMessageHandler.java deleted file mode 100644 index ba4fce2..0000000 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/handler/message/SysUserMessageHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.novalon.manage.sys.handler.message; - -import cn.novalon.manage.sys.core.domain.SysUserMessage; -import cn.novalon.manage.sys.core.service.ISysUserMessageService; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Component; -import org.springframework.web.reactive.function.server.ServerRequest; -import org.springframework.web.reactive.function.server.ServerResponse; -import reactor.core.publisher.Mono; - -@Component -public class SysUserMessageHandler { - - private final ISysUserMessageService messageService; - - public SysUserMessageHandler(ISysUserMessageService messageService) { - this.messageService = messageService; - } - - public Mono getMessagesByUser(ServerRequest request) { - Long userId = Long.valueOf(request.pathVariable("userId")); - return ServerResponse.ok() - .body(messageService.findByUserId(userId), SysUserMessage.class); - } - - public Mono getUnreadCount(ServerRequest request) { - Long userId = Long.valueOf(request.pathVariable("userId")); - return messageService.countUnread(userId) - .flatMap(count -> ServerResponse.ok().bodyValue(count)); - } - - public Mono getUnreadList(ServerRequest request) { - Long userId = Long.valueOf(request.pathVariable("userId")); - return ServerResponse.ok() - .body(messageService.findByUserIdAndIsRead(userId, "0"), SysUserMessage.class); - } - - public Mono createMessage(ServerRequest request) { - return request.bodyToMono(SysUserMessage.class) - .flatMap(messageService::save) - .flatMap(message -> ServerResponse.status(HttpStatus.CREATED).bodyValue(message)); - } - - public Mono markAsRead(ServerRequest request) { - Long id = Long.valueOf(request.pathVariable("id")); - return messageService.markAsRead(id) - .then(ServerResponse.ok().build()); - } - - public Mono deleteMessage(ServerRequest request) { - Long id = Long.valueOf(request.pathVariable("id")); - return messageService.deleteById(id) - .then(ServerResponse.noContent().build()); - } -} \ No newline at end of file