From f244cf408b82486c42fd5c14d6cb77828eec6465 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Mon, 22 Apr 2019 14:15:47 +0200 Subject: [PATCH] Added Query to get Rankingplace of specific User --- .../bugageocaching/controller/Controller.java | 5 ++++ .../repositories/UserRepository.java | 25 ++++++++++++++----- src/main/resources/application.properties | 1 + 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 9cefc29..147aefa 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -396,6 +396,11 @@ public class Controller { return ResponseEntity.status(404).body("User was not found in the database"); } } + + @RequestMapping("/api/hello") + public ResponseEntity hello(@RequestParam String name){ + return ResponseEntity.status(200).body(userRepository.getRankingPlaceFromUser(name)); + } } diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java index 45e50ff..3de1e6e 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/UserRepository.java @@ -1,14 +1,9 @@ package hhn.labsw.bugageocaching.repositories; import hhn.labsw.bugageocaching.entities.User; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.repository.CrudRepository; - - import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; -import java.util.Collection; import java.util.List; public interface UserRepository extends CrudRepository { @@ -21,7 +16,25 @@ public interface UserRepository extends CrudRepository { "WHERE u.id = ui.user_id\n" + "AND u.id = ur.user_id\n" + "AND (ur.roles_id = 7 OR ur.roles_id = 8)\n" + - "order by ranking_points_sum DESC;", nativeQuery = true) + "order by ranking_points_sum DESC\n" + + "LIMIT 100;", nativeQuery = true) List getRankingList(); + @Query(value = "SELECT Rang\n" + + "From (\n" + + "\n" + + "SELECT ROW_NUMBER() over(order by INR.Ranglistenpunkte DESC) AS Rang, Name\n" + + "FROM (\n" + + " SELECT DISTINCT u.Email AS Name,\n" + + " ui.ranking_points_sum AS Ranglistenpunkte\n" + + " FROM user u,\n" + + " buga19geocaching.user_info ui,\n" + + " buga19geocaching.user_roles ur\n" + + " WHERE u.id = ui.user_id\n" + + " AND u.id = ur.user_id\n" + + " AND (ur.roles_id = 7 OR ur.roles_id = 8)\n" + + " order by ranking_points_sum DESC) as INR) as RN\n" + + "WHERE Name = ?1", nativeQuery = true) + int getRankingPlaceFromUser(String username); + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 71acd7a..87fb0b7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,5 +3,6 @@ spring.datasource.username=BuGa19GeocachingUser spring.datasource.password=GeocachingPw spring.jmx.default-domain=buga19geocaching spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +spring.jooq.sql-dialect=org.hibernate.dialect.MariaDBDialect spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true \ No newline at end of file