From 526c36376d33f05ada80ccdeb2745f3477a8315f Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 27 Oct 2020 18:37:42 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-42126=20&&=20REPORT-41929=20&&=20REPORT-?= =?UTF-8?q?41272=E3=80=90=E9=A2=84=E5=AE=9A=E4=B9=89=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E3=80=91=E8=80=81jar=E4=B8=8B=E5=81=9A=E7=9A=84cpt=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=EF=BC=8C=E8=AE=BE=E7=BD=AE=E4=BA=86=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=A0=BC=E7=9A=84=E6=A0=B7=E5=BC=8F=EF=BC=8C=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=E6=9C=80=E6=96=B0=EF=BC=8C=E5=8F=91=E7=8E=B0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=A0=BC=E9=A2=84=E5=AE=9A=E4=B9=89=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/JTemplate.java | 5 ++-- .../info/PredefinedStyleInfoCollector.java | 30 ++++++++++++++++--- .../PredefinedStyleInfoCollectorTest.java | 2 +- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index fb5a0f715..9810842dc 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -160,7 +160,7 @@ public abstract class JTemplate> private void setPredefinedInfo(boolean isNewFile){ if (this.template.getAttrMark(PredefinedStyleAttrMark.XML_TAG) == null) { - PredefinedStyleAttrMark attrMark = new PredefinedStyleAttrMark(); + PredefinedStyleAttrMark attrMark = PredefinedStyleAttrMark.createDefaultStyleMark(); if (!isNewFile || !DesignUtils.checkDesignerRemoteVersion()) { attrMark.setPreferenceStyleName(InterProviderFactory.getProvider().getLocText("Fine-Engine_Predefined_Style_Compatibility")); } @@ -821,6 +821,7 @@ public abstract class JTemplate> if (editingFILE == null || editingFILE instanceof MemFILE) { return false; } + PredefinedStyleInfoCollector.getInstance().collectUseNumber(this.getTemplatePredefinedStyle()); try { this.getTarget().setPredefinedStyleName(this.getTemplatePredefinedStyle(), false); this.getTarget().export(editingFILE.asOutputStream()); @@ -1370,7 +1371,7 @@ public abstract class JTemplate> public String getTemplatePredefinedStyle(){ PredefinedStyleAttrMark attrMark = this.getTarget().getAttrMark(PredefinedStyleAttrMark.XML_TAG); if (attrMark == null){ - attrMark = new PredefinedStyleAttrMark(); + attrMark = PredefinedStyleAttrMark.createDefaultStyleMark(); } return attrMark.getPreferenceStyleName(); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollector.java b/designer-base/src/main/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollector.java index 6e6150c23..9dfe2e9db 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollector.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollector.java @@ -2,9 +2,11 @@ package com.fr.design.mainframe.predefined.info; import com.fr.config.MarketConfig; import com.fr.design.DesignerEnvManager; +import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.burying.point.AbstractPointCollector; import com.fr.design.mainframe.template.info.SendHelper; import com.fr.general.CloudCenter; +import com.fr.general.ComparatorUtils; import com.fr.general.GeneralUtils; import com.fr.json.JSONObject; import com.fr.stable.xml.XMLPrintWriter; @@ -15,6 +17,9 @@ import com.fr.third.joda.time.DateTime; * Created by kerry on 2020-09-04 */ public class PredefinedStyleInfoCollector extends AbstractPointCollector { + //每三天上传一次 + private static final long DELTA = 3 * 24 * 3600 * 1000L; + private static final String SIMPLE_DATE_PATTERN = "yyyy-MM-dd"; private static final String XML_TAG = "PredefinedStyleInfo"; private static final String XML_FILE_NAME = "predefinedStyle.info"; @@ -31,6 +36,12 @@ public class PredefinedStyleInfoCollector extends AbstractPointCollector { private static final String ATTR_CLICK_NUMBER = "clickNumber"; private static final String ATTR_USE_NUMBER = "useNumber"; private static final String ATTR_TIME = "time"; + private static final String XML_LAST_TIME = "lastSendTime"; + + /** + * 上一次的发送时间 + */ + private long lastSendTime; private int clickNumber = 0; @@ -61,8 +72,11 @@ public class PredefinedStyleInfoCollector extends AbstractPointCollector { saveInfo(); } - public void collectUseNumber() { - useNumber++; + public void collectUseNumber(String predefinedName) { + if (!ComparatorUtils.equals(Toolkit.i18nText("Fine-Engine_Predefined_Style_Compatibility"), predefinedName) && + !ComparatorUtils.equals(Toolkit.i18nText("Fine-Engine_Report_DEFAULT"), predefinedName)) { + useNumber++; + } saveInfo(); } @@ -78,9 +92,15 @@ public class PredefinedStyleInfoCollector extends AbstractPointCollector { @Override public void sendPointInfo() { + if (System.currentTimeMillis() - lastSendTime < DELTA) { + return; + } String content = generateTotalInfo(); - SendHelper.sendSinglePointInfo(CLOUD_URL, content); + this.lastSendTime = System.currentTimeMillis(); + this.clickNumber = 0; + this.useNumber = 0; + saveInfo(); } public String generateTotalInfo() { @@ -105,6 +125,7 @@ public class PredefinedStyleInfoCollector extends AbstractPointCollector { if (XML_TAG.equals(name)) { this.clickNumber = reader.getAttrAsInt(ATTR_CLICK_NUMBER, 0); this.useNumber = reader.getAttrAsInt(ATTR_USE_NUMBER, 0); + this.lastSendTime = reader.getAttrAsLong(XML_LAST_TIME, System.currentTimeMillis()); } } } @@ -112,7 +133,8 @@ public class PredefinedStyleInfoCollector extends AbstractPointCollector { @Override public void writeXML(XMLPrintWriter writer) { writer.startTAG(XML_TAG); - writer.attr(ATTR_CLICK_NUMBER, this.clickNumber).attr(ATTR_USE_NUMBER, this.useNumber); + writer.attr(ATTR_CLICK_NUMBER, this.clickNumber).attr(ATTR_USE_NUMBER, this.useNumber) + .attr(XML_LAST_TIME, this.lastSendTime); writer.end(); } } diff --git a/designer-base/src/test/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollectorTest.java b/designer-base/src/test/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollectorTest.java index 34bff8934..c3c3242bd 100644 --- a/designer-base/src/test/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollectorTest.java +++ b/designer-base/src/test/java/com/fr/design/mainframe/predefined/info/PredefinedStyleInfoCollectorTest.java @@ -59,7 +59,7 @@ public class PredefinedStyleInfoCollectorTest { @Test public void testCollectUseNumber() { - PredefinedStyleInfoCollector.getInstance().collectUseNumber(); + PredefinedStyleInfoCollector.getInstance().collectUseNumber("test"); Assert.assertEquals(1, PredefinedStyleInfoCollector.getInstance().getUseNumber()); }