📄 spacesaction.java
字号:
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 + -