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

📄 othermanageaction.java

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

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

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 cn.jsprun.dao.OtherSetDao;
import cn.jsprun.domain.Advertisements;
import cn.jsprun.domain.Announcements;
import cn.jsprun.domain.Crons;
import cn.jsprun.domain.Faqs;
import cn.jsprun.domain.Forumlinks;
import cn.jsprun.domain.Magicmarket;
import cn.jsprun.domain.Medals;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Onlinelist;
import cn.jsprun.domain.OnlinelistId;
import cn.jsprun.service.otherset.AdvSetService;
import cn.jsprun.service.otherset.CronsSetService;
import cn.jsprun.service.otherset.OnLineSetService;
import cn.jsprun.service.otherset.OtherSetService;
import cn.jsprun.service.otherset.UpdateCache;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FinalProperty;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.ForumCommonsUtil;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.JspRunConfig;
import cn.jsprun.vo.otherset.AdvEditVO;
import cn.jsprun.vo.otherset.AdvIndexVO;
import cn.jsprun.vo.otherset.AdvVO;
import cn.jsprun.vo.otherset.Advertisement;
import cn.jsprun.vo.otherset.CronInfo;
import cn.jsprun.vo.otherset.OnlinelistVO;

public class OtherManageAction extends DispatchAction {
	private OtherSetService otherSetService = (OtherSetService) BeanFactory.getBean("otherSetService");
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	private OnLineSetService olService = (OnLineSetService)BeanFactory.getBean("onLineSetService");
	private AdvSetService adService = (AdvSetService)BeanFactory.getBean("advSetService");
	private CronsSetService cronsService = (CronsSetService)BeanFactory.getBean("cronsSetService");
	private DataParse dataParse =(DataParse) BeanFactory.getBean("dataParse");
	public ActionForward magicconfig(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String magicsubmit = request.getParameter("magicsubmit");
		if(magicsubmit == null){
			HttpSession session = request.getSession();
			boolean isfounder = (Boolean) session.getAttribute("isfounder");
			boolean ishavefounder = (Boolean) session.getAttribute("ishavefounder");
			if (ishavefounder && !isfounder) {
				request.setAttribute("resultInfo", "您没有权限访问该设置,出于安全考虑此设置只有论坛创始人可以使用。");
				return mapping.findForward("result");
			}
			return mapping.findForward("other_magic_config");
		}else{
			String variables[] = {"magicstatus","magicmarket", "maxmagicprice"};
			Map<String,String> oldSettings=ForumInit.settings;
			Map<String,String> settings=new HashMap<String,String>();
			for(String variable:variables){
				String value=request.getParameter(variable);
				if("maxmagicprice".equals(variable)){
					value = String.valueOf(Common.toDigit(value, 9223372036854775807l, 0l));
				}
				this.putValue(variable,value, oldSettings, settings);
			}
			this.updateSettings(settings,oldSettings);
			request.setAttribute("successInfo", "道具基本设置更新。");
			request.setAttribute("requestPath", "admincp.jsp?action=magic_config");
			return mapping.findForward("success");
		}
	}

