diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 44de2ecbc..c49fe967d 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -143,6 +143,12 @@
             <artifactId>hutool-all</artifactId>
             <version>5.4.1</version>
         </dependency>
+        <!--beanutils JAVA工具类工具包-->
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+            <version>1.9.4</version>
+        </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-ui/src/views/bookmark/content/index.vue b/ruoyi-ui/src/views/bookmark/content/index.vue
index c0bc239b0..257d452cf 100644
--- a/ruoyi-ui/src/views/bookmark/content/index.vue
+++ b/ruoyi-ui/src/views/bookmark/content/index.vue
@@ -132,6 +132,8 @@
             :disable-transitions="false"
              @close="taghandleClose(tag.tagId)"
             v-if="tag.name!='TAGDELETE'"
+
+
           >
             {{tag.name}}
           </el-tag>
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqTagService.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqTagService.java
index 2998b2425..cd67a8426 100644
--- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqTagService.java
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqTagService.java
@@ -1,19 +1,21 @@
 package com.ruoyi.bookmark.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.ruoyi.bookmark.domain.SqTag;
 
 /**
  * 书签_标签Service接口
- * 
+ *
  * @author ruoyi
  * @date 2020-09-04
  */
-public interface ISqTagService 
+public interface ISqTagService
 {
     /**
      * 查询书签_标签
-     * 
+     *
      * @param id 书签_标签ID
      * @return 书签_标签
      */
@@ -21,7 +23,7 @@ public interface ISqTagService
 
     /**
      * 查询书签_标签列表
-     * 
+     *
      * @param sqTag 书签_标签
      * @return 书签_标签集合
      */
@@ -29,7 +31,7 @@ public interface ISqTagService
 
     /**
      * 新增书签_标签
-     * 
+     *
      * @param sqTag 书签_标签
      * @return 结果
      */
@@ -37,7 +39,7 @@ public interface ISqTagService
 
     /**
      * 修改书签_标签
-     * 
+     *
      * @param sqTag 书签_标签
      * @return 结果
      */
@@ -45,7 +47,7 @@ public interface ISqTagService
 
     /**
      * 批量删除书签_标签
-     * 
+     *
      * @param ids 需要删除的书签_标签ID
      * @return 结果
      */
@@ -53,9 +55,16 @@ public interface ISqTagService
 
     /**
      * 删除书签_标签信息
-     * 
+     *
      * @param id 书签_标签ID
      * @return 结果
      */
     public int deleteSqTagById(Long id);
+
+    /**
+     * @auther: Wang
+     * @date: 2020/09/06 15:06
+     * 功能描述:修改书签 标签检测传入的标签是否 需要添加
+     */
+    public Map<String,Object> addtag(String tagName, Long userId);
 }
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java
index 036c98f4b..2f02c9636 100644
--- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqBookmarkServiceImpl.java
@@ -2,9 +2,7 @@ package com.ruoyi.bookmark.service.impl;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import cn.hutool.core.date.DateUtil;
 import com.ruoyi.bookmark.domain.SqBookmarkTag;
@@ -13,9 +11,11 @@ import com.ruoyi.bookmark.domain.SqUserTag;
 import com.ruoyi.bookmark.mapper.SqBookmarkTagMapper;
 import com.ruoyi.bookmark.mapper.SqTagMapper;
 import com.ruoyi.bookmark.mapper.SqUserTagMapper;
+import com.ruoyi.bookmark.service.ISqTagService;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.sun.org.apache.bcel.internal.generic.NEW;
+import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.ibatis.annotations.Param;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,6 +49,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
 
     @Autowired
     private SqUserTagMapper sqUserTagMapper;
