From 1a658e598e66591babd48937ee2eacdc78b4f1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Thu, 12 Mar 2026 07:42:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0SysUserMessageReposit?= =?UTF-8?q?ory=E6=95=B0=E6=8D=AE=E8=AE=BF=E9=97=AE=E5=B1=82~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/dao/SysUserMessageDao.java | 6 ++ .../repository/SysUserMessageRepository.java | 58 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysUserMessageRepository.java diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysUserMessageDao.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysUserMessageDao.java index 4694ef1..4afe975 100644 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysUserMessageDao.java +++ b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysUserMessageDao.java @@ -13,5 +13,11 @@ public interface SysUserMessageDao extends R2dbcRepository findByUserIdOrderByCreateTimeDesc(Long userId); + Flux findByDeletedAtIsNull(); + Mono countByUserIdAndIsRead(Long userId, String isRead); + + Mono countByDeletedAtIsNull(); + + Mono deleteByIdAndDeletedAtIsNull(Long id); } diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysUserMessageRepository.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysUserMessageRepository.java new file mode 100644 index 0000000..143e5e4 --- /dev/null +++ b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysUserMessageRepository.java @@ -0,0 +1,58 @@ +package cn.novalon.manage.sys.infrastructure.db.repository; + +import cn.novalon.manage.sys.core.domain.SysUserMessage; +import cn.novalon.manage.sys.infrastructure.db.converter.SysUserMessageConverter; +import cn.novalon.manage.sys.infrastructure.db.dao.SysUserMessageDao; +import cn.novalon.manage.sys.infrastructure.db.entity.SysUserMessageEntity; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@Repository +public class SysUserMessageRepository { + + private final SysUserMessageDao dao; + private final SysUserMessageConverter converter; + + public SysUserMessageRepository(SysUserMessageDao dao, SysUserMessageConverter converter) { + this.dao = dao; + this.converter = converter; + } + + public Mono findById(Long id) { + return dao.findById(id) + .map(converter::toDomain); + } + + public Mono save(SysUserMessage sysUserMessage) { + return dao.save(converter.toEntity(sysUserMessage)) + .map(converter::toDomain); + } + + public Mono deleteById(Long id) { + return dao.deleteById(id); + } + + public Flux findByUserIdAndIsReadOrderByCreateTimeDesc(Long userId, String isRead) { + return dao.findByUserIdAndIsReadOrderByCreateTimeDesc(userId, isRead) + .map(converter::toDomain); + } + + public Flux findByUserIdOrderByCreateTimeDesc(Long userId) { + return dao.findByUserIdOrderByCreateTimeDesc(userId) + .map(converter::toDomain); + } + + public Flux findAll() { + return dao.findByDeletedAtIsNull() + .map(converter::toDomain); + } + + public Mono countByUserIdAndIsRead(Long userId, String isRead) { + return dao.countByUserIdAndIsRead(userId, isRead); + } + + public Mono count() { + return dao.countByDeletedAtIsNull(); + } +}