	public ActionForward magic(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		
		String magicsubmit = request.getParameter("magicsubmit");
		
		if(magicsubmit == null){
			HttpSession session = request.getSession();
			boolean isfounder = (Boolean) session.getAttribute("isfounder");
			boolean ishavefounder = (Boolean) session.getAttribute("ishavefounder");
			if (ishavefounder && !isfounder) {
				request.setAttribute("resultInfo", "您没有权限访问该设置,出于安全考虑此设置只有论坛创始人可以使用。");
				return mapping.findForward("result");
			}
			String typeid=request.getParameter("typeid");
			String addtype = typeid!=null ? "WHERE type='"+typeid+"'" : "";
			List<Map<String,String>> magiclist=dataBaseService.executeQuery("SELECT magicid,available,type,name,identifier,description,displayorder,price,num,filename FROM jrun_magics "+addtype+" ORDER BY displayorder");
			for(Map<String,String> mm : magiclist){
				String mmName = mm.get("name");
				String mmDescription = mm.get("description");
				String mmIdentifier = mm.get("identifier");
				if(mmName!=null){
					mm.put("name", mmName.replace("\"", "&quot;"));
				}
				if(mmDescription!=null){
					mm.put("description", mmDescription.replace("\"", "&quot;"));
				}
				if(mmIdentifier!=null){
					mm.put("identifier", mmIdentifier.replace("\"", "&quot;"));
				}
			}
			request.setAttribute("magiclist", magiclist);
			return mapping.findForward("other_magic");
		}else{
			String delete[] = request.getParameterValues("delete");
			if(delete!=null){
				String ids=Common.implodeids(delete);
				dataBaseService.runQuery("DELETE FROM jrun_magics WHERE magicid IN ("+ids+")", true);
				dataBaseService.runQuery("DELETE FROM jrun_membermagics WHERE magicid IN ("+ids+")", true);
				dataBaseService.runQuery("DELETE FROM jrun_magicmarket WHERE magicid IN ("+ids+")", true);
				dataBaseService.runQuery("DELETE FROM jrun_magiclog WHERE magicid IN ("+ids+")", true);
			}
			List<Map<String,String>> magics=dataBaseService.executeQuery("SELECT magicid FROM jrun_magics");
			if(magics!=null&&magics.size()>0){
				for (Map<String,String> magic : magics) {
					String magicid=magic.get("magicid");
					String name=request.getParameter("name_"+magic.get("magicid"));
					byte available=Common.toDigit(request.getParameter("available_"+magic.get("magicid")),1l,0l).byteValue();
					String description=request.getParameter("description_"+magic.get("magicid"));
					byte displayorder=Common.toDigit(request.getParameter("displayorder_"+magic.get("magicid")),127l,-128l).byteValue();
					int price=Common.toDigit(request.getParameter("price_"+magic.get("magicid")),16777215l,0l).intValue();
					int num=Common.toDigit(request.getParameter("num_"+magic.get("magicid")),65535l,0l).intValue();
					if(name!=null){
						dataBaseService.runQuery("UPDATE jrun_magics SET available='"+available+"', name='"+Common.addslashes(name)+"',description='"+Common.addslashes(description)+"', displayorder='"+displayorder+"', price='"+price+"', num='"+num+"' WHERE magicid='"+magicid+"'",true);
					}
				}
			}
			String newname=request.getParameter("newname").trim();
			if(newname.length()>0){
				String newidentifier=request.getParameter("newidentifier").trim();
				List<Map<String,String>> magic=dataBaseService.executeQuery("SELECT magicid FROM jrun_magics WHERE identifier='"+Common.addslashes(newidentifier)+"'");
				if(magic!=null&&magic.size()>0){
					request.setAttribute("errorInfo", "道具唯一标识重复,请返回修改。");
					return mapping.findForward("error");
				}else{
					String newdescription=request.getParameter("newdescription").trim();
					String newtype=request.getParameter("newtype");
					byte newdisplayorder=Common.toDigit(request.getParameter("newdisplayorder"),127l,-128l).byteValue();
					int newprice=Common.toDigit(request.getParameter("newprice"),16777215l,0l).intValue();
					int newnum=Common.toDigit(request.getParameter("newnum"),65535l,0l).intValue();
					dataBaseService.runQuery("INSERT INTO jrun_magics (type, name, identifier, description, displayorder, price, num, filename,magicperm) VALUES ('"+newtype+"', '"+Common.addslashes(newname)+"', '"+Common.addslashes(newidentifier)+"', '"+Common.addslashes(newdescription)+"', '"+newdisplayorder+"', '"+newprice+"', '"+newnum+"','','')", true);
				}
			}
			request.setAttribute("successInfo", "道具资料更新成功。");
			request.setAttribute("requestPath", "admincp.jsp?action=magic");
			return mapping.findForward("success");
		}
	}

