导入浏览器书签
This commit is contained in:
@ -9,6 +9,8 @@ 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.utils.bookmarkhtml.Const;
|
||||
import com.ruoyi.common.utils.bookmarkhtml.HtmlName;
|
||||
import com.ruoyi.common.utils.bookmarkhtml.ImportHtml;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.jsoup.HttpStatusException;
|
||||
@ -23,9 +25,12 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.net.ssl.SSLHandshakeException;
|
||||
import java.net.URL;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@ -50,33 +55,54 @@ public class BrowserController extends BaseController {
|
||||
@PreAuthorize("@ss.hasPermi('bookmark:bookmark:list')")
|
||||
public AjaxResult importCollect(@RequestParam("htmlFile") MultipartFile htmlFile){
|
||||
logger.debug("开始上传状态是:");
|
||||
|
||||
SysUser sysUser=getAuthUser();
|
||||
Long userID= sysUser.getUserId();
|
||||
//防止重复上传
|
||||
|
||||
|
||||
|
||||
|
||||
try {
|
||||
Map<String, Map<String, String>> map = ImportHtml.parseHtml(htmlFile.getInputStream());
|
||||
// Map<String, List<Map>> map = ImportHtml.importHtmlMore(htmlFile.getInputStream());
|
||||
if(null == map || map.isEmpty()){
|
||||
logger.info("未获取到url连接");
|
||||
return AjaxResult.error("未获取到url连接,空书签");
|
||||
List<HtmlName> list = ImportHtml.addMenuAndBookmark(htmlFile.getInputStream());
|
||||
if(null == list || list.isEmpty()){
|
||||
return AjaxResult.error("未获取到url连接,空书签文件");
|
||||
}
|
||||
//获取所有的 *目录*文件夹
|
||||
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 = 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);
|
||||
}
|
||||
|
||||
|
||||
for (Entry<String, Map<String, String>> entry : map.entrySet()) {
|
||||
String favoritesName = entry.getKey();
|
||||
//添加目录
|
||||
SqMenu sqMenu=new SqMenu();
|
||||
sqMenu.setUserId(userID);
|
||||
sqMenu.setCreateTime(new Date());
|
||||
sqMenu.setMenuName(favoritesName);
|
||||
sqMenu.setParentId(0L);
|
||||
iSqMenuService.insertSqMenu(sqMenu);
|
||||
|
||||
|
||||
importHtml(entry.getValue(), sqMenu.getMenuId(), userID);
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
|
||||
}catch (SSLHandshakeException e){
|
||||
logger.error("文章解析出错:",e);
|
||||
@ -90,7 +116,6 @@ public class BrowserController extends BaseController {
|
||||
catch (Exception e) {
|
||||
logger.error("导入html异常:",e);
|
||||
}
|
||||
|
||||
return AjaxResult.success("导入成功");
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ ruoyi:
|
||||
# 实例演示开关
|
||||
demoEnabled: true
|
||||
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
|
||||
profile: /home/ruoyi/uploadPath
|
||||
profile: D:/ruoyi/uploadPath
|
||||
# 获取ip地址开关
|
||||
addressEnabled: false
|
||||
# 验证码类型 math 数组计算 char 字符验证
|
||||
|
Reference in New Issue
Block a user