编辑书签标签代码优化
This commit is contained in:
		| @@ -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); | ||||
| } | ||||
|   | ||||
| @@ -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); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user