From 1ebadc2540277639089f917cd01313863581ccc7 Mon Sep 17 00:00:00 2001 From: m-endo <26-s-i-tm-nets@it-college.jp> Date: Fri, 23 Oct 2026 11:10:09 +0900 Subject: [PATCH] =?UTF-8?q?controller=E3=82=AF=E3=83=A9=E3=82=B9=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E3=80=81=E7=94=BB=E9=9D=A2=E9=81=B7=E7=A7=BB=E7=A2=BA?= =?UTF-8?q?=E8=AA=8D=20=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6service?= =?UTF-8?q?=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=B8=E4=B8=8D=E8=B6=B3=E5=88=86?= =?UTF-8?q?=E3=81=AE=E8=A8=98=E8=BF=B0=E8=BF=BD=E5=8A=A0=E3=80=81HTML?= =?UTF-8?q?=E3=80=81form=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AE=E8=A8=98?= =?UTF-8?q?=E8=BF=B0=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/LendingController.java | 59 ++++++++--------- .../demo/entity/Borrow_booksEntity.java | 4 +- .../com/example/demo/form/LendingForm.java | 25 ++++--- .../repository/Book_CollectionRepository.java | 4 ++ .../example/demo/service/ReturnService.java | 5 +- .../demo/service/impl/LendingServiceImpl.java | 66 ++++++++----------- .../main/resources/templates/application.html | 21 +++--- .../templates/applicationComplete.html | 2 +- .../templates/applicationConfirm.html | 25 +++---- 9 files changed, 109 insertions(+), 102 deletions(-) diff --git a/team1/src/main/java/com/example/demo/controller/LendingController.java b/team1/src/main/java/com/example/demo/controller/LendingController.java index bed45e4..c952321 100644 --- a/team1/src/main/java/com/example/demo/controller/LendingController.java +++ b/team1/src/main/java/com/example/demo/controller/LendingController.java @@ -1,9 +1,9 @@ package com.example.demo.controller; -import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -12,18 +12,19 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import com.example.demo.form.LendingForm; +import com.example.demo.service.ReturnService; @Controller public class LendingController { - //(仮記入)まとめられたserviceクラスを入れる準備 - //private final LendingService lendingService; + //まとめられたserviceクラスを入れる準備 + private final ReturnService returnService; - //(仮記入)アノテーションを使用してコンストラクタにインスタンスを代入する - //@Autowired - //public LendingController(LendingService lendingService) { - //this.LendingService lendingService; - //} + //アノテーションを使用してコンストラクタにインスタンスを代入する + @Autowired + public LendingController(ReturnService returnService) { + this.returnService = returnService; + } /** * 【画面1】書籍貸出申請入力画面を表示する @@ -33,8 +34,8 @@ public class LendingController { LendingForm form = new LendingForm(); //以下ダミーデータを挿入中 - form.setId_book(1); - form.setNm_book("これからはじめるJava言語"); + form.setIdBook(1); + form.setNmBook("これからはじめるJava言語"); model.addAttribute("lendingForm", form); return "application"; @@ -51,8 +52,8 @@ public class LendingController { // LendingForm form = new LendingForm(); // //前の画面(bookList)から貰ったデータの移し替え - // form.setIdBook(idBook); - // form.setNmBook(nmBook); + // form.setId_book(idBook); + // form.setNm_book(nmBook); // //次の画面(application.html)へ渡す // model.addAttribute("lendingForm", form); @@ -97,18 +98,20 @@ public class LendingController { /** * 確認画面の「申請」ボタンを押して完了画面へ遷移 */ - //@PostMappingでデータを送信(POST) + // @PostMappingでデータを送信(POST) @PostMapping("/executeLending") public String executeLending(@ModelAttribute("lendingForm") LendingForm form) { - //redirect記載で完了画面のURLへ接続し直す + + // 1. 仮のログイン社員ID準備 + int loginEmployeeId = 1; + + // 2. サービスクラス内の貸出申請機能を呼び出しを行う + returnService.executeLending(form, loginEmployeeId); + + // 3. redirectメソッドにて次画面である完了画面のURLへ接続し直す return "redirect:/lendingComplete"; } - //(仮記入)まとめられたserviceクラスの呼び出し - //lendingService.executeLending(form); - //redirectメソッドにて次画面である完了画面のURLへ接続し直す - //return "redirect:/lendingComplete"; - /** * 書籍貸出申請完了画面を表示する */ @@ -118,14 +121,6 @@ public class LendingController { return "applicationComplete"; } - //isNullメソッドを作り、未入力になってないか入力チェックを行う - /** - * 日付用の null 判定メソッド - */ - private static boolean isNull(LocalDate date) { - return null == date; - } - //画面でエラーが出た場合の表示 //エラーが出た場合、リストに文言を追加する public List validateParameter(LendingForm form) { @@ -136,21 +131,21 @@ public class LendingController { List error = new ArrayList<>(); // 1.「貸出日」が未入力(null)かどうかをチェックする - if (form.getDate_borrow() == null) { + if (form.getDateBorrow() == null) { //errorリストの中にメッセージ"貸出日が未入力です"を入れる error.add(DATE_BORROW_NULL); } // 2.「返却予定日」が未入力(null)かどうかをチェック - if (form.getDate_scheduled_return() == null) { + if (form.getDateScheduledReturn() == null) { //errorリストの中にメッセージ"返却予定日 が未入力です。"を入れる error.add(DATE_RETURN_NULL); } // 3「両方ともnullではない(入力されている)」ときのみ日付の前後を比較する - if (form.getDate_borrow() != null && form.getDate_scheduled_return() != null) { - // 返却予定日が貸出日より過去の場合のエラー - if (form.getDate_scheduled_return().isBefore(form.getDate_borrow())) { + if (form.getDateBorrow() != null && form.getDateScheduledReturn() != null) { + // 返却予定日が貸出日より過去の場合のエラー + if (form.getDateScheduledReturn().before(form.getDateBorrow())) { //errorリストの中にメッセージ"返却予定日 には、貸出日以降の日付を選択してください。"を入れる error.add(DATE_ORDER_ERROR); } diff --git a/team1/src/main/java/com/example/demo/entity/Borrow_booksEntity.java b/team1/src/main/java/com/example/demo/entity/Borrow_booksEntity.java index da9059d..2a82ea6 100644 --- a/team1/src/main/java/com/example/demo/entity/Borrow_booksEntity.java +++ b/team1/src/main/java/com/example/demo/entity/Borrow_booksEntity.java @@ -72,13 +72,13 @@ public class Borrow_booksEntity { * 貸出日 * */ @Column(name = "date_borrow", nullable = false) - private Date dateBorrow; + private Date dateBorrow = new Date(); /* * 返却予定日 * */ @Column(name = "date_scheduled_return", nullable = false) - private Date dateScheduledReturn; + private Date dateScheduledReturn = new Date(); /* * 返却日 diff --git a/team1/src/main/java/com/example/demo/form/LendingForm.java b/team1/src/main/java/com/example/demo/form/LendingForm.java index 22657ac..9a098ab 100644 --- a/team1/src/main/java/com/example/demo/form/LendingForm.java +++ b/team1/src/main/java/com/example/demo/form/LendingForm.java @@ -1,6 +1,6 @@ package com.example.demo.form; -import java.time.LocalDate; +import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; @@ -15,11 +15,11 @@ public class LendingForm { /** * 蔵書ID */ - private int id_book; + private int idBook; /** * 書籍名 */ - private String nm_book; + private String nmBook; //貸出日と返却予定日にアノテーションで日付や時刻の表示形式を指定 @@ -28,26 +28,33 @@ public class LendingForm { */ @DateTimeFormat(pattern = "yyyy-MM-dd") //LocalDate型にて日付(年・月・日)を取り扱う - private LocalDate date_borrow; + private Date dateBorrow; /** * 返却予定日 */ @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate date_scheduled_return; + private Date dateScheduledReturn; /** * 貸出日を取得するメソッド */ - public LocalDate getDate_borrow() { - return this.date_borrow; + public Date getDate_borrow() { + return this.dateBorrow; } /** * 返却予定日を取得するメソッド */ - public LocalDate getDate_scheduled_return() { - return this.date_scheduled_return; + public Date getDate_scheduled_return() { + return this.dateScheduledReturn; + } + + /** + * サービスクラスの表記に合わせるためのメソッド + */ + public int getId_book() { + return this.idBook; } } diff --git a/team1/src/main/java/com/example/demo/repository/Book_CollectionRepository.java b/team1/src/main/java/com/example/demo/repository/Book_CollectionRepository.java index 39c6c80..fa8e416 100644 --- a/team1/src/main/java/com/example/demo/repository/Book_CollectionRepository.java +++ b/team1/src/main/java/com/example/demo/repository/Book_CollectionRepository.java @@ -1,6 +1,7 @@ package com.example.demo.repository; import java.util.List; +import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @@ -25,4 +26,7 @@ public interface Book_CollectionRepository extends JpaRepositoryfindById(Integer id); } diff --git a/team1/src/main/java/com/example/demo/service/ReturnService.java b/team1/src/main/java/com/example/demo/service/ReturnService.java index 5e52673..8557c92 100644 --- a/team1/src/main/java/com/example/demo/service/ReturnService.java +++ b/team1/src/main/java/com/example/demo/service/ReturnService.java @@ -146,13 +146,16 @@ public class ReturnService { book_CollectionRepository.save(book_collection.get()); Borrow_booksEntity borrow = new Borrow_booksEntity();//空の申請レコード - borrow.setIdApproval(idEmployee);//申請者ID + borrow.setIdApplicant(idEmployee);//申請者ID borrow.setIdBook(form.getId_book());//蔵書ID borrow.setDateRequest(new Date());//申請日 borrow.setStatus('1');//ステータスを承認待ちに borrow.setIdUpdate(idEmployee);//更新者ID borrow.setDateUpdate(new Date());//更新日 + //必要だったため追記 + borrow.setDateBorrow(form.getDate_borrow()); //貸出日 + borrow.setDateScheduledReturn(form.getDate_scheduled_return()); //返却予定日 borrowRepository.save(borrow); } } \ No newline at end of file diff --git a/team1/src/main/java/com/example/demo/service/impl/LendingServiceImpl.java b/team1/src/main/java/com/example/demo/service/impl/LendingServiceImpl.java index e60c29e..490bbe3 100644 --- a/team1/src/main/java/com/example/demo/service/impl/LendingServiceImpl.java +++ b/team1/src/main/java/com/example/demo/service/impl/LendingServiceImpl.java @@ -1,44 +1,34 @@ -package com.example.demo.service.Impl; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.example.demo.form.LendingForm; -import com.example.demo.repository.Book_CollectionRepository; -import com.example.demo.repository.Borrow_BooksRepository; -import com.example.demo.repository.EmployeeRepository; -import com.example.demo.service.LendingService; +package com.example.demo.service.impl; /** * 書籍貸出申請の処理をまとめたサービスクラス */ -@Service -@Transactional -public class LendingServiceImpl implements LendingService { - //3つリポジトリクラス記載 - private final Book_CollectionRepository bookCollectionRepository; - private final Borrow_BooksRepository borrowBooksRepository; - private final EmployeeRepository employeeRepository; +//@Service +//@Transactional +//public class LendingServiceImpl implements LendingService { +// //3つリポジトリクラス記載 +// private final Book_CollectionRepository bookCollectionRepository; +// private final Borrow_BooksRepository borrowBooksRepository; +// private final EmployeeRepository employeeRepository; +// +// //@Autwiredでリポジトリを自動で接続 +// @Autowired +// public LendingServiceImpl(Book_CollectionRepository bookCollectionRepository, +// Borrow_BooksRepository borrowBooksRepository, EmployeeRepository employeeRepository) { +// this.bookCollectionRepository = bookCollectionRepository; +// this.borrowBooksRepository = borrowBooksRepository; +// this.employeeRepository = employeeRepository; +// } +// +// /** +// * 【本番処理】貸出申請データを組み立ててデータベースへ保存 +// */ +// +// @Override +// public void executeLending(LendingForm form) { +// +// //画面の蔵書IDをEntityに合わせるために変換 +// //Integer bookId = Integer.parseUnsignedInt(form.getId_book()); +// } - //@Autwiredでリポジトリを自動で接続 - @Autowired - public LendingServiceImpl(Book_CollectionRepository bookCollectionRepository, - Borrow_BooksRepository borrowBooksRepository, EmployeeRepository employeeRepository) { - this.bookCollectionRepository = bookCollectionRepository; - this.borrowBooksRepository = borrowBooksRepository; - this.employeeRepository = employeeRepository; - } - - /** - * 【本番処理】貸出申請データを組み立ててデータベースへ保存 - */ - - @Override - public void executeLending(LendingForm form) { - - //画面の蔵書IDをEntityに合わせるために変換 - //Integer bookId = Integer.parseUnsignedInt(form.getId_book()); - } -} diff --git a/team1/src/main/resources/templates/application.html b/team1/src/main/resources/templates/application.html index e532b51..24bfc47 100644 --- a/team1/src/main/resources/templates/application.html +++ b/team1/src/main/resources/templates/application.html @@ -15,7 +15,7 @@ ログイン者名:テスト太郎(ダミー) - + 蔵書ID - + 書籍名 - + 貸出日 - - + + + + 返却予定日 - - + + + + diff --git a/team1/src/main/resources/templates/applicationComplete.html b/team1/src/main/resources/templates/applicationComplete.html index 77e22d9..1790351 100644 --- a/team1/src/main/resources/templates/applicationComplete.html +++ b/team1/src/main/resources/templates/applicationComplete.html @@ -15,7 +15,7 @@ ログイン者名:テスト太郎(ダミー) - + @@ -12,7 +14,7 @@ ログイン者名:テスト太郎(ダミー) - + - - - - + + + + + - + - + - -
蔵書ID
書籍名
貸出日 +
返却予定日 +