diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java index 6285d7e..2460b82 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java @@ -28,8 +28,11 @@ if(activityMap.get(userId) == null) { activityMap.put(userId, new HashMap<>()); } + //アクティビティマップにそのユーザのアクティビティIDと4項目を保存 activityMap.get(userId).put(activityId,a); + + acId++; @@ -138,6 +141,31 @@ return null; // ユーザーにアクティビティがない場合 } + //最新のアクティビティを返す + public Activity getLatestActivity(String userId) { + HashMap userActivities = activityMap.get(userId); + if (userActivities != null && !userActivities.isEmpty()) {//userActivitiesが存在かつ要素が入っていれば + // 最も新しい更新時間を取得 + Collection activities = userActivities.values(); + Activity latestActivity = null; // + String latestUpdateTime = ""; + for (Activity activity : activities) { + String updateTime = activity.getUpdateTime(); + if (updateTime.compareTo(latestUpdateTime) > 0) { + latestUpdateTime = updateTime; + latestActivity = activity; + } + } + //最新時刻のアクティビティを取ってきたい + return latestActivity; +// return userActivities.values().stream()//取り出した値(Activityの集合)をストリームに変換し順に処理をつなげていく +// .map(Activity::getUpdateTime)//更新日時を取得します +// .max(String::compareTo)//更新日時の中から「最大の値」(最も新しい日時)を取得します +// .orElse(null); // 最後の更新時間が見つからない場合はnullを返す + } + return null; // ユーザーにアクティビティがない場合 + } + //そのユーザの全アクティビティ情報を保存するリストをの作成 public HashMap getActivitiesForUser(String userId){ if(activityMap.get(userId) == null) {