Skip to content

Commit

Permalink
fixed ThreadTag bug
Browse files Browse the repository at this point in the history
  • Loading branch information
banq committed Oct 18, 2019
1 parent a2fc1c1 commit ed1be50
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 40 deletions.
61 changes: 27 additions & 34 deletions src/main/java/com/jdon/jivejdon/model/ForumThread.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
import com.jdon.annotation.Model;
import com.jdon.annotation.model.Inject;
import com.jdon.domain.message.DomainMessage;
import com.jdon.jivejdon.util.Constants;
import com.jdon.jivejdon.pubsub.domain.producer.read.LazyLoaderRole;
import com.jdon.jivejdon.pubsub.domain.producer.write.MessageEventSourcingRole;
import com.jdon.jivejdon.model.event.*;
import com.jdon.jivejdon.model.event.MessageMovedEvent;
import com.jdon.jivejdon.model.event.MessageRemoveCommand;
import com.jdon.jivejdon.model.event.MessageRemovedEvent;
import com.jdon.jivejdon.model.event.ThreadNameSavedEvent;
import com.jdon.jivejdon.model.property.ThreadTag;
import com.jdon.jivejdon.model.realtime.ForumMessageDTO;
import com.jdon.jivejdon.model.realtime.LobbyPublisherRoleIF;
Expand All @@ -32,12 +32,14 @@
import com.jdon.jivejdon.model.thread.ViewCounter;
import com.jdon.jivejdon.model.util.ForumModel;
import com.jdon.jivejdon.model.util.OneOneDTO;
import com.jdon.jivejdon.pubsub.domain.producer.read.LazyLoaderRole;
import com.jdon.jivejdon.pubsub.domain.producer.write.MessageEventSourcingRole;
import com.jdon.jivejdon.util.Constants;
import com.jdon.treepatterns.TreeVisitor;
import com.jdon.treepatterns.model.TreeModel;
import com.jdon.util.StringUtil;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.concurrent.atomic.AtomicReference;
Expand Down Expand Up @@ -205,27 +207,9 @@ private void setRootMessage(ForumMessage rootMessage) {
* @return Returns the forumThreadState.
*/
public ForumThreadState getState() {

return state.get();
}


public Collection<ThreadTag> getTags() {
return this.threadTagsVO.getTags();
}

public void changeTags(String[] tagTitles) {
if (tagTitles == null || tagTitles.length == 0)
return;
getRootMessage().setTagTitle(tagTitles);
eventSourcing.saveTagTitles(new ThreadTagsSavedEvent(this.threadId,
Arrays.asList(tagTitles)));
}

public String[] getTagTitles() {
return getRootMessage().getTagTitle();
}

public boolean isRoot(ForumMessage message) {
try {
if (message.getMessageId().longValue() == getRootMessage()
Expand Down Expand Up @@ -294,12 +278,10 @@ public Forum moveForum(ForumMessage forumMessage, Forum newForum) {
public void updateMessage(ForumMessage forumMessage) {
if (isRoot(forumMessage)) {
this.setRootMessage(forumMessage);
changeTags(forumMessage.getTagTitle());
setRootMessageTitles();
}

this.state.get().setLatestPost(forumMessage);
this.forum.updateNewMessage(forumMessage);

}


Expand Down Expand Up @@ -358,18 +340,29 @@ public ThreadTagsVO getThreadTagsVO() {

private void setThreadTagsVO(ThreadTagsVO threadTagsVO) {
this.threadTagsVO = threadTagsVO;
setRootMessageTitles();
}

// set rootMessage's titles;
String[] tagTitles = new String[threadTagsVO.getTags().size()];
int i = 0;
for (Object o : threadTagsVO.getTags()) {
ThreadTag tag = (ThreadTag) o;
tagTitles[i] = tag.getTitle();
i++;
}
private void setRootMessageTitles(){
String[] tagTitles = threadTagsVO.getTags().stream().map(ThreadTag::getTitle).toArray(String[]::new);
getRootMessage().setTagTitle(tagTitles);
}

public Collection<ThreadTag> getTags() {
return this.threadTagsVO.getTags();
}

public void changeTags(ThreadTagsVO threadTagsVO) {
this.getThreadTagsVO().subscriptionNotify(threadTagsVO.getTags());
this.threadTagsVO = threadTagsVO;
setRootMessageTitles();
}

public String[] getTagTitles() {
return getRootMessage().getTagTitle();
}


/**
* all dig for reply messages add to root Message
* @param message
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,6 @@ public DomainMessage saveUploadFiles(UploadFilesSavedEvent event) {
return new DomainMessage(event);
}

@Send("saveTags")
public DomainMessage saveTagTitles(ThreadTagsSavedEvent event) {
return new DomainMessage(event);
}

@Send("saveName")
public DomainMessage saveName(ThreadNameSavedEvent event) {
return new DomainMessage(event);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.jdon.controller.events.EventModel;
import com.jdon.controller.model.PageIterator;
import com.jdon.controller.pool.Poolable;
import com.jdon.jivejdon.model.thread.ThreadTagsVO;
import com.jdon.jivejdon.util.Constants;
import com.jdon.jivejdon.model.ForumThread;
import com.jdon.jivejdon.model.property.HotKeys;
Expand Down Expand Up @@ -137,10 +138,13 @@ public void saveTag(Long threadId, String[] tagTitles) {
return;
}
try {
tagRepository.saveTagTitle(threadId, tagTitles);
Optional<ForumThread> forumThreadOptional = messageRepository.getForumBuilder()
.getThread(threadId);
Collection<ThreadTag> newtags = tagRepository.getThreadTags(forumThreadOptional.get());
ThreadTagsVO threadTagsVO = new ThreadTagsVO(forumThreadOptional.get(), newtags);
// this is update thread in memory cache
forumThreadOptional.get().changeTags(tagTitles);
forumThreadOptional.get().changeTags(threadTagsVO);
} catch (Exception e) {
logger.error(e);
}
Expand Down

0 comments on commit ed1be50

Please sign in to comment.