- Timestamp:
- 02/02/22 17:25:17 (2 years ago)
- Branches:
- master
- Children:
- 98f448a
- Parents:
- 9dd526f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sources/app/src/main/java/parkup/services/ParkingZoneService.java
r9dd526f rdf4089c 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.stereotype.Service; 5 import parkup.data.ParkingZoneAdminView; 5 6 import parkup.data.ParkingZoneLocation; 7 import parkup.data.WorkerDemo; 6 8 import parkup.entities.ParkingSpace; 7 9 import parkup.entities.ParkingZone; … … 17 19 import java.util.Objects; 18 20 import java.util.Optional; 21 import java.util.stream.Collectors; 19 22 20 23 @Service … … 36 39 List<ParkingZone> parkingZones= parkingZoneRepository.findAll(); 37 40 for(ParkingZone pz:parkingZones){ 38 setTransientVariables(pz .getId());41 setTransientVariables(pz); 39 42 } 40 43 return parkingZones; 41 44 } 42 45 43 public ParkingZone findById(int parkingZoneId) {46 public ParkingZoneAdminView findById(int parkingZoneId) { 44 47 Optional<ParkingZone> parkingZone = Optional.ofNullable(this.parkingZoneRepository.findByPzId(parkingZoneId)); 45 48 if (!parkingZone.isPresent()) { 46 49 throw new IllegalStateException("ParkingZone does not exist"); 47 50 } 48 setTransientVariables(parkingZone.get() .getId());49 return parkingZone.get();51 setTransientVariables(parkingZone.get()); 52 return new ParkingZoneAdminView(parkingZone.get(),getResponsibleWorkers(parkingZoneId)); 50 53 } 51 54 … … 83 86 //TODO proveri dali ima odgovorni i dokolku ima dali postojat vo bazata 84 87 @Transactional 85 public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price,88 public ParkingZoneAdminView updateParkingZone(int parkingZoneId, String pzName, int price, 86 89 String location, int from, int to, String color, 87 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List< Integer> odgovorniLica) {90 List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<WorkerDemo> responsibleWorkers) { 88 91 89 92 //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation … … 124 127 125 128 if (!parkingSpaces.isEmpty()) { 129 List<String> psNamesInZone=parkingZoneNov.getParkingSpaces().stream().map(ParkingSpace::getPsName).collect(Collectors.toList()); 130 List<ParkingSpace> psToAdd=parkingSpaces.stream().filter(ps->!psNamesInZone.contains(ps.getPsName())).collect(Collectors.toList()); 131 for(ParkingSpace ps:psToAdd){ 132 parkingZoneNov.getParkingSpaces().add(ps); 133 } 134 } 135 if (!responsibleWorkers.isEmpty()) { 126 136 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 127 // for(ParkingSpace space :parkingZone.getParkingSpaces()){ 128 // if(!parkingSpaces.contains(space)){ 129 // for(ParkingSession session: parkingSessionRepository.findByParkingZonePzName(pzName)){ 130 // if(session.getParkingSpace().getPsId()==space.getPsId()) 131 // throw new IllegalStateException("Vlegov vo iffot"); 132 // } 133 // } 134 // } 135 //TODO: treba da se opravi 136 parkingZone.setParkingSpaces(null); 137 List<ParkingSpace> spacesToAdd = new ArrayList<>(parkingSpaces); 138 parkingZone.setParkingSpaces(spacesToAdd); 139 } 140 if (!odgovorniLica.isEmpty()) { 141 ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId); 142 for (Integer vrabotenId : odgovorniLica) { 143 Worker workerToAdd = workerRepository.findByWorkerId(vrabotenId); 137 for (Integer workerId : responsibleWorkers.stream().map(WorkerDemo::getWorkerId).collect(Collectors.toList())) { 138 Worker workerToAdd = workerRepository.findByWorkerId(workerId); 144 139 if(workerToAdd !=null) 145 140 workerToAdd.getParkingZones().add(parkingZone); … … 147 142 } 148 143 149 150 return parkingZoneNov;144 setTransientVariables(parkingZoneNov); 145 return new ParkingZoneAdminView(parkingZoneNov,getResponsibleWorkers(parkingZoneId)); 151 146 } else { 152 147 throw new IllegalStateException("There ParkingZone does not exist"); … … 159 154 Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId)); 160 155 if (parkingZoneOpt.isPresent()) { 156 parkingZoneOpt.get().setParkingSpaces(null); 157 parkingZoneOpt.get().setParkingZoneLocation(null); 161 158 parkingZoneRepository.deleteByPzId(parkingZoneId); 162 159 } else { … … 174 171 return parkingZone.getParkingSpaces().size(); 175 172 } 176 public void setTransientVariables(int pzId){ 177 calculateCapacity(pzId); 178 calculateTakenSpaces(pzId); 173 public void setTransientVariables(ParkingZone pz){ 174 pz.setCapacity(calculateCapacity(pz.getId())); 175 pz.setTakenSpaces(calculateTakenSpaces(pz.getId())); 176 } 177 public List<WorkerDemo> getResponsibleWorkers(int pzId){ 178 ParkingZone parkingZone =parkingZoneRepository.findByPzId(pzId); 179 return workerRepository.findAll().stream().filter(w->w.getParkingZones().contains(parkingZone)).map(WorkerDemo::new).collect(Collectors.toList()); 179 180 } 180 181 }
Note:
See TracChangeset
for help on using the changeset viewer.