Skip to content

Commit f54de8e

Browse files
committed
refact: 주차별 진행과정 copy 시 진행사항 관련 내용 제외
1 parent 6f8bfdf commit f54de8e

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

src/main/java/targeter/aim/domain/challenge/service/ChallengeRequestService.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import targeter.aim.system.exception.model.RestException;
1616
import targeter.aim.system.security.model.UserDetails;
1717

18+
import java.time.LocalDate;
19+
import java.time.temporal.ChronoUnit;
1820
import java.util.ArrayList;
1921
import java.util.List;
2022

@@ -155,6 +157,11 @@ private void copyHostWeeklyProgressToMember(Challenge challenge, User hostUser,
155157
throw new RestException(ErrorCode.GLOBAL_NOT_FOUND, "HOST의 주차별 진행 데이터가 없습니다.");
156158
}
157159

160+
LocalDate today = LocalDate.now();
161+
LocalDate startDate = challenge.getStartedAt();
162+
163+
int currentWeek = (int) ChronoUnit.WEEKS.between(startDate, today) + 1;
164+
158165
List<WeeklyProgress> toSave = new ArrayList<>();
159166

160167
for (WeeklyProgress src : hostProgressList) {
@@ -169,12 +176,25 @@ private void copyHostWeeklyProgressToMember(Challenge challenge, User hostUser,
169176
"createdAt",
170177
"lastModifiedAt",
171178
"attachedImages",
172-
"attachedFiles"
179+
"attachedFiles",
180+
"elapsedTimeSeconds",
181+
"weeklyStatus",
182+
"isComplete"
173183
);
174184

175185
cloned.setChallenge(challenge);
176186
cloned.setUser(memberUser);
177187

188+
if (src.getWeekNumber() < currentWeek) {
189+
cloned.setElapsedTimeSeconds(0);
190+
cloned.setWeeklyStatus(WeeklyStatus.FAIL);
191+
cloned.setIsComplete(true);
192+
} else {
193+
cloned.setElapsedTimeSeconds(0);
194+
cloned.setWeeklyStatus(WeeklyStatus.PENDING);
195+
cloned.setIsComplete(false);
196+
}
197+
178198
cloned.setAttachedFiles(new ArrayList<>());
179199
cloned.setAttachedImages(new ArrayList<>());
180200

0 commit comments

Comments
 (0)