When search field is applied, we count the total rows with this filter on
This commit is contained in:
parent
ddf7152123
commit
7e21cdc153
|
@ -59,8 +59,8 @@ public class PiWikController {
|
|||
@ApiImplicitParam(name = "from", dataType = "number", paramType = "query"),
|
||||
@ApiImplicitParam(name = "quantity", dataType = "number", paramType = "query"),
|
||||
@ApiImplicitParam(name = "order", dataType = "eu.dnetlib.repo.manager.domain.OrderByType", paramType = "query"),
|
||||
@ApiImplicitParam(name = "searchField", dataType = "eu.dnetlib.repo.manager.domain.OrderByField", paramType = "query"),
|
||||
@ApiImplicitParam(name = "orderField", dataType = "string", paramType = "query"),
|
||||
@ApiImplicitParam(name = "orderField", dataType = "eu.dnetlib.repo.manager.domain.OrderByField", paramType = "query"),
|
||||
@ApiImplicitParam(name = "searchField", dataType = "string", paramType = "query"),
|
||||
})
|
||||
public Paging<PiwikInfo> getPiwikSitesForRepos(
|
||||
@RequestParam(value = "from",required=false,defaultValue = "0") int from,
|
||||
|
@ -74,7 +74,7 @@ public class PiWikController {
|
|||
List<PiwikInfo> returning = piWikService.getPiwikSitesForRepos(orderField,orderType,from,quantity,searchField);
|
||||
results.setFrom(from);
|
||||
results.setTo(from + returning.size());
|
||||
results.setTotal(piWikService.getPiwikSitesTotals());
|
||||
results.setTotal(piWikService.getPiwikSitesTotals(searchField));
|
||||
results.setResults(returning);
|
||||
return results;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ public interface PiWikService {
|
|||
|
||||
List<PiwikInfo> getPiwikSitesForRepos(OrderByField orderByField, OrderByType orderByType, int from, int quantity, String searchField);
|
||||
|
||||
int getPiwikSitesTotals();
|
||||
int getPiwikSitesTotals(String searchField);
|
||||
|
||||
ResponseEntity<Object> approvePiwikSite(String repositoryId);
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
|||
import org.springframework.jdbc.core.PreparedStatementSetter;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
|
||||
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -125,9 +126,29 @@ public class PiWikServiceImpl implements PiWikService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getPiwikSitesTotals(){
|
||||
public int getPiwikSitesTotals(String searchField){
|
||||
try{
|
||||
return new JdbcTemplate(dataSource).queryForObject(GET_PIWIK_SITES_TOTAL,Integer.class);
|
||||
String finalizedQuery = GET_PIWIK_SITES_TOTAL + " where ("+
|
||||
" repositoryid ilike ? " +
|
||||
" or siteid ilike ?" +
|
||||
" or requestorname ilike ?" +
|
||||
" or requestoremail ilike ?" +
|
||||
" or comment ilike ?" +
|
||||
" or repositoryname ilike ?"+
|
||||
" or country ilike ?)";
|
||||
|
||||
return new JdbcTemplate(dataSource).query(finalizedQuery, preparedStatement -> {
|
||||
preparedStatement.setString(1,"%"+searchField+"%");
|
||||
preparedStatement.setString(2,"%"+searchField+"%");
|
||||
preparedStatement.setString(3,"%"+searchField+"%");
|
||||
preparedStatement.setString(4,"%"+searchField+"%");
|
||||
preparedStatement.setString(5,"%"+searchField+"%");
|
||||
preparedStatement.setString(6,"%"+searchField+"%");
|
||||
preparedStatement.setString(7,"%"+searchField+"%");
|
||||
},rowMapper -> {
|
||||
rowMapper.next();
|
||||
return rowMapper.getInt("totals");
|
||||
});
|
||||
}catch (EmptyResultDataAccessException e){
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue