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 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; } }