diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java index c23a3b999b..2555a26329 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java @@ -9,9 +9,9 @@ import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.stable.CommonUtils; import com.fr.stable.EncodeConstants; -import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; +import com.fr.third.jodd.datetime.JDateTime; import com.fr.third.org.apache.http.HttpEntity; import com.fr.third.org.apache.http.HttpResponse; import com.fr.third.org.apache.http.client.HttpClient; @@ -27,6 +27,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; +import java.util.UUID; import static com.fr.third.org.apache.http.HttpStatus.SC_OK; @@ -41,41 +42,16 @@ public class FileEntityBuilder { private static final String ATTR_SIGNATURE = "signature"; private static final String ATTR_KEY = "key"; private static final String FOCUS_POINT_FILE_ROOT_PATH = "FocusPoint"; - /** - * 文件名 - */ - private String fileName; - /** - * 文件的完整路径 - */ - private String pathName; + /** * 文件夹路径 */ private String folderName; - public FileEntityBuilder(String fileName, String pathName, String folderName) { - this.fileName = fileName; - this.pathName = pathName; + public FileEntityBuilder(String folderName) { this.folderName = folderName; } - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public String getPathName() { - return pathName; - } - - public void setPathName(String pathName) { - this.pathName = pathName; - } - public String getFolderName() { return folderName; } @@ -97,14 +73,19 @@ public class FileEntityBuilder { return zipFile; } - public void generateFile(JSONArray jsonArray, String pathName) { + public void generateFile(JSONArray jsonArray, String folderName) { + if (jsonArray.size() == 0) { + return; + } try { String content = jsonArray.toString(); - File file = new File(pathName + ".json"); + String fileName = String.valueOf(UUID.randomUUID()); + File file = new File(folderName + File.separator + fileName + ".json"); StableUtils.makesureFileExist(file); FileOutputStream out = new FileOutputStream(file); InputStream in = new ByteArrayInputStream(content.getBytes(EncodeConstants.ENCODING_UTF_8)); IOUtils.copyBinaryTo(in, out); + in.close(); out.close(); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); @@ -112,7 +93,7 @@ public class FileEntityBuilder { } public void deleteFileAndZipFile(File zipFile, String pathName) { - File file = new File(StableUtils.pathJoin(ProductConstants.getEnvHome(), pathName)); + File file = new File(pathName); CommonUtils.deleteFile(file); CommonUtils.deleteFile(zipFile); } @@ -124,9 +105,10 @@ public class FileEntityBuilder { * @throws IOException */ public static void uploadFile(File file, String keyFileName) throws IOException { + String today = new JDateTime().toString("YYYY-MM-DD"); HttpClient httpclient = new DefaultHttpClient(); try { - String signedUrl = generateSignedUploadUrl(FOCUS_POINT_FILE_ROOT_PATH + File.separator +keyFileName); + String signedUrl = generateSignedUploadUrl(FOCUS_POINT_FILE_ROOT_PATH + File.separator + today + File.separator +keyFileName); if(StringUtils.isEmpty(signedUrl)){ FineLoggerFactory.getLogger().error("signedUrl is null."); return; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/AbstractSendDataToCloud.java b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/AbstractSendDataToCloud.java index b6d18235ea..4321d28187 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/AbstractSendDataToCloud.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/AbstractSendDataToCloud.java @@ -102,7 +102,7 @@ public abstract class AbstractSendDataToCloud implements XMLable { try { JSONArray jsonArray = dealWithSendFunctionContent(points); //生成json文件 - fileEntityBuilder.generateFile(jsonArray, getFileEntityBuilder().getPathName()); + fileEntityBuilder.generateFile(jsonArray, getFileEntityBuilder().getFolderName()); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/FocusPointMessageUploader.java b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/FocusPointMessageUploader.java index 668e7fa413..33adf8e2de 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/FocusPointMessageUploader.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/impl/FocusPointMessageUploader.java @@ -26,6 +26,7 @@ public class FocusPointMessageUploader extends AbstractSendDataToCloud { private static final String TAG = "FocusPointMessageTag"; private static final String SEPARATOR = "_"; private static final String FOCUS_POINT = "FocusPoint"; + private static final long DELTA = 24 * 3600 * 1000L; private static volatile FocusPointMessageUploader instance; public static FocusPointMessageUploader getInstance() { @@ -46,13 +47,13 @@ public class FocusPointMessageUploader extends AbstractSendDataToCloud { FocusPoint focusPoint = (FocusPoint)t; JSONObject jo = new JSONObject(); jo.put("id",focusPoint.getId()); - jo.put("text",focusPoint.getId()); - jo.put("source",focusPoint.getId()); - jo.put("time",focusPoint.getId()); - jo.put("username",focusPoint.getId()); - jo.put("ip",focusPoint.getId()); - jo.put("title",focusPoint.getId()); - jo.put("body",focusPoint.getId()); + jo.put("text",focusPoint.getText()); + jo.put("source",focusPoint.getSource()); + jo.put("time",focusPoint.getTime()); + jo.put("username",focusPoint.getUsername()); + jo.put("ip",focusPoint.getIp()); + jo.put("title",focusPoint.getTitle()); + jo.put("body",focusPoint.getBody()); ja.put(jo); } return ja; @@ -61,10 +62,13 @@ public class FocusPointMessageUploader extends AbstractSendDataToCloud { public void sendToCloudCenter() { MessageCollectUtils.readXMLFile(instance, getLastTimeFile()); long currentTime = new Date().getTime(); - long lastTIme = MessageCollectUtils.getLastTimeMillis(lastTime); + long lastTime = MessageCollectUtils.getLastTimeMillis(this.lastTime); + if (currentTime - lastTime <= DELTA) { + return; + } try { generatePath(); - queryData(currentTime, lastTIme, FocusPoint.class); + queryData(currentTime, lastTime, FocusPoint.class); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage()); } @@ -97,9 +101,7 @@ public class FocusPointMessageUploader extends AbstractSendDataToCloud { append(ProductConstants.MINOR_VERSION).append(SEPARATOR). append(uuid).append(SEPARATOR).append(bbsUserName).append(SEPARATOR). append(UUID.randomUUID()); - String fileName = String.valueOf(UUID.randomUUID()); - String pathName = StableUtils.pathJoin(ProductConstants.getEnvHome(), sb.toString(), fileName); String folderName = StableUtils.pathJoin(ProductConstants.getEnvHome(), sb.toString()); - setFileEntityBuilder(new FileEntityBuilder(fileName, pathName, folderName)); + setFileEntityBuilder(new FileEntityBuilder(folderName)); } }