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

📄 forumaction.java

📁 一个成熟的论坛
💻 JAVA
字号:
package com.singnet.web.action.admin;

import java.util.Date;
import java.util.List;

import com.singnet.bean.NsBoard;
import com.singnet.bean.NsUserGroup;
import com.singnet.bean.NsForum;
import com.singnet.bean.NsUser;
import com.singnet.business.INsBoardService;
import com.singnet.business.INsForumService;
import com.singnet.dwr.INsUserProxy;
import com.singnet.dwr.INsUserGroupProxy;
import com.singnet.web.action.BaseAction;

public class ForumAction extends BaseAction
{
	
	public static final String	CONFIG = "config";
	
	private NsForum				forum;
	private INsForumService		nsForumService;
	private INsBoardService		nsBoardService;
	private INsUserGroupProxy	nsUserGroupProxy;
	private INsUserProxy		nsUserProxy;
	
	private long				parentID;
	private List				pageList;
	private String				userID;
	
	private String[]			visitIDs;
	private String[]			postIDs;
	private String[]			replyIDs;
	
	
	
	@Override
	public String execute() throws Exception
	{
		// TODO Auto-generated method stub
		refindeForumInfo();
		if(forum.getForumModerator() != null && forum.getForumModerator().trim().length() > 0) {
			NsUser user = nsUserProxy.loadUser(forum.getForumModerator());
			nsUserProxy.updateModerate(user);
		}

		nsForumService.saveOrUpdate(forum);
		return SUCCESS;
	}
	
	@Override
	public String doDefault() throws Exception
	{
		// TODO Auto-generated method stub
		return INPUT;
	}
	
	public String showForumList() throws Exception
	{
		pageList = nsBoardService.findAll(NsBoard.class);
		return LIST;
	}
	
	public String showForum() throws Exception
	{
		if(forumID > 0) {
			forum = (NsForum) nsForumService.findByID(NsForum.class, forumID);
		}
		return VIEW;
	}
	
	public String updateModerator() throws Exception
	{
		if(forumID > 0 && userID.trim().length() > 0) {
			NsUser user = nsUserProxy.loadUser(userID);
			if(user != null) {
				forum = (NsForum) nsForumService.findByID(NsForum.class, forumID);
				forum.setForumModerator(userID);
				nsForumService.saveOrUpdate(forum);
				nsUserProxy.updateModerate(user);
			}
			else {
				System.out.println("User is not Exist!");
			}			
		}
		else {
			if(forumID > 0 && (userID == null || userID.trim().length() <= 0)) {
				forum = (NsForum) nsForumService.findByID(NsForum.class, forumID);
				if(forum != null) {
					userID = forum.getForumModerator();
					NsUser user = nsUserProxy.loadUser(userID);
					nsUserProxy.releaseUserAdmin(user);
					forum.setForumModerator(null);
					nsForumService.saveOrUpdate(forum);
				}
			}
		}
		return SUCCESS;
	}
	
	public String goConfigForum() throws Exception
	{
		if(forumID > 0) {
			forum = nsForumProxy.loadForum(forumID);
			String visitStr = forum.getForumPermiss();
			String postStr = forum.getForumPostAccess();
			String replyStr = forum.getForumReplyAccess();
			
			int flag = 0;
			
			if(visitStr != null && visitStr.trim().length() > 0) {
				visitIDs = getStringArray(visitStr);
				flag++;
			}
			
			if(postStr != null && postStr.trim().length() > 0) {
				postIDs = getStringArray(postStr);
				flag++;
			}
			
			if(replyStr != null && replyStr.trim().length() > 0) {
				replyIDs = getStringArray(replyStr);
				flag++;
			}
			
			if(flag == 0) {
				pageList = nsUserGroupProxy.findUserGroups();
			}
		}
		return CONFIG;
	}
	
	public String doConfigForum() throws Exception
	{
		forum = nsForumProxy.loadForum(forumID);
		if(forum != null) {
			if(visitIDs != null) forum.setForumPermiss(getIDStr(visitIDs));
			else forum.setForumPermiss(null);
			
			if(postIDs != null) forum.setForumPostAccess(getIDStr(postIDs));
			else forum.setForumPostAccess(null);
			
			if(replyIDs != null) forum.setForumReplyAccess(getIDStr(replyIDs));		
			else forum.setForumReplyAccess(null);
			
			nsForumService.saveOrUpdate(forum);
		}
		return SUCCESS;
	}
	
