Skip to content

Commit

Permalink
[Refactor]: 유저챌린지 모델 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
bayy1216 committed Aug 12, 2024
1 parent c227c33 commit 6bb35b1
Show file tree
Hide file tree
Showing 12 changed files with 151 additions and 145 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@
import org.haedal.zzansuni.core.api.ApiResponse;
import org.haedal.zzansuni.domain.ImageUploader;
import org.haedal.zzansuni.domain.challengegroup.ChallengeCommand;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel.ChallengeComplete;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel.ChallengeCurrent;
import org.haedal.zzansuni.domain.userchallenge.application.ChallengeRecordService;
import org.haedal.zzansuni.domain.userchallenge.application.UserChallengeModel;
import org.haedal.zzansuni.domain.userchallenge.application.UserChallengeService;
import org.haedal.zzansuni.global.jwt.JwtUser;
import org.springframework.data.domain.Page;
Expand Down Expand Up @@ -95,7 +94,7 @@ public ApiResponse<PagingResponse<ChallengeRes.ChallengeCurrentResponse>> getCha
@Valid PagingRequest pagingRequest,
@AuthenticationPrincipal JwtUser jwtUser
) {
Page<ChallengeCurrent> page = userChallengeService.getCurrentChallenges(
Page<UserChallengeModel.Current> page = userChallengeService.getCurrentChallenges(
jwtUser.getId(), pagingRequest.toPageable());

PagingResponse<ChallengeRes.ChallengeCurrentResponse> response = PagingResponse.from(
Expand All @@ -110,7 +109,7 @@ public ApiResponse<PagingResponse<ChallengeCompleteResponse>> getChallengeComple
@Valid PagingRequest pagingRequest,
@AuthenticationPrincipal JwtUser jwtUser
) {
Page<ChallengeComplete> page = userChallengeService.getCompleteChallenges(
Page<UserChallengeModel.Complete> page = userChallengeService.getCompleteChallenges(
jwtUser.getId(), pagingRequest.toPageable());

PagingResponse<ChallengeCompleteResponse> response = PagingResponse.from(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@

import lombok.Builder;
import org.haedal.zzansuni.domain.challengegroup.ChallengeCategory;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel;
import org.haedal.zzansuni.domain.userchallenge.application.ChallengeVerificationModel;
import org.haedal.zzansuni.domain.userchallenge.application.UserChallengeModel;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel.ChallengeComplete;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel.ChallengeCurrent;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel.ChallengeRecord;
import org.haedal.zzansuni.domain.userchallenge.application.ChallengeVerificationModel;

public class ChallengeRes {

Expand Down Expand Up @@ -41,7 +39,7 @@ public record ChallengeRecordResponse(
List<Long> recordIds
) {

public static ChallengeRecordResponse from(ChallengeRecord dto) {
public static ChallengeRecordResponse from(UserChallengeModel.Record dto) {
return ChallengeRecordResponse.builder()
.title(dto.title())
.totalCount(dto.totalCount())
Expand Down Expand Up @@ -90,17 +88,17 @@ public record ChallengeCurrentResponse(

) {

public static ChallengeCurrentResponse from(ChallengeCurrent challengeCurrent) {
public static ChallengeCurrentResponse from(UserChallengeModel.Current current) {
return ChallengeCurrentResponse.builder()
.challengeId(challengeCurrent.challengeId())
.title(challengeCurrent.title())
.successCount(challengeCurrent.successCount())
.totalCount(challengeCurrent.totalCount())
.participationDate(challengeCurrent.participationDate())
.startDate(challengeCurrent.startDate())
.endDate(challengeCurrent.endDate())
.category(challengeCurrent.category())
.reviewWritten(challengeCurrent.reviewWritten())
.challengeId(current.challengeId())
.title(current.title())
.successCount(current.successCount())
.totalCount(current.totalCount())
.participationDate(current.participationDate())
.startDate(current.startDate())
.endDate(current.endDate())
.category(current.category())
.reviewWritten(current.reviewWritten())
.build();
}
}
Expand All @@ -114,13 +112,13 @@ public record ChallengeCompleteResponse(
Boolean reviewWritten
) {

public static ChallengeCompleteResponse from(ChallengeComplete challengeComplete) {
public static ChallengeCompleteResponse from(UserChallengeModel.Complete complete) {
return ChallengeCompleteResponse.builder()
.id(challengeComplete.challengeId())
.title(challengeComplete.title())
.successDate(challengeComplete.successDate())
.category(challengeComplete.category())
.reviewWritten(challengeComplete.reviewWritten())
.id(complete.challengeId())
.title(complete.title())
.successDate(complete.successDate())
.category(complete.category())
.reviewWritten(complete.reviewWritten())
.build();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeGroupModel;
import org.haedal.zzansuni.domain.challengegroup.DayType;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel;
import org.haedal.zzansuni.domain.userchallenge.application.ChallengeGroupRankingModel;
import org.springframework.data.domain.Page;

import java.time.LocalDate;
Expand Down Expand Up @@ -137,8 +138,8 @@ public record RankingPagingResponse(
ChallengeGroupRes.Ranking myRanking //null이면 랭킹이 없는 것
) {
public static RankingPagingResponse from(
Page<ChallengeGroupModel.Ranking> rankingPage,
ChallengeGroupModel.Ranking myRanking
Page<ChallengeGroupRankingModel.Main> rankingPage,
ChallengeGroupRankingModel.Main myRanking
){
var data = rankingPage.getContent().stream()
.map(ChallengeGroupRes.Ranking::from)
Expand All @@ -161,7 +162,7 @@ public record Ranking(
UserRes.User user
) {
public static Ranking from(
ChallengeGroupModel.Ranking model
ChallengeGroupRankingModel.Main model
){
var user = UserRes.User.from(model.user());
return Ranking.builder()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
package org.haedal.zzansuni.domain.challengegroup.application;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Builder;
import lombok.Getter;
import org.haedal.zzansuni.domain.challengegroup.Challenge;
import org.haedal.zzansuni.domain.challengegroup.ChallengeCategory;
import org.haedal.zzansuni.domain.challengegroup.ChallengeGroup;
import org.haedal.zzansuni.domain.challengegroup.DayType;
import org.haedal.zzansuni.domain.userchallenge.UserChallenge;
import org.haedal.zzansuni.domain.userchallenge.ChallengeVerification;

import java.time.LocalDate;

@Getter
@Builder
Expand Down Expand Up @@ -68,87 +62,6 @@ public static ChallengeVerificationResult from(Integer totalCount, Integer succe
}


@Builder
public record ChallengeRecord(
String title,
Integer totalCount,
Integer successCount,
LocalDate startDate,
LocalDate endDate,
List<Long> recordIds
) {

public static ChallengeRecord from(
Challenge challenge,
List<ChallengeVerification> challengeVerificationList
) {
ChallengeGroup challengeGroup = challenge.getChallengeGroup();
return ChallengeRecord.builder()
.title(challengeGroup.getTitle())
.totalCount(challenge.getRequiredCount())
.successCount(challengeVerificationList.size())
.startDate(challenge.getStartDate())
.endDate(challenge.getEndDate())
.recordIds(challengeVerificationList.stream()
.map(ChallengeVerification::getId)
.collect(Collectors.toList()))
.build();
}
}

@Builder
public record ChallengeCurrent(
Long challengeId,
String title,
Integer totalCount,
Integer successCount,
LocalDateTime participationDate,
LocalDate startDate,
LocalDate endDate,
ChallengeCategory category,
Boolean reviewWritten
) {

public static ChallengeCurrent from(UserChallenge userChallenge, Boolean reviewWritten) {
Challenge challenge = userChallenge.getChallenge();
return ChallengeCurrent.builder()
.challengeId(challenge.getId())
.title(challenge.getChallengeGroup().getTitle())
.totalCount(challenge.getRequiredCount())
.successCount(userChallenge.getChallengeVerifications().size())
.participationDate(userChallenge.getCreatedAt())
.startDate(challenge.getStartDate())
.endDate(challenge.getEndDate())
.category(challenge.getChallengeGroup().getCategory())
.reviewWritten(reviewWritten)
.build();
}

}

@Builder
public record ChallengeComplete(
Long challengeId,
String title,
LocalDate successDate,
ChallengeCategory category,
Boolean reviewWritten
) {

public static ChallengeComplete from(UserChallenge userChallenge, Boolean reviewWritten
) {
Challenge challenge = userChallenge.getChallenge();

return ChallengeComplete.builder()
.challengeId(challenge.getId())
.title(challenge.getChallengeGroup().getTitle())
// 성공한 날짜는 가장 최근에 인증한 날짜로 설정
.successDate(userChallenge.getSuccessDate().orElse(null))
.category(challenge.getChallengeGroup().getCategory())
.reviewWritten(reviewWritten)
.build();
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.haedal.zzansuni.domain.challengegroup.ChallengeCategory;
import org.haedal.zzansuni.domain.challengegroup.ChallengeGroup;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeGroupModel;
import org.haedal.zzansuni.domain.userchallenge.application.ChallengeGroupRankingModel;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

Expand All @@ -15,5 +16,5 @@ public interface ChallengeGroupReader {

Page<ChallengeGroup> getChallengeGroupsShortsPaging(Pageable pageable, Long userId);

ChallengeGroupModel.Ranking getRanking(Long challengeGroupId, Long userId);
ChallengeGroupRankingModel.Main getRanking(Long challengeGroupId, Long userId);
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package org.haedal.zzansuni.domain.userchallenge.application;

import lombok.RequiredArgsConstructor;
import org.haedal.zzansuni.domain.userchallenge.ChallengeGroupUserExp;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeGroupModel;
import org.haedal.zzansuni.domain.challengegroup.port.ChallengeGroupReader;
import org.haedal.zzansuni.domain.userchallenge.ChallengeGroupUserExp;
import org.haedal.zzansuni.domain.userchallenge.port.ChallengeGroupUserExpReader;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
Expand All @@ -17,7 +16,7 @@ public class ChallengeRankingService {
private final ChallengeGroupUserExpReader challengeGroupUserExpReader;

@Transactional(readOnly = true)
public Page<ChallengeGroupModel.Ranking> getChallengeGroupRankingsPaging(Long challengeGroupId, Pageable pageable) {
public Page<ChallengeGroupRankingModel.Main> getChallengeGroupRankingsPaging(Long challengeGroupId, Pageable pageable) {
Page<ChallengeGroupUserExp> challengeGroupUserExps
= challengeGroupUserExpReader.getUserExpPagingWithUserByChallengeGroupId(challengeGroupId, pageable);

Expand All @@ -26,12 +25,12 @@ public Page<ChallengeGroupModel.Ranking> getChallengeGroupRankingsPaging(Long ch
return challengeGroupUserExps.map(e->{
int rank = challengeGroupUserExps.getNumber() * challengeGroupUserExps.getSize() + 1
+ challengeGroupUserExps.getContent().indexOf(e);
return ChallengeGroupModel.Ranking.from(e, rank);
return ChallengeGroupRankingModel.Main.from(e, rank);
});
}


public ChallengeGroupModel.Ranking getChallengeGroupRanking(Long challengeGroupId, Long id) {
public ChallengeGroupRankingModel.Main getChallengeGroupRanking(Long challengeGroupId, Long id) {
return challengeGroupReader.getRanking(challengeGroupId, id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.haedal.zzansuni.domain.challengegroup.Challenge;
import org.haedal.zzansuni.domain.challengegroup.application.ChallengeModel.ChallengeRecord;
import org.haedal.zzansuni.domain.challengegroup.port.ChallengeReader;
import org.haedal.zzansuni.domain.userchallenge.ChallengeVerification;
import org.haedal.zzansuni.domain.userchallenge.UserChallenge;
Expand All @@ -27,13 +26,13 @@ public class ChallengeRecordService {
* 챌린지 기록 가져오기
*/
@Transactional(readOnly = true)
public ChallengeRecord getChallengeRecord(Long userId, Long challengeId) {
public UserChallengeModel.Record getChallengeRecord(Long userId, Long challengeId) {
Challenge challenge = challengeReader.getById(challengeId);
UserChallenge userChallenge
= userChallengeReader.getByUserIdAndChallengeId(userId, challengeId);
List<ChallengeVerification> challengeVerifications
= challengeVerificationReader.findByUserChallengeId(userChallenge.getId());
return ChallengeRecord.from(challenge, challengeVerifications);
return UserChallengeModel.Record.from(challenge, challengeVerifications);

}

Expand Down
Loading

0 comments on commit 6bb35b1

Please sign in to comment.