書籍管理ウェブサービス / 処理概要


書籍管理ウェブサービス

処理概要*1)

インタフェースの裏にある各サービスで行われる処理についてまとめておきます。

下線のある部分はDAOや他のBeanを呼ぶところになってます。

ユーザ情報系

ログイン

入力されたユーザID(社員番号)、パスワードを元に、 ログインチェックを行う。

  • ユーザ情報取得
    • ユーザIDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • パスワード照合
    • ユーザ情報のパスワードと入力されたパスワードが一致しているか確認する
      • パスワードが一致しなければエラー
  • セッション情報生成
    • セッションを作成する
      • セッションができなければ例外

ログアウト

セッションを削除しログアウトする

  • セッション情報削除
    • セッションを削除する

ユーザ情報登録

入力されたユーザ情報をDBに登録する。

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • セッションユーザ取得
    • セッションを開いたユーザの情報を取得する
  • 権限チェック
    • セッションを開いたユーザの権限をチェックする
      • 管理者権限が無ければエラー
  • 型変換
    • サービスで公開されているオブジェクトから内部オブジェクトに変換する
  • ユーザ情報登録
    • DBにユーザ情報を登録する

ユーザ情報取得

入力されたユーザIDに該当するユーザの情報を取得する。

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • ユーザ情報取得
    • ユーザIDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • 型変換
    • 内部オブジェクトからサービスで公開されているオブジェクトに変換する

所有/借用情報系

所有書籍検索

ユーザIDをキーに、ユーザが所有する書籍の一覧を取得する

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • 所有書籍情報検索
    • ユーザIDをキーにDBからそのユーザが所有する書籍の情報を検索する。
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • 型変換
    • 内部オブジェクトとAmazonのオブジェクトを合成してサービスで公開されているオブジェクトに変換する

借用書籍検索

ユーザIDをキーに、ユーザが借りている書籍の一覧を取得する

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • 借用書籍情報検索
    • ユーザIDをキーにDBからそのユーザが借りている書籍の情報を検索する。
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • 型変換
    • 内部オブジェクトとAmazonのオブジェクトを合成してサービスで公開されているオブジェクトに変換する

書籍所有者情報検索

ISBNをキーに、書籍と所有するユーザごとの情報を取得する

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • 書籍所有者情報検索
    • ISBNをキーにDBから所有するユーザごとの書籍の情報を取得する。
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • 型変換
    • 内部オブジェクトとAmazonのオブジェクトを合成してサービスで公開されているオブジェクトに変換する

所有書籍情報取得

ユーザIDとISBNをキーに、ユーザが所有する書籍を取得する

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • 所有書籍情報取得
    • ユーザIDとISBNをキーにDBからそのユーザが所有する書籍の情報を取得する。
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • 型変換
    • 内部オブジェクトとAmazonのオブジェクトを合成してサービスで公開されているオブジェクトに変換する

所有書籍情報登録

所有する書籍の情報をDBに登録する

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • セッションユーザ取得
    • セッションを開いたユーザの情報を取得する
  • 権限チェック
    • セッションを開いたユーザと書籍所有者が一致するかどうかチェックする
      • 一致しなければエラー
  • 型変換
    • サービスで公開されているオブジェクトから内部オブジェクトに変換する
  • 所有書籍情報登録
    • DBに所有書籍情報を登録する
  • 書籍貸出情報登録 : 冊数分繰り返し
    • DBに書籍貸出情報を登録する

貸出要請

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • セッションユーザ取得
    • セッションを開いたユーザの情報を取得する
  • 権限チェック
    • セッションを開いたユーザ貸出要請者が一致するかどうかチェックする
      • 一致しなければエラー
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • ステータス確認
    • ステータスが「通常」であることを確認する
      • すべての書籍が「通常」でなければエラー
  • ユーザ情報取得:対象 所有者
    • ユーザIDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • ユーザ情報取得:対象 要請者
    • ユーザIDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • メール作成
    • 本文のテンプレートに必要な事項を埋めていく
      • 所有者の名前
      • 要請者の名前
      • 本のタイトル
      • 貸出承諾ページへのリンク(所有者ID/ISBN/要請者ID)
      • など
    • 差出人アドレスに要請者の一番目のメールアドレスを設定する
    • 受取人アドレスに所有者のすべてのメールアドレスを設定する
  • メール送信
    • 作成したメールを送信する
  • ステータス変更
    • 書籍のステータスを「貸出要請中(?)」にする
  • 書籍貸出情報保存
    • 修正した書籍貸出情報をDBに反映する

