📄 topicadminaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.ServletContext;
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 org.apache.struts.util.MessageResources;
import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Posts;
import cn.jsprun.domain.Threads;
import cn.jsprun.domain.Usergroups;
import cn.jsprun.foreg.service.TopicAdminActionService;
import cn.jsprun.foreg.vo.topicadmin.BaseVO;
import cn.jsprun.foreg.vo.topicadmin.OtherBaseVO;
import cn.jsprun.foreg.vo.topicadmin.ToTopAndEliteVO;
import cn.jsprun.foreg.vo.topicadmin.TopicCopyVO;
import cn.jsprun.foreg.vo.topicadmin.TopicPublicVO;
import cn.jsprun.foreg.vo.topicadmin.TopicSplitVO;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.forumsedit.SettingService;
import cn.jsprun.service.posts.PostsService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.service.user.UserGroupService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
public class TopicAdminAction extends DispatchAction {
private TopicAdminActionService topicAdminActionService = (TopicAdminActionService) BeanFactory.getBean("topicAdminActionService");
private SettingService settingService = (SettingService)BeanFactory.getBean("settingService");
private ForumService forumService = (ForumService)BeanFactory.getBean("forumService");
private PostsService postsService = (PostsService)BeanFactory.getBean("postsService");
private ThreadsService threadsService = (ThreadsService)BeanFactory.getBean("threadsService");
private UserGroupService userGroupService = (UserGroupService)BeanFactory.getBean("userGroupService");
private MemberService memberService = (MemberService)BeanFactory.getBean("memberService");
private final Map<String,Class> operation_VOMap = new HashMap<String, Class>();
{
try {
Class<BaseVO> baseClass = (Class<BaseVO>)Class.forName("cn.jsprun.foreg.vo.topicadmin.BaseVO");
Class<ToTopAndEliteVO> toTopAndEliteClass = ToTopAndEliteVO.class;
operation_VOMap.put("move", Class.forName("cn.jsprun.foreg.vo.topicadmin.TopicAdmin_MoveVO"));
operation_VOMap.put("close", Class.forName("cn.jsprun.foreg.vo.topicadmin.CloseOrOpenTopicVO"));
operation_VOMap.put("delete", baseClass);
operation_VOMap.put("bump", baseClass);
operation_VOMap.put("highlight",Class.forName("cn.jsprun.foreg.vo.topicadmin.HighLightVO") );
operation_VOMap.put("stick",toTopAndEliteClass );
operation_VOMap.put("digest",toTopAndEliteClass );
operation_VOMap.put("type",Class.forName("cn.jsprun.foreg.vo.topicadmin.TopicClassVO") );
operation_VOMap.put("delpost",baseClass );
operation_VOMap.put("recommend",baseClass );
operation_VOMap.put("deleteMirrorImage", baseClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public ActionForward moderate(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
HttpSession session = request.getSession();
String[] moderates = request.getParameterValues("moderates");
String fid = request.getParameter("fid");
if(fid == null){
request.setAttribute("errorInfo", "未定义操作.");
return mapping.findForward("showMessage");
}
Members members = (Members)session.getAttribute("user");
if(members==null){
request.setAttribute("errorInfo", "未定义的操作");
return mapping.findForward("showMessage");
}
Byte adminId = members.getAdminid();
if(adminId == (byte)0){
request.setAttribute("errorInfo", "对不起,您不具有该权限。");
return mapping.findForward("showMessage");
}
if(!Common.ismoderator(Short.valueOf(fid), members)){
request.setAttribute("errorInfo", "错误的操作.");
return mapping.findForward("showMessage");
}
String pageInfo = request.getParameter("pageInfo");
if(pageInfo==null){
StringBuffer resultBuffer = new StringBuffer("forumdisplay.jsp?fid="+fid);
String filter = request.getParameter("filter");
if(filter!=null&&!filter.equals("")){
resultBuffer.append("&filter="+filter);
}
String orderby = request.getParameter("orderby");
if(orderby!=null&&!orderby.equals("")){
resultBuffer.append("&orderby="+orderby);
}
String ascdesc = request.getParameter("ascdesc");
if(ascdesc!=null&&!ascdesc.equals("")){
resultBuffer.append("&ascdesc="+ascdesc);
}
String page = request.getParameter("threadpage");
if(page!=null&&!page.equals("")){
resultBuffer.append("&page="+page);
}
pageInfo = resultBuffer.toString();
}
if(moderates==null){
moderates = (String[])session.getAttribute("moderate_moderate");
session.removeAttribute("moderate_moderate");
}
if(moderates==null||moderates.length==0){
request.setAttribute("errorInfo", "对不起,您没有选择主题或者无法操作特殊主题,请返回修改。");
return mapping.findForward("showMessage");
}else{
if(!topicAdminActionService.checkTid(Short.valueOf(fid),moderates)){
request.setAttribute("errorInfo", "对不起,您没有选择主题或者无法操作特殊主题或者存在被删除的主题或者存在主题镜像,请返回修改。");
return mapping.findForward("showMessage");
}
}
Map<String,String> settingMap = (Map<String,String>)request.getAttribute("settings");
String operation = request.getParameter("operation");
if(operation == null){
request.setAttribute("errorInfo", "未定义操作.");
return mapping.findForward("showMessage");
}
Map<String,Object> transfersMap = new HashMap<String, Object>();
transfersMap.put("pageInfo", pageInfo);
transfersMap.put("moderates", moderates);
transfersMap.put("operation", operation);
transfersMap.put("fid", fid);
fid = null;
transfersMap.put("modreasons", settingMap.get("modreasons"));
transfersMap.put("timeoffset", session.getAttribute("timeoffset"));
settingMap = null;
transfersMap.put("reasonpm", ((Map<String,String>)request.getAttribute("usergroups")).get("reasonpm"));
transfersMap.put("fromWhere", request.getParameter("fromWhere"));
if(operation.equals("stick")){
transfersMap.put("allowstickthread", ((Map<String,String>)request.getAttribute("usergroups")).get("allowstickthread"));
}
if(operation.equals("move")){
short groupid = (Short)session.getAttribute("jsprun_groupid");
transfersMap.put("groupid", groupid);
transfersMap.put("member", members);
}
session =null;
if(moderates.length==1){
MessageResources resources = getResources(request);
Locale locale = getLocale(request);
transfersMap.put("messageResources", resources);
transfersMap.put("locale", locale);
}
BaseVO baseVO = topicAdminActionService.getFinalBaseVO(transfersMap);
if(baseVO==null){
request.setAttribute("errorInfo", "请确认主题是否存在.");
return mapping.findForward("showMessage");
}
transfersMap = null;
request.setAttribute("valueObject", operation_VOMap.get(operation).cast(baseVO));
baseVO = null;
operation = null;
return mapping.findForward("goTopicadmin_moderate");
}
public ActionForward operating(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
String fid = request.getParameter("fid");
if(fid == null){
request.setAttribute("errorInfo", "未定义操作.");
return mapping.findForward("showMessage");
}
Members members = (Members)session.getAttribute("user");
if(members==null){
request.setAttribute("errorInfo", "未定义的操作238.");
return mapping.findForward("showMessage");
}
Byte adminId = members.getAdminid();
Short groupId = members.getGroupid();
Integer uid = members.getUid();
String username = members.getUsername();
if(adminId == (byte)0){
request.setAttribute("errorInfo", "对不起,您不具有该权限。");
return mapping.findForward("showMessage");
}
if(!Common.ismoderator(Short.valueOf(fid), members)){
request.setAttribute("errorInfo", "错误的操作.");
return mapping.findForward("showMessage");
}
String pageInfo = request.getParameter("pageInfo");
String reason = request.getParameter("reason");
String isNecessary = request.getParameter("isNecessary");
if(isNecessary!=null&&(reason==null||reason.trim().equals(""))){
request.setAttribute("errorInfo", "对不起,您必须输入操作原因。");
return mapping.findForward("showMessage");
}
String[] moderate_ = request.getParameterValues("moderate_");
if(!topicAdminActionService.checkTid(Short.valueOf(fid),moderate_)){
request.setAttribute("errorInfo", "对不起,您没有选择主题或者无法操作特殊主题或者存在被删除的主题或者存在主题镜像,请返回修改。");
return mapping.findForward("showMessage");
}
String next = request.getParameter("next");
String sendreasonpm = request.getParameter("sendreasonpm");
String operation = request.getParameter("currentOperation");
if(operation == null){
request.setAttribute("errorInfo", "未定义操作.");
return mapping.findForward("showMessage");
}
if(operation.equals("delpost")){
operation = "delete";
}
boolean afterOperation = next!=null&&!next.equals("");
Map<String,String> groupInfo = (Map<String,String>)request.getAttribute("usergroups");
String grouptitle = groupInfo.get("grouptitle");
String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
String realPath = servlet.getServletContext().getRealPath("/");
String IP = request.getRemoteAddr();
Map<String,Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("fid", fid);
parameterMap.put("sendreasonpm", sendreasonpm);
parameterMap.put("reason", reason);
parameterMap.put("adminId", adminId);
parameterMap.put("uid", uid);
parameterMap.put("username", username);
parameterMap.put("groupId", groupId);
parameterMap.put("grouptitle", grouptitle);
parameterMap.put("moderate_", moderate_);
parameterMap.put("url", url);
parameterMap.put("realPath",realPath);
parameterMap.put("IP", IP);
parameterMap.put("timeoffset", session.getAttribute("timeoffset"));
Map<String,String> settingMap = ((Map<String,String>)request.getAttribute("settings"));
if(pageInfo.indexOf("forumdisplay")==-1){
pageInfo = pageInfo.replaceAll("&page=", "-")+".html";
}
parameterMap.put("settingMap", settingMap);
if(operation.equals("digest")||operation.equals("delete")){
String expiration = request.getParameter("expiration");
if(expiration == null){
request.setAttribute("errorInfo", "未定义操作.");
return mapping.findForward("showMessage");
}
if(!operation.equals("digest")){
Map<String,String> usergroups = (Map<String,String>)request.getAttribute("usergroups");
String allowdelpost = usergroups.get("allowdelpost");
if(allowdelpost==null||allowdelpost.equals("0")){
request.setAttribute("errorInfo", "对不起,您没有该权限进行此操作。");
return mapping.findForward("showMessage");
}
String attachurl = settingMap.get("attachurl");
String losslessdel = settingMap.get("losslessdel");
String attachurl_realy = getAttachmentRealyPath(attachurl, url);
parameterMap.put("attachurl_realy", attachurl_realy);
parameterMap.put("losslessdel", losslessdel);
}else{
String level = request.getParameter("level");
if(level==null||level.equals("")){
request.setAttribute("errorInfo", "对不起,您没有选择操作级别。");
return mapping.findForward("showMessage");
}
if("0".equals(level)){
expiration = "";
}
parameterMap.put("level", level);
parameterMap.put("next", next);
}
parameterMap.put("expiration", expiration);
parameterMap.put("timeoffset", session.getAttribute("timeoffset"));
String creditsformula = settingMap.get("creditsformula");
String creditspolicy = settingMap.get("creditspolicy");
parameterMap.put("creditsformula", creditsformula);
parameterMap.put("creditspolicy", creditspolicy);
}else if(operation.equals("move")){
String allowdirectpost = groupInfo.get("allowdirectpost");
String expiration = request.getParameter("expiration");
if(expiration == null){
request.setAttribute("errorInfo", "未定义操作.");
return mapping.findForward("showMessage");
}
parameterMap.put("expiration", expiration);
parameterMap.put("timeoffset", session.getAttribute("timeoffset"));
parameterMap.put("extgroupids", members.getExtgroupids());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -