Skip to content

Commit

Permalink
Merge pull request #327 from Open-Eye-Im-Developer/develop
Browse files Browse the repository at this point in the history
[MERGE] develop을 main에 반영
  • Loading branch information
JIN-076 committed Mar 22, 2024
2 parents 51e784a + dab286c commit f999203
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import io.oeid.mogakgo.domain.achievement.domain.entity.AchievementMessage;
import io.oeid.mogakgo.domain.achievement.domain.entity.UserAchievement;
import io.oeid.mogakgo.domain.achievement.domain.entity.UserActivity;
import io.oeid.mogakgo.domain.achievement.domain.entity.enums.ActivityType;
import io.oeid.mogakgo.domain.achievement.exception.AchievementException;
import io.oeid.mogakgo.domain.achievement.exception.UserAchievementException;
import io.oeid.mogakgo.domain.achievement.infrastructure.AchievementJpaRepository;
Expand Down Expand Up @@ -65,7 +66,8 @@ public void executeActivity(final UserActivityEvent event) {
.build());

Achievement achievement = getById(event.getAchievementId());
if (!isPossibleToAchieve(achievement, event.getProgressCount())) {
if (!achievement.getRequirementValue().equals(event.getProgressCount())
|| !getProgressLevelSize(event.getActivityType()).equals(1)) {

log.info("call socket for event {} in progress", event.getAchievementId());

Expand Down Expand Up @@ -254,16 +256,15 @@ public void recoverForSequencedUpdateEvent(EventListenerProcessingException e,
throw new AchievementException(EVENT_LISTENER_REQUEST_FAILED);
}

private boolean isPossibleToAchieve(Achievement achievement, Integer progressCount) {
return achievement.getRequirementValue().equals(progressCount)
|| achievement.getProgressLevel().equals(1);
}

public Achievement getById(Long achievementId) {
return achievementRepository.findById(achievementId)
.orElseThrow(() -> new AchievementException(ACHIEVEMENT_NOT_FOUND));
}

public Integer getProgressLevelSize(ActivityType activityType) {
return achievementRepository.findByActivityType(activityType).size();
}

public UserAchievement getByUserAndAchievementId(final AchievementEvent event) {
return userAchievementRepository
.findByUserAndAchievementId(event.getUserId(), event.getAchievementId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ public interface AchievementJpaRepository extends JpaRepository<Achievement, Lon
@Query("select ac from Achievement ac where ac.id = :id")
Optional<Achievement> findById(Long id);

@Query("select ac from Achievement ac where ac.activityType = :activityType")
List<Achievement> findByActivityType(ActivityType activityType);


@Query("""
select ac.activityType from Achievement ac join UserAchievement ua
on ac.id = ua.achievement.id and ua.user.id = :userId
Expand Down

0 comments on commit f999203

Please sign in to comment.