diff --git a/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java b/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java index 07f10ca..6e66a42 100755 --- a/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java +++ b/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java @@ -1,7 +1,6 @@ package com.plannaplan.repositories; import java.util.List; -import java.util.HashMap; import java.util.Optional; import com.plannaplan.entities.Groups; @@ -22,9 +21,10 @@ public interface GroupRepository extends JpaRepository { @Query("SELECT COUNT(*) AS assinged_times FROM Assignment WHERE isPastAssignment=false GROUP BY group HAVING group_id=?1") Optional getAssignedAmount(Long groupId); - // @Query("SELECT group, COUNT(*) AS assinged_times FROM Assignment WHERE - // isPastAssignment=false GROUP BY group HAVING group_id IN (:ids)") - @Query(nativeQuery = true, value = "SELECT group_id, COUNT(*) AS assinged_times FROM assignment WHERE is_past_assignment=0 GROUP BY group_id HAVING group_id IN (7,9,10,12)") + @Query("SELECT group, COUNT(*) AS assinged_times FROM Assignment a WHERE a.isPastAssignment=false GROUP BY a.group HAVING group_id IN (:ids)") + // @Query(nativeQuery = true, value = "SELECT group_id, COUNT(*) AS + // assinged_times FROM assignment WHERE is_past_assignment=0 GROUP BY group_id + // HAVING group_id IN (:ids)") List getAssignedAmounts(@Param("ids") List groupIds); diff --git a/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java b/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java index 55d8843..1952d53 100755 --- a/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java +++ b/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java @@ -56,15 +56,10 @@ public class GroupService { public HashMap getTakenPlaces(List groups) { HashMap respoonse = new HashMap<>(); - // groups.forEach(group -> { - // final Long id = group.getId(); - // final Integer ammount = - // this.repo.getAssignedAmount(id).orElse(Integer.valueOf(0)).intValue(); - // respoonse.put(group, ammount); - // }); List respoonse2 = this.repo.getAssignedAmounts( groups.stream().filter(Objects::nonNull).map(Groups::getId).collect(Collectors.toList())); + return respoonse; } } \ No newline at end of file diff --git a/buisnesslogic/src/test/java/com/plannaplan/repositories/GroupRepositoryTest.java b/buisnesslogic/src/test/java/com/plannaplan/repositories/GroupRepositoryTest.java index 2d49130..d0e4dc7 100755 --- a/buisnesslogic/src/test/java/com/plannaplan/repositories/GroupRepositoryTest.java +++ b/buisnesslogic/src/test/java/com/plannaplan/repositories/GroupRepositoryTest.java @@ -7,6 +7,10 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.junit.Assert.assertTrue; +import java.util.List; + +import javax.swing.GroupLayout.Group; + import com.plannaplan.entities.Assignment; import com.plannaplan.entities.Commision; import com.plannaplan.entities.Groups; @@ -76,4 +80,29 @@ public class GroupRepositoryTest { assertTrue(afterdeAssignedGroupAmmount < afterreAssignedGroupAmmount); } + + @Test + public void shouldReturnGroupAssignmentTimesList() throws InterruptedException { + final Groups testGroup = groupService.save(new Groups(43, "A-41", null, 645, WeekDay.MONDAY, null)); + final Groups testGroup2 = groupService.save(new Groups(433, "A-41", null, 235, WeekDay.TUESDAY, null)); + final Groups testGroup3 = groupService.save(new Groups(23, "A-41", null, 340, WeekDay.MONDAY, null)); + final User user = this.userService.save(new User("Dare", "Oc", + "shouldReturnGroupAssignmentTimesList@grouprepository.test", UserRoles.STUDENT)); + final Commision commision = this.commisionService.save(new Commision(user)); + + this.assignmentService.save(new Assignment(testGroup, commision)); + this.assignmentService.save(new Assignment(testGroup2, commision)); + this.assignmentService.save(new Assignment(testGroup3, commision)); + + Thread.sleep(1000); + + List response = this.repository + .getAssignedAmounts(List.of(testGroup.getId(), testGroup2.getId(), testGroup3.getId())); + + assertTrue("Response should have size 3", response.size() == 3); + assertTrue("Instance of firest element should be Group", response.get(0)[0] instanceof Groups); + assertTrue("Instance of firest element should be Long", response.get(0)[1] instanceof Long); + + } + } diff --git a/buisnesslogic/src/test/resources/application.properties b/buisnesslogic/src/test/resources/application.properties index 0477c97..55e1449 100755 --- a/buisnesslogic/src/test/resources/application.properties +++ b/buisnesslogic/src/test/resources/application.properties @@ -7,5 +7,6 @@ spring.jpa.open-in-view=true spring.jpa.hibernate.ddl-auto=create-drop spring.jackson.serialization.fail-on-empty-beans=false spring.main.allow-bean-definition-overriding=true +spring.jackson.default-property-inclusion = NON_NULL server.port=1285 \ No newline at end of file