package cn.jcenterhome.web.action.admin; 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 ClickAction extends BaseAction { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { if (!Common.checkPerm(request, response, "manageclick")) { return cpMessage(request, mapping, "cp_no_authority_management_operation"); } int clickid = Common.intval(request.getParameter("clickid")); Map<String, Object> click = new HashMap<String, Object>(); if (clickid > 0) { List<Map<String, Object>> clickList = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("click") + " WHERE clickid='" + clickid + "'"); if (clickList.size() > 0) { click = clickList.get(0); } } try { if (submitCheck(request, "clicksubmit")) { String name = Common.trim(request.getParameter("name")); String icon = Common.trim(request.getParameter("icon")); int displayorder = Common.range(request.getParameter("displayorder"), 255, 0); if(Common.empty(name)){ return cpMessage(request, mapping, "cp_click_name_can_not_be_empty"); } if (clickid == 0) { String idtype = request.getParameter("idtype"); if (!Common.in_array(new String[] {"blogid", "picid", "tid"}, idtype)) { idtype = "blogid"; } clickid = dataBaseService.insert("INSERT INTO " + JavaCenterHome.getTableName("click") + " (name,icon,displayorder,idtype) VALUES ('" + name + "','" + icon + "','" + displayorder + "','" + idtype + "')"); String tablename = null; if ("picid".equals(idtype)) { tablename = JavaCenterHome.getTableName("pic"); } else if ("tid".equals(idtype)) { tablename = JavaCenterHome.getTableName("thread"); } else { tablename = JavaCenterHome.getTableName("blog"); } dataBaseService.executeUpdate("ALTER TABLE " + tablename + " ADD click_" + clickid + " smallint(6) unsigned NOT NULL default '0'"); } else { dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("click") + " SET name='" + name + "',icon='" + icon + "',displayorder='" + displayorder + "' WHERE clickid='" + clickid + "'"); } cacheService.click_cache(); return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=click"); } else if (submitCheck(request, "ordersubmit")) { String[] clickIds = request.getParameterValues("clickIds"); if (clickIds != null && clickIds.length > 0) { for (String clickId : clickIds) { int displayorder = Common.range(request.getParameter("displayorder" + clickId), 255, 0); dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("click") + " SET displayorder='" + displayorder + "' WHERE clickid='" + clickId + "'"); } } cacheService.click_cache(); return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=click"); } } catch (Exception e) { return showMessage(request, response, e.getMessage()); } String op = request.getParameter("op"); if (Common.empty(op)) { String idtype = request.getParameter("idtype"); String where = null; if (!Common.empty(idtype)) { where = " WHERE idtype='" + idtype + "'"; } else { where = ""; idtype = "view"; } List<Map<String, Object>> clicks = dataBaseService.executeQuery("SELECT * FROM " + JavaCenterHome.getTableName("click") + where + " ORDER BY displayorder"); Map<String, String> idtypeName = new HashMap<String, String>(); idtypeName.put("blogid", "��־"); idtypeName.put("picid", "ͼƬ"); idtypeName.put("tid", "����"); request.setAttribute("idtypeName", idtypeName); request.setAttribute("actives_" + idtype, " class=\"active\""); request.setAttribute("clicks", clicks); } else if ("delete".equals(op)) { if (!click.isEmpty()) { String idtype = (String) click.get("idtype"); String tablename = null; if ("picid".equals(idtype)) { tablename = JavaCenterHome.getTableName("pic"); } else if ("tid".equals(idtype)) { tablename = JavaCenterHome.getTableName("thread"); } else { tablename = JavaCenterHome.getTableName("blog"); } dataBaseService.executeUpdate("ALTER TABLE " + tablename + " DROP click_" + clickid); dataBaseService.executeUpdate("DELETE FROM " + JavaCenterHome.getTableName("click") + " WHERE clickid='" + clickid + "'"); dataBaseService.executeUpdate("DELETE FROM " + JavaCenterHome.getTableName("clickuser") + " WHERE clickid='" + clickid + "'"); try { cacheService.click_cache(); } catch (Exception e) { return cpMessage(request, mapping, e.getMessage()); } return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=click"); } } request.setAttribute("op", op); request.setAttribute("click", click); return mapping.findForward("click"); } }