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 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

      @Modifying @Query("UPDATE Reward rw SET rw.transactionHash = :newHash WHERE rw.transactionHash = :oldHash\n") void replaceRewardTransactions(@Param("oldHash") String oldHash, @Param("newHash") String newHash)
    • 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)