貸出承諾

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • セッションユーザ取得
    • セッションを開いたユーザの情報を取得する
  • 権限チェック
    • セッションを開いたユーザと書籍所有者が一致するかどうかチェックする
      • 一致しなければエラー
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • ステータス確認
    • ステータスが「貸出要請中」であることを確認する
      • すべての書籍が「貸出要請中」でなければエラー
  • ユーザ情報取得:対象 所有者
    • ユーザIDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • ユーザ情報取得:対象 要請者
    • ユーザIDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • メール作成
    • 本文のテンプレートに必要な事項を埋めていく
      • 所有者の名前
      • 要請者の名前
      • 本のタイトル
      • 返却申請ページへのリンク(所有者ID/ISBN/要請者ID)
      • など
    • 差出人アドレスに所有者の一番目のメールアドレスを設定する
    • 受取人アドレスに要請者のすべてのメールアドレスを設定する
  • メール送信
    • 作成したメールを送信する
  • ステータス変更
    • 書籍のステータスを「貸出中」にする
  • 所有書籍情報保存
    • 修正した書籍貸出情報をDBに反映する

返却申請

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • セッションユーザ取得
    • セッションを開いたユーザの情報を取得する
  • 権限チェック
    • セッションを開いたユーザと書籍借用者が一致するかどうかチェックする
      • 一致しなければエラー
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • ステータス確認
    • ステータスが「貸出中」であることを確認する
      • すべての書籍が「貸出中」でなければエラー
  • ユーザ情報取得
    • 所有者IDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • ユーザ情報取得
    • 借用者IDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • メール作成
    • 本文のテンプレートに必要な事項を埋めていく
      • 所有者の名前
      • 借用者の名前
      • 本のタイトル
      • 返却確認ページへのリンク(所有者ID/ISBN/要請者ID)
      • など
    • 差出人アドレスに借用者の一番目のメールアドレスを設定する
    • 受取人アドレスに所有者のすべてのメールアドレスを設定する
  • メール送信
    • 作成したメールを送信する
  • ステータス変更
    • 書籍のステータスを「返却待ち(?)」にする
  • 書籍貸出情報保存
    • 修正した書籍貸出情報をDBに反映する

返却確認

  • セッション情報チェック
    • セッションが存在するかどうかチェックする
      • セッションが存在しなければエラー
  • セッションユーザ取得
    • セッションを開いたユーザの情報を取得する
  • 権限チェック
    • セッションを開いたユーザと書籍所有者が一致するかどうかチェックする
      • 一致しなければエラー
  • 書籍貸出情報取得
    • 所有者IDとISBNをキーにDBからそのユーザが所有する書籍の貸出情報を取得する。(複数の可能性あり)
  • ステータス確認
    • ステータスが「返却待ち」であることを確認する
      • すべての書籍が「返却待ち」でなければエラー
  • ユーザ情報取得
    • 所有者IDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • ユーザ情報取得
    • 借用者IDをキーにユーザ情報を取得する
      • 取得できなければエラー
  • Amazon検索
    • 取得した書籍の情報に含まれるISBNコードをキーに、書籍の詳細情報を取得する
  • メール作成
    • 本文のテンプレートに必要な事項を埋めていく
      • 所有者の名前
      • 借用者の名前
      • 本のタイトル
      • など
    • 差出人アドレスに所有者の一番目のメールアドレスを設定する
    • 受取人アドレスに借用者のすべてのメールアドレスを設定する
  • メール送信
    • 作成したメールを送信する
  • ステータス変更
    • 書籍のステータスを「通常」にする
  • 貸出履歴情報作成
    • 書籍貸出情報を元に、貸出履歴情報を作成する
  • 貸出履歴情報登録
    • DBに貸し出し履歴情報を登録する
  • 書籍貸出情報保存
    • 修正した書籍貸出情報をDBに反映する

*1 (概要と言うか詳細になってるね