From e0ef35b0ddaa87619798dfe61cdf85480d8cfc30 Mon Sep 17 00:00:00 2001 From: johnniang <1340692778@qq.com> Date: Wed, 20 Feb 2019 11:26:27 +0800 Subject: [PATCH] Refactor TagService --- .../freemarker/tag/CommonTagDirective.java | 2 +- .../cc/ryanc/halo/service/TagService.java | 35 +------------- .../halo/service/impl/TagServiceImpl.java | 46 ++++++------------- .../web/controller/admin/AdminController.java | 2 +- .../web/controller/admin/TagController.java | 6 +-- .../web/controller/api/ApiTagController.java | 2 +- 6 files changed, 21 insertions(+), 72 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 0cae14166..85a6b2d2f 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 @@ -50,7 +50,7 @@ public class CommonTagDirective implements TemplateDirectiveModel { environment.setVariable("categories", builder.build().wrap(categoryService.listAll())); break; case "tags": - environment.setVariable("tags", builder.build().wrap(tagService.findAll())); + environment.setVariable("tags", builder.build().wrap(tagService.listAll())); break; case "links": environment.setVariable("links", builder.build().wrap(linkService.listAll())); diff --git a/src/main/java/cc/ryanc/halo/service/TagService.java b/src/main/java/cc/ryanc/halo/service/TagService.java index af334a3e7..bb3f622cb 100644 --- a/src/main/java/cc/ryanc/halo/service/TagService.java +++ b/src/main/java/cc/ryanc/halo/service/TagService.java @@ -1,9 +1,9 @@ package cc.ryanc.halo.service; import cc.ryanc.halo.model.domain.Tag; +import cc.ryanc.halo.service.base.CrudService; import java.util.List; -import java.util.Optional; /** *
@@ -13,38 +13,7 @@ import java.util.Optional;
  * @author : RYAN0UP
  * @date : 2018/1/12
  */
-public interface TagService {
-
-    /**
-     * 新增/修改标签
-     *
-     * @param tag tag
-     * @return Tag
-     */
-    Tag save(Tag tag);
-
-    /**
-     * 根据编号移除标签
-     *
-     * @param tagId tagId
-     * @return Tag
-     */
-    Tag remove(Long tagId);
-
-    /**
-     * 获取所有标签
-     *
-     * @return List
-     */
-    List findAll();
-
-    /**
-     * 根据编号查询标签
-     *
-     * @param tagId tagId
-     * @return Optional
-     */
-    Optional findByTagId(Long tagId);
+public interface TagService extends CrudService {
 
     /**
      * 根据标签路径查询
diff --git a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java
index 711beb20c..1a2c0b725 100644
--- a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java
+++ b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java
@@ -3,13 +3,12 @@ package cc.ryanc.halo.service.impl;
 import cc.ryanc.halo.model.domain.Tag;
 import cc.ryanc.halo.repository.TagRepository;
 import cc.ryanc.halo.service.TagService;
-import org.springframework.beans.factory.annotation.Autowired;
+import cc.ryanc.halo.service.base.AbstractCrudService;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 
 /**
  * 
@@ -20,12 +19,16 @@ import java.util.Optional;
  * @date : 2018/1/12
  */
 @Service
-public class TagServiceImpl implements TagService {
+public class TagServiceImpl extends AbstractCrudService implements TagService {
 
     private static final String POSTS_CACHE_NAME = "posts";
 
-    @Autowired
-    private TagRepository tagRepository;
+    private final TagRepository tagRepository;
+
+    public TagServiceImpl(TagRepository tagRepository) {
+        super(tagRepository);
+        this.tagRepository = tagRepository;
+    }
 
     /**
      * 新增/修改标签
@@ -35,8 +38,8 @@ public class TagServiceImpl implements TagService {
      */
     @Override
     @CacheEvict(value = POSTS_CACHE_NAME, allEntries = true, beforeInvocation = true)
-    public Tag save(Tag tag) {
-        return tagRepository.save(tag);
+    public Tag create(Tag tag) {
+        return super.create(tag);
     }
 
     /**
@@ -47,31 +50,8 @@ public class TagServiceImpl implements TagService {
      */
     @Override
     @CacheEvict(value = POSTS_CACHE_NAME, allEntries = true, beforeInvocation = true)
-    public Tag remove(Long tagId) {
-        final Optional tag = findByTagId(tagId);
-        tagRepository.delete(tag.get());
-        return tag.get();
-    }
-
-    /**
-     * 获取所有标签
-     *
-     * @return List
-     */
-    @Override
-    public List findAll() {
-        return tagRepository.findAll();
-    }
-
-    /**
-     * 根据编号查询标签
-     *
-     * @param tagId tagId
-     * @return Optional
-     */
-    @Override
-    public Optional findByTagId(Long tagId) {
-        return tagRepository.findById(tagId);
+    public Tag removeById(Long tagId) {
+        return super.removeById(tagId);
     }
 
     /**
@@ -115,7 +95,7 @@ public class TagServiceImpl implements TagService {
                 nt = new Tag();
                 nt.setTagName(tag);
                 nt.setTagUrl(tag);
-                tagsList.add(save(nt));
+                tagsList.add(create(nt));
             }
         }
         return tagsList;
diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java
index d59d217dc..0de1c3008 100755
--- a/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java
+++ b/src/main/java/cc/ryanc/halo/web/controller/admin/AdminController.java
@@ -306,7 +306,7 @@ public class AdminController extends BaseController {
                             tag = new Tag();
                             tag.setTagName(ele);
                             tag.setTagUrl(ele);
-                            tag = tagService.save(tag);
+                            tag = tagService.create(tag);
                         }
                         tags.add(tag);
                     } else if ("categories".equals(key)) {
diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java
index e4479561e..79f28fb7d 100755
--- a/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java
+++ b/src/main/java/cc/ryanc/halo/web/controller/admin/TagController.java
@@ -68,7 +68,7 @@ public class TagController {
                 return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.common.url-is-exists"));
             }
         }
-        tag = tagService.save(tag);
+        tag = tagService.create(tag);
         if (null == tag) {
             return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.common.save-failed"));
         }
@@ -84,7 +84,7 @@ public class TagController {
     @GetMapping(value = "/remove")
     public String removeTag(@RequestParam("tagId") Long tagId) {
         try {
-            tagService.remove(tagId);
+            tagService.removeById(tagId);
         } catch (Exception e) {
             log.error("Failed to delete tag: {}", e.getMessage());
         }
@@ -100,7 +100,7 @@ public class TagController {
      */
     @GetMapping(value = "/edit")
     public String toEditTag(Model model, @RequestParam("tagId") Long tagId) {
-        final Tag tag = tagService.findByTagId(tagId).orElse(new Tag());
+        final Tag tag = tagService.fetchById(tagId).orElse(new Tag());
         model.addAttribute("updateTag", tag);
         return "admin/admin_tag";
     }
diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java
index 8f20783d9..7d1b8c02a 100644
--- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java
+++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiTagController.java
@@ -49,7 +49,7 @@ public class ApiTagController {
      */
     @GetMapping
     public JsonResult tags() {
-        final List tags = tagService.findAll();
+        final List tags = tagService.listAll();
         if (null != tags && tags.size() > 0) {
             return new JsonResult(ResponseStatusEnum.SUCCESS.getCode(), ResponseStatusEnum.SUCCESS.getMsg(), tags);
         } else {