diff --git a/src/main/java/app/repositories/AnnonceRepository.java b/src/main/java/app/repositories/AnnonceRepository.java index f990b21..3008887 100644 --- a/src/main/java/app/repositories/AnnonceRepository.java +++ b/src/main/java/app/repositories/AnnonceRepository.java @@ -8,17 +8,17 @@ import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; public interface AnnonceRepository extends PagingAndSortingRepository { - @Query(value = "select n from Annonce n where n.type like 'news' and n.deleted = false order by n.id desc") + @Query(value = "select n from Annonce n where n.type = 'news' and n.deleted = false order by n.id desc") Page getNews(Pageable pageable); - @Query(value = "select n from Annonce n where n.type like 'reason4play' and n.deleted = false order by n.id desc") + @Query(value = "select n from Annonce n where n.type = 'reason4play' and n.deleted = false order by n.id desc") Page getAnnonce(Pageable pageable); - @Query(value = "select n from Annonce n where n.uniq like :uniq and n.deleted = false") + @Query(value = "select n from Annonce n where n.uniq = :uniq and n.deleted = false") Annonce getAnnonceByUniq(@Param(value = "uniq") String uniq); void save(Annonce annonce); - @Query(value = "update Annonce n set n.deleted = true where n.uniq like :uniq") + @Query(value = "update Annonce n set n.deleted = true where n.uniq = :uniq") void delete(@Param(value = "uniq") String uniq); } diff --git a/src/main/java/app/repositories/GametimeRepository.java b/src/main/java/app/repositories/GametimeRepository.java index a2a4d7f..be4c358 100644 --- a/src/main/java/app/repositories/GametimeRepository.java +++ b/src/main/java/app/repositories/GametimeRepository.java @@ -9,13 +9,13 @@ import java.util.List; public interface GametimeRepository extends PagingAndSortingRepository { - @Query(value = "select g from Gametime g where g.player_name like :player_name order by g.id desc limit 1") + @Query(value = "select g from Gametime g where g.player_name = :player_name order by g.id desc limit 1") Gametime searchGameTimeByPlayerName(@Param("player_name") String player_name); @Query(value = "select g from Gametime g where g.account_id = :account_id order by g.id desc limit 1") Gametime searchGametimeByAccountId(@Param("account_id") Long account_id); - @Query(value = "select g from Gametime g where g.steam_id like :steam2 order by g.id desc limit 1") + @Query(value = "select g from Gametime g where g.steam_id = :steam2 order by g.id desc limit 1") Gametime searchGametimeBySteam2(@Param("steam2") String steam2); @Query(value = "select g.steam_id from Gametime g where g.connect_ip in (select gg.connect_ip from Gametime gg where gg.account_id = :account_id and gg.connect_ip not like '10.%' group by gg.connect_ip, gg.id order by gg.id) group by g.steam_id") diff --git a/src/main/java/app/repositories/MessageRepository.java b/src/main/java/app/repositories/MessageRepository.java index 3594d6b..241ec92 100644 --- a/src/main/java/app/repositories/MessageRepository.java +++ b/src/main/java/app/repositories/MessageRepository.java @@ -13,8 +13,9 @@ public interface MessageRepository extends PagingAndSortingRepository= :begin_date) and " + "(:end_date is null or :end_date >= m.utime) and " + - "(:message_contain is null or m.message like :message_contain) and " + - "(:server_id is null or m.server_id like :server_id) order by m.id desc ") + "(:server_id is null or m.server_id = :server_id) and " + + "(:message_contain is null or m.message like :message_contain) " + + "order by m.id desc ") Page getMessages(Pageable pageable, @Param(value = "account_ids_non_exists") Boolean account_ids_non_exists, @Param(value = "account_ids") Iterable account_ids, diff --git a/src/main/java/app/repositories/ReportRepository.java b/src/main/java/app/repositories/ReportRepository.java index f587732..9e21343 100644 --- a/src/main/java/app/repositories/ReportRepository.java +++ b/src/main/java/app/repositories/ReportRepository.java @@ -12,11 +12,11 @@ import java.util.List; public interface ReportRepository extends PagingAndSortingRepository { @Query(value = "select r from Report r where " + "(:ids_is_empty = true or r in :ids) and " + - "(:authors_ne = true or (position(r.a_steam2 in :authors) > 0 or position(r.r_steam2 in :authors) > 0)) and " + - "(:reportes_ne = true or position(r.r_steam2 in :reportes) > 0) and " + "(:begin_date is null or r.utime >= :begin_date) and " + "(:end_date is null or :end_date >= r.utime) and " + - "(:server_id is null or r.srv like :server_id) order by r.id desc" + "(:authors_ne = true or (position(r.a_steam2 in :authors) > 0 or position(r.r_steam2 in :authors) > 0)) and " + + "(:reportes_ne = true or position(r.r_steam2 in :reportes) > 0) and " + + "(:server_id is null or r.srv = :server_id) order by r.id desc" ) Page getReports(Pageable pageable, @Param("ids_is_empty") boolean idsIsEmpty, diff --git a/src/main/java/app/services/ServerService.java b/src/main/java/app/services/ServerService.java index 88d7b5b..02beaf2 100644 --- a/src/main/java/app/services/ServerService.java +++ b/src/main/java/app/services/ServerService.java @@ -67,7 +67,7 @@ public class ServerService { public List> getServerAvgOnline(StatisticRange statisticRange) { return jdbcTemplate.query("select round(avg(player_count)) as a, server_id from servers_online " + - "where player_count!=0 and server_id not like 'srv12' and " + + "where player_count!=0 and server_id != 'srv12' and " + "utime > extract(epoch from date_trunc(?,now())) " + "group by server_id order by a desc", new Object[]{StatisticRange.cast(statisticRange)}, diff --git a/src/main/java/app/services/db/DetectService.java b/src/main/java/app/services/db/DetectService.java index 3c6af96..4d2f52c 100644 --- a/src/main/java/app/services/db/DetectService.java +++ b/src/main/java/app/services/db/DetectService.java @@ -47,9 +47,9 @@ public class DetectService { } public List> getAttachedDiscordAccountPerSteam(SteamID steamID) { - return jdbcTemplate_ro.query("SELECT discord_id, extract(epoch from timestamp) as utime, active FROM steam2discord WHERE steam_id LIKE ? GROUP BY discord_id, active, timestamp", + return jdbcTemplate_ro.query("SELECT discord_id, extract(epoch from timestamp) as utime, active FROM steam2discord WHERE steam_id = ? GROUP BY discord_id, active, timestamp", new Object[]{ steamID.steam2 }, (rs, n) -> Map.of("discord_id", rs.getObject("discord_id"), "utime", rs.getObject("utime"), "active", rs.getObject("active"))); } - //SELECT CONCAT(SUBSTRING_INDEX(connect_ip,'.', 1),'.',SUBSTRING_INDEX(SUBSTRING_INDEX(connect_ip,'.', 2),'.',-1),'.',SUBSTRING_INDEX(SUBSTRING_INDEX(connect_ip,'.', 3),'.',-1),'.','%') FROM all_users_con_2 WHERE steam_id LIKE 'STEAM_0:1:768781968'; + //SELECT CONCAT(SUBSTRING_INDEX(connect_ip,'.', 1),'.',SUBSTRING_INDEX(SUBSTRING_INDEX(connect_ip,'.', 2),'.',-1),'.',SUBSTRING_INDEX(SUBSTRING_INDEX(connect_ip,'.', 3),'.',-1),'.','%') FROM all_users_con_2 WHERE steam_id = 'STEAM_0:1:768781968'; } diff --git a/src/main/java/app/services/db/DiscordAuthService.java b/src/main/java/app/services/db/DiscordAuthService.java index 65f642c..fc08d48 100644 --- a/src/main/java/app/services/db/DiscordAuthService.java +++ b/src/main/java/app/services/db/DiscordAuthService.java @@ -46,7 +46,7 @@ public class DiscordAuthService { } public boolean removeSteamIDofDiscordID(SteamID steamID) { - return jdbcTemplate.update("UPDATE steam2discord SET active = 0 WHERE steam_id LIKE ?", + return jdbcTemplate.update("UPDATE steam2discord SET active = 0 WHERE steam_id = ?", steamID.steam2) > 0; } diff --git a/src/main/java/app/services/db/DonateService.java b/src/main/java/app/services/db/DonateService.java index c12842f..f2acf3c 100644 --- a/src/main/java/app/services/db/DonateService.java +++ b/src/main/java/app/services/db/DonateService.java @@ -119,7 +119,7 @@ public class DonateService { } public List getDonateStatistic(SteamID steamID) { - return jdbcTemplate.query("SELECT *, extract(epoch from timestamp) as utime FROM gived_vip WHERE steam2 LIKE ?", + return jdbcTemplate.query("SELECT *, extract(epoch from timestamp) as utime FROM gived_vip WHERE steam2 = ?", new Object[]{steamID.steam2}, (rs, n) -> new DonateStat(rs)); } diff --git a/src/main/java/app/services/db/FreeVIPService.java b/src/main/java/app/services/db/FreeVIPService.java index b2c517b..8305914 100644 --- a/src/main/java/app/services/db/FreeVIPService.java +++ b/src/main/java/app/services/db/FreeVIPService.java @@ -46,7 +46,7 @@ public class FreeVIPService{ } public Long getLastGivedFreeVIP(SteamID steamID) { - return jdbcTemplate.query("SELECT extract(epoch from date) as u_time FROM free_vip WHERE steam3 LIKE ? ORDER BY date DESC", + return jdbcTemplate.query("SELECT extract(epoch from date) as u_time FROM free_vip WHERE steam3 = ? ORDER BY date DESC", new Object[]{ steamID.steam2 }, (rs, n) -> rs.getLong("u_time")) .stream().findFirst().orElse(0L); diff --git a/src/main/java/app/services/db/GraphService.java b/src/main/java/app/services/db/GraphService.java index c508e4f..072d4bc 100644 --- a/src/main/java/app/services/db/GraphService.java +++ b/src/main/java/app/services/db/GraphService.java @@ -52,7 +52,7 @@ public class GraphService { public List getUsertimeOnPeriod(SearchFilter searchFilter) { final String sql = "select date_trunc(:delta, timestamp) AS ts, :delta as period, sum(connect_duration) as value, srv_id from user_connections " + "where (:account_ids_empty = true or account_id in (:account_ids)) and connect_duration != 0 and timestamp between :begindate and :enddate " + - "and (:srv_id like '' or srv_id like :srv_id) " + + "and (:srv_id = '' or srv_id = :srv_id) " + "group by ts, srv_id " + "order by ts asc"; MapSqlParameterSource map = new MapSqlParameterSource(); @@ -73,7 +73,7 @@ public class GraphService { " where timestamp between :begindate and :enddate " + " and (:account_ids_empty = true or account_id in (:account_ids))" + " and connect_duration > 300 " + - " and (:srv_id like '' or srv_id like :srv_id) " + + " and (:srv_id = '' or srv_id = :srv_id) " + " group by ts, srv_id, account_id) as acc " + "group by acc.ts, acc.period, acc.srv_id " + "order by acc.ts asc"; diff --git a/src/main/java/app/services/db/KillfeedService.java b/src/main/java/app/services/db/KillfeedService.java index 534b6ce..218f266 100644 --- a/src/main/java/app/services/db/KillfeedService.java +++ b/src/main/java/app/services/db/KillfeedService.java @@ -94,7 +94,7 @@ public class KillfeedService { offset }, (rs, n) -> new HypeWeapons(rs)); - /*Long count = (Long) createNativeQuery("SELECT COUNT(weapon_index) FROM user_killfeed WHERE attacker_id = ? AND server_id like ? GROUP BY weapon_index") + /*Long count = (Long) createNativeQuery("SELECT COUNT(weapon_index) FROM user_killfeed WHERE attacker_id = ? AND server_id = ? GROUP BY weapon_index") .setParameter(1, steamID.account_id) .setParameter(2, server_id==null||server_id.isEmpty()?"%":server_id) .getSingleResult();*/ diff --git a/src/main/java/app/services/db/MessageService.java b/src/main/java/app/services/db/MessageService.java index 9662777..ec796c4 100644 --- a/src/main/java/app/services/db/MessageService.java +++ b/src/main/java/app/services/db/MessageService.java @@ -22,7 +22,7 @@ public class MessageService { public Map getAllMessages(String server_id, String filter, long offset, int limit) { List result = jdbcTemplate.query("SELECT account_id,utime,message,server_id " + "FROM user_messages " + - "WHERE (? =0 or server_id like ?) AND message LIKE ? " + + "WHERE (? = 0 or server_id = ?) AND message LIKE ? " + "ORDER BY user_messages.id DESC LIMIT ? OFFSET ?", new Object[]{ server_id == null || server_id.isEmpty() ? 0 : 1, @@ -34,7 +34,7 @@ public class MessageService { Long count = jdbcTemplate.query("SELECT COUNT(*) as c " + "FROM user_messages " + - "WHERE (? =0 or server_id like ?) AND message LIKE ?", + "WHERE (? = 0 or server_id = ?) AND message LIKE ?", new Object[]{ server_id == null || server_id.isEmpty() ? 0 : 1, server_id==null||server_id.isEmpty()?"%":server_id, @@ -48,7 +48,7 @@ public class MessageService { public Map getAccountMessages(SteamID steamID, String server_id, String filter, int offset, int limit) { List result = jdbcTemplate.query("SELECT account_id,utime,message,server_id " + "FROM user_messages " + - "WHERE account_id = ? AND (? =0 or server_id like ?) AND message LIKE ? " + + "WHERE account_id = ? AND (? = 0 or server_id = ?) AND message LIKE ? " + "ORDER BY user_messages.id DESC LIMIT ? OFFSET ?", new Object[]{ steamID.account_id, @@ -61,7 +61,7 @@ public class MessageService { Long count = jdbcTemplate.query("SELECT COUNT(*) as c " + "FROM user_messages " + - "WHERE account_id = ? AND (? =0 or server_id like ?) AND message LIKE ?", + "WHERE account_id = ? AND (? = 0 or server_id = ?) AND message LIKE ?", new Object[]{ steamID.account_id, server_id == null || server_id.isEmpty() ? 0 : 1, @@ -76,7 +76,7 @@ public class MessageService { public Long getMessageCount(SteamID steamID, String server_id) { return jdbcTemplate.query("SELECT COUNT(*) as c " + "FROM user_messages " + - "WHERE account_id = ? AND (? =0 or server_id like ?)", + "WHERE account_id = ? AND (? = 0 or server_id = ?)", new Object[]{ steamID.account_id, server_id == null || server_id.isEmpty() ? 0 : 1, @@ -88,9 +88,9 @@ public class MessageService { public List> getTopMessage(StatisticRange statisticRange) { return jdbcTemplate.query("select message, count(*) as c from user_messages\n" + " where utime > extract(epoch from date_trunc(?, now()))\n" + - " and message not ilike 'menu'\n" + - " and message not ilike 'vty.'\n" + - " and message not ilike 'меню'\n" + + " and message != 'menu'\n" + + " and message != 'vty.'\n" + + " and message != 'меню'\n" + "group by message order by c desc limit ?", new Object[]{StatisticRange.cast(statisticRange), 15}, (rs, n) -> Map.of("message", rs.getString("message"), "count", rs.getLong("c"))); diff --git a/src/main/java/app/services/db/PermitionService.java b/src/main/java/app/services/db/PermitionService.java index 689a813..7db61ac 100644 --- a/src/main/java/app/services/db/PermitionService.java +++ b/src/main/java/app/services/db/PermitionService.java @@ -27,7 +27,7 @@ public class PermitionService { private final Logger logger = LoggerFactory.getLogger(PermitionService.class); public Permition getPermition(SteamID steamID){ - return jdbcTemplate.query("SELECT id, flags, immunity, status, amount, extract(epoch from reg_date) as utime FROM sm_admins WHERE identity LIKE ?", + return jdbcTemplate.query("SELECT id, flags, immunity, status, amount, extract(epoch from reg_date) as utime FROM sm_admins WHERE identity = ?", new Object[]{steamID.steam2}, (rs, n) -> new Permition(rs)) .stream().findFirst().orElse(null); @@ -52,13 +52,13 @@ public class PermitionService { public boolean removePermition(SteamID steamID, String status) { if (getPermition(steamID) == null) return true; logger.info("Remove permition with: {}", steamID.steam2); - return jdbcTemplate.update("DELETE FROM sm_admins WHERE identity = ? AND status LIKE ?", + return jdbcTemplate.update("DELETE FROM sm_admins WHERE identity = ? AND status = ?", steamID.steam2, status) > 0; } public int extendPermition(SteamID steamID, Integer amount, String status, Long previousTimestamp) { logger.info("Extend permition to {} on amount {}", steamID.steam2, amount); - return jdbcTemplate.update("UPDATE sm_admins SET amount=amount+? WHERE identity LIKE ? AND status LIKE ?", + return jdbcTemplate.update("UPDATE sm_admins SET amount=amount+? WHERE identity = ? AND status = ?", amount, steamID.steam2, status); } @@ -81,12 +81,12 @@ public class PermitionService { public AdminInfo getAdminInfo(SteamID steamID) { //Так слушай меня ваня, ты ебанько ибо перепутал тут steam2 и steam3, d в бд steam3 хотя по факту там 2 - List result = jdbcTemplate.query("SELECT id, vk_id, discord_id, discord_name, steam3, permition FROM bot_admins WHERE steam3 LIKE ?", + List result = jdbcTemplate.query("SELECT id, vk_id, discord_id, discord_name, steam3, permition FROM bot_admins WHERE steam3 = ?", new Object[]{steamID.steam2}, (rs, n) -> new AdminInfo(rs)); //fix если модератор снят делаем бан пельменю - if(result.isEmpty()) result = jdbcTemplate.query("SELECT id, vk_id, discord_id, discord_name, steam3, permition FROM bot_admins WHERE steam3 LIKE ?", + if(result.isEmpty()) result = jdbcTemplate.query("SELECT id, vk_id, discord_id, discord_name, steam3, permition FROM bot_admins WHERE steam3 = ?", new Object[]{"STEAM_0:0:90763498"}, (rs, n) -> new AdminInfo(rs)); diff --git a/src/main/java/app/services/db/PromoCodeService.java b/src/main/java/app/services/db/PromoCodeService.java index 2c938d3..d8122be 100644 --- a/src/main/java/app/services/db/PromoCodeService.java +++ b/src/main/java/app/services/db/PromoCodeService.java @@ -65,7 +65,7 @@ public class PromoCodeService { public PromoCode getPromoCode(String code) { String sanitCode = sanitazesCode(code); - return jdbcTemplate.query("SELECT * FROM gived_promocode WHERE code LIKE ?", + return jdbcTemplate.query("SELECT * FROM gived_promocode WHERE code = ?", new Object[]{sanitCode}, (rs, n) -> new PromoCode(rs)).stream().findFirst().orElse(null); } @@ -77,7 +77,7 @@ public class PromoCodeService { } private Timestamp getLastedAcceptFromUser(SteamID steamID) { - return jdbcTemplate.query("SELECT accepted_timestamp FROM gived_promocode WHERE accepted_steam64 LIKE ? ORDER BY gived_promocode.id DESC LIMIT 1", + return jdbcTemplate.query("SELECT accepted_timestamp FROM gived_promocode WHERE accepted_steam64 = ? ORDER BY gived_promocode.id DESC LIMIT 1", new Object[]{ String.valueOf(steamID.steam64) }, (rs, n) -> rs.getTimestamp("accepted_timestamp")).stream().findFirst().orElse(null); } diff --git a/src/main/java/app/services/db/ReportService.java b/src/main/java/app/services/db/ReportService.java index fea3bce..d031239 100644 --- a/src/main/java/app/services/db/ReportService.java +++ b/src/main/java/app/services/db/ReportService.java @@ -88,7 +88,7 @@ public class ReportService { player_count, reportType.ordinal()); - return jdbcTemplate_rw.query("SELECT id FROM user_reports WHERE utime = ? AND srv LIKE ? AND online = ?", new Object[]{utime, server_id, player_count}, (rs, n) -> rs.getLong("id")).get(0); + return jdbcTemplate_rw.query("SELECT id FROM user_reports WHERE utime = ? AND srv = ? AND online = ?", new Object[]{utime, server_id, player_count}, (rs, n) -> rs.getLong("id")).get(0); } public int addReportAction(int report_id, String action) { @@ -96,23 +96,23 @@ public class ReportService { } public long getCreatedReportsCount(SteamID steamID) { - return jdbcTemplate_ro.query("SELECT COUNT(*) as c FROM user_reports WHERE a_steam2 LIKE ?", new Object[]{steamID.steam2}, (rs,n) -> rs.getLong("c")).get(0); + return jdbcTemplate_ro.query("SELECT COUNT(*) as c FROM user_reports WHERE a_steam2 = ?", new Object[]{steamID.steam2}, (rs,n) -> rs.getLong("c")).get(0); } public long getReportsCount(SteamID steamID) { - return jdbcTemplate_ro.query("SELECT COUNT(*) as c FROM user_reports WHERE r_steam2 LIKE ?", new Object[]{steamID.steam2}, (rs,n) -> rs.getLong("c")).get(0); + return jdbcTemplate_ro.query("SELECT COUNT(*) as c FROM user_reports WHERE r_steam2 = ?", new Object[]{steamID.steam2}, (rs,n) -> rs.getLong("c")).get(0); } public long getCreatedSelfReportsCount(SteamID steamID) { - return jdbcTemplate_ro.query("SELECT COUNT(*) as c FROM user_reports WHERE a_steam2 LIKE ? AND r_steam2 IS NULL", new Object[]{steamID.steam2}, (rs,n) -> rs.getLong("c")).get(0); + return jdbcTemplate_ro.query("SELECT COUNT(*) as c FROM user_reports WHERE a_steam2 = ? AND r_steam2 IS NULL", new Object[]{steamID.steam2}, (rs,n) -> rs.getLong("c")).get(0); } public List getCreatedReports(SteamID steamID) { - return jdbcTemplate_ro.query("SELECT * FROM user_reports WHERE a_steam2 LIKE ?", new Object[]{steamID.steam2}, (rs,n) -> new Report(rs)); + return jdbcTemplate_ro.query("SELECT * FROM user_reports WHERE a_steam2 = ?", new Object[]{steamID.steam2}, (rs,n) -> new Report(rs)); } public List getReports(SteamID steamID) { - return jdbcTemplate_ro.query("SELECT * FROM user_reports WHERE r_steam2 LIKE ?", new Object[]{steamID.steam2}, (rs,n) -> new Report(rs)); + return jdbcTemplate_ro.query("SELECT * FROM user_reports WHERE r_steam2 = ?", new Object[]{steamID.steam2}, (rs,n) -> new Report(rs)); } public long createReport(ReportType reportType, PlayerProfile current_user, PlayerProfile reported_user, String text, String cluster) { diff --git a/src/main/java/app/services/db/VIPService.java b/src/main/java/app/services/db/VIPService.java index 9c8ad35..acc92b9 100644 --- a/src/main/java/app/services/db/VIPService.java +++ b/src/main/java/app/services/db/VIPService.java @@ -65,25 +65,25 @@ public class VIPService { // Список ид из дискорда кто имеет платную випку public List getUsersDiscordWithActiveVIP() { - return jdbcTemplate.query("SELECT discord_id FROM sm_admins INNER JOIN steam2discord ON sm_admins.status LIKE ? AND (sm_admins.comment LIKE ? OR sm_admins.comment LIKE ?) AND sm_admins.identity = steam2discord.steam_id", + return jdbcTemplate.query("SELECT discord_id FROM sm_admins INNER JOIN steam2discord ON sm_admins.status = ? AND (sm_admins.comment = ? OR sm_admins.comment = ?) AND sm_admins.identity = steam2discord.steam_id", new Object[]{"VIP", "Donate.User", "f13bot.User"}, (rs, n) -> rs.getLong("discord_id")); } // Список ид из дискорда кто имеет бесплатную випку public List getUsersDiscordWithActiveFreeVIP() { - return jdbcTemplate.query("SELECT discord_id FROM sm_admins INNER JOIN steam2discord ON sm_admins.status LIKE ? AND sm_admins.comment LIKE ? AND sm_admins.identity = steam2discord.steam_id", + return jdbcTemplate.query("SELECT discord_id FROM sm_admins INNER JOIN steam2discord ON sm_admins.status = ? AND sm_admins.comment = ? AND sm_admins.identity = steam2discord.steam_id", new Object[]{"VIP", "f13bot.FreeVIP"}, (rs, n) -> rs.getLong("discord_id")); } // Транзакция, проверка и удаление випок подшедших к концу public int removeEndedVIPs() { - List steamid2remove = jdbcTemplate.query("SELECT identity FROM sm_admins WHERE NOT extract(epoch from reg_date) = 0 AND amount != 0 AND status LIKE ? AND ((extract(epoch from now()) - extract(epoch from reg_date)) > amount)", + List steamid2remove = jdbcTemplate.query("SELECT identity FROM sm_admins WHERE NOT extract(epoch from reg_date) = 0 AND amount != 0 AND status = ? AND ((extract(epoch from now()) - extract(epoch from reg_date)) > amount)", new Object[]{"VIP"}, (rs, n) -> SteamIDConverter.getSteamID(rs.getString("identity"))); - int removed_vips = jdbcTemplate.update("DELETE FROM sm_admins WHERE NOT extract(epoch from reg_date) = 0 AND amount != 0 AND status LIKE ? AND ((extract(epoch from now()) - extract(epoch from reg_date)) > amount)", + int removed_vips = jdbcTemplate.update("DELETE FROM sm_admins WHERE NOT extract(epoch from reg_date) = 0 AND amount != 0 AND status = ? AND ((extract(epoch from now()) - extract(epoch from reg_date)) > amount)", "VIP"); steamid2remove.forEach(steamid -> { diff --git a/src/main/java/app/updates/CountriesUpdater.java b/src/main/java/app/updates/CountriesUpdater.java index 0475dd7..2782019 100644 --- a/src/main/java/app/updates/CountriesUpdater.java +++ b/src/main/java/app/updates/CountriesUpdater.java @@ -26,7 +26,7 @@ public class CountriesUpdater extends BaseUpdater{ @Value("${backend.updates.countries}") private boolean update; - private final String countries_in_current_year = "SELECT connect_ip FROM user_connections WHERE connection_type LIKE 'connect' AND timestamp > date_trunc('YEAR',now())::DATE group by connect_ip"; + private final String countries_in_current_year = "SELECT connect_ip FROM user_connections WHERE connection_type = 'connect' AND timestamp > date_trunc('YEAR',now())::DATE group by connect_ip"; @Autowired public CountriesUpdater(Stats stats, diff --git a/src/main/java/app/updates/OnlineUpdater.java b/src/main/java/app/updates/OnlineUpdater.java index 46fbe22..ab43620 100644 --- a/src/main/java/app/updates/OnlineUpdater.java +++ b/src/main/java/app/updates/OnlineUpdater.java @@ -72,7 +72,7 @@ public class OnlineUpdater extends BaseUpdater { //todo abstract on all public List getStatsOnPerDay(String server_id) { return jdbcTemplate_ro.query("SELECT avg(player_count) as player_count, cast(to_timestamp(utime) as date) as fulldate, utime as ts " + - "FROM servers_online WHERE player_count != 0 and (? =0 or server_id like ?) " + + "FROM servers_online WHERE player_count != 0 and (? = 0 or server_id = ?) " + "GROUP BY cast(to_timestamp(utime) as date) / ? ORDER BY ts ASC", new Object[]{ server_id == null || server_id.isEmpty() ? 0: 1, @@ -83,10 +83,10 @@ public class OnlineUpdater extends BaseUpdater { public List getStatsOnPerFiveMinutes(String server_id) { return jdbcTemplate_ro.query("SELECT avg(player_count) as player_count, cast(to_timestamp(utime) as date) as fulldate, utime as ts " + - "FROM servers_online WHERE player_count != 0 and (? =0 or server_id like ?) " + + "FROM servers_online WHERE player_count != 0 and (? =0 or server_id = ?) " + "GROUP BY cast(to_timestamp(utime) as date) / ? ORDER BY ts ASC", new Object[]{ - server_id == null || server_id.isEmpty() ? 0: 1, + server_id == null || server_id.isEmpty() ? 0 : 1, server_id == null || server_id.isEmpty() ? "%": server_id, PerFiveMinutesStats.period}, (rs, rowNum) -> new PerFiveMinutesStats(rs)); @@ -107,7 +107,7 @@ public class OnlineUpdater extends BaseUpdater { SELECT round(sum(s.player_count))::int as player_count, s.ts as fl FROM ( SELECT avg(player_count) as player_count, to_timestamp(utime)::date as ts FROM servers_online -WHERE (utime >= ?) and (? = 0 or server_id like ?) and player_count != 0 +WHERE (utime >= ?) and (? = 0 or server_id = ?) and player_count != 0 GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ? """, new Object[]{ @@ -124,7 +124,7 @@ GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ? return jdbcTemplate_ro.query("select round(sum(sub.player_count))::int as player_count, sub.ts as fulldate from ("+ "SELECT round(avg(player_count), 4) as player_count, date_bin('"+minutes+" minutes'"+",to_timestamp(utime)::timestamp, '2001-01-01 00:02:30') as ts "+ "FROM servers_online " + -"WHERE utime >= ? and (? = 0 or server_id like ?) "+ +"WHERE utime >= ? and (? = 0 or server_id = ?) "+ "GROUP BY ts, server_id) sub GROUP BY sub.ts ", new Object[]{ utime, @@ -235,7 +235,7 @@ GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ? } //stats per 5 = '500' minutes - //SELECT avg(player_count) as player_count, FROM_UNIXTIME(utime) as fulldate, utime as ts FROM servers_online WHERE server_id like 'srv5' and FROM_UNIXTIME(utime) > CAST(DATE_FORMAT(NOW() ,'%Y-%m-26') as DATE) GROUP BY FROM_UNIXTIME(utime) div 500 ORDER BY ts ASC; + //SELECT avg(player_count) as player_count, FROM_UNIXTIME(utime) as fulldate, utime as ts FROM servers_online WHERE server_id = 'srv5' and FROM_UNIXTIME(utime) > CAST(DATE_FORMAT(NOW() ,'%Y-%m-26') as DATE) GROUP BY FROM_UNIXTIME(utime) div 500 ORDER BY ts ASC; public class PerFiveMinutesStats extends PerPeriodStats { private static final int period = 500; PerFiveMinutesStats(ResultSet rs) throws SQLException { @@ -244,7 +244,7 @@ GROUP BY ts, server_id) as s group by s.ts order by s.ts desc limit ? } - //SELECT avg(player_count) as player_count, FROM_UNIXTIME(utime) as fulldate, utime as ts FROM servers_online WHERE player_count != 0 and server_id like 'srv5' GROUP BY FROM_UNIXTIME(utime) div 800000 ORDER BY ts ASC; + //SELECT avg(player_count) as player_count, FROM_UNIXTIME(utime) as fulldate, utime as ts FROM servers_online WHERE player_count != 0 and server_id = 'srv5' GROUP BY FROM_UNIXTIME(utime) div 800000 ORDER BY ts ASC; public class PerDayStats extends PerPeriodStats { private static final int period = 800000; PerDayStats(ResultSet rs) throws SQLException { diff --git a/src/main/java/app/updates/UniqueUpdater.java b/src/main/java/app/updates/UniqueUpdater.java index 0800d06..2d3b45d 100644 --- a/src/main/java/app/updates/UniqueUpdater.java +++ b/src/main/java/app/updates/UniqueUpdater.java @@ -26,10 +26,10 @@ public class UniqueUpdater extends BaseUpdater{ @Qualifier("jt_ro") private JdbcTemplate jdbcTemplate; - private final String query_total = "SELECT account_id FROM user_connections WHERE srv_id like '%s' AND connection_type LIKE 'disconnect' AND connect_duration > 300 group by account_id"; - private final String query_day = "SELECT account_id FROM user_connections WHERE srv_id like '%s' AND connection_type LIKE 'disconnect' AND connect_duration > 300 AND timestamp > date_trunc('DAY',now())::DATE group by account_id"; - private final String query_month = "SELECT account_id FROM user_connections WHERE srv_id like '%s' AND connection_type LIKE 'disconnect' AND connect_duration > 300 AND timestamp > date_trunc('MONTH',now())::DATE group by account_id"; - private final String query_year = "SELECT account_id FROM user_connections WHERE srv_id like '%s' AND connection_type LIKE 'disconnect' AND connect_duration > 300 AND timestamp > date_trunc('YEAR',now())::DATE group by account_id"; + private final String query_total = "SELECT account_id FROM user_connections WHERE srv_id = '%s' AND connection_type = 'disconnect' AND connect_duration > 300 group by account_id"; + private final String query_day = "SELECT account_id FROM user_connections WHERE srv_id = '%s' AND connection_type = 'disconnect' AND connect_duration > 300 AND timestamp > date_trunc('DAY',now())::DATE group by account_id"; + private final String query_month = "SELECT account_id FROM user_connections WHERE srv_id = '%s' AND connection_type = 'disconnect' AND connect_duration > 300 AND timestamp > date_trunc('MONTH',now())::DATE group by account_id"; + private final String query_year = "SELECT account_id FROM user_connections WHERE srv_id = '%s' AND connection_type = 'disconnect' AND connect_duration > 300 AND timestamp > date_trunc('YEAR',now())::DATE group by account_id"; private final Logger logger = LoggerFactory.getLogger(UniqueUpdater.class); diff --git a/src/main/java/app/updates/VipCountUpdater.java b/src/main/java/app/updates/VipCountUpdater.java index a8aedfa..429d472 100644 --- a/src/main/java/app/updates/VipCountUpdater.java +++ b/src/main/java/app/updates/VipCountUpdater.java @@ -57,7 +57,7 @@ public class VipCountUpdater extends BaseUpdater{ public boolean UpdateVIPCount() { logger.info("Update current active VIP profiles"); - Long count = jdbcTemplate.query("SELECT COUNT(*) as count FROM sm_admins WHERE status LIKE 'VIP' AND (comment LIKE 'Donate.User' OR comment LIKE 'f13bot.User')", + Long count = jdbcTemplate.query("SELECT COUNT(*) as count FROM sm_admins WHERE status = 'VIP' AND (comment = 'Donate.User' OR comment = 'f13bot.User')", (rs, n) -> rs.getLong("count")).stream().findFirst().orElse(0L); stats.setVip_players(count); stats.getUpdates().merge("vip_count", Instant.now().getEpochSecond(), (x, y) -> y); @@ -66,7 +66,7 @@ public class VipCountUpdater extends BaseUpdater{ public boolean UpdateFreeVIPCount() { logger.info("Update current active FreeVIP profiles"); - Long count = jdbcTemplate.query("SELECT COUNT(*) as count FROM sm_admins WHERE status LIKE 'VIP' AND comment LIKE 'f13bot.FreeVIP'", + Long count = jdbcTemplate.query("SELECT COUNT(*) as count FROM sm_admins WHERE status = 'VIP' AND comment = 'f13bot.FreeVIP'", (rs, n) -> rs.getLong("count")).stream().findFirst().orElse(0L); stats.setFreevip_players(count); stats.getUpdates().merge("freevip_count", Instant.now().getEpochSecond(), (x, y) -> y);