Package io.meeds.wallet.reward.dao
Interface RewardDAO
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<WalletRewardEntity,,Long> org.springframework.data.jpa.repository.JpaRepository<WalletRewardEntity,,Long> org.springframework.data.repository.ListCrudRepository<WalletRewardEntity,,Long> org.springframework.data.repository.ListPagingAndSortingRepository<WalletRewardEntity,,Long> org.springframework.data.repository.PagingAndSortingRepository<WalletRewardEntity,,Long> org.springframework.data.repository.query.QueryByExampleExecutor<WalletRewardEntity>,org.springframework.data.repository.Repository<WalletRewardEntity,Long>
@Component
public interface RewardDAO
extends org.springframework.data.jpa.repository.JpaRepository<WalletRewardEntity,Long>
-
Method Summary
Modifier and TypeMethodDescriptiondoublecountWalletRewardEntitiesByIdentityId(long identityId) countWalletRewardsPointsByPeriodIdAndStatus(long periodId, boolean isValid) voiddeleteRewardsByPeriodId(long periodId) findRankById(long id, long periodId) findRewardByIdentityIdAndPeriodId(long identityId, long periodId) findRewardsByPeriodId(long periodId) findWalletRewardEntitiesByIdentityId(long identityId, org.springframework.data.domain.Pageable pageable) org.springframework.data.domain.Page<WalletRewardEntity> findWalletRewardsByPeriodId(long periodId, String status, org.springframework.data.domain.Pageable pageable) org.springframework.data.domain.Page<WalletRewardEntity> findWalletRewardsByPeriodIdAndIdentityIds(long periodId, List<Long> identityIds, String status, org.springframework.data.domain.Pageable pageable) voidreplaceRewardTransactions(String oldHash, String newHash) Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findRewardsByPeriodId
@Query(" SELECT rw FROM Reward rw WHERE rw.period.id = :periodId\n") List<WalletRewardEntity> findRewardsByPeriodId(@Param("periodId") long periodId) -
findWalletRewardsByPeriodId
@Query(" SELECT rw\n FROM Reward rw\n LEFT JOIN WalletTransaction te ON rw.transactionHash = te.hash\n WHERE rw.period.id = :periodId\n AND (\n :status = \'ALL\'\n OR (:status = \'INELIGIBLE\' AND rw.tokensSent <= 0 AND rw.tokensToSend <= 0)\n OR (:status = \'VALID\' AND rw.tokensSent > 0 AND te.isSuccess = true)\n OR (:status = \'ESTIMATED\' AND rw.tokensToSend > 0 AND rw.tokensSent <= 0)\n OR (:status = \'FAILED\' AND rw.transactionHash IS NOT NULL AND te.isPending = false AND te.isSuccess = false)\n )\n") org.springframework.data.domain.Page<WalletRewardEntity> findWalletRewardsByPeriodId(@Param("periodId") long periodId, @Param("status") String status, org.springframework.data.domain.Pageable pageable) -
findWalletRewardsByPeriodIdAndIdentityIds
@Query(" SELECT rw\n FROM Reward rw\n LEFT JOIN WalletTransaction te ON rw.transactionHash = te.hash\n WHERE rw.period.id = :periodId\n AND (rw.identityId IN :identityIds)\n AND (\n :status = \'ALL\'\n OR (:status = \'INELIGIBLE\' AND rw.tokensSent <= 0 AND rw.tokensToSend <= 0)\n OR (:status = \'VALID\' AND rw.tokensSent > 0 AND te.isSuccess = true)\n OR (:status = \'ESTIMATED\' AND rw.tokensToSend > 0 AND rw.tokensSent <= 0)\n OR (:status = \'FAILED\' AND rw.transactionHash IS NOT NULL AND te.isPending = false AND te.isSuccess = false)\n )\n") org.springframework.data.domain.Page<WalletRewardEntity> findWalletRewardsByPeriodIdAndIdentityIds(@Param("periodId") long periodId, @Param("identityIds") List<Long> identityIds, @Param("status") String status, org.springframework.data.domain.Pageable pageable) -
countWalletRewardsPointsByPeriodIdAndStatus
@Query(" SELECT SUM(rw.points) FROM Reward rw WHERE rw.period.id = :periodId AND\n (:isValid = TRUE AND (rw.tokensSent > 0 OR rw.tokensToSend > 0) OR :isValid = FALSE AND (rw.tokensSent <= 0 AND rw.tokensToSend <= 0))\n") Double countWalletRewardsPointsByPeriodIdAndStatus(@Param("periodId") long periodId, @Param("isValid") boolean isValid) -
findWalletRewardEntitiesByIdentityId
@Query(" SELECT rw FROM Reward rw JOIN rw.period WHERE rw.identityId = :identityId ORDER BY rw.period.startTime DESC, rw.period.endTime ASC\n") List<WalletRewardEntity> findWalletRewardEntitiesByIdentityId(@Param("identityId") long identityId, org.springframework.data.domain.Pageable pageable) -
countWalletRewardEntitiesByIdentityId
double countWalletRewardEntitiesByIdentityId(long identityId) -
findRewardByIdentityIdAndPeriodId
@Query(" SELECT rw FROM Reward rw WHERE rw.identityId = :identityId AND rw.period.id = :periodId\n") List<WalletRewardEntity> findRewardByIdentityIdAndPeriodId(@Param("identityId") long identityId, @Param("periodId") long periodId) -
replaceRewardTransactions
-
findRankById
@Query(" SELECT COUNT(*) + 1 AS reward_rank\n FROM Reward rw\n WHERE rw.period.id = :periodId\n AND rw.points > (\n SELECT rw2.points\n FROM Reward rw2\n WHERE rw2.id = :id\n )\n") Integer findRankById(@Param("id") long id, @Param("periodId") long periodId) -
deleteRewardsByPeriodId
@Modifying @Query("DELETE FROM Reward wr WHERE wr.period.id = :periodId\n") void deleteRewardsByPeriodId(@Param("periodId") long periodId)
-