From f7c9083c3779515750073f45e361afff16f95bef Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 26 Apr 2019 17:34:16 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-15314=20103=E6=A8=A1=E6=9D=BF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=94=B6=E9=9B=86=3D>=E4=BF=AE=E5=A4=8D=E6=8A=A5?= =?UTF-8?q?=E9=94=99&=E4=BF=AE=E6=AD=A3=E5=88=A4=E5=AE=9A=E5=88=B6?= =?UTF-8?q?=E4=BD=9C=E5=AE=8C=E6=88=90=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/template/info/DesignerOpenHistory.java | 12 ++++++++++++ .../design/mainframe/template/info/TemplateInfo.java | 2 +- .../template/info/TemplateInfoCollector.java | 11 +++++++++-- .../template/info/DesignerOpenHistoryTest.java | 12 ++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/template/info/DesignerOpenHistory.java b/designer-base/src/main/java/com/fr/design/mainframe/template/info/DesignerOpenHistory.java index 096b6d16a..560431f1b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/template/info/DesignerOpenHistory.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/template/info/DesignerOpenHistory.java @@ -48,6 +48,18 @@ class DesignerOpenHistory implements XMLReadable, XMLWriter { history[0] = today; } + /** + * 设计器在 dayCount 时间内启动超过 X 次(目前定的 X = 3) + */ + boolean isOpenEnoughTimesInPeriod(int dayCount) { + boolean enoughTimes = StringUtils.isNotEmpty(history[LENGTH - 1]); + if (!enoughTimes) { + return false; + } + return getHistorySpanDayCount() < dayCount; + } + + /** * 获取历史记录中囊括的日子数。即最早的历史记录 history[LENGTH - 1],到最晚的记录 history[0] 之间的时间跨度 */ diff --git a/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfo.java b/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfo.java index ffd9aaf3b..900210bd0 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfo.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfo.java @@ -211,7 +211,7 @@ class TemplateInfo implements XMLReadable, XMLWriter { // 条件 2. 设计器在这段未编辑的时间内启动超过 X 次(目前定的 X = 3)。即"设计器最近 X 次启动的时间跨度" < "未编辑时间"; return idleDayCount > COMPLETE_DAY_COUNT - && DesignerOpenHistory.getInstance().getHistorySpanDayCount() < idleDayCount; + && DesignerOpenHistory.getInstance().isOpenEnoughTimesInPeriod(idleDayCount); } String getConsumingMapJsonString() { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java b/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java index e7fc95594..0996c260c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/template/info/TemplateInfoCollector.java @@ -20,6 +20,7 @@ import java.io.FileOutputStream; import java.io.FileReader; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -101,16 +102,22 @@ public class TemplateInfoCollector implements XMLReadable, XMLWriter { removeTestTemplates(); + List removeLaterList = new ArrayList<>(); + for (String key : templateInfoMap.keySet()) { TemplateInfo templateInfo = templateInfoMap.get(key); if (templateInfo.isReadyForSend()) { if (SendHelper.sendTemplateInfo(templateInfo)) { - // 清空记录 - removeFromTemplateInfoList(templateInfo.getTemplateID()); + removeLaterList.add(key); } } } + // 清空记录 + for (String key : removeLaterList) { + removeFromTemplateInfoList(key); + } + saveInfo(); } diff --git a/designer-base/src/test/java/com/fr/design/mainframe/template/info/DesignerOpenHistoryTest.java b/designer-base/src/test/java/com/fr/design/mainframe/template/info/DesignerOpenHistoryTest.java index e3f63ddc3..3e95cfec7 100644 --- a/designer-base/src/test/java/com/fr/design/mainframe/template/info/DesignerOpenHistoryTest.java +++ b/designer-base/src/test/java/com/fr/design/mainframe/template/info/DesignerOpenHistoryTest.java @@ -87,6 +87,18 @@ public class DesignerOpenHistoryTest { } } + @Test + public void testOpenEnoughTimesInPeriod() { + assertTrue(openHistory.isOpenEnoughTimesInPeriod(15)); + assertFalse(openHistory.isOpenEnoughTimesInPeriod(3)); + + Reflect.on(openHistory).set("history", new String[] {"2019-05-03", "2019-05-02", ""}); + assertFalse(openHistory.isOpenEnoughTimesInPeriod(15)); + + Reflect.on(openHistory).set("history", new String[] {"2019-05-03", "", ""}); + assertFalse(openHistory.isOpenEnoughTimesInPeriod(15)); + } + @Test public void testHasOpenedToday() { assertFalse(openHistory.hasOpenedToday());