Files
no-copy/src/main/java/ru/soune/nocopy/service/file/ProtectionsLimitService.java
T

47 lines
1.5 KiB
Java
Raw Normal View History

2026-02-05 18:55:54 +07:00
package ru.soune.nocopy.service.file;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import ru.soune.nocopy.dto.file.FileTypeStatsDto;
import ru.soune.nocopy.entity.user.ProtectedFileCheck;
import ru.soune.nocopy.repository.ProtectedFileCheckRepository;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@Slf4j
public class ProtectionsLimitService {
private final ProtectedFileCheckRepository protectedFileCheckRepository;
@Transactional(readOnly = true)
public Map<String, Object> getFileTypeStats(Long userId) {
ProtectedFileCheck protection = protectedFileCheckRepository
.findByUserId(userId);
Map<String, Integer> checksByType = protection.getUsageByType();
int totalChecks = protection.getPeriodCount();
if (totalChecks == 0) {
return Map.of();
}
Map<String, Object> collect = checksByType.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> FileTypeStatsDto.builder()
.fileType(entry.getKey())
.count(entry.getValue())
.build()
));
collect.put("allCountForPeriod", totalChecks);
return collect;
}
}