diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/BrowserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/BrowserController.java index ad8ac2422..d05a71338 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/BrowserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/BrowserController.java @@ -9,6 +9,7 @@ import com.ruoyi.bookmark.service.ISqMenuService; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.redis.RedisUtil; import com.ruoyi.common.utils.bookmarkhtml.Const; import com.ruoyi.common.utils.bookmarkhtml.HtmlName; import com.ruoyi.common.utils.bookmarkhtml.ImportHtml; @@ -50,7 +51,6 @@ public class BrowserController extends BaseController { private ISqBookmarkService iSqBookmarkService; - @RequestMapping("/import") @PreAuthorize("@ss.hasPermi('bookmark:bookmark:list')") public AjaxResult importCollect(@RequestParam("htmlFile") MultipartFile htmlFile){ @@ -58,52 +58,19 @@ public class BrowserController extends BaseController { SysUser sysUser=getAuthUser(); Long userID= sysUser.getUserId(); //防止重复上传 - - - + Long htmlFlag = iSqMenuService.noRepetition(Const.IMPORTHTML,userID,300L); + if(htmlFlag.intValue()!=0){ + return AjaxResult.success("导入操作频繁请"+htmlFlag.intValue()+"秒后再操作!"); + } try { + //解析HTML List list = ImportHtml.addMenuAndBookmark(htmlFile.getInputStream()); if(null == list || list.isEmpty()){ return AjaxResult.error("未获取到url连接,空书签文件"); } - //获取所有的 *目录*文件夹 - List 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 = iSqMenuService.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()); - sqBookmark.setUrls(ImportHtml.Urlutils(new URL(h.getUrl()))); - if(StringUtils.isBlank(h.getDescription())){ - sqBookmark.setDescription(h.getTitle()); - }else{ - sqBookmark.setDescription(h.getDescription()); - } - sqBookmark.setMenuId(Long.valueOf(h.getParentId())); - sqBookmark.setCreateTime(new Date()); - iSqBookmarkService.insertSqBookmark(sqBookmark); - } - } - + //处理导入的html数据 + iSqBookmarkService.addALLBookMarkByHtml(list,userID); }catch (SSLHandshakeException e){ logger.error("文章解析出错:",e); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bookmarkhtml/Const.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bookmarkhtml/Const.java index cbf16e4c5..601030c8c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/bookmarkhtml/Const.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bookmarkhtml/Const.java @@ -32,6 +32,8 @@ public class Const { public static String MenuIocURL= "https://up.raindrop.io/collection/templates/social-media-logos-6/47social.png"; //已修改父级id的书签 public static String BOOKMARK_STATE_FLAG= "666"; + //导入书签html功能 + public static String IMPORTHTML= "IMPORT_HTML"; diff --git a/ruoyi-ui/src/views/bookmark/common/ImportHtml.vue b/ruoyi-ui/src/views/bookmark/common/ImportHtml.vue index b43d5505d..639c21bc3 100644 --- a/ruoyi-ui/src/views/bookmark/common/ImportHtml.vue +++ b/ruoyi-ui/src/views/bookmark/common/ImportHtml.vue @@ -1,8 +1,6 @@