Helius
2021-06-29 d95f158b9dfa0149e74bc60a0c5a386dbbdad484
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
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;
        
    }
}