package cn.jcenterhome.web.action.admin;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cn.jcenterhome.util.Common;
import cn.jcenterhome.util.JavaCenterHome;
import cn.jcenterhome.web.action.BaseAction;
public class HotUserAction extends BaseAction {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
String ac = request.getParameter("ac");
String vars = null;
if ("hotuser".equals(ac)) {
if (!Common.checkPerm(request, response, "managehotuser")) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
vars = "'spacebarusername'";
} else {
if (!Common.checkPerm(request, response, "managedefaultuser")) {
return cpMessage(request, mapping, "cp_no_authority_management_operation");
}
vars = "'defaultfusername','defaultpoke'";
}
try {
if (submitCheck(request, "thevaluesubmit")) {
Map<String, Object> sConfig = (Map<String, Object>) request.getAttribute("sConfig");
List<String> configs = new ArrayList<String>();
List<Object> userNames = new ArrayList<Object>();
String elementName = null;
if ("hotuser".equals(ac)) {
elementName = "spacebarusername";
} else {
elementName = "defaultfusername";
String defaultPoke = Common.cutstr(request.getParameter("defaultpoke"), 50, "");
if (!defaultPoke.equals(sConfig.get("defaultpoke"))) {
configs.add("('defaultpoke','" + defaultPoke + "')");
}
}
String elementValue = request.getParameter(elementName);
if (!Common.empty(elementValue)) {
elementValue = elementValue.replaceAll("(\\s*(\r\n|\n\r|\n|\r)\\s*)", "\r\n").trim();
List<Map<String, Object>> spaces = dataBaseService.executeQuery("SELECT username FROM "
+ JavaCenterHome.getTableName("space") + " WHERE username IN ("
+ Common.sImplode(elementValue.split("\r\n")) + ")");
for (Map<String, Object> space : spaces) {
userNames.add(Common.sAddSlashes(space.get("username")));
}
}
elementValue = userNames.isEmpty() ? "" : Common.implode(userNames, ",");
if (!elementValue.equals(sConfig.get(elementName))) {
configs.add("('" + elementName + "','" + elementValue + "')");
}
if (configs.size() > 0) {
dataBaseService.executeUpdate("REPLACE INTO " + JavaCenterHome.getTableName("config")
+ " (var,datavalue) VALUES " + Common.implode(configs, ","));
}
cacheService.config_cache();
return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=" + ac);
}
} catch (Exception e1) {
return showMessage(request, response, e1.getMessage());
}
List<Map<String, Object>> values = dataBaseService.executeQuery("SELECT * FROM "
+ JavaCenterHome.getTableName("config") + " WHERE var IN (" + vars + ")");
Map<String, Object> configs = new HashMap<String, Object>();
String var = null;
Object dataValue = null;
for (Map<String, Object> value : values) {
var = (String) value.get("var");
dataValue = Common.sHtmlSpecialChars(value.get("datavalue"));
if ("defaultfusername".equals(var) || "spacebarusername".equals(var)) {
dataValue = Common.implode(((String) dataValue).split(","), "\r\n");
}
configs.put(var, dataValue);
}
request.setAttribute("configs", configs);
return mapping.findForward("hotuser");
}
}