+    @Autowired
+    private ISqTagService iSqTagService;
 
     @Override
     public List<SqBookmark> selectByID(Long userID) {
@@ -101,6 +103,13 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
     @Override
     public int insertSqBookmark(SqBookmark sqBookmark)
     {
+
+
+
+
+
+
+
         sqBookmark.setCreateTime(DateUtils.getNowDate());
         return sqBookmarkMapper.insertSqBookmark(sqBookmark);
     }
@@ -112,116 +121,64 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
      * @return 结果
      */
     @Override
-    public int updateSqBookmark(SqBookmark sqBookmark)
-    {
-        //删除书签 现在的标签
-        SqBookmarkTag sqBookmarkTag=new SqBookmarkTag();
-        sqBookmarkTag.setBookmarkId(sqBookmark.getBookmarkId());
-        sqBookmarkTagMapper.delete(sqBookmarkTag);
+    public int updateSqBookmark(SqBookmark sqBookmark) {
         //删除的书签ID
-        String deletetag="";
+        String deletetag = "";
         //新增的书签ID
-        String addtag="";
+        String addtag = "";
         //传入的标签
-        List<Map<String,Object>> listmap=sqBookmark.getSqTags();
+        List<Map<String, Object>> listmap = sqBookmark.getSqTags();
         //给文章添加标签
-        Long[] tags= new Long[listmap.size()];
-
+        HashMap<Long,Long> bookmarkTag=new HashMap<Long,Long>();
         //文章添加书签
-        SqBookmarkTag bookamrktag=new SqBookmarkTag();
-        int i=0;
-        for (Map<String,Object> map:listmap) {
-            for (Map.Entry<String, Object> entry : map.entrySet()){
-
-                if(Integer.parseInt(String.valueOf(map.get("tagId")))<0){
-                   //创建新的标签 返回id给map    并且添加用户的个人书签记录
-                    //1.新增标签
-                        //1.1查询书签是否存在
-                        SqTag sqTag=new SqTag();
-                        SqUserTag sqUserTag =new SqUserTag();
-                        sqTag.setName(String.valueOf(map.get("name")));
-                        List<SqTag> taglist=sqTagMapper.selectSqTagList(sqTag);
-                        //存在返回ID
-                        if (taglist!=null&&!taglist.isEmpty()){
-                            map.put("tagId",taglist.get(0).getId());
-                            logger.debug("传入的新标签 tagid="+taglist.get(0).getId());
-                            //添加到用戶个人书签里面去
-                            //1.用户是否已经有这个书签记录了
-                            sqUserTag.setUserId(sqBookmark.getUserid());
-                            sqUserTag.setTagId(taglist.get(0).getId());
-
-                          List<SqUserTag> sqUserTags = sqUserTagMapper.selectSqUserTagList(sqUserTag);
-
-                          if (sqUserTags!=null&&!sqUserTags.isEmpty()){
-                              addtag +=sqUserTags.get(0).getTagId().toString()+",";
-                          }else {
-                              sqUserTag.setIcount(1);
-                              sqUserTag.setIorder(1);
-                              sqUserTagMapper.insertSqUserTag(sqUserTag);
-                          }
-
-                        }else {
-                            //不存在 >>创建 返回ID
-                            sqTag.setUserId(sqBookmark.getUserid());
-                            sqTag.setTagType("P");
-                            sqTag.setIcount(1);
-                            sqTag.setStatus(0);
-                            try {
-                                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
-                                Date dateStart = df.parse(df.format(new Date()));
-                                sqTag.setCreateTime(dateStart);
-                            } catch (ParseException e) {
-                                e.printStackTrace();
-                            }
-
-                            int tagid=sqTagMapper.insertUseGeneratedKeys(sqTag);
-                            logger.debug("传入的新标签 tagid="+sqTag.getId());
-                            map.put("tagId",sqTag.getId());
-                            //添加到用戶个人书签里面去
-                            sqUserTag.setUserId(sqBookmark.getUserid());
-                            sqUserTag.setTagId(Long.valueOf(sqTag.getId()));
-                            sqUserTag.setIcount(1);
-                            sqUserTag.setIorder(1);
-                            sqUserTagMapper.insertSqUserTag(sqUserTag);
-                        }
-
+        SqBookmarkTag bookamrktag = new SqBookmarkTag();
+        int i = 0;
+        for (Map<String, Object> map : listmap) {
+            for (Map.Entry<String, Object> entry : map.entrySet()) {
+                //新增书签
+                if (Integer.parseInt(String.valueOf(map.get("tagId"))) < 0) {
+                    Map<String, Object> tagmap = iSqTagService.addtag(String.valueOf(map.get("name")), sqBookmark.getUserid());
+                    for (Map.Entry<String, Object> tag : tagmap.entrySet()) {
+                        addtag += tagmap.get("tagId").toString();
+                        map.put("tagId", tagmap.get("tagId"));
+                    }
                 }
-                if (!String.valueOf(map.get("name")).equals("TAGDELETE")){
-                    //给文章添加书签
-                    bookamrktag.setBookmarkId(sqBookmark.getBookmarkId());
-                    bookamrktag.setTagId(Long.valueOf(map.get("tagId").toString()));
-                    sqBookmarkTagMapper.insertSqBookmarkTag(bookamrktag);
-                }else{
-                    deletetag += map.get("tagId").toString()+",";
+                //删除书签
+                if (!String.valueOf(map.get("name")).equals("TAGDELETE")) {
+                    bookmarkTag.put(Long.valueOf(map.get("tagId").toString()),sqBookmark.getBookmarkId());
+                } else {
+                    deletetag += map.get("tagId").toString() + ",";
                 }
                 break;
             }
         }
+        //删除书签 现在的所有标签
+        SqBookmarkTag sqBookmarkTag = new SqBookmarkTag();
+        sqBookmarkTag.setBookmarkId(sqBookmark.getBookmarkId());
+        sqBookmarkTagMapper.delete(sqBookmarkTag);
+
+        //给文章添加书签
+        for (Map.Entry<Long,Long> tag:bookmarkTag.entrySet()){
+            bookamrktag.setBookmarkId(tag.getValue());
+            bookamrktag.setTagId(tag.getKey());
+            sqBookmarkTagMapper.insertSqBookmarkTag(bookamrktag);
+        }
 
         //个人标签引用数量 批量-1
-       String[] tagreduce=deletetag.split(",");
-
-        if (tagreduce!=null&&tagreduce.length>0){
-        Long[] num = new Long[tagreduce.length];
-        for (int idx = 0; idx < tagreduce.length; idx++) {
-            if(!tagreduce[idx].equals("")&&tagreduce[idx]!=null){
-            num[idx] = Long.parseLong(tagreduce[idx]);
-            }
+        if (!deletetag.equals("") && deletetag.length()>0) {
+           deletetag=deletetag.substring(0,deletetag.length()-1);
+           String[] tagreduce = deletetag.split(",");
+           Long[] num = (Long[]) ConvertUtils.convert(tagreduce,Long.class);
+           sqUserTagMapper.updateCountReduce(num, sqBookmark.getUserid());
         }
-        sqUserTagMapper.updateCountReduce(num,sqBookmark.getUserid());
-        }
-
         //个人标签引用数量 批量+1
-        String[] tagadd=addtag.split(",");
-        if (tagadd!=null&&tagadd.length>0) {
-            Long[] add = new Long[tagadd.length];
-            for (int idx = 0; idx < tagadd.length; idx++) {
-                if(!tagadd[idx].equals("")&&tagadd[idx]!=null) {
-                    add[idx] = Long.parseLong(tagadd[idx]);
-                }
-            }
-            sqUserTagMapper.updateCountAdd(add, sqBookmark.getUserid());
+        if (!addtag.equals("") && addtag.length()>0) {
+            addtag=addtag.substring(0,addtag.length()-1);
+            String[] add = addtag.split(",");
+            Long[] num = (Long[]) ConvertUtils.convert(add,Long.class);
+            sqUserTagMapper.updateCountReduce(num, sqBookmark.getUserid());
         }
+
         return sqBookmarkMapper.updateSqBookmark(sqBookmark);
     }
 
diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqTagServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqTagServiceImpl.java
index 77478d842..3533c9951 100644
--- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqTagServiceImpl.java
+++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqTagServiceImpl.java
@@ -1,7 +1,17 @@
 package com.ruoyi.bookmark.service.impl;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.bookmark.domain.SqUserTag;
+import com.ruoyi.bookmark.mapper.SqUserTagMapper;
 import com.ruoyi.common.utils.DateUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.bookmark.mapper.SqTagMapper;
@@ -10,19 +20,22 @@ import com.ruoyi.bookmark.service.ISqTagService;
 
 /**
  * 书签_标签Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2020-09-04
  */
 @Service
-public class SqTagServiceImpl implements ISqTagService 
+public class SqTagServiceImpl implements ISqTagService
 {
+    public static Logger logger =  LoggerFactory.getLogger(SqTagServiceImpl.class);
     @Autowired
     private SqTagMapper sqTagMapper;
+    @Autowired
+    private SqUserTagMapper sqUserTagMapper;
 
     /**
      * 查询书签_标签
-     * 
+     *
      * @param id 书签_标签ID
      * @return 书签_标签
      */
@@ -34,7 +47,7 @@ public class SqTagServiceImpl implements ISqTagService
 
     /**
      * 查询书签_标签列表
-     * 
+     *
      * @param sqTag 书签_标签
      * @return 书签_标签
      */
@@ -46,7 +59,7 @@ public class SqTagServiceImpl implements ISqTagService
 
     /**
      * 新增书签_标签
-     * 
+     *
      * @param sqTag 书签_标签
      * @return 结果
      */
@@ -59,7 +72,7 @@ public class SqTagServiceImpl implements ISqTagService
 
     /**
      * 修改书签_标签
-     * 
+     *
      * @param sqTag 书签_标签
      * @return 结果
      */
@@ -71,7 +84,7 @@ public class SqTagServiceImpl implements ISqTagService
 
     /**
      * 批量删除书签_标签
-     * 
+     *
      * @param ids 需要删除的书签_标签ID
      * @return 结果
      */
@@ -83,7 +96,7 @@ public class SqTagServiceImpl implements ISqTagService
 
     /**
      * 删除书签_标签信息
-     * 
+     *
      * @param id 书签_标签ID
      * @return 结果
      */
@@ -92,4 +105,66 @@ public class SqTagServiceImpl implements ISqTagService
     {
         return sqTagMapper.deleteSqTagById(id);
     }
+
+
+    /**
+     * @auther: Wang
+     * @date: 2020/09/06 15:06
+     * 功能描述:修改书签 标签 检测传入的标签是否 需要添加
+     */
+
+    @Override
+    public Map<String,Object> addtag(String tagName,Long userId){
+        Map<String,Object> map=new HashMap<>();
+
+        //创建新的标签 返回id给map    并且添加用户的个人书签记录
+        //1.新增标签
+        //1.1查询书签是否存在
+        SqTag sqTag=new SqTag();
+        SqUserTag sqUserTag =new SqUserTag();
+        sqTag.setName(tagName);
+        List<SqTag> taglist=sqTagMapper.selectSqTagList(sqTag);
+        //存在返回ID
+        if (taglist!=null&&!taglist.isEmpty()){
+            map.put("tagId",taglist.get(0).getId());
+            logger.debug("传入的新标签 tagid="+taglist.get(0).getId());
+            //添加到用戶个人书签里面去
+            //1.用户是否已经有这个书签记录了
+            sqUserTag.setUserId(userId);
+            sqUserTag.setTagId(taglist.get(0).getId());
+
+            List<SqUserTag> sqUserTags = sqUserTagMapper.selectSqUserTagList(sqUserTag);
+
+            if (sqUserTags!=null&&!sqUserTags.isEmpty()){
+                map.put("tagId",sqUserTags.get(0).getTagId().toString());
+            }else {
+                sqUserTag.setIcount(1);
+                sqUserTag.setIorder(1);
+                sqUserTagMapper.insertSqUserTag(sqUserTag);
+            }
+
+        }else {
+            //不存在 >>创建 返回ID
+            sqTag.setUserId(userId);
+            sqTag.setTagType("P");
+            sqTag.setIcount(1);
+            sqTag.setStatus(0);
+            sqTag.setCreateTime(DateUtils.getNowDate());
+            sqTagMapper.insertUseGeneratedKeys(sqTag);
+            logger.debug("传入的新标签 tagid="+sqTag.getId());
+            map.put("tagId",sqTag.getId());
+            //添加到用戶个人书签里面去
+            sqUserTag.setUserId(userId);
+            sqUserTag.setTagId(Long.valueOf(sqTag.getId()));
+            sqUserTag.setIcount(1);
+            sqUserTag.setIorder(1);
+            sqUserTagMapper.insertSqUserTag(sqUserTag);
+        }
+        return map;
+
+    }
+
+
+
+
 }