From 8387f18c7ada754ff6cfee14f47c50bad03aeeef Mon Sep 17 00:00:00 2001 From: johnniang <1340692778@qq.com> Date: Wed, 20 Feb 2019 10:26:53 +0800 Subject: [PATCH] Refactor MenuService --- .../freemarker/tag/CommonTagDirective.java | 2 +- .../cc/ryanc/halo/service/MenuService.java | 33 ++--------------- .../halo/service/impl/MenuServiceImpl.java | 36 ++++++++----------- .../web/controller/admin/MenuController.java | 6 ++-- .../web/controller/api/ApiMenuController.java | 2 +- .../controller/core/InstallController.java | 4 +-- 6 files changed, 23 insertions(+), 60 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/model/freemarker/tag/CommonTagDirective.java b/src/main/java/cc/ryanc/halo/model/freemarker/tag/CommonTagDirective.java index 09741ac4e..0cae14166 100644 --- a/src/main/java/cc/ryanc/halo/model/freemarker/tag/CommonTagDirective.java +++ b/src/main/java/cc/ryanc/halo/model/freemarker/tag/CommonTagDirective.java @@ -44,7 +44,7 @@ public class CommonTagDirective implements TemplateDirectiveModel { String method = map.get(METHOD_KEY).toString(); switch (method) { case "menus": - environment.setVariable("menus", builder.build().wrap(menuService.findAll())); + environment.setVariable("menus", builder.build().wrap(menuService.listAll())); break; case "categories": environment.setVariable("categories", builder.build().wrap(categoryService.listAll())); diff --git a/src/main/java/cc/ryanc/halo/service/MenuService.java b/src/main/java/cc/ryanc/halo/service/MenuService.java index 759ec2a8b..66f4c5110 100644 --- a/src/main/java/cc/ryanc/halo/service/MenuService.java +++ b/src/main/java/cc/ryanc/halo/service/MenuService.java @@ -1,6 +1,7 @@ package cc.ryanc.halo.service; import cc.ryanc.halo.model.domain.Menu; +import cc.ryanc.halo.service.base.CrudService; import java.util.List; import java.util.Optional; @@ -13,36 +14,6 @@ import java.util.Optional; * @author : RYAN0UP * @date : 2018/1/24 */ -public interface MenuService { +public interface MenuService extends CrudService { - /** - * 新增/修改菜单 - * - * @param menu menu - * @return Menu - */ - Menu save(Menu menu); - - /** - * 查询所有菜单 - * - * @return List - */ - List findAll(); - - /** - * 删除菜单 - * - * @param menuId menuId - * @return Menu - */ - Menu remove(Long menuId); - - /** - * 根据编号查询菜单 - * - * @param menuId menuId - * @return Optional - */ - Optional findByMenuId(Long menuId); } diff --git a/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java index 1463b3fe7..cca7ea367 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/MenuServiceImpl.java @@ -3,7 +3,7 @@ package cc.ryanc.halo.service.impl; import cc.ryanc.halo.model.domain.Menu; import cc.ryanc.halo.repository.MenuRepository; import cc.ryanc.halo.service.MenuService; -import org.springframework.beans.factory.annotation.Autowired; +import cc.ryanc.halo.service.base.AbstractCrudService; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -20,14 +20,18 @@ import java.util.Optional; * @date : 2018/1/24 */ @Service -public class MenuServiceImpl implements MenuService { +public class MenuServiceImpl extends AbstractCrudService implements MenuService { private static final String MENUS_CACHE_KEY = "'menu'"; private static final String MENUS_CACHE_NAME = "menus"; - @Autowired - private MenuRepository menuRepository; + private final MenuRepository menuRepository; + + public MenuServiceImpl(MenuRepository menuRepository) { + super(menuRepository); + this.menuRepository = menuRepository; + } /** * 查询所有菜单 @@ -36,8 +40,8 @@ public class MenuServiceImpl implements MenuService { */ @Override @Cacheable(value = MENUS_CACHE_NAME, key = MENUS_CACHE_KEY) - public List findAll() { - return menuRepository.findAll(); + public List listAll() { + return super.listAll(); } /** @@ -48,8 +52,8 @@ public class MenuServiceImpl implements MenuService { */ @Override @CacheEvict(value = MENUS_CACHE_NAME, allEntries = true, beforeInvocation = true) - public Menu save(Menu menu) { - return menuRepository.save(menu); + public Menu create(Menu menu) { + return super.create(menu); } /** @@ -60,20 +64,8 @@ public class MenuServiceImpl implements MenuService { */ @Override @CacheEvict(value = MENUS_CACHE_NAME, allEntries = true, beforeInvocation = true) - public Menu remove(Long menuId) { - final Optional menu = this.findByMenuId(menuId); - menuRepository.delete(menu.orElse(null)); - return menu.orElse(null); + public Menu removeById(Long menuId) { + return super.removeById(menuId); } - /** - * 根据编号查询菜单 - * - * @param menuId menuId - * @return Menu - */ - @Override - public Optional findByMenuId(Long menuId) { - return menuRepository.findById(menuId); - } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java index fcda0d01c..446ccb9a2 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/MenuController.java @@ -54,7 +54,7 @@ public class MenuController { return new JsonResult(ResultCodeEnum.FAIL.getCode(), error.getDefaultMessage()); } } - menu = menuService.save(menu); + menu = menuService.create(menu); if (null != menu) { return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), "菜单保存成功!"); } else { @@ -71,7 +71,7 @@ public class MenuController { */ @GetMapping(value = "/edit") public String updateMenu(@RequestParam("menuId") Long menuId, Model model) { - final Menu menu = menuService.findByMenuId(menuId).orElse(new Menu()); + final Menu menu = menuService.fetchById(menuId).orElse(new Menu()); model.addAttribute("updateMenu", menu); return "/admin/admin_menu"; } @@ -85,7 +85,7 @@ public class MenuController { @GetMapping(value = "/remove") public String removeMenu(@RequestParam("menuId") Long menuId) { try { - menuService.remove(menuId); + menuService.removeById(menuId); } catch (Exception e) { log.error("Deleting menu failed: {}", e.getMessage()); } diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java index 1b4bba979..01e9197b3 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiMenuController.java @@ -55,7 +55,7 @@ public class ApiMenuController { */ @GetMapping public JsonResult menus() { - final List menus = menuService.findAll(); + final List menus = menuService.listAll(); if (null != menus && menus.size() > 0) { return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), menus); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java b/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java index e335246ba..68da0ce0b 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/core/InstallController.java @@ -178,14 +178,14 @@ public class InstallController { menuIndex.setMenuUrl("/"); menuIndex.setMenuSort(1); menuIndex.setMenuIcon(" "); - menuService.save(menuIndex); + menuService.create(menuIndex); final Menu menuArchive = new Menu(); menuArchive.setMenuName("归档"); menuArchive.setMenuUrl("/archives"); menuArchive.setMenuSort(2); menuArchive.setMenuIcon(" "); - menuService.save(menuArchive); + menuService.create(menuArchive); OPTIONS.clear(); OPTIONS = optionsService.findAllOptions();