package com.terra.proxy.controller;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.terra.proxy.bean.ServletBean;
|
import com.terra.proxy.mapper.ProxyServletMapper;
|
import com.terra.proxy.properties.TerraProperties;
|
import com.terra.proxy.util.CrpUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.BufferedReader;
|
import java.io.File;
|
import java.io.FileReader;
|
import java.io.IOException;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.function.Consumer;
|
|
|
/**
|
* 该类用于配置代理servlet
|
*
|
* @author zsx
|
*/
|
@Controller
|
@RequestMapping("/serv")
|
@CrossOrigin
|
public class ProxyServletConfigController {
|
|
@Autowired
|
private TerraProperties properties;
|
|
@Resource
|
ProxyServletMapper mapper;
|
|
@RequestMapping(value = "/addServlet", method = {RequestMethod.GET, RequestMethod.POST})
|
@ResponseBody
|
public String addArcgisServer(HttpServletRequest request, String url, Integer enable, String remark, Integer ispublic) {
|
ServletBean bean = new ServletBean();
|
bean.setEnable(enable);
|
bean.setTime(new Date());
|
bean.setRemark(remark);
|
bean.setUrl(url);
|
bean.setIspublic(ispublic);
|
mapper.addServlet(bean);
|
String proxyurl = new StringBuilder(properties.getProxy().getHost()).append("/servlet/").append(CrpUtil.encode(bean.getId()))
|
.toString();
|
JSONObject json = new JSONObject();
|
json.put("code", 200);
|
json.put("data", proxyurl);
|
json.put("message", "获取成功");
|
return json.toJSONString(0);
|
}
|
|
|
@RequestMapping(value = "/batchImportFromPath", method = {RequestMethod.GET, RequestMethod.POST})
|
@ResponseBody
|
public String test(HttpServletRequest request, String path, Integer enable) {
|
|
String json = readFile(path);
|
List<Map> t = JSON.parseArray(json, Map.class);
|
t.forEach(new Consumer<Map>() {
|
|
@Override
|
public void accept(Map b) {
|
ServletBean bean = new ServletBean();
|
bean.setEnable(enable);
|
bean.setTime(new Date());
|
bean.setRemark(b.get("serverurl").toString());
|
bean.setUrl(b.get("targetUri").toString());
|
mapper.addServlet(bean);
|
|
}
|
});
|
|
return "";
|
}
|
|
public static String readFile(String json) {
|
//读取servletjson文件
|
File file = new File(json);
|
byte[] buffer = new byte[1024];
|
StringBuilder sb = new StringBuilder();
|
String s = null;
|
BufferedReader br;
|
try {
|
br = new BufferedReader(new FileReader(file));
|
while ((s = br.readLine()) != null) {
|
sb.append(s).append("\n");
|
}
|
br.close();
|
} catch (IOException e1) {
|
e1.printStackTrace();
|
}
|
return sb.toString();
|
}
|
|
|
@RequestMapping(value = "/updateServlet", method = {RequestMethod.GET, RequestMethod.POST})
|
@ResponseBody
|
public String updateServer(HttpServletRequest request, String url, Integer enable, String remark, Integer ispublic, Integer id) {
|
ServletBean bean = new ServletBean();
|
bean.setEnable(enable);
|
bean.setRemark(remark);
|
bean.setUrl(url);
|
bean.setIspublic(ispublic);
|
bean.setId(id);
|
mapper.updateServer(bean);
|
return "ok";
|
}
|
|
@RequestMapping(value = "/delServlet", method = {RequestMethod.GET, RequestMethod.POST})
|
@ResponseBody
|
public String delServlet(HttpServletRequest request, Integer id) {
|
|
mapper.delServer(id);
|
return "ok";
|
}
|
|
@RequestMapping(value = "/queryServlet", method = {RequestMethod.GET, RequestMethod.POST})
|
@ResponseBody
|
public String queryServlet(HttpServletRequest request, Integer id, String url, Integer enable,
|
String remark, Integer page, Integer limit, Date starttime, Date endtime) {
|
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> resultmap = new HashMap<>();
|
params.put("url", url);
|
params.put("enable", enable);
|
params.put("remark", remark);
|
params.put("id", id);
|
params.put("starttime", starttime);
|
params.put("endtime", endtime);
|
params.put("offSet", (page - 1) * limit);
|
params.put("limit", limit);
|
List<Map> list = mapper.queryServer(params);
|
int total = mapper.queryTotalServer(params);
|
resultmap.put("data", list);
|
resultmap.put("total", total);
|
String str = JSONObject.toJSONStringWithDateFormat(resultmap, "yyyy-MM-dd HH:mm:ss", SerializerFeature.PrettyFormat);
|
return str;
|
}
|
}
|