BaseController 基础Controller 工具类
- 工具类BaseController没啥好说的直接上代码:获取参数、分页查询、当前用户获取、EsSql查询分装等
public class BaseController {
private static final Logger logger = LoggerFactory.getLogger(BaseController.class);
@Autowired
protected HttpServletRequest request;
public Map<String, String> getParamMap(HttpServletRequest request) {
try {
if (Objects.isNull(this.request)) {
this.request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
}
Map<String, String[]> parameterMap = this.request.getParameterMap();
Map<String, String> map = new HashMap<>(16);
if (parameterMap != null && parameterMap.size() > 0) {
for (String key : parameterMap.keySet()) {
String[] strings = parameterMap.get(key);
String value = Arrays.asList(strings).get(0);
map.put(key, String.valueOf(value));
}
return map;
}else{
ServletInputStream inputStream = request.getInputStream();
StringBuffer stringBuffer = new StringBuffer();
int data;
while ((data=inputStream.read())!=-1){
stringBuffer.append((char)data);
}
if(Objects.nonNull(stringBuffer)){
String res= String.valueOf(stringBuffer);
try {
Map<String, String> mp = JSONObject.parseObject(res, Map.class);
if(Objects.nonNull(mp)){
return mp;
}
}catch (Exception e){
logger.info("=====> JSON解析参数出错"+e.getMessage());
}
}
return new HashMap<>(1);
}
} catch (Exception e) {
logger.error("=====>getParamMap()出错", e.getMessage(), e);
return new HashMap<>(1);
}
}
public CurrentUser getCurrentUser() {
try {
if (Objects.isNull(request)) {
request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
}
Object user = request.getSession().getAttribute("user");
if (user == null) {
return null;
}
CurrentUser currentUser = (CurrentUser) user;
return currentUser;
} catch (Exception e) {
logger.error("=====>getCurrentUser()出错", e.getMessage(), e);
return null;
}
}
public String getEsResultBysql(String sql) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
String urlLocation = "http://127.0.0.1:9200/_sql";
String content = "{\"query\":\"" + sql + "\"}";
URL realUrl = new URL(urlLocation);
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setDoOutput(true);
conn.setDoInput(true);
((HttpURLConnection) conn).setRequestMethod("POST");
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(content);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
public void getPageInit(HttpServletRequest request) {
try {
Map<String, String> paramMap = getParamMap(request);
int pagenumber = Integer.parseInt(paramMap.getOrDefault("pageNumber", "1"));
int pagesize = Integer.parseInt(paramMap.getOrDefault("pageSize", "10"));
PageHelper.startPage(pagenumber, pagesize);
} catch (Exception e) {
logger.info("=====>getPage()出错!", e.getMessage(), e);
}
}
}