Skip to content

Commit 36a7244

Browse files
committed
refactor : /api/users/daily-solved 앤드포인트에 문제 번호 리스트 포함
1 parent 3d4b88c commit 36a7244

File tree

10 files changed

+26
-9
lines changed

10 files changed

+26
-9
lines changed

.DS_Store

0 Bytes
Binary file not shown.

src/.DS_Store

0 Bytes
Binary file not shown.

src/main/.DS_Store

0 Bytes
Binary file not shown.

src/main/java/.DS_Store

0 Bytes
Binary file not shown.

src/main/java/org/.DS_Store

0 Bytes
Binary file not shown.

src/main/java/org/ezcode/codetest/application/usermanagement/user/service/UserService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ezcode.codetest.application.usermanagement.user.service;
22

3+
import java.time.LocalDate;
34
import java.time.LocalDateTime;
45
import java.time.temporal.ChronoUnit;
56
import java.util.List;
Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
package org.ezcode.codetest.domain.submission.dto;
22

33
import java.time.LocalDate;
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
import java.util.Set;
47

58
public record DailyCorrectCount(
69
LocalDate date,
7-
int count
10+
int count,
11+
List<Long> problemIds
812
) {
9-
public DailyCorrectCount(java.sql.Date date, int count) {
10-
this(date.toLocalDate(), count);
13+
14+
public DailyCorrectCount(java.sql.Date date, Set<Long> problemIds) {
15+
this(
16+
date.toLocalDate(),
17+
problemIds.size(),
18+
new ArrayList<>(problemIds)
19+
);
1120
}
1221
}

src/main/java/org/ezcode/codetest/domain/submission/service/SubmissionDomainService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ezcode.codetest.domain.submission.service;
22

3+
import java.time.LocalDate;
34
import java.time.LocalDateTime;
45
import java.util.List;
56
import java.util.Optional;
@@ -120,4 +121,5 @@ private void modifyUserProblemResult(UserProblemResult userProblemResult, boolea
120121
public int findSubmissionCountByUserId(Long userId) {
121122
return submissionRepository.findSubmissionCountByUserId(userId);
122123
}
124+
123125
}

src/main/java/org/ezcode/codetest/infrastructure/persistence/repository/submission/query/UserProblemResultQueryRepositoryImpl.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.ezcode.codetest.domain.submission.model.entity.QUserProblemResult;
88
import org.springframework.stereotype.Repository;
99

10+
import com.querydsl.core.group.GroupBy;
1011
import com.querydsl.core.types.Projections;
1112
import com.querydsl.core.types.dsl.Expressions;
1213
import com.querydsl.jpa.impl.JPAQueryFactory;
@@ -27,17 +28,20 @@ public List<DailyCorrectCount> countCorrectByUserGroupedByDate(Long userId) {
2728
var date = Expressions.dateTemplate(java.sql.Date.class, "DATE({0})", upr.modifiedAt);
2829

2930
return queryFactory
30-
.select(Projections.constructor(DailyCorrectCount.class,
31-
date,
32-
upr.count().intValue()
33-
))
3431
.from(upr)
3532
.where(
3633
upr.user.id.eq(userId),
3734
upr.isCorrect.eq(true)
3835
)
39-
.groupBy(date)
4036
.orderBy(date.asc())
41-
.fetch();
37+
.transform(
38+
GroupBy.groupBy(date).list(
39+
Projections.constructor(
40+
DailyCorrectCount.class,
41+
date,
42+
GroupBy.set(upr.problem.id)
43+
)
44+
)
45+
);
4246
}
4347
}

src/main/java/org/ezcode/codetest/presentation/usermanagement/UserController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public ResponseEntity<UserReviewTokenResponse> getReviewToken(
9191
return ResponseEntity.status(HttpStatus.OK).body(userService.getReviewToken(authUser));
9292
}
9393

94+
@Operation(summary = "회원의 푼 문제 수 조회", description = "날짜, 날짜마다 푼 문제 번호 리스트, 푼 문제 개수")
9495
@GetMapping("/users/daily-solved")
9596
public ResponseEntity<UserDailySolvedHistoryResponse> getUserDailySolvedHistory(
9697
@AuthenticationPrincipal AuthUser authUser

0 commit comments

Comments
 (0)