<%@page import="com.yc.utils.EncodeUtil"%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
<%@page import="java.util.Map"%>
|
<%@page import="java.util.List"%>
|
<%@page import="com.yc.factory.FactoryBean"%>
|
<%@page import="com.yc.service.commons.SqlQueryIfc"%>
|
<%@page import="org.apache.commons.lang.StringUtils"%>
|
<%
|
String rowid = request.getParameter("rid");//rowid
|
String query = request.getParameter("query");
|
if(query!=null&&query.indexOf("@G@")==0) query=query.replace("@G@","");//查询条件
|
String treeformid = "[?treeformid]";
|
String nodeid = "[?nodeid]";
|
String separatedst = "[?separatedst]";
|
String displayfield = "[?displayfield]";
|
Map<String, Object> temp=null;
|
String showFields []=displayfield.split(";");
|
StringBuilder sb = new StringBuilder();
|
String sql = null;
|
SqlQueryIfc sqlQueryIfc = (SqlQueryIfc)FactoryBean.getBean("SqlQueryImpl");
|
//增加数据组权限
|
com.yc.action.grid.GTGrid grid=(com.yc.action.grid.GTGrid)FactoryBean.getBean("GTGrid");
|
String dataStr="";
|
dataStr=grid.getDataGroupInfo(Integer.parseInt(treeformid),session.getAttribute(com.yc.utils.SessionKey.USERCODE)+"",0,session);
|
List<Map<String,Object>> list = null;
|
if (StringUtils.isBlank(rowid) && StringUtils.isBlank(query)) {//rowid==null表示第一级节点
|
sql = "[?firstNodeSql]";
|
sql=sql.replaceAll("@_dataGroup_@",dataStr);
|
list =sqlQueryIfc.queryForList(com.yc.utils.FileUtil.prossSessionInfo(request,sql));
|
//list =sqlQueryIfc.queryForList(sql);
|
}else if(StringUtils.isBlank(rowid) && !StringUtils.isBlank(query)){//查询
|
//query = EncodeUtil.base64Decode(query);
|
sql="[?querySql] and ("+query+")";
|
try{
|
sql=sql.replaceAll("@_dataGroup_@",dataStr);
|
list =sqlQueryIfc.queryForList(com.yc.utils.FileUtil.prossSessionInfo(request,sql));
|
//list =sqlQueryIfc.queryForList(sql);
|
}catch(Exception e){return;}
|
}else if(!StringUtils.isBlank(rowid) && StringUtils.isBlank(query)){//获得下级节点
|
sql = "[?sql]";
|
sql=sql.replaceAll("@_dataGroup_@",dataStr);
|
list =sqlQueryIfc.queryForList(com.yc.utils.FileUtil.prossSessionInfo(request,sql),rowid);
|
//list =sqlQueryIfc.queryForList(sql,rowid);
|
}
|
if(StringUtils.isBlank(sql))return;
|
sb.append("[");
|
for(int i=0;i<list.size();i++){
|
temp = list.get(i);
|
spellInfo(sb,nodeid,separatedst,showFields,temp);
|
}
|
if(list.size()>0)
|
sb=new StringBuilder(sb.substring(0,sb.length()-1));
|
sb.append("]");
|
list=null;
|
response.setCharacterEncoding("utf-8");
|
out.write(sb.toString().replace("\\", "/"));
|
out.flush();
|
sql=null;
|
temp=null;
|
sb=null;
|
%>
|
<%! //和其他的树不同 这里的nodeid 不是primary key
|
void spellInfo(StringBuilder sb,String nodeid,String separatedst,String [] showFields,Map<String,Object> temp){
|
sb.append("{\"id\":\"").append(temp.get("rowid"))
|
.append("\",\"nodeid\":\"").append(nodeid)
|
.append("\",\"text\":\"");
|
for(int j=0;j<showFields.length;j++){
|
sb.append(temp.get(showFields[j])==null?"": String.valueOf(temp.get(showFields[j])).trim().replaceAll("(\\r\\n|\\r|\\n|\\n\\r)", ""))
|
.append((j+1)==showFields.length?"":separatedst);
|
}
|
sb.append("\",");
|
if(!StringUtils.isBlank((String)temp.get("haschild"))){
|
sb.append("\"state\":\"closed\",");
|
}
|
sb.append("\"nodevalue\":\"").append((temp.get(nodeid)+"").trim()).append("\"},");
|
}
|
%>
|