Ignore:
Timestamp:
12/24/21 23:31:23 (3 years ago)
Author:
andrejTavchioski <andrej.tavchioski@…>
Branches:
master
Children:
9dd526f
Parents:
8588fcb
Message:

Fixed some functionalities related to parkingSessions and parkingZones

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sources/app/src/main/java/parkup/services/ParkingZoneService.java

    r8588fcb r9ff45d6  
    22
    33import org.springframework.beans.factory.annotation.Autowired;
    4 import org.springframework.data.jpa.repository.Modifying;
    54import org.springframework.stereotype.Service;
    65import parkup.data.ParkingZoneLocation;
     6import parkup.entities.ParkingSession;
    77import parkup.entities.ParkingSpace;
    88import parkup.entities.ParkingZone;
    99import parkup.entities.Vraboten;
     10import parkup.repositories.ParkingSessionRepository;
     11import parkup.repositories.ParkingSpaceRepository;
    1012import parkup.repositories.ParkingZoneRepository;
     13import parkup.repositories.VrabotenRepository;
    1114
    1215import javax.transaction.Transactional;
     
    1922public class ParkingZoneService {
    2023    private final ParkingZoneRepository parkingZoneRepository;
     24    private final ParkingSpaceRepository parkingSpaceRepository;
     25    private final VrabotenRepository vrabotenRepository;
     26    private final ParkingSessionRepository parkingSessionRepository;
    2127
    2228    @Autowired
    23     public ParkingZoneService(ParkingZoneRepository parkingZoneRepository) {
     29    public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, VrabotenRepository vrabotenRepository, ParkingSessionRepository parkingSessionRepository) {
    2430        this.parkingZoneRepository = parkingZoneRepository;
     31        this.parkingSpaceRepository = parkingSpaceRepository;
     32        this.parkingSessionRepository = parkingSessionRepository;
     33        this.vrabotenRepository = vrabotenRepository;
    2534    }
    2635
     
    3746        List<ParkingZone> parkingZones = this.parkingZoneRepository.findAll();
    3847        List<String> parkingZonesNames = new ArrayList<>();
    39         for (ParkingZone pz : parkingZones){
     48        for (ParkingZone pz : parkingZones) {
    4049            parkingZonesNames.add(pz.getPzName());
    4150        }
     
    6574    }
    6675
    67 <<<<<<< HEAD
    6876    //TODO proveri dali ima odgovorni i dokolku ima dali postojat vo bazata
    6977    @Transactional
    70     public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, int capacity,
     78    public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price,
    7179                                         String location, int from, int to, String color,
    72                                          List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Vraboten> odgovorniLica) {
     80                                         List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation, List<Integer> odgovorniLica) {
    7381
    74         for(ParkingSpace space:parkingSpaces){
    75             System.out.println(space);
    76         }
    77         for(Vraboten v : odgovorniLica){
    78             System.out.println(v.toString());
    79         }
    80 =======
    81     //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation
    82     @Transactional
    83     public ParkingZone updateParkingZone(int parkingZoneId, String pzName, int price, int capacity,
    84                                          String location, int from, int to, String color,
    85                                          List<ParkingSpace> parkingSpaces, ParkingZoneLocation parkingZoneLocation) {
    86 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939
    87         Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));
    88         if (parkingZoneOpt.isPresent()) {
     82        //TODO prati niza od objekti ParkingSpaces i prati objekt ParkingZoneLocation
     83
    8984            ParkingZone parkingZoneNov = parkingZoneRepository.findByPzId(parkingZoneId);
    90             if (pzName != null && pzName.length() > 1 && !Objects.equals(parkingZoneNov.getPzName(), pzName)) {
    91                 Optional<ParkingZone> parkingZoneOpt1 = Optional.ofNullable(parkingZoneRepository.findByPzName(pzName));
    92                 if (parkingZoneOpt1.isPresent()) {
    93                     throw new IllegalStateException("There is already a ParkingZone with the same name");
     85            if (parkingZoneNov!=null) {
     86                if (pzName != null && pzName.length() > 1) { ;
     87                    if (parkingZoneNov.getPzName().equals(pzName)&&parkingZoneNov.getId()!=parkingZoneId) {
     88                        throw new IllegalStateException("There is already a ParkingZone with the same name");
     89                    }
     90
     91                    parkingZoneNov.setPzName(pzName);
    9492                }
    9593
    96                 parkingZoneNov.setPzName(pzName);
     94                if (price != 0 && !Objects.equals(parkingZoneNov.getPrice(), price)) {
     95                    parkingZoneNov.setPrice(price);
     96                }
     97
     98                if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getAddress(), location)) {
     99                    parkingZoneNov.setAddress(location);
     100                }
     101
     102                if (from != 0 && !Objects.equals(parkingZoneNov.getFrom(), from)) {
     103                    parkingZoneNov.setFrom(from);
     104                }
     105
     106                if (to != 0 && !Objects.equals(parkingZoneNov.getTo(), to)) {
     107                    parkingZoneNov.setTo(to);
     108                }
     109
     110                if (color != null && color.length() > 0 && !Objects.equals(parkingZoneNov.getColor(), color)) {
     111                    parkingZoneNov.setColor(color);
     112                }
     113
     114                if (parkingZoneLocation != null) {
     115                    parkingZoneNov.setParkingZoneLocation(parkingZoneLocation);
     116                }
     117
     118                if (!parkingSpaces.isEmpty()) {
     119                    ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
     120//                    for(ParkingSpace space :parkingZone.getParkingSpaces()){
     121//                        if(!parkingSpaces.contains(space)){
     122//                            for(ParkingSession session: parkingSessionRepository.findByParkingZonePzName(pzName)){
     123//                                if(session.getParkingSpace().getPsId()==space.getPsId())
     124//                                    throw new IllegalStateException("Vlegov vo iffot");
     125//                            }
     126//                        }
     127//                    }
     128                    //TODO: treba da se opravi
     129                    parkingZone.setParkingSpaces(null);
     130                    List<ParkingSpace> spacesToAdd = new ArrayList<>(parkingSpaces);
     131                    parkingZone.setParkingSpaces(spacesToAdd);
     132                }
     133                if (!odgovorniLica.isEmpty()) {
     134                    ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
     135                    for (Integer vrabotenId : odgovorniLica) {
     136                        Vraboten vrabotenToAdd = vrabotenRepository.findByVrabotenId(vrabotenId);
     137                        if(vrabotenToAdd!=null)
     138                        vrabotenToAdd.getParkingZones().add(parkingZone);
     139                    }
     140                }
     141
     142
     143                return parkingZoneNov;
     144            } else {
     145                throw new IllegalStateException("There ParkingZone does not exist");
    97146            }
     147        }
    98148
    99             if (price != 0 && !Objects.equals(parkingZoneNov.getPrice(), price)) {
    100                 parkingZoneNov.setPrice(price);
     149
     150        @Transactional
     151        public Optional<ParkingZone> deleteParkingZone ( int parkingZoneId){
     152            Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));
     153            if (parkingZoneOpt.isPresent()) {
     154                parkingZoneRepository.deleteByPzId(parkingZoneId);
     155            } else {
     156                throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted");
    101157            }
    102 
    103             if (capacity != 0 && !Objects.equals(parkingZoneNov.getCapacity(), capacity)) {
    104                 parkingZoneNov.setCapacity(capacity);
    105             }
    106 
    107             if (location != null && location.length() > 0 && !Objects.equals(parkingZoneNov.getLocation(), location)) {
    108                 parkingZoneNov.setLocation(location);
    109             }
    110 
    111             if (from != 0 && !Objects.equals(parkingZoneNov.getFrom(), from)) {
    112                 parkingZoneNov.setFrom(from);
    113             }
    114 
    115             if (to != 0 && !Objects.equals(parkingZoneNov.getTo(), to)) {
    116                 parkingZoneNov.setTo(to);
    117             }
    118 
    119             if (color != null && color.length() > 0 && !Objects.equals(parkingZoneNov.getColor(), color)) {
    120                 parkingZoneNov.setColor(color);
    121             }
    122 
    123             if(parkingZoneLocation!=null){
    124                 parkingZoneNov.setParkingZoneLocation(parkingZoneLocation);
    125             }
    126 
    127             if(!parkingSpaces.isEmpty()){
    128                 //TODO kreiraj lista od parkingSpaces, ni gi prakja false isHandicaped i isTaken
    129                 parkingZoneNov.setParkingSpaces(parkingSpaces);
    130             }
    131 <<<<<<< HEAD
    132             if(!odgovorniLica.isEmpty()){
    133 
    134                 parkingZoneNov.setOdgovorniLica(odgovorniLica);
    135             }
    136 =======
    137 >>>>>>> 9504a097ce80831ea7e7130dff7215d5fbf8e939
    138 
    139             return parkingZoneNov;
    140         } else {
    141             throw new IllegalStateException("There ParkingZone does not exist");
     158            return parkingZoneOpt;
    142159        }
    143160    }
    144161
    145     @Transactional
    146     public Optional<ParkingZone> deleteParkingZone(int parkingZoneId) {
    147         Optional<ParkingZone> parkingZoneOpt = Optional.ofNullable(parkingZoneRepository.findByPzId(parkingZoneId));
    148         if (parkingZoneOpt.isPresent()) {
    149             parkingZoneRepository.deleteByPzId(parkingZoneId);
    150         } else {
    151             throw new IllegalStateException("ParkingZone doesn't exist, therefore can't be deleted");
    152         }
    153         return parkingZoneOpt;
    154     }
    155 }
Note: See TracChangeset for help on using the changeset viewer.