package com.xzx.gc.model.query;
|
|
|
import cn.hutool.core.util.ClassLoaderUtil;
|
import com.xzx.gc.annotation.Query;
|
|
import java.lang.reflect.Field;
|
import java.util.concurrent.ConcurrentHashMap;
|
|
/**
|
* 页面查询条件
|
* @author lijiazhi
|
*
|
*/
|
public class QueryParser {
|
ConcurrentHashMap<String, QueryData> cache = new ConcurrentHashMap<> ();
|
public QueryData getData(String querClass){
|
if(cache.containsKey(querClass)){
|
return cache.get(querClass);
|
}
|
|
Class cls = ClassLoaderUtil.loadClass(querClass);
|
Field[] fs =cls.getDeclaredFields();
|
QueryData data = new QueryData();
|
for(Field f:fs){
|
Query query = f.getAnnotation(Query.class);
|
|
if(query==null){
|
continue ;
|
}
|
QueryItem item = new QueryItem();
|
item.setFieldName(f.getName());
|
item.setName(query.name());
|
item.setShow(query.display());
|
item.setType(query.type());
|
item.setDictName(query.dict());
|
item.setFuzzy(query.fuzzy());
|
item.setGroup(query.group());
|
data.addQueryItem(item);
|
}
|
|
cache.put(querClass, data);
|
return data;
|
|
}
|
}
|