From 3619dc4569304428678d4b33e60af568b5e4007c Mon Sep 17 00:00:00 2001 From: Fabio Esposito Date: Fri, 18 Aug 2017 16:06:57 +0200 Subject: [PATCH] stats --- .../common/event/AnswerSubmitted.java | 14 +++++++++++++- .../com/surveygorilla/read/SurveyReadVerticle.java | 3 ++- .../surveygorilla/write/SurveyWriteVerticle.java | 10 +++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/survey-common/src/main/java/com/surveygorilla/common/event/AnswerSubmitted.java b/survey-common/src/main/java/com/surveygorilla/common/event/AnswerSubmitted.java index 0fe1f00..8b2ce14 100644 --- a/survey-common/src/main/java/com/surveygorilla/common/event/AnswerSubmitted.java +++ b/survey-common/src/main/java/com/surveygorilla/common/event/AnswerSubmitted.java @@ -6,16 +6,20 @@ * Created by fabio.pires on 18.08.17. */ public class AnswerSubmitted { + private Integer pollID; private Map answers; + private Map stats; + public AnswerSubmitted() { } - public AnswerSubmitted(Integer pollID, Map answers) { + public AnswerSubmitted(Integer pollID, Map answers, Map stats) { this.pollID = pollID; this.answers = answers; + this.stats = stats; } public Integer getPollID() { @@ -33,4 +37,12 @@ public Map getAnswers() { public void setAnswers(Map answers) { this.answers = answers; } + + public Map getStats() { + return stats; + } + + public void setStats(Map stats) { + this.stats = stats; + } } diff --git a/survey-read/src/main/java/com/surveygorilla/read/SurveyReadVerticle.java b/survey-read/src/main/java/com/surveygorilla/read/SurveyReadVerticle.java index 75391e4..8a78bc7 100644 --- a/survey-read/src/main/java/com/surveygorilla/read/SurveyReadVerticle.java +++ b/survey-read/src/main/java/com/surveygorilla/read/SurveyReadVerticle.java @@ -73,10 +73,11 @@ private Handler> answerSubmittedEventListener() { AnswerSubmitted.class); Poll p = polls.get(answerSubmitted.getPollID()); - // Todo stats if (p != null) { p.getAnswers().putAll(answerSubmitted.getAnswers()); + p.getStats().putAll(answerSubmitted.getStats()); + polls.put(p.getPollID(), p); } }; diff --git a/survey-write/src/main/java/com/surveygorilla/write/SurveyWriteVerticle.java b/survey-write/src/main/java/com/surveygorilla/write/SurveyWriteVerticle.java index 9df059a..a2f9aa6 100644 --- a/survey-write/src/main/java/com/surveygorilla/write/SurveyWriteVerticle.java +++ b/survey-write/src/main/java/com/surveygorilla/write/SurveyWriteVerticle.java @@ -18,6 +18,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Stream; /** @@ -90,9 +91,16 @@ private Handler> submitAnswer() { p.getAnswers().merge(a, 1, Integer::sum); }); + Double sum = p.getAnswers().values().stream().mapToDouble(s -> s).sum(); + + p.getAnswers().forEach((key, value) -> { + Double percentage = value / sum; + p.getStats().put(key, percentage); + }); + polls.put(p.getPollID(), p); - final AnswerSubmitted answerSubmitted = new AnswerSubmitted(p.getPollID(), p.getAnswers()); + final AnswerSubmitted answerSubmitted = new AnswerSubmitted(p.getPollID(), p.getAnswers(), p.getStats()); vertx.eventBus().send("answerSubmittedEvent", Json.encode(answerSubmitted)); handler.reply(Json.encodePrettily(p));