/** * Delete * * @param model * @return */ public static void delete(UserModel userModel) { // ユーザーのすべてのDateModelを取得 List<DateModel> dateModelList = userModel.getDateModelListRef().getModelList(); for (DateModel dateModel : dateModelList) { // DateModelに紐づくつべてのActivityModel を取得 List<ActivityModel> activityModelList = dateModel.getActivityModelListRef().getModelList(); for (ActivityModel activityModel : activityModelList) { // アクティビティの削除 ActivityService.delete(userModel, activityModel); } // DateModelの削除 DateService.delete(userModel, dateModel); } // URLリストの削除 UserUrlsService.deleteAll(userModel); userModelDao.delete(userModel.getKey()); // 自信のキャッシュをクリア Memcache.delete(userModel.getKey().toString()); // ユーザーカウントのキャッシュクリア clearUserCountAndListMemcache(); // グループのキャッシュをクリア clearGroupUserListMemcache(userModel.getGroup()); }
/** * すべてのユーザーリストを取得 * * @return */ public static List<UserModel> getAllUserList() { List<UserModel> userList = Memcache.get(ALL_USER_LIST); if (Utils.isNotEmpty(userList)) return userList; userList = userModelDao.getAllUserList(); if (Utils.isNotEmpty(userList)) Memcache.put(ALL_USER_LIST, userList); return userList; }
/** * グループのユーザーリストを取得 * * @param groupId * @return */ public static List<UserModel> getGroupUserList(int groupId) { List<UserModel> userList = Memcache.get(getGroupUserListMemcache(groupId)); if (Utils.isNotEmpty(userList)) return userList; userList = userModelDao.getGroupUserList(groupId); if (Utils.isNotEmpty(userList)) Memcache.put(getGroupUserListMemcache(groupId), userList); return userList == null ? new ArrayList<UserModel>() : userList; }
/** * ユーザーカウントの取得 * * @return */ public static int getUserCount() { int serviceUserCount = (Integer) (Memcache.get(SERVICE_USER_COUNT) == null ? 0 : Memcache.get(SERVICE_USER_COUNT)); if (serviceUserCount > 0) return serviceUserCount; serviceUserCount = userModelDao.getUserCount(); if (serviceUserCount > 0) Memcache.put(SERVICE_USER_COUNT, serviceUserCount); return serviceUserCount; }
/** * ユーザーの取得 * * @param email * @return */ public static UserModel getOrNull(String userID) { Key key = createKey(userID); UserModel model = Memcache.get(key.toString()); if (model != null) return model; model = userModelDao.getOrNull(key); if (model != null) Memcache.put(model.getKey().toString(), model); return model; }
/** * PUT * * @param model * @return */ public static UserModel put(UserModel model) { // 永久化 userModelDao.put(model); // 自信のキャッシュをクリア Memcache.delete(model.getKey().toString()); // グループのキャッシュをクリア clearGroupUserListMemcache(model.getGroup()); return model; }
/** * ユーザーリストを取得 * * @return */ public static S3QueryResultList<UserModel> getUserList(String cursor) { S3QueryResultList<UserModel> list = null; // 最初のページをキャッシュする if (StringUtil.isEmpty(cursor)) { // Memcache に存在した場合はMemcache内のmodelを返す list = Memcache.get(USER_LIST_FIRST_30); if (Utils.isNotEmpty(list)) return list; // DBから取得し、存在した場合はMemcacheに入れる list = userModelDao.getUserList(Constants.SERVICE_USER_LIST_LIMIT_NUM); if (Utils.isNotEmpty(list)) Memcache.put(USER_LIST_FIRST_30, list); } else { list = userModelDao.getUserList(Constants.SERVICE_USER_LIST_LIMIT_NUM, cursor); } return list == null ? new S3QueryResultList<UserModel>(new ArrayList<UserModel>(), null, null, null, false) : list; }