This commit is contained in:
@@ -116,4 +116,25 @@ public interface FileEntityRepository extends JpaRepository<FileEntity, String>
|
||||
@Param("topUsers") int topUsers,
|
||||
@Param("mimeType") String mimeType
|
||||
);
|
||||
|
||||
@Query("""
|
||||
SELECT
|
||||
COUNT(f.id),
|
||||
COALESCE(SUM(f.fileSize), 0)
|
||||
FROM FileEntity f
|
||||
WHERE f.protectionStatus = 'PROTECTED'
|
||||
""")
|
||||
List<Object[]> getProtectedFilesTotalStats();
|
||||
|
||||
@Query(value = """
|
||||
SELECT
|
||||
user_id,
|
||||
COUNT(*) as file_count,
|
||||
SUM(file_size) as total_size
|
||||
FROM file_entities
|
||||
WHERE protection_status = 'PROTECTED'
|
||||
GROUP BY user_id
|
||||
ORDER BY file_count
|
||||
""", nativeQuery = true)
|
||||
List<Object[]> getProtectedFilesPerUserStats();
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package ru.soune.nocopy.repository;
|
||||
|
||||
import jakarta.validation.constraints.Size;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import ru.soune.nocopy.entity.tarif.TariffInfo;
|
||||
import ru.soune.nocopy.entity.user.User;
|
||||
|
||||
@@ -14,4 +15,29 @@ public interface UserRepository extends JpaRepository<User, Long> {
|
||||
List<User> findByCompanyId(String companyId);
|
||||
long countByCompanyId(String companyId);
|
||||
User findByPersonalTariffInfo(TariffInfo tariffInfo);
|
||||
|
||||
@Query("SELECT COUNT(u.Id) FROM User u")
|
||||
Long getTotalUsersCount();
|
||||
|
||||
@Query(value = """
|
||||
SELECT COUNT(*)
|
||||
FROM users
|
||||
WHERE created_at >= NOW() - INTERVAL '1 day' * :days
|
||||
""", nativeQuery = true)
|
||||
Long getNewUsersCount(int days);
|
||||
|
||||
@Query(value = """
|
||||
SELECT COUNT(*)
|
||||
FROM users
|
||||
WHERE created_at >= DATE_TRUNC('month', NOW())
|
||||
""", nativeQuery = true)
|
||||
Long getNewUsersCurrentMonth();
|
||||
|
||||
@Query(value = """
|
||||
SELECT COUNT(*)
|
||||
FROM users
|
||||
WHERE created_at >= DATE_TRUNC('month', NOW() - INTERVAL '1 month')
|
||||
AND created_at < DATE_TRUNC('month', NOW())
|
||||
""", nativeQuery = true)
|
||||
Long getNewUsersPreviousMonth();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user