diff --git a/src/main/java/run/halo/app/controller/admin/api/AttachmentController.java b/src/main/java/run/halo/app/controller/admin/api/AttachmentController.java index 17efea70f..cbf4e5199 100644 --- a/src/main/java/run/halo/app/controller/admin/api/AttachmentController.java +++ b/src/main/java/run/halo/app/controller/admin/api/AttachmentController.java @@ -23,7 +23,7 @@ import static org.springframework.data.domain.Sort.Direction.DESC; * Attachment controller. * * @author johnniang - * @date 3/21/19 + * @date 2019-03-21 */ @RestController @RequestMapping("/api/admin/attachments") diff --git a/src/main/java/run/halo/app/controller/admin/api/PhotoController.java b/src/main/java/run/halo/app/controller/admin/api/PhotoController.java index 3b8f5018e..98f5dc2ed 100644 --- a/src/main/java/run/halo/app/controller/admin/api/PhotoController.java +++ b/src/main/java/run/halo/app/controller/admin/api/PhotoController.java @@ -22,7 +22,7 @@ import static org.springframework.data.domain.Sort.Direction.DESC; * Photo controller * * @author ryanwang - * @date : 2019/3/21 + * @date : 2019-3-21 */ @RestController @RequestMapping("/api/admin/photos") @@ -92,4 +92,10 @@ public class PhotoController { // Update menu in database return new PhotoDTO().convertFrom(photoService.update(photo)); } + + @GetMapping("teams") + @ApiOperation("Lists all of photo teams") + public List listTeams() { + return photoService.listAllTeams(); + } } diff --git a/src/main/java/run/halo/app/repository/AttachmentRepository.java b/src/main/java/run/halo/app/repository/AttachmentRepository.java index ecd9118e4..0adaef8f2 100644 --- a/src/main/java/run/halo/app/repository/AttachmentRepository.java +++ b/src/main/java/run/halo/app/repository/AttachmentRepository.java @@ -12,6 +12,7 @@ import java.util.List; * Attachment repository * * @author johnniang + * @date 2019-04-03 */ public interface AttachmentRepository extends BaseRepository, JpaSpecificationExecutor { diff --git a/src/main/java/run/halo/app/repository/PhotoRepository.java b/src/main/java/run/halo/app/repository/PhotoRepository.java index c1d989ae4..f87f43d85 100644 --- a/src/main/java/run/halo/app/repository/PhotoRepository.java +++ b/src/main/java/run/halo/app/repository/PhotoRepository.java @@ -2,6 +2,7 @@ package run.halo.app.repository; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; import run.halo.app.model.entity.Photo; import run.halo.app.repository.base.BaseRepository; @@ -11,6 +12,8 @@ import java.util.List; * Photo repository. * * @author johnniang + * @author ryanwang + * @date 2019-04-03 */ public interface PhotoRepository extends BaseRepository, JpaSpecificationExecutor { @@ -22,4 +25,12 @@ public interface PhotoRepository extends BaseRepository, JpaSpec * @return list of photo */ List findByTeam(String team, Sort sort); + + /** + * Find all photo teams. + * + * @return list of teams. + */ + @Query(value = "select distinct p.team from Photo p") + List findAllTeams(); } diff --git a/src/main/java/run/halo/app/service/PhotoService.java b/src/main/java/run/halo/app/service/PhotoService.java index fb3759fdd..dec0645d0 100644 --- a/src/main/java/run/halo/app/service/PhotoService.java +++ b/src/main/java/run/halo/app/service/PhotoService.java @@ -64,4 +64,11 @@ public interface PhotoService extends CrudService { */ @NonNull Photo createBy(@NonNull PhotoParam photoParam); + + /** + * List all teams. + * + * @return list of teams + */ + List listAllTeams(); } diff --git a/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java b/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java index f3f82a1c2..45c8c74f2 100644 --- a/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java @@ -100,9 +100,14 @@ public class PhotoServiceImpl extends AbstractCrudService implem return create(photoParam.convertTo()); } + @Override + public List listAllTeams() { + return photoRepository.findAllTeams(); + } + @NonNull private Specification buildSpecByQuery(@NonNull PhotoQuery photoQuery) { - Assert.notNull(photoQuery, "Attachment query must not be null"); + Assert.notNull(photoQuery, "Photo query must not be null"); return (Specification) (root, query, criteriaBuilder) -> { List predicates = new LinkedList<>();