From 29e4c152766074231b530bc7c51a2545261b0df8 Mon Sep 17 00:00:00 2001 From: WangHao <43278047@qq.com> Date: Sun, 6 Sep 2020 17:01:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E4=B9=A6=E7=AD=BE=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/pom.xml | 6 + ruoyi-ui/src/views/bookmark/content/index.vue | 2 + .../ruoyi/bookmark/service/ISqTagService.java | 25 ++- .../service/impl/SqBookmarkServiceImpl.java | 153 +++++++----------- .../service/impl/SqTagServiceImpl.java | 91 ++++++++++- 5 files changed, 163 insertions(+), 114 deletions(-) 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 @@ hutool-all 5.4.1 + + + commons-beanutils + commons-beanutils + 1.9.4 + 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}} 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 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 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> listmap=sqBookmark.getSqTags(); + List> listmap = sqBookmark.getSqTags(); //给文章添加标签 - Long[] tags= new Long[listmap.size()]; - + HashMap bookmarkTag=new HashMap(); //文章添加书签 - SqBookmarkTag bookamrktag=new SqBookmarkTag(); - int i=0; - for (Map map:listmap) { - for (Map.Entry 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 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 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 map : listmap) { + for (Map.Entry entry : map.entrySet()) { + //新增书签 + if (Integer.parseInt(String.valueOf(map.get("tagId"))) < 0) { + Map tagmap = iSqTagService.addtag(String.valueOf(map.get("name")), sqBookmark.getUserid()); + for (Map.Entry 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 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 addtag(String tagName,Long userId){ + Map map=new HashMap<>(); + + //创建新的标签 返回id给map 并且添加用户的个人书签记录 + //1.新增标签 + //1.1查询书签是否存在 + SqTag sqTag=new SqTag(); + SqUserTag sqUserTag =new SqUserTag(); + sqTag.setName(tagName); + List 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 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; + + } + + + + }