diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysLoginLogDao.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysLoginLogDao.java index 2d5fdfd..8842a87 100644 --- a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysLoginLogDao.java +++ b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/dao/SysLoginLogDao.java @@ -4,15 +4,22 @@ import cn.novalon.manage.sys.infrastructure.db.entity.SysLoginLogEntity; import org.springframework.data.r2dbc.repository.R2dbcRepository; import org.springframework.stereotype.Repository; import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; import java.time.LocalDateTime; @Repository public interface SysLoginLogDao extends R2dbcRepository { + Flux findByUsername(String username); + Flux findByUsernameOrderByLoginTimeDesc(String username); Flux findByLoginTimeBetweenOrderByLoginTimeDesc(LocalDateTime startTime, LocalDateTime endTime); Flux findAllByOrderByLoginTimeDesc(); + + Mono count(); + + Mono countByUsername(String username); } diff --git a/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysLoginLogRepository.java b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysLoginLogRepository.java new file mode 100644 index 0000000..ab2ac2b --- /dev/null +++ b/novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/infrastructure/db/repository/SysLoginLogRepository.java @@ -0,0 +1,70 @@ +package cn.novalon.manage.sys.infrastructure.db.repository; + +import cn.novalon.manage.sys.core.domain.SysLoginLog; +import cn.novalon.manage.sys.infrastructure.db.converter.SysLoginLogConverter; +import cn.novalon.manage.sys.infrastructure.db.dao.SysLoginLogDao; +import cn.novalon.manage.sys.infrastructure.db.entity.SysLoginLogEntity; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.time.LocalDateTime; + +@Repository +public class SysLoginLogRepository { + + private final SysLoginLogDao dao; + private final SysLoginLogConverter converter; + + public SysLoginLogRepository(SysLoginLogDao dao, SysLoginLogConverter converter) { + this.dao = dao; + this.converter = converter; + } + + public Mono findById(Long id) { + return dao.findById(id) + .map(converter::toDomain); + } + + public Mono save(SysLoginLog sysLoginLog) { + return dao.save(converter.toEntity(sysLoginLog)) + .map(converter::toDomain); + } + + public Mono deleteById(Long id) { + return dao.deleteById(id); + } + + public Flux findAll() { + return dao.findAll() + .map(converter::toDomain); + } + + public Flux findByUsername(String username) { + return dao.findByUsername(username) + .map(converter::toDomain); + } + + public Flux findByUsernameOrderByLoginTimeDesc(String username) { + return dao.findByUsernameOrderByLoginTimeDesc(username) + .map(converter::toDomain); + } + + public Flux findByLoginTimeBetweenOrderByLoginTimeDesc(LocalDateTime startTime, LocalDateTime endTime) { + return dao.findByLoginTimeBetweenOrderByLoginTimeDesc(startTime, endTime) + .map(converter::toDomain); + } + + public Flux findAllByOrderByLoginTimeDesc() { + return dao.findAllByOrderByLoginTimeDesc() + .map(converter::toDomain); + } + + public Mono countByUsername(String username) { + return dao.countByUsername(username); + } + + public Mono count() { + return dao.count(); + } +}