From a3f2c47f898e3600aba7f17e8f580cde8bfbf246 Mon Sep 17 00:00:00 2001 From: a-takayama <26-a-takayama-scm@it-college.co.jp> Date: Mon, 19 Oct 2026 15:35:57 +0900 Subject: [PATCH 01/15] Book_collectionentity --- .project | 11 ++ .../demo/entity/Book_collectionEntity.java | 116 +++++++++++++++++- 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 .project diff --git a/.project b/.project new file mode 100644 index 0000000..a59a30a --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + last-group-delevelopment-team1 + + + + + + + + diff --git a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java index c755eb6..b761192 100644 --- a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java +++ b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java @@ -1,5 +1,119 @@ package com.example.demo.entity; + +import java.sql.Date; +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 lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Table(name = "book_collection") +@Entity +@Data +@NoArgsConstructor +@AllArgsConstructor public class Book_collectionEntity { - + + + //蔵書ID + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id_book", nullable = false) + private Integer idBook; + + //ISBN + @Column(name = "isbn", nullable = false) + private String isBn; + + //書籍名 + @Column(name = "nm_book", nullable = false) + private String nmBook; + + //書籍名よみ + @Column(name = "kn_book", nullable = true) + private String knBook; + + //出版社 + @Column(name = "publisher", nullable = true) + private String pubLisher; + + //特記事項 + @Column(name = "note text", nullable = true) + private String noteText; + + //貸出フラグ + @Column(name = "flg_lending", length = 1, nullable = false) + private String flgLending; + + //更新者 + @Column(name = "id_update", nullable = false) + private Integer idUpdate; + + //更新日 + @Column(name = "date_update", nullable = false) + private Date dateUpdate; + +// public static Book_collection convertFrom(Book_collection book_collection) { +// // 値を既に持ったインスタンスの生成に、コンストラクタを使用するとこうなります。 +// return new Book_collection Entity( +// book_colletion.getIdBook(), +// book_colletion.getisBn(), +// book_colletion.getnmBook(), +// book_colletion..getknBook(), +// book_colletion.getpublisher(), +// book_colletion.getnoteText(), +// book_colletion.getflgLending(), +// book_colletion.getidUpdate(), +// book_colletion.getdateUupdate() +// ); +// +//} +//public static EmployeeEntity convertFrom(SearchConditionEmployee searchConditionEmployee) { +// EmployeeEntity employeeEntity = new EmployeeEntity(); +// +// employeeEntity.setIdBook(searchConditionEmployee.getIdBook()); +// employeeEntity.setisBn(searchConditionEmployee.getisBn()); +// employeeEntity.setnmBook(searchConditionEmployee.getnmBook()); + +// employeeEntity.setknBook(searchConditionEmployee.knBook()); +// employeeEntity.setpublisher(searchConditionEmployee.getpublisher()); +// employeeEntity.setnoteText(searchConditionEmployee.getnoteText()); +// employeeEntity.setflgLending(searchConditionEmployee.getflgLending()); +// employeeEntity.setidUpdate(searchConditionEmployee.getidUpdate()); +// employeeEntity.setdateUpdate(searchConditionEmployee.getdateUupdate()); + + +// +//// public static List createbook_collectionList(List employeeEntityList) { +//// return employeeEntityList.stream().map(EmployeeEntity::createbook_collection).toList(); +//// } +// +// List book_collectionList = new ArrayList<>(); +// for(book_collectionEntity book_collectionEntity:employeeEntityList){ +// book_collection employee = book_collectionEntity.createbook_collection(book_collectionEntity); +// book_collectionList.add(employee); +// } +// return employeeList; +// +// +// public LoginUser createLoginUser() { +// // 値を既に持ったインスタンスの生成に、コンストラクタを使用するとこうなります。 +// return new LoginUser( +// getidBook(), +// getisBn(), +// getnmBook(), +// getknBook(), +// getpublisher(), +// getnoteText(), +// getflgLending(), +// getidUpdate(), +// getdateUpdate() +// ); +// } } From 1b26da2ed4a9d6858f360cafa0a8cc27e6a0e78d Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Mon, 19 Oct 2026 16:45:55 +0900 Subject: [PATCH 02/15] =?UTF-8?q?book=5Fcollection=E3=81=A8borrow=5Fbook?= =?UTF-8?q?=E3=81=AEentity=E4=BF=AE=E6=AD=A3=E3=81=A7=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/entity/Book_collectionEntity.java | 7 +++++-- .../java/com/example/demo/entity/Borrow_booksEntity.java | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java index b761192..6ad4464 100644 --- a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java +++ b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java @@ -1,6 +1,6 @@ package com.example.demo.entity; -import java.sql.Date; +import java.sql.Timestamp; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -9,6 +9,8 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; +import org.springframework.data.annotation.LastModifiedDate; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -57,7 +59,8 @@ public class Book_collectionEntity { //更新日 @Column(name = "date_update", nullable = false) - private Date dateUpdate; + @LastModifiedDate + private Timestamp dateUpdate; // public static Book_collection convertFrom(Book_collection book_collection) { // // 値を既に持ったインスタンスの生成に、コンストラクタを使用するとこうなります。 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 221eb02..d19a28d 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 @@ -10,6 +10,7 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import org.hibernate.annotations.Audited.Table; +import org.springframework.data.annotation.LastModifiedDate; import lombok.AllArgsConstructor; import lombok.Data; @@ -97,5 +98,6 @@ public class Borrow_booksEntity { * 更新日 * */ @Column(name = "date_update", nullable = false) + @LastModifiedDate private Timestamp dateUpdate; } From 37e9cb3be18c7b5ee885692141462568d2f94b54 Mon Sep 17 00:00:00 2001 From: a-takayama <26-a-takayama-scm@it-college.co.jp> Date: Mon, 19 Oct 2026 16:53:13 +0900 Subject: [PATCH 03/15] =?UTF-8?q?Book=5FcollectionEntity=E9=80=94=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/entity/Book_collectionEntity.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java index b761192..b6953e4 100644 --- a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java +++ b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java @@ -13,6 +13,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +//テーブル名 @Table(name = "book_collection") @Entity @Data @@ -47,7 +48,7 @@ public class Book_collectionEntity { @Column(name = "note text", nullable = true) private String noteText; - //貸出フラグ + //貸出フラグ -> charに変更する @Column(name = "flg_lending", length = 1, nullable = false) private String flgLending; From a26978a6901a3e74cc57d29c2aaf11e47f5ee92b Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Mon, 19 Oct 2026 17:22:22 +0900 Subject: [PATCH 04/15] =?UTF-8?q?=E6=9C=80=E4=BF=AE=E6=AD=A3=E3=81=A7?= =?UTF-8?q?=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/entity/Book_collectionEntity.java | 4 ++-- .../main/java/com/example/demo/entity/Borrow_booksEntity.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java index 21a88f6..d85471e 100644 --- a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java +++ b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java @@ -51,8 +51,8 @@ public class Book_collectionEntity { private String noteText; //貸出フラグ -> charに変更する - @Column(name = "flg_lending", length = 1, nullable = false) - private String flgLending; + @Column(name = "flg_lending", nullable = false, columnDefinition = "default 0") + private Character flgLending; //更新者 @Column(name = "id_update", nullable = false) 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 6aec336..84cbce4 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 @@ -54,7 +54,7 @@ public class Borrow_booksEntity { * ステータス * */ @Column(name = "status", nullable = false, columnDefinition = "default 1") - private char status; + private Character status; /* * 承認者 From 1becc3b1963119e8afc0b14d2f18932b2e9d7c47 Mon Sep 17 00:00:00 2001 From: m-endo <26-s-i-tm-nets@it-college.jp> Date: Tue, 20 Oct 2026 09:35:14 +0900 Subject: [PATCH 05/15] =?UTF-8?q?EmployeeEntity=E4=BF=AE=E6=AD=A3=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/entity/EmployeeEntity.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/team1/src/main/java/com/example/demo/entity/EmployeeEntity.java b/team1/src/main/java/com/example/demo/entity/EmployeeEntity.java index 6b61a8b..c3589d3 100644 --- a/team1/src/main/java/com/example/demo/entity/EmployeeEntity.java +++ b/team1/src/main/java/com/example/demo/entity/EmployeeEntity.java @@ -1,5 +1,7 @@ package com.example.demo.entity; +import java.security.Timestamp; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -35,25 +37,25 @@ public class EmployeeEntity { /** * 社員名 */ - @Column(name = "nm_employee", nullable = false) + @Column(name = "nm_employee", nullable = false, length = 50) private String nmEmployee; /** * 社員よみ */ - @Column(name = "kn_employee", nullable = false) + @Column(name = "kn_employee", nullable = false, length = 100) private String knEmployee; /** * メールアドレス */ - @Column(name = "mail_address", nullable = false) + @Column(name = "mail_address", nullable = false, length = 256) private String MailAddress; /** * パスワード */ - @Column(name = "password", nullable = false) + @Column(name = "password", nullable = false, length = 256) private String Password; /** @@ -72,15 +74,14 @@ public class EmployeeEntity { * 更新者 */ @Column(name = "id_update", nullable = false) - private Integer IdUpdate; + private Integer idUpdate; /** * 更新日 */ @Column(name = "date_update", nullable = false) @LastModifiedDate - private Integer DateUpdate; - + private Timestamp dateUpdate; } // public static EmployeeEntity convertForm(Employee employee) { From d119c26b64d6d8361ae46b7dacf8ebc6679eebc7 Mon Sep 17 00:00:00 2001 From: a-takayama <26-a-takayama-scm@it-college.co.jp> Date: Tue, 20 Oct 2026 09:48:14 +0900 Subject: [PATCH 06/15] =?UTF-8?q?Book=5Fcollection=E8=BF=BD=E5=8A=A0=20(le?= =?UTF-8?q?ngth=E9=83=A8=E5=88=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/entity/Book_collectionEntity.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java index 21a88f6..8bda2d8 100644 --- a/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java +++ b/team1/src/main/java/com/example/demo/entity/Book_collectionEntity.java @@ -31,19 +31,19 @@ public class Book_collectionEntity { private Integer idBook; //ISBN - @Column(name = "isbn", nullable = false) + @Column(name = "isbn", nullable = false, length = 13) private String isBn; //書籍名 - @Column(name = "nm_book", nullable = false) + @Column(name = "nm_book", nullable = false, length = 50) private String nmBook; //書籍名よみ - @Column(name = "kn_book", nullable = true) + @Column(name = "kn_book", nullable = true, length = 100) private String knBook; //出版社 - @Column(name = "publisher", nullable = true) + @Column(name = "publisher", nullable = true, length = 50) private String pubLisher; //特記事項 @@ -51,8 +51,8 @@ public class Book_collectionEntity { private String noteText; //貸出フラグ -> charに変更する - @Column(name = "flg_lending", length = 1, nullable = false) - private String flgLending; + @Column(name = "flg_lending", nullable = false, columnDefinition = "default 0") + private Character flgLending; //更新者 @Column(name = "id_update", nullable = false) From 7871635ffe8b94b99ccea81872a0ce97949aa59a Mon Sep 17 00:00:00 2001 From: s-ohasi <26-o-m-stella-tecnica@it-college.jp> Date: Tue, 20 Oct 2026 09:53:00 +0900 Subject: [PATCH 07/15] no message --- team1/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/team1/pom.xml b/team1/pom.xml index 1c44108..8a70571 100644 --- a/team1/pom.xml +++ b/team1/pom.xml @@ -74,6 +74,11 @@ spring-boot-starter-webmvc-test test + + com.example.rhizome + EM-Spring + 0.0.1-SNAPSHOT + From 5f206740cc214805d2cfa41eedbcbbbcdff7feb0 Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 13:04:52 +0900 Subject: [PATCH 08/15] =?UTF-8?q?=E6=9B=B8=E7=B1=8D=E8=B2=B8=E5=87=BA?= =?UTF-8?q?=E6=89=BF=E8=AA=8D=E3=81=AEservice=E3=81=A7=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ApprovalConfirmController.java | 11 ++ .../java/com/example/demo/controller/a.java | 5 - .../main/java/com/example/demo/entity/a.java | 5 - .../demo/service/ApprovalBorrowBooks.java | 5 + .../service/Impl/ApprovalBorrowBooksImpl.java | 12 ++ .../resources/templates/approvalConfirm.html | 141 ++++++++++++++++++ 6 files changed, 169 insertions(+), 10 deletions(-) create mode 100644 team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java delete mode 100644 team1/src/main/java/com/example/demo/controller/a.java delete mode 100644 team1/src/main/java/com/example/demo/entity/a.java create mode 100644 team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java create mode 100644 team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java create mode 100644 team1/src/main/resources/templates/approvalConfirm.html diff --git a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java new file mode 100644 index 0000000..7008d08 --- /dev/null +++ b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java @@ -0,0 +1,11 @@ +package com.example.demo.controller; + +import org.springframework.stereotype.Controller; + +/** + * 書籍貸出承認確認用のコントローラ + */ +@Controller +public class ApprovalConfirmController { + +} diff --git a/team1/src/main/java/com/example/demo/controller/a.java b/team1/src/main/java/com/example/demo/controller/a.java deleted file mode 100644 index 56820af..0000000 --- a/team1/src/main/java/com/example/demo/controller/a.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.demo.controller; - -public class a { - -} diff --git a/team1/src/main/java/com/example/demo/entity/a.java b/team1/src/main/java/com/example/demo/entity/a.java deleted file mode 100644 index ef469ec..0000000 --- a/team1/src/main/java/com/example/demo/entity/a.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.demo.entity; - -public class a { - -} diff --git a/team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java b/team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java new file mode 100644 index 0000000..8140377 --- /dev/null +++ b/team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java @@ -0,0 +1,5 @@ +package com.example.demo.service; + +public interface ApprovalBorrowBooks { + +} diff --git a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java b/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java new file mode 100644 index 0000000..b19abdf --- /dev/null +++ b/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java @@ -0,0 +1,12 @@ +package com.example.demo.service.Impl; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.example.demo.service.ApprovalBorrowBooks; + +@Service +@Transactional +public class ApprovalBorrowBooksImpl implements ApprovalBorrowBooks{ + +} diff --git a/team1/src/main/resources/templates/approvalConfirm.html b/team1/src/main/resources/templates/approvalConfirm.html new file mode 100644 index 0000000..06c1604 --- /dev/null +++ b/team1/src/main/resources/templates/approvalConfirm.html @@ -0,0 +1,141 @@ + + + + + + + + + + 書籍貸出承認確認 + + +

登録内容確認    +
+ ログイン者名: + +
+

+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
申請ID + +
申請者名 + +
申請日 + +
ISBN + +
書籍名 + +
出版社 + +
特記事項 + +
貸出日 + +
返却予定日 + +
+
+ + \ No newline at end of file From e9bc560cfa8d7b9298afe228391e8d28a8cb46d0 Mon Sep 17 00:00:00 2001 From: s-ohasi <26-o-m-stella-tecnica@it-college.jp> Date: Tue, 20 Oct 2026 14:05:54 +0900 Subject: [PATCH 09/15] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=81=A7=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?HTML=E3=80=81=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3=E3=82=B3?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC=E3=83=A9=E3=83=BC=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=80=81=E3=83=AD=E3=82=B0=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=82=AF=E3=83=A9=E3=82=B9=E3=80=81=E3=83=AD=E3=82=B0?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=A6=E3=83=BC=E3=82=B6=E3=83=BC=E3=83=95?= =?UTF-8?q?=E3=82=A9=E3=83=BC=E3=83=A0=E3=82=AF=E3=83=A9=E3=82=B9=E3=80=81?= =?UTF-8?q?=E3=82=A8=E3=83=B3=E3=83=97=E3=83=AD=E3=82=A4=E3=83=BC=E3=83=AC?= =?UTF-8?q?=E3=83=9D=E3=82=B8=E3=83=88=E3=83=AA=E3=83=BC=E3=81=AE=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=82=92=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/LoginController.java | 140 ++++++++++++++++++ .../demo/controller/LogoutController.java | 8 + .../com/example/demo/form/LoginUserForm.java | 106 +++++++++++++ .../demo/repository/EmployeeRepository.java | 3 + team1/src/main/resources/templates/login.html | 65 ++++++++ 5 files changed, 322 insertions(+) create mode 100644 team1/src/main/java/com/example/demo/controller/LoginController.java create mode 100644 team1/src/main/java/com/example/demo/controller/LogoutController.java create mode 100644 team1/src/main/java/com/example/demo/form/LoginUserForm.java create mode 100644 team1/src/main/resources/templates/login.html diff --git a/team1/src/main/java/com/example/demo/controller/LoginController.java b/team1/src/main/java/com/example/demo/controller/LoginController.java new file mode 100644 index 0000000..a541e29 --- /dev/null +++ b/team1/src/main/java/com/example/demo/controller/LoginController.java @@ -0,0 +1,140 @@ +package com.example.demo.controller; + +import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import jakarta.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import com.example.rhizome.app.domain.model.LoginInfo; +import com.example.rhizome.app.domain.model.LoginUser; +import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.rhizome.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; +import com.example.rhizome.app.presentation.form.LoginInfoForm; +import com.example.rhizome.app.presentation.form.LoginUserForm; +import com.example.rhizome.app.presentation.form.MessageForm; +import com.example.rhizome.app.presentation.form.UpdatePersonalUserForm; + +@Controller +public class LoginController { + + // + private final static Logger LOGGER = Logger.getLogger(LoginController.class.getName()); + + // + private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; + + HttpSession httpSession; + Login login; + + @Autowired + public LoginController(HttpSession httpSession, Login login) { + this.httpSession = httpSession; + this.login = login; + } + + @ModelAttribute + public LoginUserForm loginUserForm() { + return new LoginUserForm(); + } + + /** + * 画面から渡ってきたパラメータのチェックを行う + * + * @param loginInfoForm mailAddress, password を保持したインスタンス + * @param model ビューにデータを渡すためのコンテナ + * @return 遷移先の画面 + */ + @RequestMapping(value = DO_LOGIN, method = RequestMethod.POST) + public String doLogin(LoginInfoForm loginInfoForm, Model model) { + + // ログに出力する + final String MAIL_ADDRESS_PASSWORD_ERROR = "メールアドレス、パスワードの入力内容に誤りがあります"; + // 発生しうるErrorに対するメッセージ + final String LOGIN_ERROR = "IDまたはパスワードが間違っています"; + + try { + // mailAddress, password の入力に誤りがあるかチェック + if (!LoginUserForm.checkParameter(loginInfoForm)) { + + // mail,passwordが仕様を満たしていない場合 + model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(MAIL_ADDRESS_PASSWORD_ERROR)); + + // エラーだった場合に login.html に処理を戻す。mailAddress, password を login.htmlに表示するために + // ここで addAttribute する + model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); + // login.html に遷移する様に設定 + return TransitionTargetPageNameKeyword.LOGIN_HTML; + } + // Login者情報インスタンスを作成 + LoginInfo loginInfo = createLoginInfo(httpSession, loginInfoForm); + + // login 可能かチェック + if (!login.canLogin(loginInfo)) { + // ログイン不可の場合、エラーメッセージをセットして入力された値とともに login.html を再表示 + // 画面に表示するエラーメッセージをセット + model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(LOGIN_ERROR)); + // 画面に表示する mailAddress, password をセット + model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); + // login.html に遷移 + return TransitionTargetPageNameKeyword.LOGIN_HTML; + } + // ログイン(インスタンス作成) + LoginUser loginUser = login.doLogin(loginInfo); + + // ログイン者の情報をセッション情報に格納 + // セッションに loginUser 情報を保持し続ける = ログイン中として扱う + httpSession.setAttribute(SessionKeyword.LOGIN_USER, LoginUserForm.convertFrom(loginUser)); + + // 管理者かチェック + if (!loginUser.isAdminUser()) { + // 管理者ではない場合直で自分の情報を更新するページに遷移する + // 編集対象のログイン者の情報を画面に渡す値にセット + model.addAttribute(PageReturnAttributeKeyword.UPDATE_PERSONAL_EMPLOYEE_USER_FORM, UpdatePersonalUserForm.convertFrom(loginUser)); + // 個人の情報更新ページに遷移 + return TransitionTargetPageNameKeyword.UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML; + } + // メニュー画面に遷移 + return TransitionTargetPageNameKeyword.MENU_HTML; + + } catch (Exception e) { + // ログイン情報の破棄 + httpSession.invalidate(); + e.printStackTrace(); + // エラーログ出力 + LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); + // エラー画面に遷移 + return TransitionTargetPageNameKeyword.ERROR_HTML; + } + /** + * ログイン者情報のインスタンスを作成 + * + * @param httpSession セッション情報 + * @param loginInfoForm mailAddress, password を保持したインスタンス + */ + private static LoginInfo createLoginInfo(HttpSession httpSession, LoginInfoForm loginInfoForm) { + // セッションからログイン者情報を取得 + LoginUserForm loginUserForm = (LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER); + + // セッションにログイン者情報があるか + if (loginUserForm != null) { + // セッションにログイン者情報がある場合 + return new LoginInfo(loginUserForm.getMailAddress(), loginUserForm.getPassword()); + } + + // セッションにない場合は画面からの input 値 を取得 + return new LoginInfo( + loginInfoForm.getMailAddress(), + loginInfoForm.getPassword() + ); +} +} diff --git a/team1/src/main/java/com/example/demo/controller/LogoutController.java b/team1/src/main/java/com/example/demo/controller/LogoutController.java new file mode 100644 index 0000000..b216a06 --- /dev/null +++ b/team1/src/main/java/com/example/demo/controller/LogoutController.java @@ -0,0 +1,8 @@ +package com.example.demo.controller; + +import org.springframework.stereotype.Controller; + +@Controller +public class LogoutController { + +} diff --git a/team1/src/main/java/com/example/demo/form/LoginUserForm.java b/team1/src/main/java/com/example/demo/form/LoginUserForm.java new file mode 100644 index 0000000..22b59d1 --- /dev/null +++ b/team1/src/main/java/com/example/demo/form/LoginUserForm.java @@ -0,0 +1,106 @@ +package com.example.demo.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +//ログインをする人 +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LoginUserForm { + /** + * 社員ID + */ + private Integer idEmployee; + /** + * 社員名 + */ + private String nmEmployee; + /** + * 社員名よみ + */ + private String knEmployee; + /** + * メールアドレス + */ + private String mailAddress; + /** + * パスワード + */ + private String password; + + /** + * 管理者フラグ + */ + private Integer flgadmin; + + /** + * business 層の LoginUser クラスから画面用(presentation 層)の LoginUserForm に + * 変換します。 + * + * @param loginUser business 層の LoginUser インスタンス + * @return クラスから画面用(presentation 層)の LoginUserForm + */ + public static LoginUserForm convertFrom(LoginUser loginUser) { + return new LoginUserForm( + loginUser.getIdEmployee(), + loginUser.getNmEmployee(), + loginUser.getKnEmployee(), + loginUser.getMailAddress(), + loginUser.getPassword(), + loginUser.getFlgAdmin() + ); + } + + /** + * 画面用(presentation 層)の LoginUserForm クラスから business 層の LoginUser クラスに + * 変換します。 + * + * @param loginUserForm 画面用(presentation 層)の LoginUserForm インスタンス + * @return business 層の LoginUser インスタンス + */ + public static LoginUser convertTo(LoginUserForm loginUserForm) { + return new LoginUser( + loginUserForm.getIdEmployee(), + loginUserForm.getNmEmployee(), + loginUserForm.getKnEmployee(), + loginUserForm.getMailAddress(), + loginUserForm.getPassword(), + loginUserForm.getAdminAuth(), + loginUserForm.getIdDepartment() + ); + } + + /** + * 画面から渡ってきた必須の値が仕様を満たしているか確認 + * + * @param loginInfoForm 画面から渡ってきた mailAddress, password を格納しているインスタンス + * @return true:仕様を満たしている , false:仕様を満たしていない + */ + public static boolean checkParameter(LoginInfoForm loginInfoForm) { + if (null == loginInfoForm.getMailAddress()) { + return false; + } + + if (loginInfoForm.getMailAddress().isBlank()) { + return false; + } + + if (null == loginInfoForm.getPassword()) { + return false; + } + + return !loginInfoForm.getPassword().isBlank(); + + } + + /** + * 管理者権限を持っているか確認 + * + * @return true:管理者権限を持っている , false:管理者権限を持っていない + */ + public boolean isAdminUser() { + return getAdminAuth() == 1; + } +} diff --git a/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java b/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java index 09f5cf4..b273e3b 100644 --- a/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java +++ b/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java @@ -1,5 +1,7 @@ package com.example.demo.repository; +import java.util.Optional; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -7,5 +9,6 @@ import com.example.demo.entity.EmployeeEntity; @Repository public interface EmployeeRepository extends JpaRepository { + Optional findByMailAddressAndPassword(String mailAddress, String password); } \ No newline at end of file diff --git a/team1/src/main/resources/templates/login.html b/team1/src/main/resources/templates/login.html new file mode 100644 index 0000000..ee543e6 --- /dev/null +++ b/team1/src/main/resources/templates/login.html @@ -0,0 +1,65 @@ + + + + + + + + + + + + ログイン画面 + + + +

ログイン

+
+ +
? + ? +
+ + + + + + + + + > + + + + + + +
メールアドレス + +
パスワード + +
+ + +
+
+ + + + From 3b4ec1f78b3f9fb7b63c65379f24992be5e12feb Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 14:48:24 +0900 Subject: [PATCH 10/15] =?UTF-8?q?=E8=B2=B8=E5=87=BA=E6=89=BF=E8=AA=8D?= =?UTF-8?q?=E7=A2=BA=E8=AA=8D=E3=81=AE=E9=80=94=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ApprovalConfirmController.java | 53 +++++++++++++++++++ .../com/example/demo/form/ApprovalForm.java | 12 +++++ .../demo/service/ApprovalBorrowBooks.java | 5 -- ...lBorrowBooksImpl.java => RequestImpl.java} | 4 +- .../com/example/demo/service/Request.java | 18 +++++++ 5 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 team1/src/main/java/com/example/demo/form/ApprovalForm.java delete mode 100644 team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java rename team1/src/main/java/com/example/demo/service/Impl/{ApprovalBorrowBooksImpl.java => RequestImpl.java} (59%) create mode 100644 team1/src/main/java/com/example/demo/service/Request.java diff --git a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java index 7008d08..283ea08 100644 --- a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java +++ b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java @@ -1,6 +1,18 @@ package com.example.demo.controller; +import java.util.logging.Level; +import java.util.logging.Logger; + +import jakarta.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import com.example.demo.form.ApprovalForm; /** * 書籍貸出承認確認用のコントローラ @@ -8,4 +20,45 @@ import org.springframework.stereotype.Controller; @Controller public class ApprovalConfirmController { + // ログ出力用インスタンス + private final static Logger LOGGER = Logger.getLogger(ApprovalConfirmController.class.getName()); + + // エラーメッセージ用の定数フィールド + private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; + + HttpSession httpSession; + ApprovalForm approvalform; + + @Autowired + public ApprovalConfirmController( + HttpSession httpSession, + ApprovalForm approvalform) { + this.httpSession = httpSession; + this.approvalform = approvalform; + } + + @ModelAttribute + public ApprovalForm approvalForm() { + return new ApprovalForm(); + } + + @RequestMapping(value = "/ApprovalConfirm", method = RequestMethod.POST) + public String AprrvalForm(ApprovalForm ApprovalForm, Model model) { + + try { + + + return; + } catch (Exception e) { + // ログイン情報の破棄 + httpSession.invalidate(); + + e.printStackTrace(); + + // エラーログ出力 + LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); + // エラー画面遷移 + return "error"; + } + } } diff --git a/team1/src/main/java/com/example/demo/form/ApprovalForm.java b/team1/src/main/java/com/example/demo/form/ApprovalForm.java new file mode 100644 index 0000000..d15b0e3 --- /dev/null +++ b/team1/src/main/java/com/example/demo/form/ApprovalForm.java @@ -0,0 +1,12 @@ +package com.example.demo.form; + +import lombok.Data; + +/** + * 画面から渡ってきた登録内容をまとめ、再度画面に表示する為のクラス + */ +@Data + +public class ApprovalForm { + +} diff --git a/team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java b/team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java deleted file mode 100644 index 8140377..0000000 --- a/team1/src/main/java/com/example/demo/service/ApprovalBorrowBooks.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.demo.service; - -public interface ApprovalBorrowBooks { - -} diff --git a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java b/team1/src/main/java/com/example/demo/service/Impl/RequestImpl.java similarity index 59% rename from team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java rename to team1/src/main/java/com/example/demo/service/Impl/RequestImpl.java index b19abdf..66f67cc 100644 --- a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java +++ b/team1/src/main/java/com/example/demo/service/Impl/RequestImpl.java @@ -3,10 +3,10 @@ package com.example.demo.service.Impl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.example.demo.service.ApprovalBorrowBooks; +import com.example.demo.service.Request; @Service @Transactional -public class ApprovalBorrowBooksImpl implements ApprovalBorrowBooks{ +public class RequestImpl implements Request{ } diff --git a/team1/src/main/java/com/example/demo/service/Request.java b/team1/src/main/java/com/example/demo/service/Request.java new file mode 100644 index 0000000..4400ae7 --- /dev/null +++ b/team1/src/main/java/com/example/demo/service/Request.java @@ -0,0 +1,18 @@ +package com.example.demo.service; + +import java.util.List; + +import org.springframework.web.servlet.mvc.condition.RequestCondition; + +import com.example.rhizome.app.domain.model.Employee; +import com.example.rhizome.app.domain.model.LoginUser; + +public interface Request { + List selectAll(); + + List searchBy(RequestCondition searchCondition); + + LoginUser searchLoginUser(String mailAddress); + + Employee searchEmployeeByIdEmployee(Integer idEmployee); +} From d26d5c7b0b5399752d7545aeeee5a92776fb8f62 Mon Sep 17 00:00:00 2001 From: s-ikeda <26-s-ikeda-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 14:50:31 +0900 Subject: [PATCH 11/15] no message --- .../service/Impl/ApprovalBorrowBooksImpl.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java b/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java index b19abdf..65a96fe 100644 --- a/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java +++ b/team1/src/main/java/com/example/demo/service/Impl/ApprovalBorrowBooksImpl.java @@ -1,12 +1,31 @@ package com.example.demo.service.Impl; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.example.demo.repository.Borrow_BooksRepository; import com.example.demo.service.ApprovalBorrowBooks; @Service @Transactional -public class ApprovalBorrowBooksImpl implements ApprovalBorrowBooks{ +public class ApprovalBorrowBooksImpl implements ApprovalBorrowBooks { -} + Borrow_BooksRepository borrowbooksRepository; + + @Autowired + public ApprovalBorrowBooksImpl(Borrow_BooksRepository borrowbooksRepository) { + this.borrowbooksRepository = borrowbooksRepository; + } + + /* 申請情報から全件取得 + * @return 取得した情報すべて + */ + public List selectAll() { + return ???Entity.create???List(???Repository.findAll()); + } + + +} \ No newline at end of file From b6af343b777ea6966f878c73539ed9bab84841e1 Mon Sep 17 00:00:00 2001 From: s-ikeda <26-s-ikeda-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 15:00:18 +0900 Subject: [PATCH 12/15] no message --- team1/pom.xml | 8 +++++--- .../com/example/demo/repository/EmployeeRepository.java | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/team1/pom.xml b/team1/pom.xml index 735847e..75ae850 100644 --- a/team1/pom.xml +++ b/team1/pom.xml @@ -43,7 +43,7 @@ org.springframework.boot spring-boot-starter-webmvc - + com.mysql mysql-connector-j @@ -80,7 +80,7 @@ 0.0.1-SNAPSHOT - + @@ -125,5 +125,7 @@ - + + + \ No newline at end of file diff --git a/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java b/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java index 09f5cf4..b273e3b 100644 --- a/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java +++ b/team1/src/main/java/com/example/demo/repository/EmployeeRepository.java @@ -1,5 +1,7 @@ package com.example.demo.repository; +import java.util.Optional; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -7,5 +9,6 @@ import com.example.demo.entity.EmployeeEntity; @Repository public interface EmployeeRepository extends JpaRepository { + Optional findByMailAddressAndPassword(String mailAddress, String password); } \ No newline at end of file From 17831e01bd1c68df06f5efe6d2f55ecf4bd15c6b Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 15:12:31 +0900 Subject: [PATCH 13/15] no message --- .../example/demo/controller/ApprovalConfirmController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java index 283ea08..c419fd7 100644 --- a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java +++ b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.example.demo.form.ApprovalForm; +import com.example.demo.service.Request; /** * 書籍貸出承認確認用のコントローラ @@ -27,14 +28,14 @@ public class ApprovalConfirmController { private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; HttpSession httpSession; - ApprovalForm approvalform; + Request request; @Autowired public ApprovalConfirmController( HttpSession httpSession, - ApprovalForm approvalform) { + Request request) { this.httpSession = httpSession; - this.approvalform = approvalform; + this.request = request; } @ModelAttribute From 8659fa44c2d53eebfcc4b6e800444c020781eb7e Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 15:37:28 +0900 Subject: [PATCH 14/15] no message --- .../com/example/demo/controller/ApprovalConfirmController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java index c419fd7..19609f5 100644 --- a/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java +++ b/team1/src/main/java/com/example/demo/controller/ApprovalConfirmController.java @@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.example.demo.form.ApprovalForm; -import com.example.demo.service.Request; /** * 書籍貸出承認確認用のコントローラ @@ -49,7 +48,7 @@ public class ApprovalConfirmController { try { - return; + return a ; } catch (Exception e) { // ログイン情報の破棄 httpSession.invalidate(); From 2bdce3b11aa786c983406755c972b074432591b5 Mon Sep 17 00:00:00 2001 From: y-ogawa <26-y-ogawa-tmn@it-college.co.jp> Date: Tue, 20 Oct 2026 15:46:56 +0900 Subject: [PATCH 15/15] no message --- .../resources/templates/approvalComplete.html | 15 +++++++++++++++ .../resources/templates/approvalRejected.html | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 team1/src/main/resources/templates/approvalComplete.html create mode 100644 team1/src/main/resources/templates/approvalRejected.html diff --git a/team1/src/main/resources/templates/approvalComplete.html b/team1/src/main/resources/templates/approvalComplete.html new file mode 100644 index 0000000..a462f51 --- /dev/null +++ b/team1/src/main/resources/templates/approvalComplete.html @@ -0,0 +1,15 @@ + + + + + + + + + + 書籍貸出承認確認 + + + + + \ No newline at end of file diff --git a/team1/src/main/resources/templates/approvalRejected.html b/team1/src/main/resources/templates/approvalRejected.html new file mode 100644 index 0000000..a462f51 --- /dev/null +++ b/team1/src/main/resources/templates/approvalRejected.html @@ -0,0 +1,15 @@ + + + + + + + + + + 書籍貸出承認確認 + + + + + \ No newline at end of file