11package dev .felnull .pointed .teams .manager .reward .impl ;
22
33import dev .felnull .pointed .Pointed ;
4+ import dev .felnull .pointed .core .database .Db ;
45import dev .felnull .pointed .core .database .Names ;
56import dev .felnull .pointed .teams .manager .reward .RankingService ;
67import dev .felnull .pointed .teams .manager .reward .RewardAdminService ;
@@ -763,7 +764,7 @@ public boolean rewardExists(long rewardId) {
763764
764765 // ==== 存在確認(トランザクション版・接続使い回し)====
765766 public boolean rewardExists (Connection con , long rewardId ) throws SQLException {
766- final String sql = "SELECT 1 FROM rewards WHERE id = ? LIMIT 1" ;
767+ final String sql = "SELECT 1 FROM " + Names . t ( " rewards" ) + " WHERE id = ? LIMIT 1" ;
767768 try (PreparedStatement ps = con .prepareStatement (sql )) {
768769 ps .setLong (1 , rewardId );
769770 try (ResultSet rs = ps .executeQuery ()) {
@@ -774,7 +775,7 @@ public boolean rewardExists(Connection con, long rewardId) throws SQLException {
774775
775776 // もし名前で唯一ならこっちも(任意)
776777 public boolean rewardExistsByName (Connection con , String name ) throws SQLException {
777- final String sql = "SELECT 1 FROM rewards WHERE name = ? LIMIT 1" ;
778+ final String sql = "SELECT 1 FROM " + Names . t ( " rewards" ) + " WHERE name = ? LIMIT 1" ;
778779 try (PreparedStatement ps = con .prepareStatement (sql )) {
779780 ps .setString (1 , name );
780781 try (ResultSet rs = ps .executeQuery ()) {
@@ -783,4 +784,22 @@ public boolean rewardExistsByName(Connection con, String name) throws SQLExcepti
783784 }
784785 }
785786
787+ @ Override
788+ public boolean hasEverDistributedRewardToPlayer (
789+ long playerSubjectId ,
790+ int rewardId
791+ ) throws SQLException {
792+ Connection con = Db .get ().getConnection ();
793+ final String sql =
794+ "SELECT 1 FROM " + Names .t ("reward_dispatch_log" ) +
795+ " WHERE player_subject_id = ? AND reward_id = ? LIMIT 1" ;
796+ try (PreparedStatement ps = con .prepareStatement (sql )) {
797+ ps .setLong (1 , playerSubjectId );
798+ ps .setInt (2 , rewardId );
799+ try (ResultSet rs = ps .executeQuery ()) {
800+ return rs .next ();
801+ }
802+ }
803+ }
804+
786805}
0 commit comments