diff --git a/src/main/java/com/example/demo/controller/BookInsertController.java b/src/main/java/com/example/demo/controller/BookInsertController.java index 4b0c613..6ed1d7b 100644 --- a/src/main/java/com/example/demo/controller/BookInsertController.java +++ b/src/main/java/com/example/demo/controller/BookInsertController.java @@ -1,5 +1,7 @@ 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; @@ -8,6 +10,7 @@ import org.springframework.web.bind.annotation.PostMapping; import com.example.demo.entity.BookInsert; import com.example.demo.repository.BookCategoryRepository; +import com.example.demo.repository.SubCategoryRepository; import com.example.demo.service.BookInsertService; @Controller @@ -18,10 +21,13 @@ private BookInsertService bookInsertService; @Autowired private BookCategoryRepository categoryRepository; +@Autowired +private SubCategoryRepository subCategoryRepository; @GetMapping("/bookInsert") public String bookInsert(Model model) { model.addAttribute("categoryList",categoryRepository.findAll()); + model.addAttribute("subCategoryList",subCategoryRepository.findAll()); model.addAttribute("bookInsert",new BookInsert()); return "bookInsert"; } @@ -31,22 +37,36 @@ private BookCategoryRepository categoryRepository; // 確認画面から戻る: POSTされた入力中の値がformに入ったまま入力画面へ @PostMapping("/bookInsertConfirm") public String bookInsertConfirm(BookInsert bookInsert,Model model) { + 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("bookInsert",bookInsert); + model.addAttribute("categoryList",categoryRepository.findAll()); + model.addAttribute("subCategoryList",new ArrayList<>()); + 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("bookInsert", bookInsert); + + return "bookInsert"; + } + + + } + + //画面で選択したカテゴリbookInsert.getBookCategoryId()) - } + diff --git a/src/main/java/com/example/demo/entity/BookInsert.java b/src/main/java/com/example/demo/entity/BookInsert.java index a94c3cd..ffe074a 100644 --- a/src/main/java/com/example/demo/entity/BookInsert.java +++ b/src/main/java/com/example/demo/entity/BookInsert.java @@ -1,32 +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) // 自動採番 - private Long Id; - - private String bookId; - private String title; - private Integer isbn; - private String author; - private String category; - private String subcategory; - private Integer publisher; - private Integer publicationDate; - private String location; - private String condition; - private String donor; - private String discription; + @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 String 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 + private Integer bookCategoryId; + + + + } diff --git a/src/main/java/com/example/demo/service/BookInsertService.java b/src/main/java/com/example/demo/service/BookInsertService.java index f49fffb..51a4f71 100644 --- a/src/main/java/com/example/demo/service/BookInsertService.java +++ b/src/main/java/com/example/demo/service/BookInsertService.java @@ -6,6 +6,6 @@ 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 index 5c47923..d8e6c32 100644 --- a/src/main/java/com/example/demo/service/BookInsertServiceImpl.java +++ b/src/main/java/com/example/demo/service/BookInsertServiceImpl.java @@ -1,6 +1,7 @@ package com.example.demo.service; - import java.util.List; + import java.time.LocalDate; +import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,8 +18,6 @@ import com.example.demo.repository.BookInsertRepository; @Override public String regist(BookInsert book) { // DTO → エンティティへ詰め替えて保存 - bookInsertRepository.save(book); - book.setBookId("bk"+book.getId()); bookInsertRepository.save(book); // 保存 return "登録が完了しました"; } @@ -27,7 +26,22 @@ import com.example.demo.repository.BookInsertRepository; 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 c37b657..467e577 100644 --- a/src/main/resources/templates/bookInsert.html +++ b/src/main/resources/templates/bookInsert.html @@ -12,18 +12,26 @@


-
+ -
- -

+
+ +

+ +
+ +





- +


@@ -31,11 +39,31 @@


- +


- +


@@ -47,33 +75,36 @@


- + + +


- +




-
- + +
diff --git a/src/main/resources/templates/bookInsertConfirm.html b/src/main/resources/templates/bookInsertConfirm.html index 0f7b6ab..9a53f47 100644 --- a/src/main/resources/templates/bookInsertConfirm.html +++ b/src/main/resources/templates/bookInsertConfirm.html @@ -13,17 +13,18 @@
+ - + - +