fixed rankingPlace bug showing different rankings

This commit is contained in:
Michael 2019-05-27 16:50:55 +02:00
parent 93d4c664b9
commit f6e0b2826a

View File

@ -9,31 +9,54 @@ import java.util.List;
public interface UserRepository extends CrudRepository<User, Integer> {
User findByEmail(String email);
@Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" +
// @Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte\n" +
// "FROM user u,\n" +
// " user_info ui,\n" +
// " user_roles ur\n" +
// "WHERE u.id = ui.user_id\n" +
// "AND u.id = ur.user_id\n" +
// "order by ranking_points_sum DESC\n" +
// "LIMIT 10;", nativeQuery = true)
// List<Object[]> getRankingList();
@Query(value = "SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte, email Email\n" +
"FROM user u,\n" +
" user_info ui,\n" +
" user_roles ur\n" +
"WHERE u.id = ui.user_id\n" +
"AND u.id = ur.user_id\n" +
"order by ranking_points_sum DESC\n" +
" AND u.id = ur.user_id\n" +
"order by ranking_points_sum DESC, Email\n" +
"LIMIT 10;", 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" +
// " user_info ui,\n" +
// " user_roles ur\n" +
// " WHERE u.id = ui.user_id\n" +
// " AND u.id = ur.user_id\n" +
// " order by ranking_points_sum DESC) as INR) as RN\n" +
// "WHERE Name = ?1", nativeQuery = true)
// int getRankingPlaceFromUser(String username);
@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" +
" user_info ui,\n" +
" user_roles ur\n" +
" WHERE u.id = ui.user_id\n" +
" AND u.id = ur.user_id\n" +
" order by ranking_points_sum DESC) as INR) as RN\n" +
"WHERE Name = ?1", nativeQuery = true)
int getRankingPlaceFromUser(String username);
"From (SELECT ROW_NUMBER() over(order by INR.Ranglistenpunkte DESC, Email) AS Rang, Email\n" +
" FROM (SELECT DISTINCT u.id AS ID, username AS Name, ui.ranking_points_sum AS Ranglistenpunkte, email Email\n" +
" FROM user u,\n" +
" user_info ui,\n" +
" user_roles ur\n" +
" WHERE u.id = ui.user_id\n" +
" AND u.id = ur.user_id\n" +
" order by ranking_points_sum DESC, Email) as INR) as RN\n" +
"WHERE Email = ?1", nativeQuery = true)
int getRankingPlaceFromUser(String username);
@Query(value = "SELECT DISTINCT t.name AS teamname, SUM(ui.ranking_points_sum) AS Ranglistenpunkte\n" +
"FROM user u,\n" +