Commit ce1a724f by Bogdan Andjelkovic

filtriranje oglasa( lista i moji oglasi) - back

parent 68d2153b
...@@ -52,19 +52,19 @@ public class OglasController ...@@ -52,19 +52,19 @@ public class OglasController
@GetMapping("/lista-oglasa") @GetMapping("/lista-oglasa")
public String getListaOglasa( Model model, public String getListaOglasa( Model model,
@AuthenticationPrincipal KorisnikDetails loggedUser, @AuthenticationPrincipal KorisnikDetails loggedUser,
@ModelAttribute("filter") Oglas filter,
@RequestParam(value = "vrstaOglasaId", required=false) Integer vrstaOglasaId, @RequestParam(value = "vrstaOglasaId", required=false) Integer vrstaOglasaId,
@RequestParam(value = "lokacijaId", required=false) Integer lokacijaId, @RequestParam(value = "lokacijaId", required=false) Integer lokacijaId,
@RequestParam(value = "cenaMin", required=false) Double cenaMin, @RequestParam(value = "cenaMin", required=false) Double cenaMin,
@RequestParam(value = "cenaMax", required=false) Double cenaMax, @RequestParam(value = "cenaMax", required=false) Double cenaMax,
@RequestParam(value = "brojSoba", required=false) Integer brojSoba, @RequestParam(value = "brojSoba", required=false) Integer brojSoba,
@RequestParam(value = "kvadratura", required=false) Double kvadratura, @RequestParam(value = "kvadraturaMin", required=false) Double kvadraturaMin,
@RequestParam(value = "kvadraturaMax", required=false) Double kvadraturaMax,
@RequestParam(value = "lift", required=false) Boolean lift, @RequestParam(value = "lift", required=false) Boolean lift,
@RequestParam(value = "grejanje", required=false) Boolean grejanje, @RequestParam(value = "grejanje", required=false) Boolean grejanje,
@RequestParam(value = "namesten", required=false) Boolean namesten) @RequestParam(value = "namesten", required=false) Boolean namesten)
{ {
model.addAttribute("loggedUser", loggedUser); model.addAttribute("loggedUser", loggedUser);
List<Oglas> listaOglasa = oRepo.findAll( vrstaOglasaId, lokacijaId, cenaMin, cenaMax, brojSoba, kvadratura, lift, grejanje, namesten); List<Oglas> listaOglasa = oRepo.findAll( vrstaOglasaId, lokacijaId, brojSoba, cenaMin, cenaMax, kvadraturaMin,kvadraturaMax, lift, grejanje, namesten);
while(listaOglasa.size() % 3 != 0){ while(listaOglasa.size() % 3 != 0){
Oglas o = new Oglas(); Oglas o = new Oglas();
listaOglasa.add(o); listaOglasa.add(o);
...@@ -87,10 +87,21 @@ public class OglasController ...@@ -87,10 +87,21 @@ public class OglasController
return("oglas"); return("oglas");
} }
@GetMapping("/profile/moji-oglasi") @GetMapping("/profile/moji-oglasi")
public String getMojiOglasa( Model model, @AuthenticationPrincipal KorisnikDetails loggedUser) public String getMojiOglasa( Model model,
@AuthenticationPrincipal KorisnikDetails loggedUser,
@RequestParam(value = "vrstaOglasaId", required=false) Integer vrstaOglasaId,
@RequestParam(value = "lokacijaId", required=false) Integer lokacijaId,
@RequestParam(value = "cenaMin", required=false) Double cenaMin,
@RequestParam(value = "cenaMax", required=false) Double cenaMax,
@RequestParam(value = "brojSoba", required=false) Integer brojSoba,
@RequestParam(value = "kvadraturaMin", required=false) Double kvadraturaMin,
@RequestParam(value = "kvadraturaMax", required=false) Double kvadraturaMax,
@RequestParam(value = "lift", required=false) Boolean lift,
@RequestParam(value = "grejanje", required=false) Boolean grejanje,
@RequestParam(value = "namesten", required=false) Boolean namesten)
{ {
model.addAttribute("loggedUser", loggedUser); model.addAttribute("loggedUser", loggedUser);
List<Oglas> listaOglasa = oRepo.findAllByKorisnikId( loggedUser.getKorisnik().getKorisnikId()); List<Oglas> listaOglasa = oRepo.findAllByKorisnikId( loggedUser.getKorisnik().getKorisnikId(), vrstaOglasaId, lokacijaId, brojSoba, cenaMin, cenaMax, kvadraturaMin,kvadraturaMax, lift, grejanje, namesten);
while(listaOglasa.size() % 3 != 0){ while(listaOglasa.size() % 3 != 0){
Oglas o = new Oglas(); Oglas o = new Oglas();
listaOglasa.add(o); listaOglasa.add(o);
......
...@@ -144,7 +144,7 @@ public class OglasRepository ...@@ -144,7 +144,7 @@ public class OglasRepository
} }
} }
public List<Oglas> findAll(Integer vrstaOglasaId, Integer lokacijaId, Double cenaMin, Double cenaMax, Integer brojSoba, Double kvadratura, Boolean lift, Boolean grejanje, Boolean namesten) public List<Oglas> findAll(Integer vrstaOglasaId, Integer lokacijaId, Integer brojSoba, Double cenaMin, Double cenaMax, Double kvadraturaMin, Double kvadraturaMax, Boolean lift, Boolean grejanje, Boolean namesten)
{ {
List<Oglas> list = new ArrayList<Oglas>(); List<Oglas> list = new ArrayList<Oglas>();
String sql = "select * from oglas"; String sql = "select * from oglas";
...@@ -154,15 +154,56 @@ public class OglasRepository ...@@ -154,15 +154,56 @@ public class OglasRepository
while( rs.next()) while( rs.next())
{ {
Oglas oglas = new Oglas( rs.getInt("oglasId"), rs.getInt("korisnikId"), rs.getString("naslov"),rs.getString("opis"),rs.getInt("lokacijaId"),rs.getDouble("cena"),rs.getInt("vrstaOglasaId"),rs.getDouble("kvadratura"),rs.getInt("brojSoba"),rs.getBoolean("namesten"),rs.getBoolean("grejanje"),rs.getBoolean("lift"),rs.getString("lokacija")); Oglas oglas = new Oglas( rs.getInt("oglasId"), rs.getInt("korisnikId"), rs.getString("naslov"),rs.getString("opis"),rs.getInt("lokacijaId"),rs.getDouble("cena"),rs.getInt("vrstaOglasaId"),rs.getDouble("kvadratura"),rs.getInt("brojSoba"),rs.getBoolean("namesten"),rs.getBoolean("grejanje"),rs.getBoolean("lift"),rs.getString("lokacija"));
if(!( vrstaOglasaId == null || ( vrstaOglasaId != null && vrstaOglasaId == oglas.getVrstaOglasaId() ) ) ) continue; if(!( vrstaOglasaId == null || ( vrstaOglasaId != null && vrstaOglasaId == oglas.getVrstaOglasaId() ) ) ) continue;
if(!( lokacijaId == null || ( lokacijaId != null && lokacijaId == oglas.getLokacijaId() ) ) ) continue; if(!( lokacijaId == null || ( lokacijaId != null && lokacijaId == oglas.getLokacijaId() ) ) ) continue;
if(!( cenaMin == null || ( cenaMin != null && cenaMin <= oglas.getCena() ) ) ) continue; if(!( cenaMin == null || ( cenaMin != null && cenaMin <= oglas.getCena() ) ) ) continue;
if(!( cenaMax == null || ( cenaMax != null && cenaMax >= oglas.getCena() ) ) ) continue; if(!( cenaMax == null || ( cenaMax != null && cenaMax >= oglas.getCena() ) ) ) continue;
if(!( brojSoba == null || ( brojSoba != null && brojSoba == oglas.getBrojSoba() ) ) ) continue; if(!( brojSoba == null || ( brojSoba != null && brojSoba == oglas.getBrojSoba() ) ) ) continue;
if(!( kvadratura == null || ( kvadratura != null && kvadratura == oglas.getKvadratura() ) ) ) continue;
if(!( kvadraturaMin == null || ( kvadraturaMin != null && kvadraturaMin <= oglas.getKvadratura() ) ) ) continue;
if(!( kvadraturaMax == null || ( kvadraturaMax != null && kvadraturaMax >= oglas.getKvadratura() ) ) ) continue;
if(!( lift == null || ( lift != null && lift == oglas.isLift() ) ) ) continue; if(!( lift == null || ( lift != null && lift == oglas.isLift() ) ) ) continue;
if(!( grejanje == null || ( grejanje != null && grejanje == oglas.isGrejanje() ) ) ) continue; if(!( grejanje == null || ( grejanje != null && grejanje == oglas.isGrejanje() ) ) ) continue;
if(!( namesten == null || ( namesten != null && namesten == oglas.isNamesten() ) ) ) continue; if(!( namesten == null || ( namesten != null && namesten == oglas.isNamesten() ) ) ) continue;
list.add( oglas);
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return( list);
}
public List<Oglas> findAllByKorisnikId(int korisnikId, Integer vrstaOglasaId, Integer lokacijaId, Integer brojSoba, Double cenaMin, Double cenaMax, Double kvadraturaMin, Double kvadraturaMax, Boolean lift, Boolean grejanje, Boolean namesten)
{
List<Oglas> list = new ArrayList<Oglas>();
String sql = "select * from oglas where korisnikid = " + korisnikId;
ResultSet rs = null;
try {
rs = dataBase.statement.executeQuery( sql);
while( rs.next())
{
Oglas oglas = new Oglas( rs.getInt("oglasId"), rs.getInt("korisnikId"), rs.getString("naslov"),rs.getString("opis"),rs.getInt("lokacijaId"),rs.getDouble("cena"),rs.getInt("vrstaOglasaId"),rs.getDouble("kvadratura"),rs.getInt("brojSoba"),rs.getBoolean("namesten"),rs.getBoolean("grejanje"),rs.getBoolean("lift"),rs.getString("lokacija"));
if(!( vrstaOglasaId == null || ( vrstaOglasaId != null && vrstaOglasaId == oglas.getVrstaOglasaId() ) ) ) continue;
if(!( lokacijaId == null || ( lokacijaId != null && lokacijaId == oglas.getLokacijaId() ) ) ) continue;
if(!( cenaMin == null || ( cenaMin != null && cenaMin <= oglas.getCena() ) ) ) continue;
if(!( cenaMax == null || ( cenaMax != null && cenaMax >= oglas.getCena() ) ) ) continue;
if(!( brojSoba == null || ( brojSoba != null && brojSoba == oglas.getBrojSoba() ) ) ) continue;
if(!( kvadraturaMin == null || ( kvadraturaMin != null && kvadraturaMin <= oglas.getKvadratura() ) ) ) continue;
if(!( kvadraturaMax == null || ( kvadraturaMax != null && kvadraturaMax >= oglas.getKvadratura() ) ) ) continue;
if(!( lift == null || ( lift != null && lift == oglas.isLift() ) ) ) continue;
if(!( grejanje == null || ( grejanje != null && grejanje == oglas.isGrejanje() ) ) ) continue;
if(!( namesten == null || ( namesten != null && namesten == oglas.isNamesten() ) ) ) continue;
list.add( oglas); list.add( oglas);
} }
} catch (SQLException e) { } catch (SQLException e) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment