feat: 添加SysUserMessageRepository数据访问层~

This commit is contained in:
张翔
2026-03-12 07:42:01 +08:00
parent 2bef606164
commit 1a658e598e
2 changed files with 64 additions and 0 deletions
@@ -13,5 +13,11 @@ public interface SysUserMessageDao extends R2dbcRepository<SysUserMessageEntity,
Flux<SysUserMessageEntity> findByUserIdOrderByCreateTimeDesc(Long userId);
Flux<SysUserMessageEntity> findByDeletedAtIsNull();
Mono<Long> countByUserIdAndIsRead(Long userId, String isRead);
Mono<Long> countByDeletedAtIsNull();
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
}
@@ -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<SysUserMessage> findById(Long id) {
return dao.findById(id)
.map(converter::toDomain);
}
public Mono<SysUserMessage> save(SysUserMessage sysUserMessage) {
return dao.save(converter.toEntity(sysUserMessage))
.map(converter::toDomain);
}
public Mono<Void> deleteById(Long id) {
return dao.deleteById(id);
}
public Flux<SysUserMessage> findByUserIdAndIsReadOrderByCreateTimeDesc(Long userId, String isRead) {
return dao.findByUserIdAndIsReadOrderByCreateTimeDesc(userId, isRead)
.map(converter::toDomain);
}
public Flux<SysUserMessage> findByUserIdOrderByCreateTimeDesc(Long userId) {
return dao.findByUserIdOrderByCreateTimeDesc(userId)
.map(converter::toDomain);
}
public Flux<SysUserMessage> findAll() {
return dao.findByDeletedAtIsNull()
.map(converter::toDomain);
}
public Mono<Long> countByUserIdAndIsRead(Long userId, String isRead) {
return dao.countByUserIdAndIsRead(userId, isRead);
}
public Mono<Long> count() {
return dao.countByDeletedAtIsNull();
}
}