	public String updateForum() throws Exception
	{
		NsForum updateForum = nsForumProxy.loadForum(forum.getId().longValue());
		updateForum.setForumDesp(forum.getForumDesp());
		if(!updateForum.getForumModerator().equals(forum.getForumModerator())) {
			NsUser user = nsUserProxy.loadUser(forum.getForumModerator());
			if(user != null) {
				nsUserProxy.updateModerate(user);
			}
			else {
				updateForum.setForumModerator(null);
			}			
		}
		
		updateForum.setForumName(forum.getForumName());
		updateForum.setForumOrder(forum.getForumOrder());
		updateForum.setForumVisit(forum.getForumVisit());
		updateForum.setForumState(forum.getForumState());
		if(updateForum.getParentBoard().getId().longValue() != parentID) {
			NsBoard board = (NsBoard) nsBoardService.findByID(NsBoard.class, parentID);
			if(null != board) {
				forum.setParentBoard(board);
				board.addToforumList(forum);
			}
		}
		nsForumService.saveOrUpdate(updateForum);
		forum = null;
		return SUCCESS;
	}
 	
	private void refindeForumInfo()
	{
		forum.setForumCtime(new Date());
		forum.setForumCount(new Long(0));
		
		NsBoard board = (NsBoard) nsBoardService.findByID(NsBoard.class, parentID);
		if(null != board) {
			forum.setParentBoard(board);
			board.addToforumList(forum);
			//nsBoardService.saveOrUpdate(board);
		}
	}
	
	public String delForum() throws Exception
	{
		if(forumID > 0) {
			forum = (NsForum) nsForumService.findByID(NsForum.class, forumID);
			if(forum != null) {
				nsForumService.remove(forum);
				pageList = nsForumService.findAll(NsForum.class);
				return LIST;
			}
		}
		return ERROR;
	}
	
	private String[] getStringArray(String target)
	{
		if(target != null && target.trim().length() > 0) {
			pageList = nsUserGroupProxy.findUserGroups();
			String[] result = new String[pageList.size()];
			String[] targetArray = target.split(",");
			for(int i = 0; i < pageList.size(); i++) {
				NsUserGroup group = (NsUserGroup) pageList.get(i); 
				if(isInArray(targetArray, String.valueOf(group.getId().longValue())))
					result[i] = "true";
				else
					result[i] = "false";
			}
			
			return result;
		}
		
		return null;
	}
	
	private boolean isInArray(String[] arr, String tag)
	{
		for(String s : arr) {
			if(tag.equals(s)) return true;
		}
		return false;
	}
	
	private String getIDStr(String[] arr)
	{
		StringBuffer buffer = new StringBuffer();
		buffer.append(arr[0]);
		for(int i = 1; i < arr.length; i++) {
			buffer.append(",");
			buffer.append(arr[i]);			
		}
		
		return buffer.toString();
	}
 	
	public NsForum getForum()
	{
		return forum;
	}
	public void setForum(NsForum forum)
	{
		this.forum = forum;
	}
	public List getPageList()
	{
		return pageList;
	}
	
	public void setNsForumService(INsForumService nsForumService)
	{
		this.nsForumService = nsForumService;
	}

	public void setParentID(long parentID)
	{
		this.parentID = parentID;
	}

	public void setNsBoardService(INsBoardService nsBoardService)
	{
		this.nsBoardService = nsBoardService;
	}

	public String getUserID()
	{
		return userID;
	}

	public void setUserID(String userID)
	{
		this.userID = userID;
	}

	public void setNsUserProxy(INsUserProxy nsUserProxy)
	{
		this.nsUserProxy = nsUserProxy;
	}

	public String[] getPostIDs()
	{
		return postIDs;
	}

	public void setPostIDs(String[] postIDs)
	{
		this.postIDs = postIDs;
	}

	public String[] getReplyIDs()
	{
		return replyIDs;
	}

	public void setReplyIDs(String[] replyIDs)
	{
		this.replyIDs = replyIDs;
	}

	public String[] getVisitIDs()
	{
		return visitIDs;
	}

	public void setVisitIDs(String[] visitIDs)
	{
		this.visitIDs = visitIDs;
	}

	public void setNsUserGroupProxy(INsUserGroupProxy nsUserGroupProxy)
	{
		this.nsUserGroupProxy = nsUserGroupProxy;
	}

	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -