This commit is contained in:
Athou
2013-04-09 11:10:26 +02:00
parent 1f8aa26571
commit 384bafa38e
8 changed files with 130 additions and 21 deletions

View File

@@ -48,6 +48,7 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
}
}
if (foundEntry == null) {
entry.setInserted(Calendar.getInstance().getTime());
addFeedToEntry(entry, feed);
} else {
boolean foundFeed = false;

View File

@@ -1,5 +1,6 @@
package com.commafeed.backend.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -152,27 +153,33 @@ public class FeedEntryStatusService extends GenericDAO<FeedEntryStatus> {
return query.getResultList();
}
public void markFeedEntries(User user, Feed feed) {
public void markFeedEntries(User user, Feed feed, Date olderThan) {
List<FeedEntryStatus> statuses = getStatuses(feed, user, true);
update(markList(statuses));
update(markList(statuses, olderThan));
}
public void markCategoryEntries(User user, List<FeedCategory> categories) {
public void markCategoryEntries(User user, List<FeedCategory> categories,
Date olderThan) {
List<FeedEntryStatus> statuses = getStatuses(categories, user, true);
update(markList(statuses));
update(markList(statuses, olderThan));
}
public void markAllEntries(User user) {
public void markAllEntries(User user, Date olderThan) {
List<FeedEntryStatus> statuses = getStatuses(user, true);
update(markList(statuses));
update(markList(statuses, olderThan));
}
private List<FeedEntryStatus> markList(List<FeedEntryStatus> statuses) {
private List<FeedEntryStatus> markList(List<FeedEntryStatus> statuses,
Date olderThan) {
List<FeedEntryStatus> list = Lists.newArrayList();
for (FeedEntryStatus status : statuses) {
if (!status.isRead()) {
status.setRead(true);
list.add(status);
Date inserted = status.getEntry().getInserted();
if (olderThan == null || inserted == null
|| olderThan.after(inserted)) {
status.setRead(true);
list.add(status);
}
}
}
return list;

View File

@@ -40,6 +40,10 @@ public class FeedEntry extends AbstractModel {
@Column(length = 2048)
private String url;
@Temporal(TemporalType.TIMESTAMP)
@Index(name = "inserted_index")
private Date inserted;
@Temporal(TemporalType.TIMESTAMP)
@Index(name = "updated_index")
private Date updated;
@@ -103,4 +107,12 @@ public class FeedEntry extends AbstractModel {
this.statuses = statuses;
}
public Date getInserted() {
return inserted;
}
public void setInserted(Date inserted) {
this.inserted = inserted;
}
}