From df03ff8d8d6c5fd60b1091ffb72839e94decf09c Mon Sep 17 00:00:00 2001 From: ragdoll Date: Thu, 18 Jun 2020 23:14:13 +0900 Subject: [PATCH] =?UTF-8?q?[BE/#54]=20Feat=20:=20=EB=A7=88=EC=9D=BC?= =?UTF-8?q?=EC=8A=A4=ED=86=A4=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - milestoneService.findAllMilestonesWithDetails() --- .../service/MilestoneService_Ragdoll.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/BE/src/main/java/com/codesquad/issuetracker/ragdoll/service/MilestoneService_Ragdoll.java b/BE/src/main/java/com/codesquad/issuetracker/ragdoll/service/MilestoneService_Ragdoll.java index 3780d48..784df04 100644 --- a/BE/src/main/java/com/codesquad/issuetracker/ragdoll/service/MilestoneService_Ragdoll.java +++ b/BE/src/main/java/com/codesquad/issuetracker/ragdoll/service/MilestoneService_Ragdoll.java @@ -3,6 +3,8 @@ import com.codesquad.issuetracker.ragdoll.dao.MilestoneDao_Ragdoll; import com.codesquad.issuetracker.ragdoll.domain.Issue; import com.codesquad.issuetracker.ragdoll.domain.Milestone; +import com.codesquad.issuetracker.ragdoll.dto.ListOfMilestonesDto; +import com.codesquad.issuetracker.ragdoll.vo.milestoneVO.MilestoneDetails; import com.codesquad.issuetracker.ragdoll.vo.milestoneVO.MilestoneInformation; import com.codesquad.issuetracker.ragdoll.vo.milestoneVO.MilestoneSummary; import org.springframework.stereotype.Service; @@ -31,4 +33,24 @@ public MilestoneInformation findAllMilestones() { .collect(Collectors.toSet()); return MilestoneInformation.create(milestoneSummaries.size(), milestoneSummaries); } + + public ListOfMilestonesDto findAllMilestonesWithDetails() { + List milestones = milestoneDao.findAllMilestones(); + List milestoneDetails = milestones.stream().map(milestone -> { + int countOfOpenedIssue = milestoneDao.findCountOfOpenedIssueById(milestone.getId(), true); + int countOfClosedIssue = milestoneDao.findCountOfOpenedIssueById(milestone.getId(), false); + int countOfAllIssue = (countOfOpenedIssue + countOfClosedIssue == 0) ? 1 : countOfOpenedIssue + countOfClosedIssue; + double progress = ((double) countOfClosedIssue / countOfAllIssue) * 100; + return new MilestoneDetails.Builder() + .milestoneId(milestone.getId()) + .milestoneTitle(milestone.getTitle()) + .description(milestone.getDescription()) + .dueDate(milestone.getDueDate()) + .progress(progress) + .countOfOpenedIssue(countOfOpenedIssue) + .countOfClosedIssue(countOfClosedIssue) + .build(); + }).collect(Collectors.toList()); + return new ListOfMilestonesDto.Builder().milestones(milestoneDetails).build(); + } }