From 4a432a7d36a80f509d36a6809a2d8aad4c765ffd Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Wed, 30 May 2012 15:47:08 +0900 Subject: [PATCH] prepared service methods --- .../serviceimpls/ProjectServiceImpl.java | 18 ++++++++++++++++++ .../springdata/services/ProjectService.java | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java index 3af44a6f31..c505635bb1 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java @@ -1,6 +1,7 @@ package se.su.dsv.scipro.springdata.serviceimpls; import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.annotation.Resource; @@ -57,11 +58,21 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl return projectRepo.findAll(titleContains(filterString).or(headSupervisorFirstNameContains(filterString).or(headSupervisorLastNameContains(filterString))), pageable); } + @Override + public Page<Project> find(Date fromDate, Date toDate, Pageable pageable) { + return projectRepo.findAll(projectCreatedAfter(fromDate).and(projectCreatedBefore(toDate)), pageable); + } + @Override public Long count(String filterString) { return projectRepo.count(titleContains(filterString)); } + @Override + public Long count(Date fromDate, Date toDate) { + return projectRepo.count(projectCreatedAfter(fromDate).and(projectCreatedBefore(toDate))); + } + @Override public List<Project> getProjectsByUser(User user) { Student student = studentRepo.findByUser(user); @@ -137,6 +148,13 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl return QProject.project.headSupervisor.user.lastName.containsIgnoreCase(searchTerm); } + private BooleanExpression projectCreatedAfter(Date date){ + return QProject.project.dateCreated.after(date); + } + + private BooleanExpression projectCreatedBefore(Date date){ + return QProject.project.dateCreated.before(date); + } private BooleanExpression hasProjectClass(ProjectClass pc) { if (pc != null) diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/ProjectService.java b/src/main/java/se/su/dsv/scipro/springdata/services/ProjectService.java index 5d3bc5e882..f7e525f88b 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/services/ProjectService.java +++ b/src/main/java/se/su/dsv/scipro/springdata/services/ProjectService.java @@ -1,5 +1,6 @@ package se.su.dsv.scipro.springdata.services; +import java.util.Date; import java.util.List; import org.springframework.data.domain.Page; @@ -11,7 +12,9 @@ import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles; public interface ProjectService extends GenericService<Project,Long>, QueryService<Project, Long> { public Page<Project> find(String filterString, Pageable pageable); + public Page<Project> find(Date fromDate, Date toDate, Pageable pageable); public Long count(String filterString); + public Long count(Date fromDate, Date toDate); public List<Project> getProjectsByUser(User user); public List<Project> getProjectsByUserAndStatus(User author, ProjectStatus status); public List<Project> getSupervisorProjectsForPeer(User supervisor, ProjectClass pc, ProjectStatus status, Student author, String title);