#author("2021-06-24T05:42:22+00:00","","")
#author("2021-06-24T05:42:29+00:00","","")
[[第2回/ToDo管理/管理者機能実装]]

* ToDo管理アプリケーションのメンバー機能の実装 [#p2d2a420]


** UI紙芝居 [#d8ec5d1c]
- グループで相談しながら,各自で考えよ
-- 手書き、エクセル、パワポ、なんでも良い
-- 後で見せてください。

 
** 実装方針 [#jae00adf]

メンバーのユースケースでは,ToDoの取得(UC12, UC15), 登録(UC13),完了(UC14)を行う
よって,下記の順番で実装していく
- M1: ToDoのエンティティを定義
- M2: ToDoをCRUDするレポジトリを作成
- M3: ToDoの登録フォームを作成
- M4: ToDoを登録,取得,完了するサービスを作成
-- 存在チェックや重複チェックも行う
-- ユーザ毎のToDo, Doneを取得する
-- 全員のToDo, Doneを取得する
- M5: サービスを呼び出すコントローラを作成
-- リクエストマッピング
-- 画面生成・遷移
-- ログイン(IC11)はメンバーIDの存在チェックをして,個人ページにリダイレクトすればOK.
- M6: 画面用のHTMLテンプレートを作成する

*** M1: Entity - エンティティ [#vfbf22ab]
- enrity/ToDo.java
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
 @Entity
 public class ToDo {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     Long seq;         //通し番号
     String title;     //題目
     String mid;       //作成者
     boolean done;     //完了フラグ
     @Temporal(TemporalType.TIMESTAMP)
     Date createdAt;   //作成日時
     @Temporal(TemporalType.TIMESTAMP)
     Date doneAt;      //完了日時
 }
- @GeneratedValue(...) - IDを自動採番するときには,このように書く
- @Temporal - Date型など日時をあらわす属性につける
-- TemporalType.DATE - 日付部のみが永続化される
-- TemporalType.TIME - 時刻部のみが永続化される
-- TemporalType.TIMESTAMP - 日時ともに永続化される

*** M2: レポジトリ - Repository [#zeda943e]
- repository/ToDoRepository.java
-- ヒント:自動実装されるメソッドに加えて,下記のカスタムメソッドを追加する
--- midとdoneの値でToDoを検索するメソッド → ユーザのToDoリスト,Doneリストを取得するのに使う
--- doneの値でToDoを検索するメソッド → 全員のToDoリスト,Doneリストを取得するのに使う

*** M3: フォーム -  Form [#l6117cc0]
- dto/ToDoForm.java
-- 今回の属性はタイトルだけ

*** M4: サービス - Service [#i3e56bba]
- service/ToDoService.java
-- public ToDo createToDo(String mid, ToDoForm form) {/* メンバーmidが新しくToDoを作成する */}
-- public ToDo getToDo(Long seq) {/* 番号を指定してToDoを取得 */}
-- public List<ToDo> getToDoList(String mid) {/* midのToDoリストを取得 */}
-- public List<ToDo> getDoneList(String mid) {/* midのDoneリストを取得 */}
-- public List<ToDo> getToDoList() {/* 全員のToDoリストを取得 */}
-- public List<ToDo> getDoneList() {/* 全員のDoneリストを取得 */}

*** M5: コントローラ - Controller [#k4b2e8ca]
- controller/ToDoController.java

*** M6: 画面 - HTMLテンプレート [#w2dfaf30]
- templates/index.html (アプリTop画面)
- 素材
-- &attachref(todo_people.png);

- templates/list.html (自分のToDoリスト画面)
- templates/alllist.html (みんなのToDoリスト画面)

*** 実行&テスト [#y6043e69]
- http://localhost:18080/

** デプロイ [#j87d615f]
- http://localhost:8080/ToDoApp/

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS