编辑书签标签代码优化

This commit is contained in:
WangHao
2020-09-06 17:01:46 +08:00
parent 8482e7bc9b
commit 29e4c15276
5 changed files with 163 additions and 114 deletions

View File

@ -143,6 +143,12 @@
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.4.1</version> <version>5.4.1</version>
</dependency> </dependency>
<!--beanutils JAVA工具类工具包-->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
</dependencies> </dependencies>

View File

@ -132,6 +132,8 @@
:disable-transitions="false" :disable-transitions="false"
@close="taghandleClose(tag.tagId)" @close="taghandleClose(tag.tagId)"
v-if="tag.name!='TAGDELETE'" v-if="tag.name!='TAGDELETE'"
> >
{{tag.name}} {{tag.name}}
</el-tag> </el-tag>

View File

@ -1,19 +1,21 @@
package com.ruoyi.bookmark.service; package com.ruoyi.bookmark.service;
import java.util.List; import java.util.List;
import java.util.Map;
import com.ruoyi.bookmark.domain.SqTag; import com.ruoyi.bookmark.domain.SqTag;
/** /**
* 书签_标签Service接口 * 书签_标签Service接口
* *
* @author ruoyi * @author ruoyi
* @date 2020-09-04 * @date 2020-09-04
*/ */
public interface ISqTagService public interface ISqTagService
{ {
/** /**
* 查询书签_标签 * 查询书签_标签
* *
* @param id 书签_标签ID * @param id 书签_标签ID
* @return 书签_标签 * @return 书签_标签
*/ */
@ -21,7 +23,7 @@ public interface ISqTagService
/** /**
* 查询书签_标签列表 * 查询书签_标签列表
* *
* @param sqTag 书签_标签 * @param sqTag 书签_标签
* @return 书签_标签集合 * @return 书签_标签集合
*/ */
@ -29,7 +31,7 @@ public interface ISqTagService
/** /**
* 新增书签_标签 * 新增书签_标签
* *
* @param sqTag 书签_标签 * @param sqTag 书签_标签
* @return 结果 * @return 结果
*/ */
@ -37,7 +39,7 @@ public interface ISqTagService
/** /**
* 修改书签_标签 * 修改书签_标签
* *
* @param sqTag 书签_标签 * @param sqTag 书签_标签
* @return 结果 * @return 结果
*/ */
@ -45,7 +47,7 @@ public interface ISqTagService
/** /**
* 批量删除书签_标签 * 批量删除书签_标签
* *
* @param ids 需要删除的书签_标签ID * @param ids 需要删除的书签_标签ID
* @return 结果 * @return 结果
*/ */
@ -53,9 +55,16 @@ public interface ISqTagService
/** /**
* 删除书签_标签信息 * 删除书签_标签信息
* *
* @param id 书签_标签ID * @param id 书签_标签ID
* @return 结果 * @return 结果
*/ */
public int deleteSqTagById(Long id); public int deleteSqTagById(Long id);
/**
* @auther: Wang
* @date: 2020/09/06 15:06
* 功能描述:修改书签 标签检测传入的标签是否 需要添加
*/
public Map<String,Object> addtag(String tagName, Long userId);
} }

View File