	@SuppressWarnings("unchecked")
	public ActionForward magicedit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String magiceditsubmit = request.getParameter("magiceditsubmit");
		if(magiceditsubmit == null){
			String magicid=request.getParameter("magicid");
			Map<String,String> magic=dataBaseService.executeQuery("SELECT * FROM jrun_magics WHERE magicid='"+magicid+"'").get(0);
			String mName = magic.get("name");
			if(mName!=null){
				magic.put("name", mName.replace("\"", "&quot;"));
			}
			Map<String, String> magicperm = dataParse.characterParse(magic.get("magicperm"), false);
			if (magicperm != null) {
				Set<String> keys = magicperm.keySet();
				Map<String, String> ids = null;
				for(String key:keys) {
					ids = new HashMap<String, String>();
					String[] values = magicperm.get(key).trim().split("\t");
					for (String id:values) {
						if (!id.equals("")) {
							ids.put(id, ""); 
						}
					}
					if (key.equals("usergroups")) {
						request.setAttribute("usergroupsperm", ids);
					} else if (key.equals("forum")) {
						request.setAttribute("forumperm", ids);
					} else if (key.equals("targetgroups")) {
						request.setAttribute("tousergroupsperm", ids);
					}
				}
			}
			request.setAttribute("magicBean", magic);
			request.setAttribute("userGroupList",dataBaseService.executeQuery("SELECT groupid, grouptitle FROM jrun_usergroups"));
			request.setAttribute("forumList", dataBaseService.executeQuery("SELECT fid, name FROM jrun_forums WHERE type NOT IN ('group') AND status>0"));
			return mapping.findForward("other_magicedit");
		}else{
			Short magicId = Short.valueOf(request.getParameter("magicid"));
			String newName = request.getParameter("newname");
			String newIdentifier = request.getParameter("newidentifier").toUpperCase().trim();
			byte[] identifierBA = null;
			try {
				String charset=JspRunConfig.charset;
				identifierBA = newIdentifier.getBytes(charset);
				newIdentifier = identifierBA.length > 3 ? new String(identifierBA,0, 3,charset) : new String(identifierBA,charset); 
			} catch (UnsupportedEncodingException e) {
				request.setAttribute("errorInfo", "道具标识信息错误");
				return mapping.findForward("error");
			}
			Short newType = Short.valueOf(request.getParameter("newtype"));
			String newPriceStr = request.getParameter("newprice");
			String newNumStr = request.getParameter("newnum");
			String newWeightStr = request.getParameter("newweight");
			Byte newSupplyType = Byte.valueOf(request.getParameter("newsupplytype"));
			String newSupplyNum = request.getParameter("newsupplynum");
			String newFileName = request.getParameter("newfilename");
			String newDescription = request.getParameter("newdescription");
			if (newSupplyType.byteValue() == 0) {
				newSupplyNum = "0";
			}
			String[] usergroupsperm = request.getParameterValues("usergroupsperm");
			String[] forumperm = request.getParameterValues("forumperm[]");
			String[] tousergroupsperm = request.getParameterValues("tousergroupsperm");
			if (otherSetService.isMark(newIdentifier, magicId)) {
				request.setAttribute("errorInfo", "道具标识必须是唯一的");
				return mapping.findForward("error");
			}
			HashMap<String, String> hashMap = new HashMap<String, String>();
			if (usergroupsperm != null) {
				StringBuffer buffer = new StringBuffer("");
				for (int i = 0; i < usergroupsperm.length; i++) {
					buffer.append("\t" + usergroupsperm[i]);
				}
				hashMap.put("usergroups", buffer.toString());
			} else {
				hashMap.put("usergroups", "");
			}
			if (forumperm != null) {
				StringBuffer buffer = new StringBuffer("");
				for (int i = 0; i < forumperm.length; i++) {
					buffer.append("\t" + forumperm[i]);
				}
				hashMap.put("forum", buffer.toString());
			} else {
				hashMap.put("forum", "");
			}
			if (tousergroupsperm != null) {
				StringBuffer buffer = new StringBuffer("");
				for (int i = 0; i < tousergroupsperm.length; i++) {
					buffer.append("\t" + tousergroupsperm[i]);
				}
				hashMap.put("targetgroups", buffer.toString());
			} else {
				hashMap.put("targetgroups", "");
			}

			if (!FormDataCheck.isValueString(newName)) {
				request.setAttribute("errorInfo", "道具名称必须为有效字符串。");
				return mapping.findForward("error");
			}

			if (FormDataCheck.isValueString(newFileName)) {
				ServletContext context = servlet.getServletContext();
				String filePath = context
						.getRealPath(FinalProperty.SCRIPT_FILE_PATH + newFileName);

				File file = new File(filePath);
				if (!file.isFile()) {
					request.setAttribute("errorInfo", "您所指定的任务脚本文件并不存在");
					return mapping.findForward("error");
				}
			} else {
				newFileName = "";
			}

			int price = 0;
			try {
				price = Integer.valueOf(FormDataCheck
						.getNumberFromForm(newPriceStr));
			} catch (Exception exception) {
				price = FinalProperty.PRICE_COLUMN_MAX_VALUE;
			}
			int num = 0;
			try {
				num = Integer.valueOf(FormDataCheck.getNumberFromForm(newNumStr));

⌨️ 快捷键说明

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