fs-danaus
2022-08-05 4a551fc73bd4c86f43aa68c0aab8d1dbeae46836
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<%@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("\"},");
    }
%>