@ -2,9 +2,7 @@ package com.ruoyi.bookmark.service.impl;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Map;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.ruoyi.bookmark.domain.SqBookmarkTag; 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.SqBookmarkTagMapper;
import com.ruoyi.bookmark.mapper.SqTagMapper; import com.ruoyi.bookmark.mapper.SqTagMapper;
import com.ruoyi.bookmark.mapper.SqUserTagMapper; import com.ruoyi.bookmark.mapper.SqUserTagMapper;
import com.ruoyi.bookmark.service.ISqTagService;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.sun.org.apache.bcel.internal.generic.NEW; import com.sun.org.apache.bcel.internal.generic.NEW;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -49,6 +49,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
@Autowired @Autowired
private SqUserTagMapper sqUserTagMapper; private SqUserTagMapper sqUserTagMapper;
@Autowired
private ISqTagService iSqTagService;
@Override @Override
public List<SqBookmark> selectByID(Long userID) { public List<SqBookmark> selectByID(Long userID) {
@ -101,6 +103,13 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
@Override @Override
public int insertSqBookmark(SqBookmark sqBookmark) public int insertSqBookmark(SqBookmark sqBookmark)
{ {
sqBookmark.setCreateTime(DateUtils.getNowDate()); sqBookmark.setCreateTime(DateUtils.getNowDate());
return sqBookmarkMapper.insertSqBookmark(sqBookmark); return sqBookmarkMapper.insertSqBookmark(sqBookmark);
} }
@ -112,116 +121,64 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateSqBookmark(SqBookmark sqBookmark) public int updateSqBookmark(SqBookmark sqBookmark) {
{
//删除书签 现在的标签
SqBookmarkTag sqBookmarkTag=new SqBookmarkTag();
sqBookmarkTag.setBookmarkId(sqBookmark.getBookmarkId());
sqBookmarkTagMapper.delete(sqBookmarkTag);
//删除的书签ID //删除的书签ID
String deletetag=""; String deletetag = "";
//新增的书签ID //新增的书签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(); SqBookmarkTag bookamrktag = new SqBookmarkTag();
int i=0; int i = 0;
for (Map<String,Object> map:listmap) { for (Map<String, Object> map : listmap) {
for (Map.Entry<String, Object> entry : map.entrySet()){ for (Map.Entry<String, Object> entry : map.entrySet()) {
//新增书签
if(Integer.parseInt(String.valueOf(map.get("tagId")))<0){ if (Integer.parseInt(String.valueOf(map.get("tagId"))) < 0) {
//创建新的标签 返回id给map 并且添加用户的个人书签记录 Map<String, Object> tagmap = iSqTagService.addtag(String.valueOf(map.get("name")), sqBookmark.getUserid());
//1.新增标签 for (Map.Entry<String, Object> tag : tagmap.entrySet()) {
//1.1查询书签是否存在 addtag += tagmap.get("tagId").toString();
SqTag sqTag=new SqTag(); map.put("tagId", tagmap.get("tagId"));
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);
}
} }
if (!String.valueOf(map.get("name")).equals("TAGDELETE")){ //删除书签
//给文章添加书签 if (!String.valueOf(map.get("name")).equals("TAGDELETE")) {
bookamrktag.setBookmarkId(sqBookmark.getBookmarkId()); bookmarkTag.put(Long.valueOf(map.get("tagId").toString()),sqBookmark.getBookmarkId());
bookamrktag.setTagId(Long.valueOf(map.get("tagId").toString())); } else {
sqBookmarkTagMapper.insertSqBookmarkTag(bookamrktag); deletetag += map.get("tagId").toString() + ",";
}else{
deletetag += map.get("tagId").toString()+",";
} }
break; 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 //个人标签引用数量 批量-1
String[] tagreduce=deletetag.split(","); if (!deletetag.equals("") && deletetag.length()>0) {
deletetag=deletetag.substring(0,deletetag.length()-1);
if (tagreduce!=null&&tagreduce.length>0){ String[] tagreduce = deletetag.split(",");
Long[] num = new Long[tagreduce.length]; Long[] num = (Long[]) ConvertUtils.convert(tagreduce,Long.class);
for (int idx = 0; idx < tagreduce.length; idx++) { sqUserTagMapper.updateCountReduce(num, sqBookmark.getUserid());
if(!tagreduce[idx].equals("")&&tagreduce[idx]!=null){
num[idx] = Long.parseLong(tagreduce[idx]);
}
} }
sqUserTagMapper.updateCountReduce(num,sqBookmark.getUserid());
}
//个人标签引用数量 批量+1 //个人标签引用数量 批量+1
String[] tagadd=addtag.split(","); if (!addtag.equals("") && addtag.length()>0) {
if (tagadd!=null&&tagadd.length>0) { addtag=addtag.substring(0,addtag.length()-1);
Long[] add = new Long[tagadd.length]; String[] add = addtag.split(",");
for (int idx = 0; idx < tagadd.length; idx++) { Long[] num = (Long[]) ConvertUtils.convert(add,Long.class);
if(!tagadd[idx].equals("")&&tagadd[idx]!=null) { sqUserTagMapper.updateCountReduce(num, sqBookmark.getUserid());
add[idx] = Long.parseLong(tagadd[idx]);
}
}
sqUserTagMapper.updateCountAdd(add, sqBookmark.getUserid());
} }
return sqBookmarkMapper.updateSqBookmark(sqBookmark); return sqBookmarkMapper.updateSqBookmark(sqBookmark);
} }

View File

@ -1,7 +1,17 @@
package com.ruoyi.bookmark.service.impl; 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.List;
import java.util.Map;
import com.ruoyi.bookmark.domain.SqUserTag;
import com.ruoyi.bookmark.mapper.SqUserTagMapper;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.bookmark.mapper.SqTagMapper; import com.ruoyi.bookmark.mapper.SqTagMapper;
@ -10,19 +20,22 @@ import com.ruoyi.bookmark.service.ISqTagService;
/** /**
* 书签_标签Service业务层处理 * 书签_标签Service业务层处理
* *
* @author ruoyi * @author ruoyi
* @date 2020-09-04 * @date 2020-09-04
*/ */
@Service @Service
public class SqTagServiceImpl implements ISqTagService public class SqTagServiceImpl implements ISqTagService
{ {
public static Logger logger = LoggerFactory.getLogger(SqTagServiceImpl.class);
@Autowired @Autowired
private SqTagMapper sqTagMapper; private SqTagMapper sqTagMapper;
@Autowired
private SqUserTagMapper sqUserTagMapper;
/** /**
* 查询书签_标签 * 查询书签_标签
* *
* @param id 书签_标签ID * @param id 书签_标签ID
* @return 书签_标签 * @return 书签_标签
*/ */
@ -34,7 +47,7 @@ public class SqTagServiceImpl implements ISqTagService
/** /**
* 查询书签_标签列表 * 查询书签_标签列表
* *
* @param sqTag 书签_标签 * @param sqTag 书签_标签
* @return 书签_标签 * @return 书签_标签
*/ */
@ -46,7 +59,7 @@ public class SqTagServiceImpl implements ISqTagService
/** /**
* 新增书签_标签 * 新增书签_标签
* *
* @param sqTag 书签_标签 * @param sqTag 书签_标签
* @return 结果 * @return 结果
*/ */
@ -59,7 +72,7 @@ public class SqTagServiceImpl implements ISqTagService
/** /**
* 修改书签_标签 * 修改书签_标签
* *
* @param sqTag 书签_标签 * @param sqTag 书签_标签
* @return 结果 * @return 结果
*/ */
@ -71,7 +84,7 @@ public class SqTagServiceImpl implements ISqTagService
/** /**
* 批量删除书签_标签 * 批量删除书签_标签
* *
* @param ids 需要删除的书签_标签ID * @param ids 需要删除的书签_标签ID
* @return 结果 * @return 结果
*/ */
@ -83,7 +96,7 @@ public class SqTagServiceImpl implements ISqTagService
/** /**
* 删除书签_标签信息 * 删除书签_标签信息
* *
* @param id 书签_标签ID * @param id 书签_标签ID
* @return 结果 * @return 结果
*/ */
@ -92,4 +105,66 @@ public class SqTagServiceImpl implements ISqTagService
{ {
return sqTagMapper.deleteSqTagById(id); 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;
}
} }