Changeset a226bc3


Ignore:
Timestamp:
02/04/24 17:48:29 (5 months ago)
Author:
Blazho <aleksandar.blazhevski@…>
Branches:
master
Parents:
ee27685
Message:

Vraboteniot ja planira dostavata na narackata(https://develop.finki.ukim.mk/projects/cbdb/wiki/useCase10)

Location:
src/main
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/cookbook/controller/VrabotenController.java

    ree27685 ra226bc3  
    22
    33
     4import com.example.cookbook.model.DostavaDTO;
    45import com.example.cookbook.model.Naracka;
    56import com.example.cookbook.model.Recept;
     
    4344                                 @RequestParam LocalDateTime vreme,
    4445                                 Model model){
    45 
     46        List<DostavaDTO> podatoci = null;
    4647        List<Stavka> stavkiVoNaracka = null;
    4748        try {
    4849            stavkiVoNaracka = narcakiService.findByTelAndVreme(telefon, vreme);
     50            podatoci = narcakiService.findDataForDostava(telefon, vreme);
    4951        } catch (SQLException e) {
    5052            return "redirect:/error-page/SQL%20Exception";
     
    5254
    5355        model.addAttribute("stavki", stavkiVoNaracka);
     56        model.addAttribute("podatoci", podatoci);
    5457
    5558        return "stavka";
  • src/main/java/com/example/cookbook/model/DostavaDTO.java

    ree27685 ra226bc3  
    33import java.time.LocalDateTime;
    44
    5 public record DostavaDTO (String recIme, String adresa, String sostojka, LocalDateTime vreme, String telefon){
    6     public DostavaDTO(String recIme, String adresa, String sostojka, LocalDateTime vreme, String telefon) {
     5public record DostavaDTO (String recIme, String adresa, String sostojka){
     6    public DostavaDTO(String recIme, String adresa, String sostojka) {
    77        this.recIme = recIme;
    88        this.adresa = adresa;
    99        this.sostojka = sostojka;
    10         this.vreme = vreme;
    11         this.telefon = telefon;
    1210    }
    1311}
  • src/main/java/com/example/cookbook/repository/NarackiRepository.java

    ree27685 ra226bc3  
    33
    44import com.example.cookbook.dbConfig.DB;
     5import com.example.cookbook.model.DostavaDTO;
    56import com.example.cookbook.model.Naracka;
    67import com.example.cookbook.model.Recept;
     
    6566        return stavki;
    6667    }
     68
     69    public List<DostavaDTO> findDataForDostava(String telefon, LocalDateTime vreme) throws SQLException {
     70        Connection connection = DB.getConnection();
     71        String query = "select r.rec_ime, l.adresa, 'Готово' sostojka from so_koi sk\n" +
     72                "            left join recepti r on\n" +
     73                "                        r.rec_id = sk.rec_id\n" +
     74                "                left join opsluzuva o on\n" +
     75                "                        o.rec_id = r.rec_id\n" +
     76                "                left join restorani r2 on\n" +
     77                "                        r2.res_id = o.res_id\n" +
     78                "                left join se_naogja1 sn on\n" +
     79                "                        sn.res_id = r2.res_id\n" +
     80                "                left join lokacii l on\n" +
     81                "                        l.l_id = sn.l_id\n" +
     82                "        where vreme = ? and telefon = ? and sk.nacin = 'Готово'\n" +
     83                "union\n" +
     84                "select r.rec_ime, l.adresa, s2.s_naziv sostojka  from so_koi sk\n" +
     85                "        left join recepti r on\n" +
     86                "                        r.rec_id = sk.rec_id\n" +
     87                "                left join sodrzi s on\n" +
     88                "                        r.rec_id = s.rec_id\n" +
     89                "                left join sostojki s2 on\n" +
     90                "                        s2.s_id = s.s_id\n" +
     91                "                left join ja_ima ji on\n" +
     92                "                        ji.s_id = s2.s_id\n" +
     93                "                left join prodavnici p on\n" +
     94                "                        p.pro_id = ji.pro_id\n" +
     95                "                left join se_naogja2 sn on\n" +
     96                "                        sn.pro_id = p.pro_id\n" +
     97                "                left join lokacii l on\n" +
     98                "                        l.l_id = sn.l_id\n" +
     99                "        where vreme = ? and telefon = ? and sk.nacin = 'Состојки'";
     100        PreparedStatement prepStm = connection.prepareStatement(query);
     101
     102        prepStm.setObject(1, vreme);
     103        prepStm.setString(2, telefon);
     104        prepStm.setObject(3, vreme);
     105        prepStm.setString(4, telefon);
     106
     107        ResultSet result = prepStm.executeQuery();
     108
     109        List<DostavaDTO> dostavaDTOS = new ArrayList<>();
     110        while (result.next()){
     111            DostavaDTO stavka = new DostavaDTO(
     112                    result.getString("rec_ime"),
     113                    result.getString("adresa"),
     114                    result.getString("sostojka")
     115            );
     116
     117            dostavaDTOS.add(stavka);
     118        }
     119        DB.closeConnection();
     120        result.close();
     121        prepStm.close();
     122        return dostavaDTOS;
     123    }
    67124}
  • src/main/java/com/example/cookbook/service/NarackiService.java

    ree27685 ra226bc3  
    11package com.example.cookbook.service;
    22
     3import com.example.cookbook.model.DostavaDTO;
    34import com.example.cookbook.model.Naracka;
    45import com.example.cookbook.model.Recept;
     
    1415
    1516    List<Stavka> findByTelAndVreme(String telefon, LocalDateTime vreme) throws SQLException;
     17
     18    List<DostavaDTO> findDataForDostava(String telefon, LocalDateTime vreme) throws SQLException;
    1619}
  • src/main/java/com/example/cookbook/service/impl/NarackiServiceImpl.java

    ree27685 ra226bc3  
    22
    33
     4import com.example.cookbook.model.DostavaDTO;
    45import com.example.cookbook.model.Naracka;
    56import com.example.cookbook.model.Recept;
     
    3132        return narackiRepository.findByTelAndVreme(telefon, vreme);
    3233    }
     34
     35    @Override
     36    public List<DostavaDTO> findDataForDostava(String telefon, LocalDateTime vreme) throws SQLException {
     37        return narackiRepository.findDataForDostava(telefon, vreme);
     38    }
    3339}
  • src/main/resources/templates/naracki.html

    ree27685 ra226bc3  
    2020        <ul class="navbar-nav ml-auto">
    2121            <li class="nav-item active">
    22                 <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
     22                <a class="nav-link" th:href="@{/}">Home <span class="sr-only">(current)</span></a>
    2323            </li>
    2424            <li class="nav-item">
  • src/main/resources/templates/stavka.html

    ree27685 ra226bc3  
    2020    <ul class="navbar-nav ml-auto">
    2121      <li class="nav-item active">
    22         <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
     22        <a class="nav-link" th:href="@{/}">Home <span class="sr-only">(current)</span></a>
    2323      </li>
    2424      <li class="nav-item">
     
    5252      <td th:text="${stavka.nacin}"></td>
    5353      <td>
    54         <button class="btn btn-primary">View</button>
     54        <button class="btn btn-primary" disabled>View</button>
    5555        <button class="btn btn-danger" disabled>Delete</button>
    5656      </td>
    5757    </tr>
     58    </tbody>
     59  </table>
     60
     61  <h3>Information for the items of the order</h3>
     62  <table class="table">
     63    <thead>
     64      <tr>
     65        <th>Ime recept</th>
     66        <th>Adresa</th>
     67        <th>Sostojka</th>
     68        <th>Action</th>
     69      </tr>
     70    </thead>
     71    <tbody>
     72      <tr th:each="dostava: ${podatoci}">
     73        <td th:text="${dostava.recIme()}"></td>
     74        <td th:text="${dostava.adresa()}"></td>
     75        <td th:text="${dostava.sostojka()}"></td>
     76        <td>
     77          <button class="btn btn-primary">Select</button>
     78        </td>
     79      </tr>
    5880    </tbody>
    5981  </table>
Note: See TracChangeset for help on using the changeset viewer.