| 150 | === Прегледува вкупна излезност |
| 151 | |
| 152 | Со пристап на јавната адреса /turnout каде се прикажува излезноста на граѓаните во одредена реализација. Каде има полиња за која реализација (имплементирано), која општина, кој пол, кое избирачко место и во кое време да се видат резултатите од излезноста, кое за сега не е имплементирано. Со клик на копчето „Пребарај“ се праќа барање до контролерот на адреса /turnout. Во контролерот се повикува функција од voteService со параметар id на самата реализација. |
| 153 | [[Image(izleznost.png)]] |
| 154 | {{{#!java |
| 155 | @GetMapping("/turnout") |
| 156 | public String turnOutResults(Model m, @RequestParam(required = false) Long realizationId) { |
| 157 | Double turnOut = voteService.turnOutByElectionRealization(realizationId); |
| 158 | m.addAttribute("replaceTemplate", "turnout_circle"); |
| 159 | m.addAttribute("turnoutPercentage", turnOut); |
| 160 | m.addAttribute("realizationId", realizationId); |
| 161 | m.addAttribute("municipalities", municipalityService.findAll()); |
| 162 | m.addAttribute("realizations", candidatesElectionRealizationService.findAll()); |
| 163 | m.addAttribute("pollingStations", addressService.findAllPollingStations()); |
| 164 | m.addAttribute("realization",candidatesElectionRealizationService.findById(realizationId)); |
| 165 | return "index"; |
| 166 | } |
| 167 | }}} |
| 168 | |
| 169 | Сервисот го обработува повикот од контролерот, со тоа што ја наоѓа реализацијата на избори со тоа id и повикува друга функција turnOutByRealization од voteRepository кој имплементира интерфејс од JpaRepository. |
| 170 | |
| 171 | {{{#!java |
| 172 | public Double turnOutByElectionRealization(Long id) |
| 173 | { |
| 174 | ElectionRealization electionRealization = electionRealizationService.findById(id); |
| 175 | return voteRepository.turnOutByRealization(electionRealization, LocalDate.now().minusYears(18)); |
| 176 | } |
| 177 | }}} |
| 178 | |
| 179 | Покрај функциите кои ги содржи интерфејсот JpaRepository може да се креираат и прашалници. Во долунаведениот прашалник се зимаат сите гласања од одредена реализација во однос со сите граѓани помножено по 100 за да се добие бараниот процент. |
| 180 | |
| 181 | {{{#!java |
| 182 | @Query(value = "SELECT (SELECT COUNT(v) FROM Vote v WHERE v.electionRealization = :ri) * 100.0 / (SELECT COUNT(c) FROM Citizen c WHERE c.dateOfBirth <= :dateThreshold) FROM ElectionRealization ri WHERE ri = :ri") |
| 183 | public Double turnOutByRealization(@Param("ri") ElectionRealization electionRealization, @Param("dateThreshold") LocalDate dateThreshold); |
| 184 | }}} |
| 185 | |