From 22ae31f5c6eb5b29f7d346cfe7a5c0063f70c7e4 Mon Sep 17 00:00:00 2001 From: "ityurner02@mail.ru" Date: Tue, 23 May 2023 17:25:27 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=A05=20=D0=B5=D1=81=D1=82=D1=8C=20?= =?UTF-8?q?=D1=81=D0=B2=D1=8F=D0=B7=D1=8C=20=D1=84=D0=B8=D0=BB=D1=8C=D0=BC?= =?UTF-8?q?=D1=8B-=D0=B6=D0=B0=D0=BD=D1=80=D1=8B=20=D0=B8=20=D0=BE=D1=82?= =?UTF-8?q?=D1=87=D0=B5=D1=82=20=D0=BF=D0=BE=20=D0=B6=D0=B0=D0=BD=D1=80?= =?UTF-8?q?=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.mv.db | Bin 81920 -> 69632 bytes .../controller/FilmMvcController.java | 20 ++++++++++- .../controller/GenreMvcController.java | 11 ++++++ .../is/lab1/DataBase/service/FilmService.java | 11 ++++++ src/main/resources/templates/add-genre.html | 33 ++++++++++++++++++ src/main/resources/templates/error.html | 13 +++++++ src/main/resources/templates/film.html | 6 ++++ src/main/resources/templates/genre.html | 4 +++ src/main/resources/templates/report.html | 32 +++++++++++++++++ src/main/resources/templates/view-genres.html | 28 +++++++++++++++ 10 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/templates/add-genre.html create mode 100644 src/main/resources/templates/error.html create mode 100644 src/main/resources/templates/report.html create mode 100644 src/main/resources/templates/view-genres.html diff --git a/data.mv.db b/data.mv.db index b997069fe02b785d701cbde419a3ff038b14c277..94f20c80ae53778f8accbef2d44301b3d9cdf4fd 100644 GIT binary patch literal 69632 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 genres = filmService.getGenresFromFilm(id); + model.addAttribute("genres", genres); + return "view-genres"; + } + + @GetMapping("getGenres/{id}") + public String getGenres(@PathVariable Long id, Model model) { + model.addAttribute("genres", + genreService.findAllGenres().stream() + .map(GenreDTO::new) + .toList()); + model.addAttribute("filmId", id); + return "add-genre"; + } + @GetMapping(value = {"/edit", "/edit/{id}"}) public String editFilm(@PathVariable(required = false) Long id, Model model) { @@ -74,6 +92,6 @@ public class FilmMvcController { .map(Long::parseLong) .collect(Collectors.toList()); filmService.addGenres(id, genreIdsAsLong); - return "redirect:/film"; + return "redirect:../genres/{id}"; } } diff --git a/src/main/java/ru/ulstu/is/lab1/DataBase/controller/GenreMvcController.java b/src/main/java/ru/ulstu/is/lab1/DataBase/controller/GenreMvcController.java index 46b29c5..288dbd0 100644 --- a/src/main/java/ru/ulstu/is/lab1/DataBase/controller/GenreMvcController.java +++ b/src/main/java/ru/ulstu/is/lab1/DataBase/controller/GenreMvcController.java @@ -5,8 +5,10 @@ import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import ru.ulstu.is.lab1.DataBase.service.GenreService; +import ru.ulstu.is.lab1.DataBase.service.FilmService; import javax.validation.Valid; +import java.util.List; @Controller @RequestMapping("/genre") @@ -59,4 +61,13 @@ public class GenreMvcController { genreService.deleteGenre(id); return "redirect:/genre"; } + @GetMapping("/report/{id}") + public String findWorkersOnWorkplace(@PathVariable(required = false) Long id, Model model){ + model.addAttribute("cathegory", "Фильмы по жанру: " + genreService.findGenre(id).getName()); + model.addAttribute("films", genreService.findFilmOnGenre(id).stream() + .map(FilmDTO::new) + .toList()); + model.addAttribute("page", "genre"); + return "report"; + } } diff --git a/src/main/java/ru/ulstu/is/lab1/DataBase/service/FilmService.java b/src/main/java/ru/ulstu/is/lab1/DataBase/service/FilmService.java index 74bb293..2bfd868 100644 --- a/src/main/java/ru/ulstu/is/lab1/DataBase/service/FilmService.java +++ b/src/main/java/ru/ulstu/is/lab1/DataBase/service/FilmService.java @@ -81,4 +81,15 @@ public class FilmService { } return filmRepository.save(film); } + + @Transactional + public List getGenresFromFilm(Long filmId){ + Optional filmOptional = filmRepository.findById(filmId); + if (filmOptional.isPresent()) { + Film film = filmOptional.get(); + return film.getGenres(); + } else { + throw new IllegalArgumentException("Film not found with id: " + filmId); + } + } } diff --git a/src/main/resources/templates/add-genre.html b/src/main/resources/templates/add-genre.html new file mode 100644 index 0000000..74ac7d6 --- /dev/null +++ b/src/main/resources/templates/add-genre.html @@ -0,0 +1,33 @@ + + + + + +
+
+
+
+

Выберите жанры:

+
    +
  • +
    + + +
    +
  • +
+
+
+ + + Назад + +
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html new file mode 100644 index 0000000..7d31c40 --- /dev/null +++ b/src/main/resources/templates/error.html @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/film.html b/src/main/resources/templates/film.html index 258624e..3e319b1 100644 --- a/src/main/resources/templates/film.html +++ b/src/main/resources/templates/film.html @@ -34,6 +34,12 @@ th:attr="onclick=|confirm('Удалить запись?') && document.getElementById('remove-${film.id}').click()|"> Удалить + + Посмотреть жанры + + Добавить жанры
+ + Отчет +