diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java index 02816d9..9f20f74 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java @@ -4,17 +4,22 @@ import org.springframework.stereotype.Repository; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; @Repository public class ActivityRepository { + private int acId = 0; //アクティビティ情報を保存するハッシュマップを作成 private final HashMap> activityMap = new HashMap<>(); //アクティビティクラスにはユーザID、アクティビティID、テキスト、投稿した時間を入れる - public Activity addActivity(String userId, String activityId, String text,String updateTime) { + public Activity addActivity(String userId, String text,String updateTime) { + //アクティビティIdがかぶらないように付与 + + String activityId = Integer.toString(acId); Activity a = new Activity(userId,activityId,text,updateTime); //ハッシュマップがなかった場合にアクティビティを入れるハッシュマップの作成 @@ -23,6 +28,8 @@ } //アクティビティマップにそのユーザのアクティビティIDと4項目を保存 activityMap.get(userId).put(activityId,a); + acId++; + //userActivityMapはアクティビティマップのバリューのこと(そのバリューは表になってる) // HashMap userActivityMap = activityMap.getOrDefault(userId, new HashMap<>()); @@ -39,6 +46,20 @@ return activityMap.get(userId).get(activityId); } + //アクティビティのテキストが存在しないとき + public boolean isValidActivity(String userId, String activityId) { + HashMap userActivities = activityMap.get(userId); + if (userActivities == null) return false; + + Activity activity = userActivities.get(activityId); + if (activity == null) return false; + + String activityText = activity.getText(); + if (activityText == null || activityText == "") return false; + + return true; + } + //アクティビティを削除するメソッド public boolean deleteActivity(String userId, String activityId) { HashMap userActivities = activityMap.get(userId); @@ -66,10 +87,19 @@ HashMap userActivities = activityMap.get(userId); if (userActivities != null && !userActivities.isEmpty()) {//userActivitiesが存在かつ要素が入っていれば // 最も新しい更新時間を取得 - return userActivities.values().stream()//取り出した値(Activityの集合)をストリームに変換し順に処理をつなげていく - .map(Activity::getUpdateTime)//更新日時を取得します - .max(String::compareTo)//更新日時の中から「最大の値」(最も新しい日時)を取得します - .orElse(null); // 最後の更新時間が見つからない場合はnullを返す + Collection activities = userActivities.values(); + String lastUpdateTime = ""; + for (Activity activity : activities) { + String updateTime = activity.getUpdateTime(); + if (updateTime.compareTo(lastUpdateTime) > 0) { + lastUpdateTime = updateTime; + } + } + return lastUpdateTime; +// return userActivities.values().stream()//取り出した値(Activityの集合)をストリームに変換し順に処理をつなげていく +// .map(Activity::getUpdateTime)//更新日時を取得します +// .max(String::compareTo)//更新日時の中から「最大の値」(最も新しい日時)を取得します +// .orElse(null); // 最後の更新時間が見つからない場合はnullを返す } return null; // ユーザーにアクティビティがない場合 }