aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/main/java/com/juick/server/TagQueries.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server/src/main/java/com/juick/server/TagQueries.java')
-rw-r--r--juick-server/src/main/java/com/juick/server/TagQueries.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/juick-server/src/main/java/com/juick/server/TagQueries.java b/juick-server/src/main/java/com/juick/server/TagQueries.java
index ee9a1e21..6d416a37 100644
--- a/juick-server/src/main/java/com/juick/server/TagQueries.java
+++ b/juick-server/src/main/java/com/juick/server/TagQueries.java
@@ -18,6 +18,7 @@
package com.juick.server;
import com.juick.Tag;
+import com.juick.server.helpers.TagStats;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -109,15 +110,16 @@ public class TagQueries {
return holder.getKey().intValue();
}
- public static List<com.juick.Tag> getUserTagsAll(JdbcTemplate sql, int uid) {
+ public static List<TagStats> getTagsStats(JdbcTemplate sql, int uid) {
return sql.query("SELECT tags.name,COUNT(messages.message_id) " +
"FROM (messages INNER JOIN messages_tags ON (messages.user_id=? " +
"AND messages.message_id=messages_tags.message_id)) " +
"INNER JOIN tags ON messages_tags.tag_id=tags.tag_id GROUP BY tags.tag_id ORDER BY tags.name ASC",
(rs, rowNum) -> {
- Tag t = new Tag(StringEscapeUtils.unescapeHtml4(rs.getString(1)));
- t.UsageCnt = rs.getInt(2);
- return t;
+ TagStats s = new TagStats();
+ s.setTag(new Tag(StringEscapeUtils.unescapeHtml4(rs.getString(1))));
+ s.setUsageCount(rs.getInt(2));
+ return s;
}, uid);
}
@@ -132,12 +134,14 @@ public class TagQueries {
.map(StringEscapeUtils::unescapeHtml4).collect(Collectors.toList());
}
public static List<Tag> updateTags(JdbcTemplate sql, int mid, List<Tag> newTags) {
- List<Tag> currentTags = MessagesQueries.getMessageTags(sql, mid);
+ List<Tag> currentTags = MessagesQueries.getMessageTags(sql, mid).stream()
+ .map(TagStats::getTag).collect(Collectors.toList());
newTags.stream().filter(currentTags::contains)
.forEach(t -> sql.update("DELETE FROM messages_tags WHERE message_id=? AND tag_id=?", mid, t.TID));
newTags.stream().filter(t -> !currentTags.contains(t))
.forEach(t -> sql.update("INSERT INTO messages_tags(message_id,tag_id) VALUES (?,?)", mid, t.TID));
- return MessagesQueries.getMessageTags(sql, mid);
+ return MessagesQueries.getMessageTags(sql, mid).stream()
+ .map(TagStats::getTag).collect(Collectors.toList());
}
public static List<Tag> fromString(JdbcTemplate sql, String txt, boolean tagsOnly) {