package com.zy.asrs.framework.controller;
|
|
import com.zy.asrs.framework.common.BaseRes;
|
import com.zy.asrs.framework.common.Cools;
|
import com.zy.asrs.framework.exception.CoolException;
|
|
import java.lang.reflect.Method;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
/**
|
* Created by vincent on 2019-06-09
|
*/
|
public abstract class AbstractBaseController {
|
|
public <T> List exportSupport(List<T> list, List<String> fields){
|
if (Cools.isEmpty(list)){
|
throw new CoolException(BaseRes.EMPTY);
|
}
|
try {
|
List<List<Object>> result = new ArrayList<>();
|
Method[] methods = list.get(0).getClass().getMethods();
|
for (T t : list){
|
List<Object> node = new ArrayList<>();
|
for (String field : fields){
|
for (Method method : methods) {
|
if (("get" + field).toLowerCase().equals(method.getName().toLowerCase())) {
|
Object val = method.invoke(t);
|
node.add(val);
|
break;
|
}
|
}
|
}
|
result.add(node);
|
}
|
return result;
|
} catch (Exception e){
|
throw new RuntimeException(e);
|
}
|
|
}
|
|
public static Map<String, Object> excludeTrash(Map<String, Object> map){
|
if (Cools.isEmpty(map)){
|
return new HashMap<>();
|
}
|
map.entrySet().removeIf(next -> next.getKey().equals("curr")
|
|| next.getKey().equals("limit")
|
|| next.getKey().equals("orderByField")
|
|| next.getKey().equals("orderByType")
|
|| next.getKey().equals("condition")
|
|| Cools.isEmpty(next.getValue()));
|
return map;
|
}
|
|
public static String humpToLine(String str) {
|
Matcher matcher = Pattern.compile("[A-Z]").matcher(str);
|
StringBuffer sb = new StringBuffer();
|
while (matcher.find()) {
|
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
|
}
|
matcher.appendTail(sb);
|
return sb.toString();
|
}
|
}
|