package com.syzton.sunread.service.user; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import com.syzton.sunread.exception.common.NotFoundException; import com.syzton.sunread.model.organization.Campus; import com.syzton.sunread.model.organization.EduGroup; import com.syzton.sunread.model.region.Region; import com.syzton.sunread.model.region.SchoolDistrict; import com.syzton.sunread.model.user.Analyst; import com.syzton.sunread.repository.organization.CampusRepository; import com.syzton.sunread.repository.organization.EduGroupRepository; import com.syzton.sunread.repository.region.RegionRepository; import com.syzton.sunread.repository.region.SchoolDistrictRepository; import com.syzton.sunread.repository.user.AnalystRepository; /** * Created by jerry on 6/13/15. */ @Service public class AnalystRepositoryService implements AnalystService{ private AnalystRepository analystRepository; private CampusRepository campusRepository; private EduGroupRepository eduGroupRepository; private SchoolDistrictRepository schoolDistrictRepository; private RegionRepository regionRepository; @Autowired public AnalystRepositoryService(AnalystRepository analystRepository, CampusRepository campusRepository, EduGroupRepository eduGroupRepository, SchoolDistrictRepository schoolDistrictRepository, RegionRepository regionRepository) { this.analystRepository = analystRepository; this.campusRepository = campusRepository; this.eduGroupRepository = eduGroupRepository; this.schoolDistrictRepository = schoolDistrictRepository; this.regionRepository = regionRepository; } @Override public void add(Analyst analyst) { this.analystRepository.save(analyst); } @Override public void delete(Long Id) { this.analystRepository.delete(Id); } @Override public Analyst findByUserId(String userId) { Analyst analyst = analystRepository.findByUserId(userId); if (analyst == null){ throw new NotFoundException("Analyst wiht userId = "+ userId +" not found.."); } return analyst; } @Override public Page<Analyst> findByCampusId(Pageable pageable, long campusId) { Campus campus = campusRepository.findOne(campusId); if (campus == null){ throw new NotFoundException("Campus with id = "+ campusId +" not found.. "); } return analystRepository.findByCampusId(pageable,campusId); } @Override public Page<Analyst> findByEduGroupId(Pageable pageable, long eduGroupId) { EduGroup eduGroup = eduGroupRepository.findOne(eduGroupId); if(eduGroup == null){ throw new NotFoundException("EduGroup with id ="+eduGroupId+" not found.."); } return analystRepository.findByEduGroupId(pageable,eduGroupId); } @Override public Page<Analyst> findBySchoolDistrictId(Pageable pageable, long schoolDistrictId) { SchoolDistrict schoolDistrict = schoolDistrictRepository.findOne(schoolDistrictId); if(schoolDistrict == null){ throw new NotFoundException("SchoolDistrict with id ="+schoolDistrictId+" not found.."); } return analystRepository.findByEduGroupId(pageable,schoolDistrictId); } @Override public Page<Analyst> findByRegionId(Pageable pageable, long regionId) { Region region = regionRepository.findOne(regionId); if (region == null){ throw new NotFoundException("Region with id = "+regionId+" not found.."); } return analystRepository.findByRegionId(pageable,regionId); } }