Commit 75a9339f by 罗胜

漏洞问题处理

parent c23874b3
package com.foc; //package com.foc;
//
import java.io.File; //import java.io.File;
import java.io.FileOutputStream; //import java.io.FileOutputStream;
import java.io.IOException; //import java.io.IOException;
import java.util.Date; //import java.util.Date;
import java.util.Map; //import java.util.Map;
import java.util.Map.Entry; //import java.util.Map.Entry;
import java.util.TreeMap; //import java.util.TreeMap;
//
import javax.print.attribute.standard.Finishings; //import javax.print.attribute.standard.Finishings;
//
import org.apache.commons.io.IOUtils; //import org.apache.commons.io.IOUtils;
//
import com.alibaba.fastjson.JSON; //import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; //import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; //import com.alibaba.fastjson.JSONObject;
import com.foc.conf.GConstants; //import com.foc.conf.GConstants;
import com.foc.conf.HistoryConfig; //import com.foc.conf.HistoryConfig;
import com.foc.fetcher.FetchEntity; //import com.foc.fetcher.FetchEntity;
import com.foc.fetcher.HCFetcher; //import com.foc.fetcher.HCFetcher;
import com.foc.util.DateUtil; //import com.foc.util.DateUtil;
/** ///**
* 任务模板,具体结果处理请参考successHandle // * 任务模板,具体结果处理请参考successHandle
* @author panjianlin // * @author panjianlin
* // *
*/ // */
public abstract class TaskTemplate{ //public abstract class TaskTemplate{
//
protected String pageIndexProperty; // protected String pageIndexProperty;
//
protected int pageIndex; // protected int pageIndex;
//
protected String baseUrl; // protected String baseUrl;
//
protected boolean isFinish=false; // protected boolean isFinish=false;
//
// private HCFetcher fetcher; //// private HCFetcher fetcher;
//
protected Map<String,String> params = new TreeMap<String,String>(); // protected Map<String,String> params = new TreeMap<String,String>();
//
protected TaskSupporter taskSupporter; // protected TaskSupporter taskSupporter;
//
public TaskTemplate(TaskSupporter taskSupporter){ // public TaskTemplate(TaskSupporter taskSupporter){
this.taskSupporter = taskSupporter; // this.taskSupporter = taskSupporter;
this.baseUrl = this.taskSupporter.setBaseUrl(this); // this.baseUrl = this.taskSupporter.setBaseUrl(this);
this.params = this.taskSupporter.setParams(); // this.params = this.taskSupporter.setParams();
} // }
//
public void run(){ // public void run(){
init(); // init();
mainTask(); // mainTask();
// destroy(); //// destroy();
//
} // }
//
private void init() { // private void init() {
//
initIndexProperty(); // initIndexProperty();
} // }
//
private void initIndexProperty() { // private void initIndexProperty() {
this.pageIndexProperty = taskSupporter.setPageIndexProperty(); // this.pageIndexProperty = taskSupporter.setPageIndexProperty();
} // }
//
public int getHistoryConfigPageIndex() { // public int getHistoryConfigPageIndex() {
int i = HistoryConfig.getIntValue(getPageIndexProperty(), 1); // int i = HistoryConfig.getIntValue(getPageIndexProperty(), 1);
return i; // return i;
} // }
//
public void setHistoryConfigPageIndex() { // public void setHistoryConfigPageIndex() {
HistoryConfig.put(getPageIndexProperty(), ""+this.pageIndex);// 记录最后成功的索引地址 // HistoryConfig.put(getPageIndexProperty(), ""+this.pageIndex);// 记录最后成功的索引地址
HistoryConfig.saveHistory(); // HistoryConfig.saveHistory();
} // }
//
public String getPageIndexProperty(){ // public String getPageIndexProperty(){
return this.pageIndexProperty; // return this.pageIndexProperty;
} // }
//
//
private void mainTask() { // private void mainTask() {
//
initPageIndex(); // initPageIndex();
while (isFinish == false) { // while (isFinish == false) {
//请求接口获取结果 // //请求接口获取结果
FetchEntity entity = getEntity(); // FetchEntity entity = getEntity();
//
if(entity.isSuccess()){ // if(entity.isSuccess()){
//
String text = entity.getContent("utf-8"); // String text = entity.getContent("utf-8");
//
JSONObject result = JSON.parseObject(text); // JSONObject result = JSON.parseObject(text);
if(result.containsKey("result")){// 处理首航接口 // if(result.containsKey("result")){// 处理首航接口
String resultCode = result.getJSONObject("result").getString("resultCode"); // String resultCode = result.getJSONObject("result").getString("resultCode");
System.out.println("接口返回状态码【"+resultCode+"】"); // System.out.println("接口返回状态码【"+resultCode+"】");
if("1000".equals(resultCode)){ // // if("1000".equals(resultCode)){ //
//
if(GConstants.getBoolean("is.save.history", false)){ // if(GConstants.getBoolean("is.save.history", false)){
try { // try {
//
String dayPath = DateUtil.dateToStr(new Date(), "yyyyMMdd"); // String dayPath = DateUtil.dateToStr(new Date(), "yyyyMMdd");
File file = new File(GConstants.BASE_PATH+GConstants.FS+dayPath); // File file = new File(GConstants.BASE_PATH+GConstants.FS+dayPath);
if(file.exists() == false){ // if(file.exists() == false){
//
file.mkdirs(); // file.mkdirs();
} // }
String dateFrom = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss"); // String dateFrom = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss");
String apiName = taskSupporter.getApiName(); // String apiName = taskSupporter.getApiName();
String fileName = apiName+"."+dateFrom+".page."+getPageIndex()+".json"; // String fileName = apiName+"."+dateFrom+".page."+getPageIndex()+".json";
//
IOUtils.write(text, new FileOutputStream(new File(GConstants.BASE_PATH+GConstants.FS+dayPath+GConstants.FS+fileName))); // IOUtils.write(text, new FileOutputStream(new File(GConstants.BASE_PATH+GConstants.FS+dayPath+GConstants.FS+fileName)));
// System.exit(0); //// System.exit(0);
} catch (IOException e1) { // } catch (IOException e1) {
// TODO Auto-generated catch block // // TODO Auto-generated catch block
e1.printStackTrace(); // e1.printStackTrace();
} // }
} // }
JSONObject data = (JSONObject)result.getJSONObject("data"); // JSONObject data = (JSONObject)result.getJSONObject("data");
if(data == null || data.isEmpty()){ // if(data == null || data.isEmpty()){
System.out.println("获取数据为空 结束"); // System.out.println("获取数据为空 结束");
System.out.println("返回数据: "+data); // System.out.println("返回数据: "+data);
break; // break;
} // }
if(data.containsKey("apiResp")){ // if(data.containsKey("apiResp")){
JSONArray apiResp = data.getJSONArray("apiResp"); // JSONArray apiResp = data.getJSONArray("apiResp");
if(apiResp == null || apiResp.size() == 0){ // if(apiResp == null || apiResp.size() == 0){
System.out.println("获取数据为空 结束"); // System.out.println("获取数据为空 结束");
break; // break;
} // }
if(apiResp.size()<GConstants.PAGE_SIZE){ // if(apiResp.size()<GConstants.PAGE_SIZE){
isFinish = true; // isFinish = true;
} // }
System.out.println("本次处理数据量:"+apiResp.size()); // System.out.println("本次处理数据量:"+apiResp.size());
} else if(data.containsKey("fltLegsChanges")){ // } else if(data.containsKey("fltLegsChanges")){
JSONArray apiResp = data.getJSONArray("fltLegsChanges"); // JSONArray apiResp = data.getJSONArray("fltLegsChanges");
if(apiResp == null || apiResp.size() == 0){ // if(apiResp == null || apiResp.size() == 0){
System.out.println("获取数据为空 结束"); // System.out.println("获取数据为空 结束");
break; // break;
} // }
if(apiResp.size()<GConstants.PAGE_SIZE){ // if(apiResp.size()<GConstants.PAGE_SIZE){
isFinish = true; // isFinish = true;
} // }
System.out.println("本次处理数据量:"+apiResp.size()); // System.out.println("本次处理数据量:"+apiResp.size());
} else if(data.containsKey("result")){// 飞行任务书 // } else if(data.containsKey("result")){// 飞行任务书
JSONArray apiResp = data.getJSONArray("result"); // JSONArray apiResp = data.getJSONArray("result");
if(apiResp == null || apiResp.size() == 0){ // if(apiResp == null || apiResp.size() == 0){
System.out.println("获取数据为空 结束"); // System.out.println("获取数据为空 结束");
break; // break;
} // }
if(apiResp.size()<GConstants.PAGE_SIZE){ // if(apiResp.size()<GConstants.PAGE_SIZE){
isFinish = true; // isFinish = true;
} // }
System.out.println("本次处理数据量:"+apiResp.size()); // System.out.println("本次处理数据量:"+apiResp.size());
} // }
taskSupporter.successHandle(result); // taskSupporter.successHandle(result);
// System.out.println("成功: "+url+"&pageParam.pageIndex="+pageIndex+"&pageParam.pageSize="+GConstants.PAGE_SIZE); //// System.out.println("成功: "+url+"&pageParam.pageIndex="+pageIndex+"&pageParam.pageSize="+GConstants.PAGE_SIZE);
//
pageIndex++; // pageIndex++;
setHistoryConfigPageIndex();// 记录最后成功的索引地址 // setHistoryConfigPageIndex();// 记录最后成功的索引地址
//
} else if("10005".equals(resultCode)){// 其它状态结束请求 // } else if("10005".equals(resultCode)){// 其它状态结束请求
failHandle(result); // failHandle(result);
try { // try {
System.out.println("延时【"+GConstants.POLITENESS_DELAY/60+"】分钟再次请求【"+DateUtil.dateToStr(new Date(), DateUtil.TIMEF_FORMAT)+"】"); // System.out.println("延时【"+GConstants.POLITENESS_DELAY/60+"】分钟再次请求【"+DateUtil.dateToStr(new Date(), DateUtil.TIMEF_FORMAT)+"】");
Thread.sleep(GConstants.POLITENESS_DELAY*1000); // Thread.sleep(GConstants.POLITENESS_DELAY*1000);
} catch (Exception e) {} // } catch (Exception e) {}
} else{ // } else{
System.out.println("状态码为【" + resultCode + "】结束"); // System.out.println("状态码为【" + resultCode + "】结束");
break ; // break ;
} // }
} else if(result.containsKey("data")){// 处理安科接口 // } else if(result.containsKey("data")){// 处理安科接口
String status = result.getString("status"); // String status = result.getString("status");
if("2000".equals(status)){ // if("2000".equals(status)){
if(GConstants.getBoolean("is.save.history", false)){ // if(GConstants.getBoolean("is.save.history", false)){
try { // try {
//
String dayPath = DateUtil.dateToStr(new Date(), "yyyyMMdd"); // String dayPath = DateUtil.dateToStr(new Date(), "yyyyMMdd");
File file = new File(GConstants.BASE_PATH+GConstants.FS+dayPath); // File file = new File(GConstants.BASE_PATH+GConstants.FS+dayPath);
if(file.exists() == false){ // if(file.exists() == false){
//
file.mkdirs(); // file.mkdirs();
} // }
String dateFrom = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss"); // String dateFrom = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss");
String apiName = taskSupporter.getApiName(); // String apiName = taskSupporter.getApiName();
String fileName = apiName+"."+dateFrom+".page."+getPageIndex()+".json"; // String fileName = apiName+"."+dateFrom+".page."+getPageIndex()+".json";
//
IOUtils.write(text, new FileOutputStream(new File(GConstants.BASE_PATH+GConstants.FS+dayPath+GConstants.FS+fileName))); // IOUtils.write(text, new FileOutputStream(new File(GConstants.BASE_PATH+GConstants.FS+dayPath+GConstants.FS+fileName)));
// System.exit(0); //// System.exit(0);
} catch (IOException e1) { // } catch (IOException e1) {
// TODO Auto-generated catch block // // TODO Auto-generated catch block
e1.printStackTrace(); // e1.printStackTrace();
} // }
} // }
JSONObject data = (JSONObject)result.getJSONObject("data"); // JSONObject data = (JSONObject)result.getJSONObject("data");
if(data == null || data.isEmpty()){ // if(data == null || data.isEmpty()){
System.out.println("获取数据为空 结束"); // System.out.println("获取数据为空 结束");
System.out.println("返回数据: "+data); // System.out.println("返回数据: "+data);
break; // break;
} // }
if(data.containsKey("list")){ // if(data.containsKey("list")){
JSONArray list = data.getJSONArray("list"); // JSONArray list = data.getJSONArray("list");
if(list == null || list.size() == 0){ // if(list == null || list.size() == 0){
System.out.println("获取数据为空 结束"); // System.out.println("获取数据为空 结束");
break; // break;
} // }
if(list.size()<GConstants.PAGE_SIZE){ // if(list.size()<GConstants.PAGE_SIZE){
isFinish = true; // isFinish = true;
} // }
System.out.println("本次处理数据量:"+list.size()); // System.out.println("本次处理数据量:"+list.size());
} // }
taskSupporter.successHandle(result); // taskSupporter.successHandle(result);
pageIndex++; // pageIndex++;
setHistoryConfigPageIndex();// 记录最后成功的索引地址 // setHistoryConfigPageIndex();// 记录最后成功的索引地址
} // }
} // }
} else { // } else {
System.out.println("获取接口失败 结束"); // System.out.println("获取接口失败 结束");
break ; // break ;
} // }
} // }
taskSupporter.finish(); // taskSupporter.finish();
} // }
//
private void initPageIndex() { // private void initPageIndex() {
this.pageIndex = 1;//getHistoryConfigPageIndex(); // this.pageIndex = 1;//getHistoryConfigPageIndex();
//
} // }
//
private void failHandle(JSONObject result) { // private void failHandle(JSONObject result) {
// TODO Auto-generated method stub // // TODO Auto-generated method stub
//
} // }
//
// public abstract void successHandle(JSONObject result); //// public abstract void successHandle(JSONObject result);
//
private FetchEntity getEntity() { // private FetchEntity getEntity() {
// System.out.println(url+"&pageParam.pageIndex="+pageIndex+"&pageParam.pageSize="+GConstants.PAGE_SIZE); //// System.out.println(url+"&pageParam.pageIndex="+pageIndex+"&pageParam.pageSize="+GConstants.PAGE_SIZE);
//
if(isGet()) // if(isGet())
return get(); // return get();
else if(isPost()) // else if(isPost())
return post(); // return post();
else{ // else{
throw new IllegalStateException("期望的是get或post方法"); // throw new IllegalStateException("期望的是get或post方法");
} // }
} // }
//
private FetchEntity post() { // private FetchEntity post() {
//return fetcher.post(url+"&pageParam.pageIndex="+pageIndex+"&pageParam.pageSize="+GConstants.PAGE_SIZE,null); // //return fetcher.post(url+"&pageParam.pageIndex="+pageIndex+"&pageParam.pageSize="+GConstants.PAGE_SIZE,null);
//暂时未实现 // //暂时未实现
try { // try {
String url = this.urlHandle(); // String url = this.urlHandle();
String params = ""; // String params = "";
if(url.contains("?")){ // if(url.contains("?")){
//
params = url.substring(url.indexOf("?")+1, url.length()); // params = url.substring(url.indexOf("?")+1, url.length());
url = url.substring(0, url.indexOf("?")); // url = url.substring(0, url.indexOf("?"));
} // }
System.out.println("METHOD: POST"); // System.out.println("METHOD: POST");
System.out.println("URL: "+url); // System.out.println("URL: "+url);
System.out.println("PARAMS: "+params); // System.out.println("PARAMS: "+params);
return HCFetcher.getInstance().post(url, params.getBytes("utf-8"));//(url); // return HCFetcher.getInstance().post(url, params.getBytes("utf-8"));//(url);
} catch (Exception e) { // } catch (Exception e) {
// TODO: handle exception // // TODO: handle exception
} // }
FetchEntity entity = new FetchEntity(); // FetchEntity entity = new FetchEntity();
entity.setSuccess(false); // entity.setSuccess(false);
return entity; // return entity;
} // }
//
private FetchEntity get() { // private FetchEntity get() {
//
final String url = this.urlHandle().replaceAll(" ", "%20"); // final String url = this.urlHandle().replaceAll(" ", "%20");
//
// url = url.replaceAll(" ", "%20"); //// url = url.replaceAll(" ", "%20");
System.out.println("METHOD: GET"); // System.out.println("METHOD: GET");
System.out.println("URL: "+url); // System.out.println("URL: "+url);
return HCFetcher.getInstance().get(url); // return HCFetcher.getInstance().get(url);
} // }
//
private synchronized String urlHandle() { // private synchronized String urlHandle() {
//设置url // //设置url
this.resetBaseUrl(); // this.resetBaseUrl();
//设置参数 // //设置参数
this.resetParams(); // this.resetParams();
//拼接url和参数 // //拼接url和参数
return this.combineUrlParams(); // return this.combineUrlParams();
} // }
//
public void resetBaseUrl(){ // public void resetBaseUrl(){
this.baseUrl = this.taskSupporter.setBaseUrl(this); // this.baseUrl = this.taskSupporter.setBaseUrl(this);
} // }
//
public void resetParams() { // public void resetParams() {
this.params = this.taskSupporter.setParams(); // this.params = this.taskSupporter.setParams();
} // }
//
private String combineUrlParams() { // private String combineUrlParams() {
for(Entry<String,String> param : params.entrySet()){ // for(Entry<String,String> param : params.entrySet()){
//
this.baseUrl += "&" + param.getKey() + "=" + param.getValue(); // this.baseUrl += "&" + param.getKey() + "=" + param.getValue();
} // }
return this.baseUrl; // return this.baseUrl;
} // }
//
// public abstract void setParams(); //// public abstract void setParams();
//
public boolean isGet(){ // public boolean isGet(){
return this.taskSupporter.isGet(); // return this.taskSupporter.isGet();
} // }
//
public boolean isPost(){ // public boolean isPost(){
return this.taskSupporter.isPost(); // return this.taskSupporter.isPost();
} // }
//
//
public int getPageIndex() { // public int getPageIndex() {
return pageIndex; // return pageIndex;
} // }
//
public boolean isFinish() { // public boolean isFinish() {
return isFinish; // return isFinish;
} // }
//
public void setFinish(boolean isFinish) { // public void setFinish(boolean isFinish) {
this.isFinish = isFinish; // this.isFinish = isFinish;
} // }
} //}
...@@ -61,16 +61,14 @@ public class GConstants { ...@@ -61,16 +61,14 @@ public class GConstants {
// 加载基本配置文件 // 加载基本配置文件
try { try {
File config = new File("ejweb.properties"); // File config = new File("ejweb.properties");
if (config.exists() && config.canRead()) { // if (config.exists() && config.canRead()) {
P.load(new BufferedInputStream(new FileInputStream(config))); // P.load(new BufferedInputStream(new FileInputStream(config)));
} else { // } else {
P.load(Thread.currentThread().getContextClassLoader() // P.load(Thread.currentThread().getContextClassLoader()
.getResourceAsStream("ejweb.properties")); // .getResourceAsStream("ejweb.properties"));
} // }
} catch (FileNotFoundException e) { } catch (Exception e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
...@@ -81,12 +79,13 @@ public class GConstants { ...@@ -81,12 +79,13 @@ public class GConstants {
* @return * @return
*/ */
public static String getValue(String key) { public static String getValue(String key) {
if(key == null) // if(key == null)
return null; // return null;
if (P.containsKey(key)) { // if (P.containsKey(key)) {
return P.getProperty(key); // return P.getProperty(key);
} // }
return System.getProperty(key); // return System.getProperty(key);
return "";
} }
public static String getValue(String key, String want) { public static String getValue(String key, String want) {
String val = getValue(key); String val = getValue(key);
......
...@@ -41,13 +41,14 @@ public class EstFlightDynamicsMain { ...@@ -41,13 +41,14 @@ public class EstFlightDynamicsMain {
// args = new String[]{"2016-12-24", "2016-12-23 22:30:02", "W:\\WorkSpace\\JAVASpace\\foc-task-1.0\\target\\dynamics.2016122400\\2016122400\\dynamics.20161224000237.json"}; // args = new String[]{"2016-12-24", "2016-12-23 22:30:02", "W:\\WorkSpace\\JAVASpace\\foc-task-1.0\\target\\dynamics.2016122400\\2016122400\\dynamics.20161224000237.json"};
String flightDate = args[0];//"2016-12-23 22:30:02"; // String flightDate = args[0];//"2016-12-23 22:30:02";
String modified = args[1];//"2016-12-23 22:30:02"; // String modified = args[1];//"2016-12-23 22:30:02";
String filePath = args[2];//"W:\\WorkSpace\\JAVASpace\\foc-task-1.0\\target\\dynamics.2016122400\\2016122400\\dynamics.20161224000237.json"; // String filePath = args[2];//"W:\\WorkSpace\\JAVASpace\\foc-task-1.0\\target\\dynamics.2016122400\\2016122400\\dynamics.20161224000237.json";
FlightDynamicsService service = new FlightDynamicsService(); FlightDynamicsService service = new FlightDynamicsService();
String text = IOUtils.toString(new FileInputStream(filePath)); // String text = IOUtils.toString(new FileInputStream(filePath));
String text = "";
JSONObject result = JSON.parseObject(text); JSONObject result = JSON.parseObject(text);
JSONObject dataJson = (JSONObject) result.get("data"); JSONObject dataJson = (JSONObject) result.get("data");
JSONArray jsonArray = (JSONArray) dataJson.get("apiResp"); JSONArray jsonArray = (JSONArray) dataJson.get("apiResp");
......
...@@ -35,7 +35,7 @@ import java.util.*; ...@@ -35,7 +35,7 @@ import java.util.*;
*/ */
public class SoundService { public class SoundService {
private static final String PATH_FORMAt = GConstants.getValue("file.path.format", "{yyyy}{mm}{dd}"); // private static final String PATH_FORMAt = GConstants.getValue("file.path.format", "{yyyy}{mm}{dd}");
QueryRunner run = null; QueryRunner run = null;
public SoundService() { public SoundService() {
...@@ -727,23 +727,24 @@ public class SoundService { ...@@ -727,23 +727,24 @@ public class SoundService {
return "PHONE";// 座机 return "PHONE";// 座机
} }
private String targetPath(String downloadUrl){ private String targetPath(String downloadUrl){
File downloadFile = new File(downloadUrl); // File downloadFile = new File(downloadUrl);
String path=null; // String path=null;
// 根据MD5生成主键 // // 根据MD5生成主键
String md5 = DigestUtils.md5Hex(downloadUrl)+".mp3"; // String md5 = DigestUtils.md5Hex(downloadUrl)+".mp3";
String baseDatePath = PathFormatUtils.parse(PATH_FORMAt); // String baseDatePath = PathFormatUtils.parse(PATH_FORMAt);
String childPath=baseDatePath+GConstants.FS+"MP3"+GConstants.FS; // String childPath=baseDatePath+GConstants.FS+"MP3"+GConstants.FS;
File baseUploadDir = new File(GConstants.FILE_UPLOAD_DIR, childPath); // File baseUploadDir = new File(GConstants.FILE_UPLOAD_DIR, childPath);
if(!baseUploadDir.exists()){// 如果文件夹不存在则创建 // if(!baseUploadDir.exists()){// 如果文件夹不存在则创建
baseUploadDir.mkdirs(); // baseUploadDir.mkdirs();
} // }
path = baseUploadDir.getPath()+md5; // path = baseUploadDir.getPath()+md5;
try { // try {
WavToMp3.execute(downloadFile, path); // WavToMp3.execute(downloadFile, path);
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
return GConstants.FILE_PREFIX_URL+childPath+md5; // return GConstants.FILE_PREFIX_URL+childPath+md5;
return "";
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment