|
@@ -1,21 +1,23 @@
|
|
|
package cn.cslg.pas.common.utils.auth;
|
|
|
|
|
|
-import cn.cslg.pas.domain.DataSource;
|
|
|
+import cn.cslg.pas.common.model.DataSource;
|
|
|
+import cn.cslg.pas.common.model.PersonnelVO;
|
|
|
+import cn.cslg.pas.common.utils.CacheUtils;
|
|
|
+import cn.cslg.pas.common.utils.RedisUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Component
|
|
|
public class TreeUtils {
|
|
|
- /**
|
|
|
- * 分页查询设置返回参数 (当前页 每页条数 总条数)
|
|
|
- */
|
|
|
- public static String reSql(JSONObject jsonObject,List<DataSource> dataSource) {
|
|
|
-
|
|
|
- String sql= recursionTree(jsonObject,dataSource);
|
|
|
+ public static String reSql(JSONObject jsonObject,List<DataSource> dataSource,PersonnelVO personnelVO) throws NoSuchFieldException, IllegalAccessException {
|
|
|
+ String sql ="";
|
|
|
+ if (jsonObject.containsKey("left")&&jsonObject.containsKey("right")){
|
|
|
+ sql= recursionTree(jsonObject,dataSource,personnelVO);}
|
|
|
return sql;
|
|
|
|
|
|
}
|
|
@@ -33,25 +35,25 @@ public class TreeUtils {
|
|
|
* @param jsonObject jsaonObject
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String recursionTree(JSONObject jsonObject, List<DataSource> dataSource) {
|
|
|
+ public static String recursionTree(JSONObject jsonObject, List<DataSource> dataSource,PersonnelVO personnelVO) throws NoSuchFieldException, IllegalAccessException {
|
|
|
String str1 = "";
|
|
|
String str2 = "";
|
|
|
JSONObject jsonLeft =jsonObject.getJSONObject("left");
|
|
|
JSONObject jsonRight =jsonObject.getJSONObject("right");
|
|
|
if(jsonLeft.containsKey("left")){
|
|
|
- str1 = recursionTree(jsonLeft,dataSource);
|
|
|
+ str1 = recursionTree(jsonLeft,dataSource,personnelVO);
|
|
|
}
|
|
|
else{
|
|
|
- String field =distinguishFields(jsonLeft.get("field").toString(),dataSource);
|
|
|
- String value=distinguishFields(jsonLeft.get("value").toString(),dataSource);
|
|
|
+ String field =jsonLeft.get("field").toString();
|
|
|
+ String value=distinguishFields(jsonLeft.get("value").toString(),dataSource,personnelVO);
|
|
|
str1 = field+jsonLeft.get("opr").toString()+value;
|
|
|
}
|
|
|
if(jsonRight.containsKey("right")){
|
|
|
- str2= recursionTree( jsonRight,dataSource);
|
|
|
+ str2= recursionTree( jsonRight,dataSource,personnelVO);
|
|
|
}
|
|
|
else{
|
|
|
- String field =distinguishFields(jsonRight.get("field").toString(),dataSource);
|
|
|
- String value=distinguishFields(jsonRight.get("value").toString(),dataSource);
|
|
|
+ String field =jsonRight.get("field").toString();
|
|
|
+ String value=distinguishFields(jsonRight.get("value").toString(),dataSource,personnelVO);
|
|
|
str2 =field+jsonRight.get("opr").toString()+value;
|
|
|
}
|
|
|
String sql ="("+ str1+") "+ jsonObject.get("logicOpr")+" ("+str2+")";
|
|
@@ -88,22 +90,18 @@ public class TreeUtils {
|
|
|
};
|
|
|
|
|
|
//对field部分进行计算 sql查询
|
|
|
- public static String distinguishFields(String field, List<DataSource> dataSources){
|
|
|
+ public static String distinguishFields(String field, List<DataSource> dataSources,PersonnelVO personnelVO) throws NoSuchFieldException, IllegalAccessException {
|
|
|
String tem ="";
|
|
|
String reField =field;
|
|
|
for(DataSource dataSource :dataSources){
|
|
|
- if(field.equals(dataSource.getDataSourceField()) ){
|
|
|
- tem =dataSource.getDataSourceDataBase();
|
|
|
+ if(field.equals(dataSource.getDataSourceField())){
|
|
|
+ Class personClass =personnelVO.getClass();
|
|
|
+ Field dataField = personClass.getDeclaredField(field);
|
|
|
+ dataField.setAccessible(true);
|
|
|
+ reField =dataField.get(personnelVO).toString();
|
|
|
break;
|
|
|
}}
|
|
|
- switch (tem){
|
|
|
- case "1":
|
|
|
- reField="";
|
|
|
- break;
|
|
|
- case "2":
|
|
|
- reField="1";
|
|
|
- break;
|
|
|
- }
|
|
|
+
|
|
|
return reField;
|
|
|
}
|
|
|
|