gamecenter有用代码(二)
1、Map转换为list
/** * 将展示结构的Map封装为List<AppPage> * * @param map * @return List<AppPage> */ protected List<AppPage> wrapAppPageList(Map<Integer, List<Integer>> friendsPlayMap) { if (MapUtils.isEmpty(friendsPlayMap)) { return null; } Integer[] appPageIds = friendsPlayMap.keySet().toArray(new Integer[friendsPlayMap.size()]); List<Integer> appPageIdList = convertToIntegerList(appPageIds); List<AppPage> appPageList = getAppPagesByPageIds(appPageIdList); if (CollectionUtils.isNotEmpty(appPageList)) { for (AppPage appPage : appPageList) { List<Integer> friendIds = friendsPlayMap.get(appPage.getId()); if (friendIds != null) { //将好友List转换为字符串 appPage.setFriends(StringUtils.join(friendIds, ",")); } } } return appPageList; }
for (Iterator<AppPage> iterator = appPages.iterator(); iterator.hasNext();) { AppPage appPage = iterator.next(); List<AppPageSupport> pageSupports = appPage.getAppPageSupports(); if (pageSupports != null) { boolean match = false; // 如果是下载类的page,需要判断os是否支持 if (appPage.getType() == AppPageConstant.APP_PAGE_TYPE_DOWNLOAD) { for (AppPageSupport pageSupport : pageSupports) { if (pageSupport.getOs() == os) { match = true; break; } } } else { match = true; } //如果不匹配,过滤掉 if (!match) { iterator.remove(); } } }
public static long getExpiredDayTime(int expiredDays) { if (expiredDays >= 0) { try { Date today = format.parse(format.format(new Date()).substring(0, 10) + " 00:00:00"); return (today.getTime() - oneDay * expiredDays); } catch (ParseException e) { e.printStackTrace(); } } return 0L; }
private MongoDB mongoDB; public void setMongoDB(MongoDB mongoDB) { this.mongoDB = mongoDB; }BasicDBObject query = new BasicDBObject(); query.put(MongoConstant.USER_ID, userId); DBObject dbObject = mongoDB.getDBByName(MongoConstant.DB_NAME) .getCollection(MongoConstant.COLL_FRIENDS_PLAY_RESULT).findOne(query);if (dbObject != null) { //应用列表 BasicDBList friendPlayApp = (BasicDBList) dbObject .get(MongoConstant.FRIEND_PLAY_RESULT); for (Object friends : friendPlayApp) { List<Integer> friendPlayList = new ArrayList<Integer>(); //好友id列表 BasicDBObject friendIdList = (BasicDBObject) friends; BasicDBList userPlayBasicDBList = (BasicDBList) friendIdList .get(MongoConstant.USER_ID_LIST); Integer appId = (Integer) friendIdList.get(MongoConstant.APP_ID); for (Object userPlay : userPlayBasicDBList) { BasicDBObject dbUserPlay = (BasicDBObject) userPlay; if (dbUserPlay.getLong(MongoConstant.TIME) > time) { friendPlayList.add(dbUserPlay.getInt(MongoConstant.USER_ID)); } } if (friendPlayList.size() > 0) { resultMap.put(appId, friendPlayList); } }