Redis实现接口防重复点击
This commit is contained in:
@ -2,6 +2,7 @@ package com.ruoyi.bookmark.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.bookmark.domain.SqBookmark;
|
||||
import com.ruoyi.common.utils.bookmarkhtml.HtmlName;
|
||||
|
||||
/**
|
||||
* 书签管理Service接口
|
||||
@ -111,4 +112,12 @@ public interface ISqBookmarkService
|
||||
* @return
|
||||
*/
|
||||
List<SqBookmark> selectByUrlUserID(String url, Long userId);
|
||||
|
||||
/**
|
||||
* 批量添加html导入的数据
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
void addALLBookMarkByHtml(List<HtmlName> list,Long userID);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.ruoyi.bookmark.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.bookmark.domain.SqMenu;
|
||||
import org.omg.CORBA.INTERNAL;
|
||||
|
||||
/**
|
||||
* 书签菜单Service接口
|
||||
@ -113,4 +114,15 @@ public interface ISqMenuService
|
||||
* @return
|
||||
*/
|
||||
public void addMenu(Long userID, String title, Long valueOf);
|
||||
|
||||
|
||||
/**
|
||||
*防止重复点击上传文件
|
||||
*
|
||||
* @param state 表示某个功能
|
||||
* @param userID 用户ID
|
||||
* @param time key过期时间(秒)
|
||||
* @return
|
||||
*/
|
||||
public Long noRepetition(String state, Long userID, Long time);
|
||||
}
|
||||
|
@ -1,7 +1,11 @@
|
||||
package com.ruoyi.bookmark.service.impl;
|
||||
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
@ -14,6 +18,10 @@ import com.ruoyi.bookmark.mapper.SqTagMapper;
|
||||
|
||||
import com.ruoyi.bookmark.service.ISqTagService;
|
||||
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.bookmarkhtml.Const;
|
||||
import com.ruoyi.common.utils.bookmarkhtml.HtmlName;
|
||||
import com.ruoyi.common.utils.bookmarkhtml.ImportHtml;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -303,5 +311,51 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
|
||||
return sqBookmarkMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addALLBookMarkByHtml(List<HtmlName> list,Long userID) {
|
||||
//获取所有的 *目录*文件夹
|
||||
List<HtmlName> listMenu= list.stream().filter(m-> m.getState().equals("0")).collect(Collectors.toList());
|
||||
//id排序 防止已添加的父id漏修改 id升序
|
||||
listMenu.sort(Comparator.comparing(HtmlName::getId));
|
||||
//1.添加目录
|
||||
for (HtmlName h : listMenu) {
|
||||
String id=h.getId();
|
||||
//添加 返回id
|
||||
SqMenu sqMenu = new SqMenu(userID,h.getTitle(),Long.valueOf(h.getParentId()), Const.MenuIocURL);
|
||||
int countId = sqMenuMapper.insertSqMenu(sqMenu);
|
||||
if(countId!=0){
|
||||
Long k=Long.valueOf(sqMenu.getMenuId().toString());
|
||||
//批量修改对应的父目录id
|
||||
listMenu = ImportHtml.listFilter(listMenu,k,id);
|
||||
//批量修改对应的书签id
|
||||
list = ImportHtml.listFilter(list,k,id);
|
||||
}
|
||||
}
|
||||
//2.添加书签
|
||||
for (HtmlName h : list) {
|
||||
if (!h.getState().equals("0")&&h.getState().equals(Const.BOOKMARK_STATE_FLAG)) {
|
||||
SqBookmark sqBookmark =new SqBookmark();
|
||||
sqBookmark.setUserid(userID);
|
||||
sqBookmark.setTitle(h.getTitle());
|
||||
sqBookmark.setUrl(h.getUrl());
|
||||
try {
|
||||
sqBookmark.setUrls(ImportHtml.Urlutils(new URL(h.getUrl())));
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
logger.info("导入书签,获取host出错!");
|
||||
}
|
||||
if(StringUtils.isBlank(h.getDescription())){
|
||||
sqBookmark.setDescription(h.getTitle());
|
||||
}else{
|
||||
sqBookmark.setDescription(h.getDescription());
|
||||
}
|
||||
sqBookmark.setMenuId(Long.valueOf(h.getParentId()));
|
||||
sqBookmark.setCreateTime(new Date());
|
||||
sqBookmarkMapper.insertSqBookmark(sqBookmark);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,9 @@ package com.ruoyi.bookmark.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.ruoyi.common.core.redis.RedisUtil;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -20,6 +23,8 @@ public class SqMenuServiceImpl implements ISqMenuService
|
||||
{
|
||||
@Autowired
|
||||
private SqMenuMapper sqMenuMapper;
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
/**
|
||||
* 查询 目录菜单的 所有父级ID
|
||||
@ -163,6 +168,26 @@ public class SqMenuServiceImpl implements ISqMenuService
|
||||
sqMenuMapper.addMenu(userID,title,parentId);
|
||||
}
|
||||
|
||||
/**
|
||||
*防止重复点击上传文件
|
||||
*
|
||||
* @param state 表示某个功能
|
||||
* @param userID 用户ID
|
||||
* @param time key过期时间 (秒)
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Long noRepetition(String state, Long userID, Long time) {
|
||||
String key = "BookMark:"+state+":"+userID.toString();
|
||||
String str = redisUtil.get(key);
|
||||
if (str==null){
|
||||
redisUtil.setEx(key,"0",time,TimeUnit.SECONDS);
|
||||
return 0L;
|
||||
}else{
|
||||
return redisUtil.getExpire(key);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量减少目录下书签数量
|
||||
|
Reference in New Issue
Block a user