学習106日目:コメントとリマインダー機能の実装完了。

今日の学習時間。

  • Day:106
  • Today:8h
  • Total:692h

学習内容について。

  • 日報管理システム開発
    • コメント機能の実装
    • リマインダー機能の実装
    • 『Spring Boot 2 プログラミング入門』

コメント機能の実装(昨日の続き)。

昨日はコメントをデータベースに登録するところまでしました。なので後はそのデータを取ってきてテーブルに並べ直す作業をすれば完了です。

こちらがissueです。昨日の作業も含めて流れを確認すると下記のとおりになります。

  1. 承認テーブルにコメントを登録
  2. 日報詳細ページのJSPに最新コメントと新規コメント入力欄<textarea>を作成
  3. 既存の承認・差し戻しを作成するサーブレットにコメントを追加
  4. ②のJSPで新規コメント入力欄の条件分岐を作成
  5. JPQLで降順に承認履歴を取得するクエリを作成
  6. createNamedQueryを利用する際に1件のみ取得しセット
  7. コメントの付加情報もサーブレットでセット
  8. JSPでEL式を使って取り出す

これで日報詳細ページからコメントを追加し、そのコメントをレビューされる側が確認できます。さらに今までの承認履歴も見れた方が良いだろうということで昨日のメンタリングで提案されたとおりに新たに日報の承認履歴一覧ページを作成しました。一応、上記のissueに含まれているので詳しくはそちらをご覧ください。

リマインダー機能の実装。

こちらも簡単に作業順序をメモしておきます。

  1. トップページのJSPにリマインダーの型を書いておく
  2. JPQLでそれぞれ前日以前の下書き、課長承認待ち、部長承認待ちを取得するクエリを作成
  3. ②で作成したクエリを元にトップページのサーブレットでパラメータをセットし、それぞれのカウントを取得
  4. JSPで条件分岐を使いつつ、前日以前のタスクがある場合にリマインダーを表示

ここで問題になってくるのがどうやって前日以前の日報を取得するかです。JPQLではSQLとは違ってクエリのみで前日の日報を取得することはできません。つまり、DATEADD関数とかが使えない訳です。ということでサーブレットからパラメータを使って前日以前の日報カウントを抽出しました。後厄介だったのが④の条件分岐。<div>タグが邪魔して無駄に長いif文になってしまいました。まるでFizzBuzzをやってるような気分でしたね。

今日の反省と明日の目標。

予定どおり設計していた機能実装まで終えることが出来て良かったです。それから余った時間はSpring Bootの学習に充てました。一応、本は読み終わったのでボチボチ重い腰を上げてオリジナルアプリの開発にのめり込んでいく予定です。

閉じる