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

📄 extendsaction.java

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

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.management.ManagementFactory;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

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.api.Tenpayapi;
import cn.jsprun.domain.Members;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.Base64Decoder;
import cn.jsprun.utils.Base64Encoder;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.JspRunConfig;
import cn.jsprun.vo.extendSetting.SearchEngineVO;

import com.sun.management.OperatingSystemMXBean;

public class ExtendsAction extends DispatchAction {
	
	private DataBaseService dataBaseService = (DataBaseService)BeanFactory.getBean("dataBaseService");
	private DataParse dataParse= (DataParse)BeanFactory.getBean("dataParse");
	public ActionForward getSevrerInfo_SysType(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		String sysType = System.getProperty("os.name");
		request.setAttribute("resultInfo", "当前操作系统为:"+sysType);
		return mapping.findForward("result");
	}
	public ActionForward getSevrerInfo_CUPCount(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		request.setAttribute("resultInfo", "当前服务器的 CPU 核数为:"+Runtime.getRuntime().availableProcessors()+" 核");
		return mapping.findForward("result");
	}
	public ActionForward getSevrerInfo_MemoryInfo(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		OperatingSystemMXBean operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
		request.setAttribute("resultInfo", "当前服务器的内存为:"+(operatingSystemMXBean.getTotalPhysicalMemorySize()/1024/1024)+" MB");
		return mapping.findForward("result");
	}
	@SuppressWarnings("unchecked")
	public ActionForward plugins(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		String edit=request.getParameter("edit");
		String identifier=request.getParameter("identifier");
		if(edit==null&&identifier==null){
			List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT p.*, pv.pluginvarid FROM jrun_plugins p LEFT JOIN jrun_pluginvars pv USING(pluginid) GROUP BY p.pluginid ORDER BY p.available DESC, p.pluginid");
			if(plugins!=null&&plugins.size()>0){
				HttpSession session=request.getSession();
				byte adminid=(Byte)session.getAttribute("jsprun_adminid");
				StringBuffer editstr=null;
				for (Map<String, String> plugin : plugins) {
					byte plugin_adminid=Byte.valueOf(plugin.get("adminid"));
					if(plugin_adminid==0||plugin_adminid>=adminid){
						plugin.put("disabled", "");
						editstr=new StringBuffer(plugin.get("pluginvarid")!=null?"<a href=\"admincp.jsp?action=plugins&edit="+plugin.get("pluginid")+"\">[插件参数设置]</a> ":"");
						Map<Integer,Map> modules=dataParse.characterParse(plugin.get("modules"), false);
						if(modules!=null&&modules.size()>0){
							Set<Integer> keys =modules.keySet();
							for (Integer key : keys) {
								Map module=modules.get(key);
								byte module_adminid=Byte.valueOf((String)module.get("adminid"));
								if("3".equals((String)module.get("type"))&&(module_adminid==0||module_adminid>=adminid)){
									editstr.append("<a href=\"admincp.jsp?action=plugins&identifier="+plugin.get("identifier")+"&mod="+module.get("name")+"\">[模块: "+module.get("menu")+"]</a> ");
								}
							}
						}
						plugin.put("edit", editstr.toString());
					}else{
						plugin.put("disabled", "disabled");
						plugin.put("edit", "[详情]");
					}
				}
				request.setAttribute("plugins", plugins);
			}
			return mapping.findForward("toplugins");
		}else{
			List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT * FROM jrun_plugins WHERE "+(identifier!=null ? "identifier='"+identifier+"'" : "pluginid='"+edit+"'"));
			if(plugins==null||plugins.size()==0){
				request.setAttribute("errorInfo", "未定义的操作!");
				return mapping.findForward("error");
			}
			Map<String,String> plugin=plugins.get(0);
			edit=plugin.get("pluginid");
			Map<String,Map<String,String>> pluginvarsMap=new HashMap<String,Map<String,String>>();
			List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT * FROM jrun_pluginvars WHERE pluginid='"+edit+"' ORDER BY displayorder");
			for(Map<String,String> pluginvar:pluginvars){
				pluginvarsMap.put(pluginvar.get("variable"), pluginvar);
			}
			String mod=request.getParameter("mod");
			if(mod==null){
				HttpSession session=request.getSession();
				byte adminid=(Byte)session.getAttribute("jsprun_adminid");
				byte plugin_adminid=Byte.valueOf(plugin.get("adminid"));
				if((plugin_adminid>0&&adminid>plugin_adminid)||pluginvarsMap.size()==0){
					request.setAttribute("errorInfo", "您没有权限访问系统设置。");
					return mapping.findForward("error");
				}
				String editsubmit=request.getParameter("editsubmit");
				if(editsubmit==null){
					for (Map<String, String> var : pluginvars) {
						var.put("variable", "varsnew["+var.get("variable")+"]");
						if("number".equals(var.get("type"))){
							var.put("type", "text");
						}else if("select".equals(var.get("type"))){
							StringBuffer type=new StringBuffer();
							type.append("<select name=\""+var.get("variable")+"\">\n");
							String[] extras=var.get("extra").split("\n");
							if(extras!=null&&extras.length>0){
								for (String extra : extras) {
									String key=null;
									String option=extra.trim();
									if(extra.indexOf("=")==-1){
										key=option;
									}else{
										String[] item=option.split("=");
										key=item[0].trim();
										option=item[1].trim();
									}
									type.append("<option value=\""+Common.dhtmlspecialchars(key)+"\" "+(key.equals(var.get("value"))? "selected" :"")+">"+option+"</option>\n");
								}
							}
							type.append("</select>\n");
							var.put("type",type.toString());
							var.put("variable", "");
							var.put("value", "");
						}
					}
					request.setAttribute("edit",edit);
					request.setAttribute("plugin",plugin);
					request.setAttribute("pluginvars",pluginvars);
					return mapping.findForward("toplugins_var_edit");
				}else{
					for (Map<String, String> var : pluginvars) {
						String variable=var.get("variable");
						String value=request.getParameter("varsnew["+variable+"]");
						if(value!=null){
							if("number".equals(var.get("type"))){
								value=FormDataCheck.getDoubleString(value);
							}
							dataBaseService.runQuery("UPDATE jrun_pluginvars SET value='"+value+"' WHERE pluginid='"+edit+"' AND variable='"+variable+"'");
						}
					}
					String realPath=servlet.getServletContext().getRealPath("/");
					Cache cache=new Cache(realPath);
					try {
						cache.updatecache("plugins");
					} catch (Exception e) {
						e.printStackTrace();
					}
					request.setAttribute("successInfo","插件参数设置成功更新。");
					request.setAttribute("requestPath", "admincp.jsp?action=plugins");
					return mapping.findForward("success");
				}
			}else{
				String modfile=null;
				Map<Integer,Map>  modules=dataParse.characterParse(plugin.get("modules"), false);
				if(modules!=null&&modules.size()>0){
					HttpSession session=request.getSession();
					byte adminid=(Byte)session.getAttribute("jsprun_adminid");
					Set<Integer> keys =modules.keySet();
					for (Integer key : keys) {
						Map module=modules.get(key);
						byte module_adminid=Byte.valueOf((String)module.get("adminid"));
						if("3".equals((String)module.get("type"))&&module.get("name").equals(mod)&&(module_adminid==0||module_adminid>=adminid)){
							modfile="/plugins/"+plugin.get("directory")+mod+".inc.jsp";
							break;
						}
					}
				}
				if(modfile!=null){
					String realPath=servlet.getServletContext().getRealPath("/");
					File file=null;
					try {
						file=new File(realPath+modfile);
						if(file.exists()){
							request.getRequestDispatcher(modfile).forward(request, response);
							return null;
						}else{
							request.setAttribute("resultInfo", "指定的插件管理模块文件("+modfile+")不存在或存在语法错误,请检查是否已将插件完整上传。");
							return mapping.findForward("result");
						}
					} catch (Exception e) {
						e.printStackTrace();
					}finally{
						file=null;
					}
				}
				request.setAttribute("errorInfo", "未定义的操作!");
				return mapping.findForward("error");
			}
		}
	}
	@SuppressWarnings("unchecked")
	public ActionForward pluginsedit(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		String pluginid=request.getParameter("pluginid");
		List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT * FROM jrun_plugins WHERE pluginid='"+pluginid+"'");
		if(plugins==null||plugins.size()==0){
			request.setAttribute("errorInfo", "未定义的操作!");
			return mapping.findForward("error");
		}
		Map<String,String> plugin=plugins.get(0);
		Map<Integer,Map> modules=dataParse.characterParse(plugin.get("modules"), false);
		String editsubmit=request.getParameter("editsubmit");
		if(editsubmit==null){
			request.setAttribute("plugin", plugin);
			Map<Integer,String> moduleoptions=new HashMap<Integer,String>();
			moduleoptions.put(1, "直接链接(前台菜单)");
			moduleoptions.put(2, "前台调用(前台菜单)");
			moduleoptions.put(3, "后台调用(后台菜单)");
			moduleoptions.put(4, "包含运行(无菜单)");
			moduleoptions.put(5, "直接链接(前台下拉菜单)");
			moduleoptions.put(6, "前台调用(前台下拉菜单)");
			request.setAttribute("moduleoptions",moduleoptions);
			Map<Integer,String> moduleadmins=new HashMap<Integer,String>();
			moduleadmins.put(0, "普通用户");
			moduleadmins.put(1, "管理员");
			moduleadmins.put(2, "超级版主");
			moduleadmins.put(3, "版主");
			request.setAttribute("moduleadmins",moduleadmins);
			Map<String, String> types = new HashMap<String, String>();
			types.put("number", "数字(number)");
			types.put("text", "字串(text)");
			types.put("textarea", "文本(textarea)");
			types.put("radio", "开关(radio)");
			types.put("select", "选择(select)");
			types.put("color", "颜色(color)");
			request.setAttribute("types",types);
			request.setAttribute("modules",modules);
			List<Map<String,String>> pluginhooks=dataBaseService.executeQuery("SELECT pluginhookid, title, description, available FROM jrun_pluginhooks WHERE pluginid='"+plugin.get("pluginid")+"'");
			for (Map<String, String> pluginhook : pluginhooks) {
				pluginhook.put("description", Common.cutstr(pluginhook.get("description"), 50, null));
				pluginhook.put("evalcode", "${hooks."+plugin.get("identifier")+"_"+pluginhook.get("title")+"};");
			}
			request.setAttribute("pluginhooks",pluginhooks);
			List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT * FROM jrun_pluginvars WHERE pluginid='"+plugin.get("pluginid")+"' ORDER BY displayorder,pluginvarid");
			request.setAttribute("pluginvars",pluginvars);
		}else{
			String type=request.getParameter("type");
			if("common".equals(type)){
				String namenew=Common.dhtmlspecialchars(request.getParameter("namenew").trim());
				String directorynew=Common.dhtmlspecialchars(request.getParameter("directorynew"));
				String identifiernew=request.getParameter("identifiernew").trim();

⌨️ 快捷键说明

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