diff --git a/team1/pom.xml b/team1/pom.xml
index 75ae850..8b03b4f 100644
--- a/team1/pom.xml
+++ b/team1/pom.xml
@@ -79,6 +79,11 @@
HelloSpring
0.0.1-SNAPSHOT
+
+ com.example.rhizome
+ EM-Spring
+ 0.0.1-SNAPSHOT
+
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..19609f5 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;
+ Request request;
+
+ @Autowired
+ public ApprovalConfirmController(
+ HttpSession httpSession,
+ Request request) {
+ this.httpSession = httpSession;
+ this.request = request;
+ }
+
+ @ModelAttribute
+ public ApprovalForm approvalForm() {
+ return new ApprovalForm();
+ }
+
+ @RequestMapping(value = "/ApprovalConfirm", method = RequestMethod.POST)
+ public String AprrvalForm(ApprovalForm ApprovalForm, Model model) {
+
+ try {
+
+
+ return a ;
+ } 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/controller/LendingController.java b/team1/src/main/java/com/example/demo/controller/LendingController.java
new file mode 100644
index 0000000..2c44fd6
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/controller/LendingController.java
@@ -0,0 +1,82 @@
+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 main.java.com.example.rhizome.aop.aspect.PermissionCheck;
+import main.java.com.example.rhizome.aop.aspect.SessionCheck;
+import main.java.com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
+
+/**
+ * 書籍貸出申請に関する処理を制御するコントローラ
+ */
+@Controller
+public class LendingController {
+ // ログ出力用インスタンス
+ private final static Logger LOGGER = Logger.getLogger(LendingController.class.getName());
+ // エラーメッセージ用の定数フィールド
+ private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
+
+ HttpSession httpSession;
+
+ //コンストラクタ注入(一番最初に動く処理)
+ @Autowired
+ public LendingController(HttpSession httpSession) {
+ this.httpSession = httpSession;
+ }
+
+ //画面を開くための初期化(!formクラス名要確認!)
+ @ModelAttribute
+ public LendingForm lendingForm() {
+ return new LendingForm();
+ }
+
+ @PermissionCheck
+ @SessionCheck
+ @RequestMapping(value = "反応するURLを記載", method = RequestMethod.POST)
+ public String confirmLending(@ModelAttribute("lendingForm") LendingForm lendingForm, Model model) {
+ try {
+
+ // HTML側の th:object="${lendingForm}" に渡すデータをセット
+ model.addAllAttribute("lendingForm", lendingForm);
+ // 貸出申請確認画面のHTML名を返す
+ return "applicationConform";
+ } catch (Exception e) {
+ //ログイン情報の破棄
+ httpSession.invalidate();
+
+ e.printStackTrace();
+
+ // エラーログ出力
+ LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+ // エラー画面遷移
+ return TransitionTargetPageNameKeyword.ERROR_HTML;
+
+ }
+
+ }
+ /**
+ * 書籍貸出申請 実行処理
+ *
+ * @param lendingForm 確認画面の隠しフィールド(hidden)から引き継いだデータ
+ * @param model ビューにデータを渡すためのコンテナ
+ * @return 遷移先の画面
+ */
+ @PermissionCheck
+ @SessionCheck
+ @RequestMapping(value = "反応するURLを記載", method = RequestMethod.POST)
+ public String executeLending(@ModelAttribute("lendingForm") LendingForm lendingForm, Model model) {
+ final String LENDING_COMPLETE = "書籍申請完了しました";
+ }
+ try {
+
+ }catch
+}
diff --git a/team1/src/main/java/com/example/demo/controller/LoginController.java b/team1/src/main/java/com/example/demo/controller/LoginController.java
deleted file mode 100644
index a541e29..0000000
--- a/team1/src/main/java/com/example/demo/controller/LoginController.java
+++ /dev/null
@@ -1,140 +0,0 @@
-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
deleted file mode 100644
index b216a06..0000000
--- a/team1/src/main/java/com/example/demo/controller/LogoutController.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.example.demo.controller;
-
-import org.springframework.stereotype.Controller;
-
-@Controller
-public class LogoutController {
-
-}
diff --git a/team1/src/main/java/com/example/demo/controller/SelectBookController.java b/team1/src/main/java/com/example/demo/controller/SelectBookController.java
new file mode 100644
index 0000000..4fa733c
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/controller/SelectBookController.java
@@ -0,0 +1,77 @@
+package com.example.demo.controller;
+
+
+import java.util.List;
+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.entity.Book_collectionEntity;
+import com.example.demo.form.SearchConditionBookForm;
+import com.example.demo.service.SearchBook;
+
+
+
+@Controller
+public class SelectBookController {
+
+ // ログ出力用インスタンス
+ private final static Logger LOGGER = Logger.getLogger(SelectBookController.class.getName());
+ // エラーメッセージ用の定数フィールド
+ private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
+
+ HttpSession httpsession;
+ SearchBook searchBook;
+
+ @Autowired
+ public SelectBookController(HttpSession httpSession, SearchBook searchBook) {
+ this.httpsession = httpSession;
+ this.searchBook = searchBook;
+ }
+
+ //空の検索条件Form
+ @ModelAttribute
+ public SearchConditionBookForm searchConditionBookForm() {
+ return new SearchConditionBookForm();
+ }
+
+// ① 書籍一覧の初期表示
+
+ @RequestMapping(value ="/selectBook", method = RequestMethod.GET)
+ public String select(Model model) {
+ try {
+ //貸出可能な書籍を全権取得する
+ List books = searchBook.selectAll();
+ //検索結果をmodelに登録する
+ model.addAttribute("books" , books);
+ //書籍一覧画面を表示する
+ return "book-search";
+
+ }catch(Exception e) {
+ //httpSessionを破棄
+ httpsession.invalidate();
+ //エラー内容を出力
+ e.printStackTrace();
+ //ログにエラーを記録
+ LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+ //エラー画面へ遷移
+ return "error";
+ }
+ }
+ // ② 検索ボタン押下時の処理
+
+ @RequestMapping(value ="/selectBook", method = RequestMethod.POST)
+ public String ) {
+
+
+
+// }
+}
diff --git a/team1/src/main/java/com/example/demo/form/LoginUserForm.java b/team1/src/main/java/com/example/demo/form/LoginUserForm.java
deleted file mode 100644
index 22b59d1..0000000
--- a/team1/src/main/java/com/example/demo/form/LoginUserForm.java
+++ /dev/null
@@ -1,106 +0,0 @@
-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/form/SearchConditionBookForm.java b/team1/src/main/java/com/example/demo/form/SearchConditionBookForm.java
new file mode 100644
index 0000000..e180cc6
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/form/SearchConditionBookForm.java
@@ -0,0 +1,18 @@
+package com.example.demo.form;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SearchConditionBookForm {
+ //書籍名
+ private String nmBook;
+ //出版社
+ private String pubLisher;
+ //特記事項
+ private String noteText;
+
+}
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
diff --git a/team1/src/main/java/com/example/demo/service/SearchBook.java b/team1/src/main/java/com/example/demo/service/SearchBook.java
new file mode 100644
index 0000000..74bb01c
--- /dev/null
+++ b/team1/src/main/java/com/example/demo/service/SearchBook.java
@@ -0,0 +1,16 @@
+package com.example.demo.service;
+
+import java.util.List;
+
+import com.example.demo.entity.Book_collectionEntity;
+import com.example.demo.form.SearchConditionBookForm;
+
+public interface SearchBook {
+
+ //貸出可能な書籍を全件取得する
+ List selectAll();
+
+ //書籍名・出版社・特記事項を条件に検索する
+ List searchByWithLike(SearchConditionBookForm form);
+
+}
diff --git a/team1/src/main/resources/templates/application.html b/team1/src/main/resources/templates/application.html
new file mode 100644
index 0000000..bbdd703
--- /dev/null
+++ b/team1/src/main/resources/templates/application.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ 書籍貸出申請
+
+
+
+
+
+ ログイン者名:
+
+
+
+
+
+
+
+ 書籍一覧に戻る
+
+
+
\ No newline at end of file
diff --git a/team1/src/main/resources/templates/applicationComplete.html b/team1/src/main/resources/templates/applicationComplete.html
new file mode 100644
index 0000000..3c829ff
--- /dev/null
+++ b/team1/src/main/resources/templates/applicationComplete.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ 書籍貸出申請完了
+
+
+
+
+
+ ログイン者名:
+
+
+
+
+ 書籍申請完了しました
+
+
+ 書籍一覧に戻る
+
+
+ メニューに戻る
+
+
+
+
\ No newline at end of file
diff --git a/team1/src/main/resources/templates/applicationConfirm.html b/team1/src/main/resources/templates/applicationConfirm.html
new file mode 100644
index 0000000..42196dd
--- /dev/null
+++ b/team1/src/main/resources/templates/applicationConfirm.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+ 書籍貸出申請確認
+
+
+
+
+
+ ログイン者名:
+
+
+
+
+ 申請情報入力に戻る
+
+
+
\ No newline at end of file
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
diff --git a/team1/src/main/resources/templates/bookList.html b/team1/src/main/resources/templates/bookList.html
new file mode 100644
index 0000000..70b74ce
--- /dev/null
+++ b/team1/src/main/resources/templates/bookList.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+ 書籍一覧・検索
+
+
+
+
+ログアウト
+書籍一覧・検索
+
+