diff --git a/src/main/java/com/example/demo/controller/BookInsertConfirmController.java b/src/main/java/com/example/demo/controller/BookInsertConfirmController.java index d3e6cc1..447b97a 100644 --- a/src/main/java/com/example/demo/controller/BookInsertConfirmController.java +++ b/src/main/java/com/example/demo/controller/BookInsertConfirmController.java @@ -1,14 +1,6 @@ package com.example.demo.controller; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; +//@Controller + -@Controller -public class BookInsertConfirmController { - @GetMapping("/bookInsertConfirm") - public String bookInsertConfirm() { - return "bookInsertConfirm"; - - } -} diff --git a/src/main/java/com/example/demo/controller/BookInsertController.java b/src/main/java/com/example/demo/controller/BookInsertController.java index d066d30..c725330 100644 --- a/src/main/java/com/example/demo/controller/BookInsertController.java +++ b/src/main/java/com/example/demo/controller/BookInsertController.java @@ -1,13 +1,85 @@ package com.example.demo.controller; +import java.util.ArrayList; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import com.example.demo.entity.BookInsert; +import com.example.demo.repository.BookCategoryRepository; +import com.example.demo.repository.StorageLocationRepository; +import com.example.demo.repository.SubCategoryRepository; +import com.example.demo.service.BookInsertService; @Controller public class BookInsertController { - @GetMapping("bookInsert") - public String bookInsert() { - return "bookInsert"; - - } -} + +@Autowired +private BookInsertService bookInsertService; + +@Autowired +private BookCategoryRepository categoryRepository; + +@Autowired +private SubCategoryRepository subCategoryRepository; + +@Autowired +private StorageLocationRepository storageLocationRepository; + + @GetMapping("/bookInsert") + public String bookInsert(Model model) { + model.addAttribute("categoryList",categoryRepository.findAll()); + model.addAttribute("subCategoryList",subCategoryRepository.findAll()); + model.addAttribute("locationList",storageLocationRepository.findAll()); + model.addAttribute("bookInsert",new BookInsert()); + return "bookInsert"; + } + + // 初期表示: 空のformを渡す(th:fieldの初期値が空になる) + + // 確認画面から戻る: POSTされた入力中の値がformに入ったまま入力画面へ + @PostMapping("/bookInsertConfirm") + public String bookInsertConfirm(BookInsert bookInsert,Model model) { + System.out.println(bookInsert); + bookInsertService.save(bookInsert); + model.addAttribute("bookInsert",bookInsert); + return "bookInsertConfirm"; + } + + @PostMapping("/bookInsert") + public String bookInsertBack(BookInsert bookInsert,Model model) { + model.addAttribute("categoryList",categoryRepository.findAll()); + model.addAttribute("subCategoryList",new ArrayList<>()); + model.addAttribute("locationList",storageLocationRepository.findAll()); + model.addAttribute("bookInsert",bookInsert); + return "bookInsert"; + } + + @PostMapping("/bookInsert/category") + public String changeCategory(BookInsert bookInsert,Model model) { + //カテゴリプルダウンに表示するデータを取得 + model.addAttribute("categoryList",categoryRepository.findAll()); + + model.addAttribute("subCategoryList",subCategoryRepository.findByBookCategory_BookCategoryId(bookInsert.getBookCategoryId())); + model.addAttribute("locationList",storageLocationRepository.findAll()); + model.addAttribute("bookInsert", bookInsert); + + return "bookInsert"; + } + + + + } + + + //画面で選択したカテゴリbookInsert.getBookCategoryId()に選択した結果をいれる + //subCategoryRepository.findBookCategory_BookCategoryId(bookInsert.getBookCategoryId(1))); + //「カテゴリIDが1のサブカテゴリを取ってくる」 + //model.addAttribute("subCategoryList",取得結果) + + + + diff --git a/src/main/java/com/example/demo/entity/BookInsert.java b/src/main/java/com/example/demo/entity/BookInsert.java new file mode 100644 index 0000000..9305b62 --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookInsert.java @@ -0,0 +1,75 @@ +package com.example.demo.entity; +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; + +import lombok.Data; + +@Entity // このクラスがDBのテーブルに対応することを表す +@Table(name = "book") +@Data +public class BookInsert { + + @Id // 主キー + @GeneratedValue(strategy = GenerationType.IDENTITY) // 自動採番 + @Column(name = "book_id") + private Integer bookId; + + @Column(name = "book_manage_id") + private String bookManageId; + + @Column(name = "title") + private String title; + + @Column(name = "isbn") + private String isbn; + + @Column(name = "author") + private String author; + + @Column(name = "book_subcategory_id") + private Integer subcategory; + + @Column(name = "publisher") + private String publisher; + + @Column(name = "publication_date") + private LocalDate publicationDate; + + @Column(name = "location_id") + private Integer location; + + @Column(name = "condition_s") + private Integer condition; + + @Column(name = "donor_id") + private Integer donor; + + @Column(name = "description") + private String description; + + @Column(name = "created_at") + private LocalDate createdAt; + + @Column(name = "updated_at") + private LocalDate updatedAt; + + @Column(name = "is_deleted") + private Integer isDeleted; + + @Column(name = "book_approval") + private Integer bookApproval; + + @Transient //DB保存無効 + private Integer bookCategoryId; + + + + +} diff --git a/src/main/java/com/example/demo/repository/BookInsertRepository.java b/src/main/java/com/example/demo/repository/BookInsertRepository.java new file mode 100644 index 0000000..16ab016 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BookInsertRepository.java @@ -0,0 +1,11 @@ +package com.example.demo.repository; + + + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.BookInsert; + +public interface BookInsertRepository extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/StorageLocationRepository.java b/src/main/java/com/example/demo/repository/StorageLocationRepository.java new file mode 100644 index 0000000..861a62a --- /dev/null +++ b/src/main/java/com/example/demo/repository/StorageLocationRepository.java @@ -0,0 +1,9 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.StorageLocation; + +public interface StorageLocationRepository extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/SubCategoryRepository.java b/src/main/java/com/example/demo/repository/SubCategoryRepository.java new file mode 100644 index 0000000..7a2ea13 --- /dev/null +++ b/src/main/java/com/example/demo/repository/SubCategoryRepository.java @@ -0,0 +1,12 @@ +package com.example.demo.repository; +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.BookSubcategory; + +public interface SubCategoryRepository + extends JpaRepository { + List findByBookCategory_BookCategoryId(Integer bookCategoryId); + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/BookInsertService.java b/src/main/java/com/example/demo/service/BookInsertService.java new file mode 100644 index 0000000..51a4f71 --- /dev/null +++ b/src/main/java/com/example/demo/service/BookInsertService.java @@ -0,0 +1,11 @@ +package com.example.demo.service; + +import java.util.List; + +import com.example.demo.entity.BookInsert; + +public interface BookInsertService { + String regist(BookInsert book); + List findAll(); + void save(BookInsert bookInsert); +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/BookInsertServiceImpl.java b/src/main/java/com/example/demo/service/BookInsertServiceImpl.java new file mode 100644 index 0000000..d8e6c32 --- /dev/null +++ b/src/main/java/com/example/demo/service/BookInsertServiceImpl.java @@ -0,0 +1,47 @@ + package com.example.demo.service; + + import java.time.LocalDate; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.example.demo.entity.BookInsert; +import com.example.demo.repository.BookInsertRepository; + + @Service + public class BookInsertServiceImpl implements BookInsertService { + + @Autowired + private BookInsertRepository bookInsertRepository; + + @Override + public String regist(BookInsert book) { + // DTO → エンティティへ詰め替えて保存 + bookInsertRepository.save(book); // 保存 + return "登録が完了しました"; + } + + @Override + public List findAll() { + return bookInsertRepository.findAll(); // 全件取得 + } + + public void save(BookInsert bookInsert) { + bookInsert.setCreatedAt(LocalDate.now());//登録日時設定 + bookInsert.setUpdatedAt(LocalDate.now());//更新日時設定 + bookInsert.setIsDeleted(0);//削除フラグ設定 + bookInsert.setBookApproval(0);//承認フラグ(承認されていないため0) + bookInsertRepository.save(bookInsert); + //BK〇〇〇〇形式で管理IDを作る + String manageId="BK-" + bookInsert.getBookId();//BookId取得→BK形式に変換 + bookInsert.setBookManageId(manageId); + + bookInsertRepository.save(bookInsert);//データベースに保存 + } + } + + + + // ※BookService インタフェースにも List findAll(); を追加すること + diff --git a/src/main/resources/templates/bookInsert.html b/src/main/resources/templates/bookInsert.html index 41ae8a2..059917e 100644 --- a/src/main/resources/templates/bookInsert.html +++ b/src/main/resources/templates/bookInsert.html @@ -8,8 +8,99 @@

新規図書登録入力

-
- +

+

新しく図書を登録します。必要事項jを入力し、「登録」ボタンを押してください

+ ※は必須項目です +

+ + + +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ + +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ + + + + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/bookInsertConfirm.html b/src/main/resources/templates/bookInsertConfirm.html index 95c84a3..9a53f47 100644 --- a/src/main/resources/templates/bookInsertConfirm.html +++ b/src/main/resources/templates/bookInsertConfirm.html @@ -9,9 +9,24 @@

登録内容確認

- -
- + + + + + + + + + + + + + + + + + +
@@ -52,6 +67,7 @@
+