📄 topicservice.java
字号:
package com.italk.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.dom4j.Document;
import com.italk.service.security.ItalkSecurityException;
import com.italk.ui.TopicXML;
import com.italk.vo.Topic;
import com.italk.vo.User;
class TopicSort implements Comparator {
public int compare(Object arg0, Object arg1) {
// TODO Auto-generated method stub
Topic t1 = (Topic) arg0;
Topic t2 = (Topic) arg1;
boolean result = t1.getPublishTime().longValue() > t2.getPublishTime()
.longValue();
if (result)
return 1;
else
return -1;
}
}
public class TopicService extends BaseService {
public void publishNewMainTopic(String title, String content, User u) throws ItalkSecurityException{
Topic t = new Topic();
t.setPublishTime(new Long(new Date().getTime()));
t.setLastUpdateTime(new Long(0));
t.setClickCount(0);
t.setContent(content);
t.setLock(false);
t.setPrime(false);
t.setReply(false);
t.setTitle(title);
t.setTop(false);
t.setUser(u);
tdao.insert(t);
}
public boolean publishNewReplyTopic(User u, String topicId, String content) throws ItalkSecurityException {
Topic main = (Topic) tdao.getById(Long.decode(topicId));
if(main.isLock()) {
return false;
}
Topic reply = new Topic();
reply.setClickCount(0);
reply.setContent(content);
reply.setLock(false);
reply.setMain(main);
reply.setPrime(false);
reply.setReply(true);
reply.setTitle("re:" + main.getTitle());
reply.setTop(false);
reply.setUser(u);
reply.setLastUpdateTime(new Long(0));
reply.setPublishTime(new Long(new Date().getTime()));
main.getReplys().add(reply);
main.setLastUpdateTime(reply.getPublishTime());
tdao.update(main);
tdao.insert(reply);
return true;
}
public Document getMainTopicByPage(int start, int limit) {
int count = tdao.getMainTopicCount();
List list = tdao.getMainTopic(start, limit);
TopicXML tXml = new TopicXML();
return tXml.getSimpleTopic(list, count);
}
public Document getPrimeTopicByPage(int start, int limit) {
int count = tdao.getPrimeTopicCount();
List list = tdao.getPrimeTopic(start, limit);
return new TopicXML().getSimpleTopic(list, count);
}
public Document getTopTopicByPage(int start, int limit) {
int count = tdao.getTopTopicCount();
List list = tdao.getTopTopic(start, limit);
return new TopicXML().getSimpleTopic(list, count);
}
public void openMainTopic(String topicId) {
Topic t = (Topic) tdao.getById(Long.decode(topicId));
t.setClickCount(t.getClickCount() + 1);
}
public Document getReplysTopicByPage(String topicId, int start, int limit) {
Topic main = (Topic) tdao.getById(Long.decode(topicId));
ArrayList list = new ArrayList();
list.add(main);
list.addAll(main.getReplys());
Collections.sort(list, new TopicSort());
int end = start + limit;
if (start + limit > list.size()) {
end = list.size();
}
List sub = list.subList(start, end);
return new TopicXML().getReplyList(sub, list.size());
}
public void changeTopic(String topicId, String type, User u) throws ItalkSecurityException{
Topic t = (Topic) tdao.getById(Long.decode(topicId));
if (type.equals("prime")) {
t.setPrime(t.isPrime() ? false : true);
} else if (type.equals("top")) {
t.setTop(t.isTop() ? false : true);
} else if (type.equals("lock")) {
t.setLock(t.isLock() ? false : true);
}
tdao.update(t);
}
public void deleteTopic(String topicId,User u) throws ItalkSecurityException {
Topic t = (Topic) tdao.getById(Long.decode(topicId));
tdao.delete(t);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -