Added Query to get Rankingplace of specific User

This commit is contained in:
Maximilian Leopold 2019-04-22 14:15:47 +02:00
parent 76c426b252
commit f244cf408b
3 changed files with 25 additions and 6 deletions

View File

@ -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));
}
}

View File

@ -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<User, Integer> {
@ -21,7 +16,25 @@ public interface UserRepository extends CrudRepository<User, Integer> {
"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<Object[]> 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);
}

View File

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