/** * すべてのユーザーリストを取得 * * @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 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; }
/** * Twitterの取得 * * @throws IOException */ private String getMessage(ActivityModel activityModel, String shortUrl) throws Exception { String twitterMessage = null; // 再共有の場合 if (activityModel.getVerb().getCategory().equals(Constants.GOOGLE_ACTIVITY_VERB_TYPE_SHARE)) { // 追加コメントが存在しない場合 if (activityModel.getAnnotationString() == null) { // タイトルが存在しない場合 if (activityModel.getTitleString() == null) { return "[ #PluCial " + shortUrl + " ]"; // タイトル存在する場合 } else { twitterMessage = activityModel.getTitleString(); } // 追加コメントが存在する場合 } else { twitterMessage = activityModel.getAnnotationString(); } // 通常投稿の場合 } else { // タイトルが存在しない場合 if (activityModel.getTitleString() == null) { // 添付コンテンツのタイトルが存在しない場合 if (activityModel.getAttachmentsDisplayNameString() == null) { return "[ #PluCial " + shortUrl + " ]"; // 添付コンテンツのタイトルが存在する場合 } else { twitterMessage = activityModel.getAttachmentsDisplayNameString(); } // タイトル存在する場合 } else { twitterMessage = activityModel.getTitleString(); } } if (twitterMessage == null) { return "[ #PluCial " + shortUrl + " ]"; } else { // リンクタグを削除 twitterMessage = Utils.removeLinkTags(twitterMessage); // 太文字を削除 twitterMessage = Utils.removeBTags(twitterMessage); // 改行の変換 twitterMessage = twitterMessage.replace("<br>", "\n"); // spanタグを削除 twitterMessage = Utils.removeSpanTags(twitterMessage); } String lastString = ("\n[ #PluCial " + shortUrl + " ]"); int limit_num = 100; // 画像の場合はTwitterメディア分の23文字を減らす if (activityModel.getAttachmentsType() != null && (activityModel .getAttachmentsType() .getCategory() .equals(Constants.GOOGLE_ACTIVITY_ATTACHMENTS_TYPE_PHOTO) || activityModel .getAttachmentsType() .getCategory() .equals(Constants.GOOGLE_ACTIVITY_ATTACHMENTS_TYPE_ALBUM)) && activityModel.getVerb().getCategory().equals(Constants.GOOGLE_ACTIVITY_VERB_TYPE_POST)) { limit_num = limit_num - 23; } // ドメイン分 の 23文字を削減 int domainCount = getDomainCount(twitterMessage); limit_num = limit_num - (domainCount * 23); // URL複数含まれる投稿はマイナスになる可能性がある if (limit_num < 0) return "[ #PluCial " + shortUrl + " ]"; // タイトルの文字数が問題ない場合 if (twitterMessage.length() <= limit_num) return twitterMessage + lastString; // タイトルの文字数が制限オーバーの場合 String message = twitterMessage.substring(0, limit_num - 3) + "..."; return message + lastString; }