@Override protected Map<Integer, RatingVO<Integer, Integer>> getAverageItemRatings(final Integer tenantId, final Integer itemTypeId) { final List<RatingVO<Integer, Integer>> averageItemRatings = getLatestActionDao() .getAverageRatingsForUser(tenantId, itemTypeId); final Map<Integer, RatingVO<Integer, Integer>> averageItemRatingsPerUser = new HashMap<Integer, RatingVO<Integer, Integer>>( averageItemRatings.size()); for (final RatingVO<Integer, Integer> rating : averageItemRatings) averageItemRatingsPerUser.put(rating.getUser(), rating); return averageItemRatingsPerUser; } }
private Map<Integer, Double> getAverageUserRatingMap(final Integer tenantId, final Integer itemTypeId) { final List<RatingVO<Integer, Integer>> averageRatings = latestActionDao .getAverageRatingsForUser(tenantId, itemTypeId); final Map<Integer, Double> result = new HashMap<Integer, Double>(averageRatings.size()); for (final RatingVO<Integer, Integer> averageRating : averageRatings) result.put(averageRating.getUser(), averageRating.getRatingValue()); return result; }
@Override protected double getAverage1(final RatedTogether<Integer, Integer> ratedTogether, final Map<Integer, RatingVO<Integer, Integer>> averageRatings) { return averageRatings.get(ratedTogether.getRating1().getUser()).getRatingValue(); }
public boolean didUserRateItem(final Integer userId, final ItemVO<Integer, Integer> item, final Integer actionTypeId) { if (actionTypeId != this.actionTypeId) return false; for (RatingVO<Integer, Integer> rating : ratings) { if (!rating.getUser().equals(userId)) continue; if (!rating.getItem().equals(item)) continue; return true; } return false; }
@Override protected double getAverage2(final RatedTogether<Integer, Integer> ratedTogether, final Map<Integer, RatingVO<Integer, Integer>> averageRatings) { return averageRatings.get(ratedTogether.getRating1().getUser()).getRatingValue(); }
public List<RatingVO<Integer, Integer>> getAverageRatingsForUser(final Integer tenantId, final Integer itemTypeId) { Map<Integer, Double> sum = new HashMap<Integer, Double>(); Map<Integer, Integer> count = new HashMap<Integer, Integer>(); for (RatingVO<Integer, Integer> rating : ratings) { if (!tenantId.equals(rating.getItem().getTenant())) continue; if (!itemTypeId.equals(rating.getItem().getType())) continue; Integer key = rating.getUser(); if (!sum.containsKey(key)) { sum.put(key, 0.0); count.put(key, 0); } sum.put(key, sum.get(key) + rating.getRatingValue()); count.put(key, count.get(key) + 1); } List<RatingVO<Integer, Integer>> result = new ArrayList<RatingVO<Integer, Integer>>( sum.size()); for (Integer key : sum.keySet()) { RatingVO<Integer, Integer> rating = new RatingVO<Integer, Integer>(null, sum.get(key) / count.get(key), count.get(key), null, key, null); result.add(rating); } return result; }
public List<RatingVO<Integer, Integer>> getLatestRatingsForTenant(final Integer tenantId, final Integer itemTypeId, final Integer itemId, final Integer userId, final Date since) { List<RatingVO<Integer, Integer>> result = new LinkedList<RatingVO<Integer, Integer>>(); for (RatingVO<Integer, Integer> rating : ratings) { if (!rating.getItem().getTenant().equals(tenantId)) continue; if (!rating.getItem().getType().equals(itemTypeId)) continue; if (itemId != null && !rating.getItem().getItem().equals(itemId)) continue; if (userId != null && !rating.getUser().equals(userId)) continue; if (since != null && !rating.getLastActionTime().after(since)) continue; result.add(rating); } return result; }
if (!rating.getItem().getItem().equals(item1Id) && !rating.getItem().getItem().equals(item2Id)) continue; Integer user = rating.getUser(); rating1.getCount(), null, rating1.getUser(), null); rating2 = new RatingVO<Integer, Integer>(rating2.getItem(), rating2.getRatingValue(), rating2.getCount(), null, rating2.getUser(), null);
@Override public RatingVO<Integer, Integer> convertTypedRatingVO(Integer tenantId, RatingVO<Integer, String> typedRating) { if (typedRating == null) { return null; } return new RatingVO<Integer, Integer>( convertTypedItemVO(tenantId, typedRating.getItem()), typedRating.getRatingValue(), typedRating.getCount(), typedRating.getLastActionTime(), typedRating.getUser(), typedRating.getSessionId()); }
@Override public RatingVO<Integer, String> convertRatingVO(Integer tenantId, RatingVO<Integer, Integer> rating) { if (rating == null) { return null; } return new RatingVO<Integer, String>( convertItemVO(tenantId, rating.getItem()), rating.getRatingValue(), rating.getCount(), rating.getLastActionTime(), rating.getUser(), rating.getSessionId()); }