From f02e8b3a687df65c6edcb8f1a3ebec020cec7afc Mon Sep 17 00:00:00 2001 From: wonjuneee Date: Sun, 22 Feb 2026 16:55:56 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=A4=91=EB=B3=B5=EC=84=A0=ED=83=9D?= =?UTF-8?q?=20=EA=B0=80=EB=8A=A5=20=EB=AC=B8=ED=95=AD=EC=9D=98=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=EC=9D=84=20Set=EC=9C=BC=EB=A1=9C=20=EB=B0=9B=EC=95=84?= =?UTF-8?q?=EC=99=80=20=EB=88=84=EB=9D=BD=EC=97=86=EC=9D=B4=20=EC=B6=94?= =?UTF-8?q?=EC=B6=9C=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../survey/service/export/SurveyExportService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java b/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java index fedda48f..1f56db11 100644 --- a/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java +++ b/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java @@ -56,10 +56,11 @@ public SurveyExportFile exportCsv(Long surveyId, Long requesterMemberId) { log.info("[SurveyExport] fetched. surveyId={}, questions={}, members={}, answers={}", surveyId, headers.size(), members.size(), answers.size()); - Map> answerMap = new HashMap<>(); + Map>> answerMap = new HashMap<>(); for (SurveyAnswerProjection a : answers) { answerMap.computeIfAbsent(a.getMemberId(), k -> new HashMap<>()) - .put(a.getQuestionId(), a.getContent()); + .computeIfAbsent(a.getQuestionId(), k -> new HashSet<>()) + .add(a.getContent()); } StringBuilder sb = new StringBuilder(); @@ -89,9 +90,9 @@ public SurveyExportFile exportCsv(Long surveyId, Long requesterMemberId) { row.add(nvl(m.getResidence())); - Map memberAnswers = answerMap.getOrDefault(m.getMemberId(), Map.of()); + Map> memberAnswers = answerMap.getOrDefault(m.getMemberId(), Map.of()); for (SurveyQuestionHeader h : headers) { - row.add(nvl(memberAnswers.get(h.getQuestionId()))); + row.add(nvl(memberAnswers.get(h.getQuestionId()).toString())); } sb.append(String.join(",", escapeCsv(row))).append("\n"); From e4267b2e1ef0fb10c849c5d6b82415305d9d9012 Mon Sep 17 00:00:00 2001 From: wonjuneee Date: Sun, 22 Feb 2026 20:18:40 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20TreeSet=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=20=EB=82=B4=EC=9A=A9=EC=9D=B4=20=EC=A0=95?= =?UTF-8?q?=EB=A0=AC=EB=90=98=EB=8F=84=EB=A1=9D=20=ED=95=98=EA=B3=A0,=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=ED=95=98=EC=A7=80=20=EC=95=8A=EC=9D=80=20?= =?UTF-8?q?=EB=AC=B8=ED=95=AD=EC=97=90=20=EB=8C=80=ED=95=9C=20NPE=20?= =?UTF-8?q?=EB=B0=A9=EC=96=B4=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/survey/service/export/SurveyExportService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java b/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java index 1f56db11..5ed4d0db 100644 --- a/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java +++ b/src/main/java/OneQ/OnSurvey/domain/survey/service/export/SurveyExportService.java @@ -59,7 +59,7 @@ public SurveyExportFile exportCsv(Long surveyId, Long requesterMemberId) { Map>> answerMap = new HashMap<>(); for (SurveyAnswerProjection a : answers) { answerMap.computeIfAbsent(a.getMemberId(), k -> new HashMap<>()) - .computeIfAbsent(a.getQuestionId(), k -> new HashSet<>()) + .computeIfAbsent(a.getQuestionId(), k -> new TreeSet<>()) .add(a.getContent()); } @@ -92,7 +92,7 @@ public SurveyExportFile exportCsv(Long surveyId, Long requesterMemberId) { Map> memberAnswers = answerMap.getOrDefault(m.getMemberId(), Map.of()); for (SurveyQuestionHeader h : headers) { - row.add(nvl(memberAnswers.get(h.getQuestionId()).toString())); + row.add(nvl(String.join(",", memberAnswers.getOrDefault(h.getQuestionId(), Set.of())))); } sb.append(String.join(",", escapeCsv(row))).append("\n");