aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/service/SubscriptionServiceImpl.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2022-12-03 15:28:06 +0300
committerGravatar Vitaly Takmazov2022-12-14 12:57:52 +0300
commit0c0ea8897e64461b1cfa9cd86a939b48f0bdd640 (patch)
treef11c73b8246b0724b26ca08529c3c702e1722d79 /src/main/java/com/juick/service/SubscriptionServiceImpl.java
parent8344ea3e3e652f5307ffb6115d6fdebf638ba098 (diff)
Initial PostgreSQL schema and profile
Diffstat (limited to 'src/main/java/com/juick/service/SubscriptionServiceImpl.java')
-rw-r--r--src/main/java/com/juick/service/SubscriptionServiceImpl.java30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/com/juick/service/SubscriptionServiceImpl.java b/src/main/java/com/juick/service/SubscriptionServiceImpl.java
index 962f8460..ca813c67 100644
--- a/src/main/java/com/juick/service/SubscriptionServiceImpl.java
+++ b/src/main/java/com/juick/service/SubscriptionServiceImpl.java
@@ -25,6 +25,7 @@ import com.juick.util.MessageUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.collections4.ListUtils;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.stereotype.Repository;
@@ -69,7 +70,8 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
Set<Integer> set = new HashSet<>(users.stream()
.filter(u -> !u.isBanned())
- .map(User::getUid).filter(u -> Collections.disjoint(tagService.getUserBLTags(u), tagsStr))
+ .map(User::getUid)
+ .filter(u -> Collections.disjoint(tagService.getUserBLTags(u), tagsStr))
.collect(Collectors.toList()));
if (!tags.isEmpty()) {
@@ -121,7 +123,8 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
return userService.getUserReaders(uid).stream()
.filter(u -> !u.equals(msg.getUser()))
.filter(u -> !userService.isInBLAny(u.getUid(), msg.getUser().getUid()))
- .filter(u -> Collections.disjoint(tagService.getUserBLTags(u.getUid()), msgTags))
+ .filter(u -> Collections.disjoint(tagService.getUserBLTags(u.getUid()),
+ msgTags))
.collect(Collectors.toList());
}
return Collections.emptyList();
@@ -130,11 +133,15 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
@Transactional
@Override
public boolean subscribeMessage(final Message message, final User user) {
- boolean result = getJdbcTemplate().update(
- "INSERT INTO subscr_messages(suser_id, message_id) VALUES (?, ?) ON DUPLICATE KEY UPDATE suser_id=?",
- user.getUid(), message.getMid(), user.getUid()) == 1;
- messagesService.setLastReadComment(user, message.getMid(), message.getReplies());
- return result;
+ try {
+ boolean result = getJdbcTemplate().update(
+ "INSERT INTO subscr_messages(suser_id, message_id) VALUES (?, ?)",
+ user.getUid(), message.getMid()) == 1;
+ messagesService.setLastReadComment(user, message.getMid(), message.getReplies());
+ return result;
+ } catch (DataIntegrityViolationException e) {
+ return false;
+ }
}
@Transactional
@@ -149,7 +156,8 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
public boolean subscribeUser(final User user, final User toUser) {
try {
return getJdbcTemplate().update(
- "INSERT INTO subscr_users(user_id,suser_id) VALUES (?,?)", toUser.getUid(), user.getUid()) == 1;
+ "INSERT INTO subscr_users(user_id,suser_id) VALUES (?,?)", toUser.getUid(),
+ user.getUid()) == 1;
} catch (DuplicateKeyException e) {
return true;
}
@@ -159,7 +167,8 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
@Override
public boolean unSubscribeUser(final User user, final User fromUser) {
return getJdbcTemplate().update(
- "DELETE FROM subscr_users WHERE suser_id=? AND user_id=?", user.getUid(), fromUser.getUid()) > 0;
+ "DELETE FROM subscr_users WHERE suser_id=? AND user_id=?", user.getUid(),
+ fromUser.getUid()) > 0;
}
@Transactional
@@ -168,7 +177,8 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
try {
return getJdbcTemplate().update(
- "INSERT INTO subscr_tags(tag_id,suser_id) VALUES (?,?)", toTag.TID, user.getUid()) == 1;
+ "INSERT INTO subscr_tags(tag_id,suser_id) VALUES (?,?)", toTag.TID,
+ user.getUid()) == 1;
} catch (DuplicateKeyException e) {
return true;
}