/** * $Id: SurveyAreaAction.java 4026 2011-03-22 14:58:42Z orangeforjava $ */ package org.openuap.cms.survey.action.admin.area; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.openuap.base.util.ControllerHelper; import org.openuap.base.util.QueryInfo; import org.openuap.base.util.context.PageBuilder; import org.openuap.cms.core.action.CMSBaseAction; import org.openuap.cms.node.manager.NodeManager; import org.openuap.cms.node.model.Node; import org.openuap.cms.survey.manager.SurveyAreaManager; import org.openuap.cms.survey.model.SurveyArea; import org.springframework.web.servlet.ModelAndView; /** * * @author Joseph * */ public class SurveyAreaAction extends CMSBaseAction { private String defaultScreensPath; private String defaultViewName; // private String operationViewName; private SurveyAreaManager surveyAreaManager; private NodeManager nodeManager; public SurveyAreaAction() { initDefaultViewName(); } protected void initDefaultViewName() { defaultScreensPath = "/plugin/cms/survey/screens/area/"; defaultViewName = defaultScreensPath + "area_list.html"; operationViewName = defaultScreensPath + "area_operation_result.html"; } /** * 调查位列表显示 */ public ModelAndView perform(HttpServletRequest request, HttpServletResponse response, ControllerHelper helper, Map model) throws Exception { ModelAndView mv = new ModelAndView(defaultViewName); Long nodeId = helper.getLong("nodeId", 0L); String state = helper.getString("state","-1"); String order = helper.getString("order",""); String order_mode = helper.getString("order_mode",""); String order_name = helper.getString("order_name",""); String where = helper.getString("where",""); String pubDate = request.getParameter("pubDate"); String pubDate2 = request.getParameter("pubDate2"); // String keyword =helper.getString("keyword", "").trim(); // String fields = helper.getString("fields", ""); String column_condition = ""; // if (keyword != null && !keyword.equals("")) { if (fields != null && !fields.equals("")) { String columns[] = fields.split(","); if (columns != null) { for (int i = 0; i < columns.length; i++) { column_condition += " or " + columns[i] + " like '%" + keyword + "%'"; } if (!column_condition.equals("")) { column_condition = column_condition .substring(4); column_condition = " and (" + column_condition + ")"; } } } } //必须是未删除状态 where+=" status<>-1 "; //过滤发布状态 if(!state.equals("-1")){ where+=" and publishState="+state; } //过滤关键字查询 where += column_condition; //排序条件 order_name = order_name.replaceAll("\\^", ""); // String final_order = ""; if (!order.equals("") && !order_mode.equals("")) { final_order = order + " " + order_mode; } if(!nodeId.equals(0L)){ Node node=nodeManager.getNode(nodeId); model.put("node", node); } // int p = helper.getInt("p", 1); int pp = helper.getInt("pp", 30); int offset = (p - 1) * pp; QueryInfo qi = new QueryInfo(where, final_order, pp, offset); PageBuilder pb = new PageBuilder(pp); List<SurveyArea> areas = surveyAreaManager.getAreas(nodeId, qi, pb); // model.put("areas", areas); model.put("p", p); model.put("pp", pp); model.put("order", order); model.put("order_mode", order_mode); model.put("order_name", order_name); model.put("where", where); model.put("keyword", keyword); model.put("nodeId", nodeId); model.put("state", state); model.put("pubDate", pubDate); model.put("pubDate2", pubDate2); model.put("pb", pb); return mv; } public void setDefaultScreensPath(String defaultScreensPath) { this.defaultScreensPath = defaultScreensPath; } public void setDefaultViewName(String defaultViewName) { this.defaultViewName = defaultViewName; } public void setOperationViewName(String operationViewName) { this.operationViewName = operationViewName; } public void setSurveyAreaManager(SurveyAreaManager surveyAreaManager) { this.surveyAreaManager = surveyAreaManager; } public void setNodeManager(NodeManager nodeManager) { this.nodeManager = nodeManager; } }