From 907f69197d7b0b90ddbebae126e0545fa05ae991 Mon Sep 17 00:00:00 2001 From: James <1146556298@qq.com> Date: Tue, 27 Mar 2018 19:56:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20tag=20=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/zbl/fullstack/mapper/TagMapper.java | 6 ++++ .../service/impl/AdminBlogServiceImpl.java | 31 +++++++++++-------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/main/java/me/zbl/fullstack/mapper/TagMapper.java b/src/main/java/me/zbl/fullstack/mapper/TagMapper.java index 006540d..b36bd44 100644 --- a/src/main/java/me/zbl/fullstack/mapper/TagMapper.java +++ b/src/main/java/me/zbl/fullstack/mapper/TagMapper.java @@ -47,4 +47,10 @@ public interface TagMapper extends IMyMapper { "GROUP BY tag_article.tag_id" }) List selectAllTagView(); + + @Select({ + "SELECT id,", + "`name` FROM tag WHERE `name` = #{tagName}" + }) + Tag selectTagByName(String tagName); } \ No newline at end of file diff --git a/src/main/java/me/zbl/fullstack/service/impl/AdminBlogServiceImpl.java b/src/main/java/me/zbl/fullstack/service/impl/AdminBlogServiceImpl.java index a7651d1..bb6a39e 100644 --- a/src/main/java/me/zbl/fullstack/service/impl/AdminBlogServiceImpl.java +++ b/src/main/java/me/zbl/fullstack/service/impl/AdminBlogServiceImpl.java @@ -44,19 +44,24 @@ public void blogAdd(BlogAddForm form) { Integer articleId = article.getId(); // 处理 tags String[] tags = form.getRawTags().split(","); - List tagIds = new ArrayList<>(); - for (int i = 0; i < tags.length; i++) { - Tag tag = new Tag(); - tag.setName(tags[i]); - mTagMapper.insertSelective(tag); - Integer tagId = tag.getId(); - tagIds.add(tagId); - } - for (Integer tagId : tagIds) { - TagArticle tagArticle = new TagArticle(); - tagArticle.setTagId(tagId); - tagArticle.setArticleId(articleId); - mTagArticleMapper.insertSelective(tagArticle); + for (String item : tags) { + Tag expected = mTagMapper.selectTagByName(item); + if (null != expected) { + Integer id = expected.getId(); + TagArticle tagArticle = new TagArticle(); + tagArticle.setTagId(id); + tagArticle.setArticleId(articleId); + mTagArticleMapper.insertSelective(tagArticle); + } else { + Tag tag = new Tag(); + tag.setName(item); + mTagMapper.insertSelective(tag); + Integer tagId = tag.getId(); + TagArticle tagArticle = new TagArticle(); + tagArticle.setTagId(tagId); + tagArticle.setArticleId(articleId); + mTagArticleMapper.insertSelective(tagArticle); + } } }