Skip to content

Commit

Permalink
[BE/#54] Feat : 마일스톤 리스트 반환 서비스 로직 구현
Browse files Browse the repository at this point in the history
- milestoneService.findAllMilestonesWithDetails()
  • Loading branch information
MuseopKim committed Jun 18, 2020
1 parent 089939a commit df03ff8
Showing 1 changed file with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -31,4 +33,24 @@ public MilestoneInformation findAllMilestones() {
.collect(Collectors.toSet());
return MilestoneInformation.create(milestoneSummaries.size(), milestoneSummaries);
}

public ListOfMilestonesDto findAllMilestonesWithDetails() {
List<Milestone> milestones = milestoneDao.findAllMilestones();
List<MilestoneDetails> 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();
}
}

0 comments on commit df03ff8

Please sign in to comment.