⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 topicservice.java

📁 Italk吧简易论坛 基于struts+extjs+hibernate+spring+mysql开发。 /catch目录为系统截图 安装步骤: 1:安装MYSQL
💻 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 + -