Skip to content

Commit

Permalink
Merge pull request #205 from Modagbul/hotfix
Browse files Browse the repository at this point in the history
hotfix : 0120 이슈 대응
  • Loading branch information
seungueonn authored Jan 19, 2024
2 parents 53123ed + 734866d commit d42bdd4
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.moing.backend.domain.fire.application.dto.res.FireReceiveRes;
import com.moing.backend.domain.fire.domain.entity.Fire;
import com.moing.backend.domain.member.domain.entity.Member;
import com.moing.backend.domain.mission.domain.entity.constant.MissionType;
import com.moing.backend.domain.missionArchive.domain.entity.MissionArchive;
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.BooleanExpression;
Expand All @@ -11,7 +12,10 @@
import com.querydsl.jpa.impl.JPAQueryFactory;

import javax.persistence.EntityManager;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.Optional;

Expand Down Expand Up @@ -52,6 +56,8 @@ public boolean hasFireCreatedWithinOneHour(Long throwMemberId, Long receiveMembe

public Optional<List<FireReceiveRes>> getFireReceivers(Long teamId, Long missionId, Long memberId) {

BooleanExpression dateInRange = createRepeatTypeConditionByArchive();

JPQLQuery<Long> missionDonePeople = select(missionArchive.member.memberId)
.from(missionArchive, mission)
.where(missionArchive.mission.id.eq(missionId),
Expand All @@ -63,7 +69,8 @@ public Optional<List<FireReceiveRes>> getFireReceivers(Long teamId, Long mission
mission.number)
.having(
missionArchive.mission.id.eq(missionId),
missionArchive.count.max().goe(mission.number)
missionArchive.count.max().goe(mission.number),
(missionArchive.mission.type.eq(MissionType.REPEAT).and(dateInRange)).or(missionArchive.mission.type.eq(MissionType.ONCE))
);

LocalDateTime oneHourAgo = LocalDateTime.now().minusHours(1); // 현재 시간에서 1시간을 뺀 시간
Expand Down Expand Up @@ -99,4 +106,18 @@ public Optional<List<FireReceiveRes>> getFireReceivers(Long teamId, Long mission

}


private BooleanExpression createRepeatTypeConditionByArchive() {
LocalDate now = LocalDate.now();
DayOfWeek firstDayOfWeek = DayOfWeek.MONDAY;
LocalDate startOfWeek = now.with(TemporalAdjusters.previousOrSame(firstDayOfWeek));
LocalDate endOfWeek = startOfWeek.plusDays(6);

BooleanExpression dateInRange = missionArchive.createdDate.goe(startOfWeek.atStartOfDay())
.and(missionArchive.createdDate.loe(endOfWeek.atStartOfDay().plusDays(1).minusNanos(1)));

// 조건이 MissionType.REPEAT 인 경우에만 날짜 범위 조건 적용
return dateInRange.and(dateInRange);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ public Optional<MissionState> findMissionStateByMemberAndMission(Member member,
.selectFrom(missionState)
.where(missionState.mission.eq(mission),
missionState.member.eq(member))
.orderBy(missionState.createdDate.desc())
.fetchFirst());
}

Expand Down

0 comments on commit d42bdd4

Please sign in to comment.