From eb7ff715c2e6a6bce689e9a3f3e7fa056bb51584 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Thu, 24 Oct 2019 10:25:14 +0800 Subject: [PATCH] Create list team api for menu/link. --- .../halo/app/config/WebMvcAutoConfiguration.java | 2 +- .../app/config/properties/HaloProperties.java | 5 +++++ .../app/controller/admin/api/LinkController.java | 6 ++++++ .../app/controller/admin/api/MenuController.java | 9 ++++++++- .../app/controller/content/MainController.java | 15 ++++++++++----- .../run/halo/app/listener/StartedListener.java | 2 +- .../run/halo/app/repository/LinkRepository.java | 11 +++++++++++ .../run/halo/app/repository/MenuRepository.java | 9 +++++++++ .../java/run/halo/app/service/LinkService.java | 8 ++++++++ .../java/run/halo/app/service/MenuService.java | 7 +++++++ .../halo/app/service/impl/LinkServiceImpl.java | 5 +++++ .../halo/app/service/impl/MenuServiceImpl.java | 5 +++++ 12 files changed, 76 insertions(+), 8 deletions(-) diff --git a/src/main/java/run/halo/app/config/WebMvcAutoConfiguration.java b/src/main/java/run/halo/app/config/WebMvcAutoConfiguration.java index e3f48fe4b..f728b51a8 100644 --- a/src/main/java/run/halo/app/config/WebMvcAutoConfiguration.java +++ b/src/main/java/run/halo/app/config/WebMvcAutoConfiguration.java @@ -90,7 +90,7 @@ public class WebMvcAutoConfiguration implements WebMvcConfigurer { .addResourceLocations(workDir + "upload/"); registry.addResourceHandler("/backup/**") .addResourceLocations(workDir + "backup/"); - registry.addResourceHandler("/admin/**") + registry.addResourceHandler(haloProperties.getAdminPath() + "/**") .addResourceLocations(workDir + HALO_ADMIN_RELATIVE_PATH) .addResourceLocations("classpath:/admin/"); diff --git a/src/main/java/run/halo/app/config/properties/HaloProperties.java b/src/main/java/run/halo/app/config/properties/HaloProperties.java index 719475a5c..52714c23b 100644 --- a/src/main/java/run/halo/app/config/properties/HaloProperties.java +++ b/src/main/java/run/halo/app/config/properties/HaloProperties.java @@ -32,6 +32,11 @@ public class HaloProperties { */ private boolean authEnabled = true; + /** + * Admin path. + */ + private String adminPath = "/admin"; + /** * Work directory. */ diff --git a/src/main/java/run/halo/app/controller/admin/api/LinkController.java b/src/main/java/run/halo/app/controller/admin/api/LinkController.java index ca59717c2..bc347eb6f 100644 --- a/src/main/java/run/halo/app/controller/admin/api/LinkController.java +++ b/src/main/java/run/halo/app/controller/admin/api/LinkController.java @@ -76,4 +76,10 @@ public class LinkController { public void deletePermanently(@PathVariable("id") Integer id) { linkService.removeById(id); } + + @GetMapping("teams") + @ApiOperation(("List all link teams")) + public List teams() { + return linkService.listAllTeams(); + } } diff --git a/src/main/java/run/halo/app/controller/admin/api/MenuController.java b/src/main/java/run/halo/app/controller/admin/api/MenuController.java index d85e9d7c8..ce7992a82 100644 --- a/src/main/java/run/halo/app/controller/admin/api/MenuController.java +++ b/src/main/java/run/halo/app/controller/admin/api/MenuController.java @@ -20,7 +20,8 @@ import static org.springframework.data.domain.Sort.Direction.DESC; * Menu controller. * * @author johnniang - * @date 4/3/19 + * @author ryanwang + * @date 2019-04-03 */ @RestController @RequestMapping("/api/admin/menus") @@ -88,4 +89,10 @@ public class MenuController { } return new MenuDTO().convertFrom(menuService.removeById(menuId)); } + + @GetMapping("teams") + @ApiOperation(("List all menu teams")) + public List teams() { + return menuService.listAllTeams(); + } } diff --git a/src/main/java/run/halo/app/controller/content/MainController.java b/src/main/java/run/halo/app/controller/content/MainController.java index c912ae058..d8beab087 100644 --- a/src/main/java/run/halo/app/controller/content/MainController.java +++ b/src/main/java/run/halo/app/controller/content/MainController.java @@ -3,7 +3,9 @@ package run.halo.app.controller.content; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.ResponseBody; +import run.halo.app.config.properties.HaloProperties; import run.halo.app.exception.ServiceException; import run.halo.app.model.entity.User; import run.halo.app.model.properties.BlogProperties; @@ -27,19 +29,22 @@ public class MainController { private final OptionService optionService; - public MainController(UserService userService, OptionService optionService) { + private final HaloProperties haloProperties; + + public MainController(UserService userService, OptionService optionService, HaloProperties haloProperties) { this.userService = userService; this.optionService = optionService; + this.haloProperties = haloProperties; } - @GetMapping("/admin") - public String admin() { - return "redirect:/admin/index.html"; + @GetMapping("/{permlink}") + public String admin(@PathVariable(name = "permlink") String permlink) { + return "redirect:/" + permlink + "/index.html"; } @GetMapping("/install") public String installation() { - return "redirect:/admin/index.html#install"; + return "redirect:" + haloProperties.getAdminPath() + "/index.html#install"; } @GetMapping("/version") diff --git a/src/main/java/run/halo/app/listener/StartedListener.java b/src/main/java/run/halo/app/listener/StartedListener.java index 79f75a8f5..4ceecf1b5 100644 --- a/src/main/java/run/halo/app/listener/StartedListener.java +++ b/src/main/java/run/halo/app/listener/StartedListener.java @@ -53,7 +53,7 @@ public class StartedListener implements ApplicationListener { + + /** + * Find all link teams. + * + * @return a list of teams + */ + @Query(value = "select distinct a.team from Link a") + List findAllTeams(); } diff --git a/src/main/java/run/halo/app/repository/MenuRepository.java b/src/main/java/run/halo/app/repository/MenuRepository.java index 16d092da9..812d256f8 100644 --- a/src/main/java/run/halo/app/repository/MenuRepository.java +++ b/src/main/java/run/halo/app/repository/MenuRepository.java @@ -1,6 +1,7 @@ package run.halo.app.repository; import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.repository.Query; import org.springframework.lang.NonNull; import run.halo.app.model.entity.Menu; import run.halo.app.repository.base.BaseRepository; @@ -23,4 +24,12 @@ public interface MenuRepository extends BaseRepository { List findByParentId(@NonNull Integer id); List findByTeam(String team, Sort sort); + + /** + * Find all menu teams. + * + * @return a list of teams + */ + @Query(value = "select distinct a.team from Menu a") + List findAllTeams(); } diff --git a/src/main/java/run/halo/app/service/LinkService.java b/src/main/java/run/halo/app/service/LinkService.java index da03d9cdb..e06e73261 100755 --- a/src/main/java/run/halo/app/service/LinkService.java +++ b/src/main/java/run/halo/app/service/LinkService.java @@ -14,6 +14,7 @@ import java.util.List; * Link service interface. * * @author johnniang + * @author ryanwang * @date 2019-03-14 */ public interface LinkService extends CrudService { @@ -52,4 +53,11 @@ public interface LinkService extends CrudService { * @return true if exists; false otherwise */ boolean existByName(String name); + + /** + * List all link teams. + * + * @return a list of teams. + */ + List listAllTeams(); } diff --git a/src/main/java/run/halo/app/service/MenuService.java b/src/main/java/run/halo/app/service/MenuService.java index defb6c36b..672b5ef31 100644 --- a/src/main/java/run/halo/app/service/MenuService.java +++ b/src/main/java/run/halo/app/service/MenuService.java @@ -71,4 +71,11 @@ public interface MenuService extends CrudService { * @return a list of menu */ List listByParentId(@NonNull Integer id); + + /** + * List all menu teams. + * + * @return a list of teams. + */ + List listAllTeams(); } diff --git a/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java b/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java index 20aa67d9f..3b4dbbe59 100644 --- a/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java @@ -95,6 +95,11 @@ public class LinkServiceImpl extends AbstractCrudService implemen return linkRepository.exists(Example.of(link)); } + @Override + public List listAllTeams() { + return linkRepository.findAllTeams(); + } + @NonNull private List convertTo(@Nullable List links) { if (CollectionUtils.isEmpty(links)) { diff --git a/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java b/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java index d1981e6cd..52ee0251c 100644 --- a/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java @@ -112,6 +112,11 @@ public class MenuServiceImpl extends AbstractCrudService implemen return menuRepository.findByParentId(id); } + @Override + public List listAllTeams() { + return menuRepository.findAllTeams(); + } + @Override public Menu create(Menu menu) { nameMustNotExist(menu);