📄 othermanageaction.java
字号:
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("\"", """));
}
if(mmDescription!=null){
mm.put("description", mmDescription.replace("\"", """));
}
if(mmIdentifier!=null){
mm.put("identifier", mmIdentifier.replace("\"", """));
}
}
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("\"", """));
}
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 + -