diff --git a/src/main/java/com/example/demo/controller/BookLendController.java b/src/main/java/com/example/demo/controller/BookLendController.java index 06e2c20..94d4fbc 100644 --- a/src/main/java/com/example/demo/controller/BookLendController.java +++ b/src/main/java/com/example/demo/controller/BookLendController.java @@ -1,12 +1,15 @@ package com.example.demo.controller; +import java.time.LocalDate; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; -import com.example.demo.repository.EmployeeRepository; +import com.example.demo.service.BookLendService; import com.example.demo.service.BookServiceImpl; import lombok.RequiredArgsConstructor; @@ -14,25 +17,36 @@ import lombok.RequiredArgsConstructor; @Controller @RequiredArgsConstructor public class BookLendController { - - @Autowired - private final BookServiceImpl bookServiceImpl; @Autowired - private EmployeeRepository employeeRepository; + private final BookServiceImpl bookServiceImpl; + + @Autowired + private final BookLendService bookLendService; @PostMapping("/bookLend") public String bookLend(Model model) { return "bookLend"; } - + @PostMapping("/bookLend/{id}") public String bookLend(@PathVariable int id, Model model) { - System.out.println(id); model.addAttribute("book", bookServiceImpl.findById(id)); return "bookLend"; } - - + + // 貸出処理 + @PostMapping("/bookLend/confirm") + public String bookLendConfirm( + @RequestParam(name = "bookId") int bookId, + @RequestParam(name = "bookManageId") String bookManageId, + @RequestParam(name = "employeeId") int employeeId, + @RequestParam(name = "returnDate") LocalDate bookReturnDate, + Model model) { + + bookLendService.save(bookId,bookManageId,employeeId,bookReturnDate); + + return "redirect:/book"; + } } diff --git a/src/main/java/com/example/demo/entity/BookLend.java b/src/main/java/com/example/demo/entity/BookLend.java index 539659e..6d357b6 100644 --- a/src/main/java/com/example/demo/entity/BookLend.java +++ b/src/main/java/com/example/demo/entity/BookLend.java @@ -1,6 +1,6 @@ package com.example.demo.entity; -import java.sql.Date; +import java.time.LocalDate; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -35,11 +35,11 @@ public class BookLend { // 貸出日 @Column(name = "book_lend_date", nullable = false) - private Date bookLendDate; + private LocalDate bookLendDate; // 返却日 @Column(name = "book_return_date", nullable = false) - private Date bookReturnDate; + private LocalDate bookReturnDate; // 貸出状態 @Column(name = "book_status", nullable = false) diff --git a/src/main/java/com/example/demo/form/BookLendForm.java b/src/main/java/com/example/demo/form/BookLendForm.java index ecf8f1f..fea0565 100644 --- a/src/main/java/com/example/demo/form/BookLendForm.java +++ b/src/main/java/com/example/demo/form/BookLendForm.java @@ -1,7 +1,27 @@ package com.example.demo.form; +import java.sql.Date; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +import com.example.demo.entity.Book; +import com.example.demo.entity.Employee; + // 図書の貸出処理に使用予定 public class BookLendForm { + + private Book book; + + @NotBlank(message = "社員IDの入力は必須です") + private Employee employeeBooklend; + + private Date bookLendDate; + + @NotNull(message = "返却日の入力は必須です") + private Date bookReturnDate; + + private Integer bookStatus; } diff --git a/src/main/java/com/example/demo/service/BookLendService.java b/src/main/java/com/example/demo/service/BookLendService.java index a416702..6181fa3 100644 --- a/src/main/java/com/example/demo/service/BookLendService.java +++ b/src/main/java/com/example/demo/service/BookLendService.java @@ -1,21 +1,55 @@ 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.Book; import com.example.demo.entity.BookLend; +import com.example.demo.entity.Employee; import com.example.demo.repository.BookLendRepository; +import com.example.demo.repository.BookRepository; +import com.example.demo.repository.EmployeeRepository; @Service public class BookLendService { @Autowired private BookLendRepository bookLendRepository; + + @Autowired + private BookRepository bookRepository; + + @Autowired + private EmployeeRepository employeeRepository; public List findAll() { return bookLendRepository.findAll(); } + public void save(int bookId, String bookManageId, int employeeId, + LocalDate bookReturnDate) { + + BookLend bookLend = new BookLend(); + + + Book book = bookRepository.findById(bookId) + .orElseThrow( + () -> new IllegalArgumentException("対象の本が見つかりません")); + + Employee employee = employeeRepository.findById(employeeId) + .orElseThrow( + () -> new IllegalArgumentException("対象のが見つかりません")); + + bookLend.setBook(book); + bookLend.setEmployeeBooklend(employee); + bookLend.setBookLendDate(LocalDate.now()); + bookLend.setBookReturnDate(bookReturnDate); + bookLend.setBookStatus(1); + + bookLendRepository.save(bookLend); + } + } diff --git a/src/main/resources/templates/bookLend.html b/src/main/resources/templates/bookLend.html index e852201..888c47d 100644 --- a/src/main/resources/templates/bookLend.html +++ b/src/main/resources/templates/bookLend.html @@ -20,7 +20,8 @@ 図書情報 -
+
@@ -34,8 +35,8 @@ - - + + @@ -59,7 +60,7 @@ 社員ID - + @@ -79,7 +80,7 @@

+ 'yyyy年MM月dd日')}">

@@ -111,9 +112,11 @@

貸出処理を行うと、対象の図書のステータスが「貸出中」に変更されます。

+ + + -