diff --git a/backend/finboostplus_server/src/main/java/com/finboostplus/DTO/GroupDetailsDTO.java b/backend/finboostplus_server/src/main/java/com/finboostplus/DTO/GroupDetailsDTO.java index 0f0a45e..733d9e6 100644 --- a/backend/finboostplus_server/src/main/java/com/finboostplus/DTO/GroupDetailsDTO.java +++ b/backend/finboostplus_server/src/main/java/com/finboostplus/DTO/GroupDetailsDTO.java @@ -1,4 +1,7 @@ package com.finboostplus.DTO; -public record GroupDetailsDTO(Long id, String name, String description, String icon, String authorization) { +import java.math.BigDecimal; + +public record GroupDetailsDTO(Long id, String name, String description, String icon, String authorization, + BigDecimal total) { } diff --git a/backend/finboostplus_server/src/main/java/com/finboostplus/repository/ExpenseRepository.java b/backend/finboostplus_server/src/main/java/com/finboostplus/repository/ExpenseRepository.java index 1ec7ead..21de475 100644 --- a/backend/finboostplus_server/src/main/java/com/finboostplus/repository/ExpenseRepository.java +++ b/backend/finboostplus_server/src/main/java/com/finboostplus/repository/ExpenseRepository.java @@ -263,14 +263,14 @@ SELECT EXISTS( boolean doesMemberHasPendingExpenses(Long memberId, Long groupId); @Query(nativeQuery = true, value = """ - SELECT ud.user_id as userId, - u.user_name as userName, - ud.partial_value as partialValue, - ud.status - FROM expenses e - INNER JOIN user_expense_divisions ud ON e.id = ud.expense_id - INNER JOIN users u ON u.id = ud.user_id - WHERE e.group_id = :groupId AND e.id = :expenseId + SELECT UD.USER_ID AS USERID, + U.USER_NAME AS USERNAME, + UD.PARTIAL_VALUE AS PARTIALVALUE, + UD.STATUS + FROM EXPENSES E + INNER JOIN USER_EXPENSE_DIVISIONS UD ON E.ID = UD.EXPENSE_ID + INNER JOIN USERS U ON U.ID = UD.USER_ID + WHERE E.GROUP_ID = :groupId AND e.id = :expenseId """) List listUsersExpenseDivision(Long groupId, Long expenseId); diff --git a/backend/finboostplus_server/src/main/java/com/finboostplus/repository/GroupRepository.java b/backend/finboostplus_server/src/main/java/com/finboostplus/repository/GroupRepository.java index e7e7f94..4fee32b 100644 --- a/backend/finboostplus_server/src/main/java/com/finboostplus/repository/GroupRepository.java +++ b/backend/finboostplus_server/src/main/java/com/finboostplus/repository/GroupRepository.java @@ -39,13 +39,18 @@ public interface GroupRepository extends JpaRepository { G.NAME, G.DESCRIPTION, G.ICON, - GM.AUTH_LEVEL AS AUTHORIZATION + GM.AUTH_LEVEL AS AUTHORIZATION, + (SELECT COALESCE(SUM (E.VALUE), 0) + FROM EXPENSES E + INNER JOIN USER_EXPENSE_DIVISIONS UED ON E.ID = UED.EXPENSE_ID + WHERE E.GROUP_ID = :groupId + ) AS TOTAL FROM GROUPS AS G INNER JOIN GROUP_MEMBERS AS GM ON GM.GROUP_ID = G.ID WHERE GM.GROUP_ID = :groupId AND GM.USER_ID = :userId - """) + """) GroupDetailsDTO getGroupDetails(Long groupId, Long userId); }