StatisticsService.java
package qwerty.chaekit.service.statistics;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import qwerty.chaekit.domain.ebook.repository.EbookRepository;
import qwerty.chaekit.domain.group.activity.repository.ActivityRepository;
import qwerty.chaekit.domain.group.repository.GroupRepository;
import qwerty.chaekit.domain.member.user.UserProfileRepository;
import qwerty.chaekit.dto.statistics.MainStatisticResponse;
import java.time.LocalDateTime;
@Service
@Transactional
@RequiredArgsConstructor
public class StatisticsService {
private final ActivityRepository activityRepository;
private final EbookRepository ebookRepository;
private final UserProfileRepository userProfileRepository;
private final GroupRepository groupRepository;
public MainStatisticResponse getMainStatistics() {
long totalGroups = groupRepository.count();
long totalUsers = userProfileRepository.count();
long totalEbooks = ebookRepository.count();
long totalActivities = activityRepository.count();
long increasedActivities = activityRepository.countByCreatedAtAfter(LocalDateTime.now().minusMonths(1));
return new MainStatisticResponse(
totalGroups,
totalUsers,
totalEbooks,
totalActivities,
increasedActivities
);
}
}