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

📄 spacesaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
package cn.jsprun.struts.foreg.actions;

import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Memberfields;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Memberspaces;
import cn.jsprun.domain.Onlinetime;
import cn.jsprun.domain.Profilefields;
import cn.jsprun.domain.Settings;
import cn.jsprun.domain.Threads;
import cn.jsprun.domain.Usergroups;
import cn.jsprun.page.LogPage;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.service.user.SpaceService;
import cn.jsprun.service.user.UserGroupService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.IPSeeker;
import cn.jsprun.vo.space.MythreadsVO;
import cn.jsprun.vo.space.SpaceVO;
import cn.jsprun.vo.space.UserInfoVO;
import cn.jsprun.vo.space.Users;

public class SpacesAction extends DispatchAction {
	private ForumService forumService = (ForumService) BeanFactory.getBean("forumService");
	private ThreadsService threadService = (ThreadsService) BeanFactory.getBean("threadsService");
	private MemberService memberServer = (MemberService) BeanFactory.getBean("memberService");
	private SpaceService spaceServer = (SpaceService) BeanFactory.getBean("spaceServer");
	private UserGroupService usergroupServer = (UserGroupService) BeanFactory.getBean("userGroupService");
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	@SuppressWarnings("unchecked")
	public ActionForward toSpace(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String preview = request.getParameter("preview");  
		HttpSession session = request.getSession();
		int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
		String username = request.getParameter("username");
		Members members =null;
		int uid;
		if(username!=null)
		{
			members = memberServer.findByName(username);
		}
		else{
			uid = convertInt(request.getParameter("uid")); 
			members = memberServer.findMemberById(uid);
		}		
		if(members==null){
			request.setAttribute("errorInfo", "该用户不存在或已被删除,请返回上一页");
			return mapping.findForward("showMessage");
		}
		uid = members.getUid();
		Memberfields membrfileds = memberServer.findMemberfieldsById(uid);
		Calendar cale = Common.getGMTCalendar();
		cale.setTimeInMillis(cale.getTimeInMillis()+timeoffset*1000);
		cale.set(Calendar.DATE, 1);
		int ddd = cale.get(Calendar.DAY_OF_WEEK);
		request.setAttribute("week", ddd-1);
		int days = calcCalenday(cale);
		cale.set(Calendar.DATE, days);
		request.setAttribute("days", days);
		int year = cale.get(Calendar.YEAR);
		int month = cale.get(Calendar.MONTH);
		cale.set(year, month - 1, 1);
		String beforbegintime = cale.getTimeInMillis() + "";
		beforbegintime = beforbegintime.substring(0, 10);
		days = calcCalenday(cale);
		cale.set(Calendar.DATE, days);
		String beforendtime = cale.getTimeInMillis() + "";
		beforendtime = beforendtime.substring(0, 10);
		request.setAttribute("beforendtime", beforendtime);
		request.setAttribute("beforbegintime", beforbegintime);
		request.setAttribute("year", year);
		request.setAttribute("month", month + 1);
		Memberspaces memberspace = null;
		if (preview != null) {
			preview = preview.replace('|', ' ');
			String spaceside = request.getParameter("spaceside");
			String style = request.getParameter("style");
			memberspace = new Memberspaces();
			memberspace.setDescription("");
			memberspace.setLayout(preview);
			memberspace.setSide(Byte.valueOf(spaceside));
			memberspace.setStyle(style);
		} else {
			memberspace = spaceServer.findMemberspace(uid);
			if (memberspace == null) {
				memberspace = new Memberspaces();
				memberspace.setUid(uid);
				memberspace.setDescription("");
				memberspace.setLayout("[userinfo][calendar][myreplies][myfavforums]	[myblogs][mythreads]	");
				memberspace.setSide(Byte.valueOf("1"));
				memberspace.setStyle("default");
				spaceServer.addMemberSpace(memberspace);
			}
		}
		Map leftdisMap = new HashMap();
		Map rightMap = new HashMap();
		List disleft = new ArrayList();
		List disright = new ArrayList();
		Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
		String spacedata = settings.get("spacedata");
		DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
		Map spacemap = dataParse.characterParse(spacedata,false);
		String dateformat = (String)session.getAttribute("dateformat");
		String timeformat = (String)session.getAttribute("timeformat");
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		int messagelength = convertInt(spacemap.get("textlength").toString());
		String layout = memberspace.getLayout().trim();
		String[] layouts = layout.split("\\s");
		String leftlayout = "";
		String rightlayout = "";
		if (memberspace.getSide() == 1) {
			leftlayout = layouts[0];
			if (layouts.length > 1) {
				rightlayout = layouts[1];
			}
		} else {
			rightlayout = layouts[0];
			if (layouts.length > 1) {
				leftlayout = layouts[1];
			}
		}
		if (!leftlayout.equals("")) {
			leftlayout = leftlayout.replaceFirst("\\[", "");
			leftlayout = leftlayout.substring(0, leftlayout.length() - 1);
			String lefts[] = leftlayout.split("\\]\\[");
			if (lefts != null) {
				for (String s : lefts) {
					disleft.add(s);
				}
			}
		}
		if (!rightlayout.equals("")) {
			rightlayout = rightlayout.replaceFirst("\\[", "");
			rightlayout = rightlayout.substring(0, rightlayout.length() - 1);
			String rights[] = rightlayout.split("\\]\\[");
			if (rights != null) {
				for (String s : rights) {
					disright.add(s);
				}
			}
		}
		String myblogs = spacemap.get("limitmyblogs").toString();
		if (!myblogs.equals("0")) {
			List list = new ArrayList();
			String bloghql = "select t.*,f.name,p.message,p.pid from jrun_threads as t left join jrun_forums as f on t.fid=f.fid left join jrun_posts as p on t.tid=p.tid where t.authorid = " + uid+ " and t.blog = 1 and t.displayorder>=0 and p.first=1 order by t.lastpost desc limit 0,"+myblogs;
			List<Map<String,String>> blogthread = dataBaseService.executeQuery(bloghql);
			if (blogthread != null && blogthread.size()>0) {
				for (Map<String,String> thread : blogthread) {
					SpaceVO spacevo = new SpaceVO();
					spacevo.setFid(Common.toDigit(thread.get("fid")));
					spacevo.setForums(thread.get("name"));
					String message = Common.strip_tags(thread.get("message"));
					spacevo.setSpecial(thread.get("special"));
					spacevo.setPrice(thread.get("price"));
					spacevo.setPid(Common.toDigit(thread.get("pid")));
					if (message.length() > messagelength) {
						message = message.substring(0, messagelength) + "...";
					}
					spacevo.setMessage(message);
					spacevo.setSubject(thread.get("subject"));
					spacevo.setTid(Common.toDigit(thread.get("tid")));
					String datetime = Common.gmdate(dateformat, (int)(Common.toDigit(thread.get("dateline"))+timeoffset));
					spacevo.setOperdate(datetime);
					spacevo.setIsnew(true);
					spacevo.setViewnum(Common.toDigit(thread.get("views")));
					spacevo.setReplicenum(Common.toDigit(thread.get("replies")));
					if (thread.get("attachment").equals("1")) {
						spacevo.setIsattc(true);
					} else {
						spacevo.setIsattc(false);
					}
					if (Common.toDigit(thread.get("lastpost"))> members.getLastvisit()) {
						spacevo.setIsnew(true);
					} else {
						spacevo.setIsnew(false);
					}
					list.add(spacevo);
				}
			}
			boolean flag = false;
			for (int i = 0; i < disleft.size(); i++) {
				if (disleft.get(i).toString().equals("myblogs")) {
					flag = true;
				}
			}
			if (flag) {
				leftdisMap.put("myblogs", list);
			} else {
				rightMap.put("myblogs", list);
			}
		}
		String mythread = spacemap.get("limitmythreads").toString();
		if (!mythread.equals("0")) {
			List list = new ArrayList();
			String threadhql = "select t.*,f.name,p.message,p.pid from jrun_threads as t left join jrun_mythreads as m on m.tid=t.tid left join jrun_forums as f on t.fid=f.fid left join jrun_posts as p on t.tid=p.tid  where m.uid = " + uid + " and t.special<>3 and t.displayorder>=0 and p.first=1 order by t.lastpost desc limit "+mythread;
			List<Map<String,String>> threadlist = dataBaseService.executeQuery(threadhql);
			if (threadlist != null && threadlist.size()>0) {
				for (Map<String,String> thread : threadlist) {
					SpaceVO spacevo = new SpaceVO();
					spacevo.setFid(Common.toDigit(thread.get("fid")));
					spacevo.setForums(thread.get("name"));
					String message = Common.strip_tags(thread.get("message"));
					spacevo.setPid(Common.toDigit(thread.get("pid")));
					if (message.length() > messagelength) {
						message = message.substring(0, messagelength) + "...";
					}
					spacevo.setMessage(message);
					spacevo.setSpecial(thread.get("special"));
					spacevo.setPrice(thread.get("price"));
					spacevo.setSubject(thread.get("subject"));
					spacevo.setTid(Common.toDigit(thread.get("tid")));
					String datetime = Common.gmdate(dateformat+" "+timeformat, (int)(Common.toDigit(thread.get("lastpost"))+timeoffset));
					spacevo.setOperdate(datetime);
					spacevo.setIsnew(true);
					spacevo.setViewnum(Common.toDigit(thread.get("views")));
					spacevo.setReplicenum(Common.toDigit(thread.get("replies")));
					if (thread.get("attachment").equals("1")) {
						spacevo.setIsattc(true);
					} else {
						spacevo.setIsattc(false);
					}
					if (Common.toDigit(thread.get("lastpost"))> members.getLastvisit()) {
						spacevo.setIsnew(true);
					} else {
						spacevo.setIsnew(false);
					}
					list.add(spacevo);
				}
			}
			boolean flag = false;
			for (int i = 0; i < disleft.size(); i++) {
				if (disleft.get(i).toString().equals("mythreads")) {
					flag = true;
				}
			}
			if (flag) {
				leftdisMap.put("mythreads", list);
			} else {
				rightMap.put("mythreads", list);
			}
		}
		UserInfoVO userinfo = new UserInfoVO();
		userinfo.setUsername(members.getUsername());
		userinfo.setAvoras(membrfileds.getAvatar());
		String bio = membrfileds.getBio();
		String[] bios = bio.split("\t");
		if(bios!=null && bios.length>0){
			userinfo.setBios(bios[0]);
		}else{
			userinfo.setBios("");
		}
		userinfo.setWidth(membrfileds.getAvatarwidth());
		userinfo.setHeight(membrfileds.getAvatarheight());
		userinfo.setIsonline(spaceServer.findSessionByUid(uid));
		String myreplies = spacemap.get("limitmyreplies").toString();
		if (!myreplies.equals("0")) {
			List list = new ArrayList();
			String rephql = "select t.*,f.name,p.message,p.pid from jrun_threads as t left join jrun_myposts as m on m.tid=t.tid left join jrun_forums as f on t.fid=f.fid left join jrun_posts as p on t.tid=p.tid where m.uid="+uid+" and p.first=1  and t.special<>3 and t.displayorder>=0 order by t.lastpost desc limit "+myreplies;
			List<Map<String,String>> threadlist = dataBaseService.executeQuery(rephql);
			if (threadlist != null && threadlist.size()>0) {
				for (Map<String,String> thread : threadlist) {
					SpaceVO spacevo = new SpaceVO();
					spacevo.setFid(Common.toDigit(thread.get("fid")));
					spacevo.setForums(thread.get("name"));
					String message = Common.strip_tags(thread.get("message"));
					spacevo.setPid(Common.toDigit(thread.get("pid")));
					if (message.length() > messagelength) {
						message = message.substring(0, messagelength) + "...";
					}
					spacevo.setMessage(message);
					spacevo.setSpecial(thread.get("special"));
					spacevo.setPrice(thread.get("price"));
					spacevo.setSubject(thread.get("subject"));
					spacevo.setTid(Common.toDigit(thread.get("tid")));
					String datetime = Common.gmdate(dateformat+" "+timeformat, (int)(Common.toDigit(thread.get("lastpost"))+timeoffset));
					spacevo.setOperdate(datetime);
					spacevo.setIsnew(true);
					spacevo.setViewnum(Common.toDigit(thread.get("views")));
					spacevo.setReplicenum(Common.toDigit(thread.get("replies")));
					if (thread.get("attachment").equals("1")) {
						spacevo.setIsattc(true);
					} else {
						spacevo.setIsattc(false);
					}
					if (Common.toDigit(thread.get("lastpost"))> members.getLastvisit()) {

⌨️ 快捷键说明

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