package cn.jcenterhome.web.action.admin; import java.util.HashMap; import java.util.LinkedHashMap; 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 ProfieldAction extends BaseAction { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { if (!Common.checkPerm(request, response, "manageprofield")) { return cpMessage(request, mapping, "cp_no_authority_management_operation"); } Map<String, Object> profield = null; int fieldId = Common.intval(request.getParameter("fieldid")); if (fieldId > 0) { String sql = "SELECT * FROM " + JavaCenterHome.getTableName("profield") + " WHERE fieldid = " + fieldId; List<Map<String, Object>> query = dataBaseService.executeQuery(sql); if (!query.isEmpty()) { profield = query.get(0); } } String op = request.getParameter("op"); if (op != null && !"add".equals(op) && profield == null) { return cpMessage(request, mapping, "cp_there_is_no_designated_users_columns"); } try { if (submitCheck(request, "fieldsubmit")) { Map<String, Object> setData = new HashMap<String, Object>(); String title=Common.trim(request.getParameter("title")); if(Common.empty(title)){ return cpMessage(request, mapping, "cp_mtag_title_can_not_be_empty"); } setData.put("title", Common.cutstr((String) Common.sHtmlSpecialChars(title), 80, "")); setData.put("note", Common.cutstr((String) Common.sHtmlSpecialChars(Common.trim(request .getParameter("note"))), 255, "")); setData.put("formtype", (String) Common.sHtmlSpecialChars(Common.trim(request .getParameter("formtype")))); setData.put("inputnum", Common.range(request.getParameter("inputnum"), 65535, 0)); setData.put("choice", Common.sHtmlSpecialChars(Common.trim(request.getParameter("choice")))); setData.put("mtagminnum", Common.range(request.getParameter("mtagminnum"), 65535, 0)); setData.put("manualmoderator", Common.intval(request.getParameter("manualmoderator"))); setData.put("manualmember", Common.intval(request.getParameter("manualmember"))); setData.put("displayorder", Common.range(request.getParameter("displayorder"), 255, 0)); if (profield == null || Common.empty(profield.get("fieldid"))) { dataBaseService.insertTable("profield", setData, false, false); } else { Map<String, Object> whereData = new HashMap<String, Object>(); whereData.put("fieldid", profield.get("fieldid")); dataBaseService.updateTable("profield", setData, whereData); } cacheService.profield_cache(); return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=profield"); } else if (submitCheck(request, "ordersubmit")) { String[] fieldids = request.getParameterValues("fieldid[]"); if (fieldids != null) { for (String id : fieldids) { dataBaseService.executeUpdate("UPDATE " + JavaCenterHome.getTableName("profield") + " SET displayorder = " + Common.range(request.getParameter("displayorder_" + id), 255, 0) + " WHERE fieldid = " + id); } cacheService.profield_cache(); } return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=profield"); } } catch (Exception e1) { return showMessage(request, response, e1.getMessage()); } if (Common.empty(op)) { String sql = "SELECT * FROM " + JavaCenterHome.getTableName("profield") + " ORDER BY displayorder"; List<Map<String, Object>> profields = dataBaseService.executeQuery(sql); request.setAttribute("profields", profields); request.setAttribute("actives_view", " class='active'"); } else if ("add".equals(op)) { profield = new HashMap<String, Object>(); profield.put("fieldid", 0); profield.put("formtype", "text"); } else if ("delete".equals(op)) { Map globalProfield = Common.getCacheDate(request, response, "/data/cache/cache_profield.jsp", "globalProfield"); if (globalProfield.size() < 2) { return cpMessage(request, mapping, "cp_have_one_mtag"); } try { if (submitCheck(request, "deletesubmit")) { int newFieldId = Common.intval(request.getParameter("newfieldid")); if (Common.empty(globalProfield.get(newFieldId))) { return cpMessage(request, mapping, "cp_there_is_no_designated_users_columns"); } if (fieldId > 0) { String sql = "DELETE FROM " + JavaCenterHome.getTableName("profield") + " WHERE fieldid = " + fieldId; dataBaseService.executeUpdate(sql); sql = "UPDATE " + JavaCenterHome.getTableName("mtag") + " SET fieldid = " + newFieldId + " WHERE fieldid = " + fieldId; dataBaseService.executeUpdate(sql); cacheService.profield_cache(); return cpMessage(request, mapping, "do_success", "admincp.jsp?ac=profield"); } else { return cpMessage(request, mapping, "cp_choose_to_delete_the_columns", "admincp.jsp?ac=profield"); } } } catch (Exception e1) { return showMessage(request, response, e1.getMessage()); } globalProfield.remove(fieldId); } request.setAttribute("profield", profield); Map<String, String> formTypes = new LinkedHashMap<String, String>(); formTypes.put("text", "�ı�����"); formTypes.put("select", "��ѡ�б�"); formTypes.put("multi", "��ѡ�б�"); request.setAttribute("formTypes", formTypes); return mapping.findForward("profield"); } }