diff --git a/cider-api/src/main/java/com/cmc/domains/challenge/controller/ChallengeController.java b/cider-api/src/main/java/com/cmc/domains/challenge/controller/ChallengeController.java index 1f00488..838915c 100644 --- a/cider-api/src/main/java/com/cmc/domains/challenge/controller/ChallengeController.java +++ b/cider-api/src/main/java/com/cmc/domains/challenge/controller/ChallengeController.java @@ -371,7 +371,7 @@ private String getImageUrlByType(String type, Challenge challenge) { @Tag(name = "home", description = "홈(둘러보기) API") @Operation(summary = "전체 챌린지 리스트 조회 api", description = "- {filter} - latest: 최신순, participate: 참여순, like: 좋아요순") - @GetMapping("/{filter}") + @GetMapping("/list/{filter}") public ResponseEntity> getChallengeList(HttpServletRequest httpServletRequest, @PathVariable("filter") String filter) { diff --git a/cider-api/src/main/java/com/cmc/domains/challenge/service/ChallengeService.java b/cider-api/src/main/java/com/cmc/domains/challenge/service/ChallengeService.java index 15a34f3..0a13cea 100644 --- a/cider-api/src/main/java/com/cmc/domains/challenge/service/ChallengeService.java +++ b/cider-api/src/main/java/com/cmc/domains/challenge/service/ChallengeService.java @@ -14,16 +14,20 @@ import com.cmc.member.Member; import com.cmc.participate.Participate; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @Service @Transactional @RequiredArgsConstructor +@Slf4j public class ChallengeService { private final ChallengeRepository challengeRepository; @@ -129,6 +133,7 @@ public List getChallengeList(String filter) { break; case "participate": challengeResponseVos = challengeRepository.getChallengeByParticipate(); + List sortedList = sortChallengeResponseList(challengeResponseVos); // 정렬 break; case "like": challengeResponseVos = challengeRepository.getChallengeByLike(); @@ -137,6 +142,16 @@ public List getChallengeList(String filter) { return challengeResponseVos; } + private static List sortChallengeResponseList(List list) { + Collections.sort(list, new Comparator() { + @Override + public int compare(ChallengeResponseVo cr1, ChallengeResponseVo cr2) { + return cr2.getParticipateNum().compareTo(cr1.getParticipateNum()); + } + }); + return list; + } + // 내 챌린지 - 진행중인 챌린지 public List getMyOngoingChallenge(Long memberId) {