优化导入

This commit is contained in:
WangHao
2021-04-10 00:43:22 +08:00
parent 3e5b4a9625
commit 7416beb2ee
15 changed files with 229 additions and 151 deletions

View File

@ -22,6 +22,7 @@ import java.util.Map;
*/
@Table(name="sq_bookmark")
@Data
@ToString
public class SqBookmark
{
private static final long serialVersionUID = 1L;
@ -83,7 +84,7 @@ public class SqBookmark
/** 0公开显示 1隐藏显示 2好友显示 3稍后再看 */
@Excel(name = "0公开显示 1隐藏显示 2好友显示 3稍后再看")
@Column(name = "Start")
@Column(name = "start")
private Integer start;
/** 0非星标 1星标 */

View File

@ -22,7 +22,7 @@ public interface SqBookmarkMapper extends MyMapper<SqBookmark>
* @param userID 用户ID
* @return 书签管理
*/
public List<SqBookmark> selectBymenuIdUserID(@Param("menuID") Long menuID, @Param("userID") Long userID,@Param("sort")Integer sort,@Param("sousuo") String sousuo);
public List<SqBookmark> selectBymenuIdUserID(@Param("menuID") Long menuID, @Param("userID") Long userID,@Param("sort")Integer sort,@Param("sousuo") String sousuo,@Param("bookmarkStar") Integer bookmarkStar,@Param("start") Integer start);
/**
* 查询书签管理

View File

@ -24,9 +24,11 @@ public interface ISqBookmarkService
* @param userID 用户ID
* @param sort 排序方式
* @param sousou 搜索
* @param bookmarkStar 0非星标 1星标
* @param start 书签状态
* @return 书签管理
*/
public List<SqBookmark> selectBymenuIdUserID(Long menuID,Long userID,Integer sort,String sousou);
public List<SqBookmark> selectBymenuIdUserID(Long menuID,Long userID,Integer sort,String sousou,Integer bookmarkStar,Integer start);
@ -141,4 +143,9 @@ public interface ISqBookmarkService
*
* */
List<SqBookmark> bookmarkRepetition(Long userId);
/**
* 重新计算目录下的书签数量和 目录的结构
*/
public void bookmarkMenuCount(Long userId,Long menuId);
}

View File

@ -74,8 +74,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
* @return 书签管理
*/
@Override
public List<SqBookmark> selectBymenuIdUserID(Long menuID, Long userID,Integer sort,String sousou) {
return sqBookmarkMapper.selectBymenuIdUserID(menuID,userID, sort,sousou);
public List<SqBookmark> selectBymenuIdUserID(Long menuID, Long userID,Integer sort,String sousou,Integer bookmarkStar,Integer start) {
return sqBookmarkMapper.selectBymenuIdUserID(menuID,userID, sort,sousou,bookmarkStar,start);
}
/**
@ -328,6 +328,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
List<HtmlName> listMenu= list.stream().filter(m-> m.getState().equals("0")).collect(Collectors.toList());
//id排序 防止已添加的父id漏修改 id升序
listMenu.sort(Comparator.comparing(HtmlName::getId));
//顶级目录ID
Long k = null;
//1.添加目录
for (HtmlName h : listMenu) {
String id=h.getId();
@ -335,7 +337,7 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
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());
k=Long.valueOf(sqMenu.getMenuId().toString());
//批量修改对应的父目录id
listMenu = ImportHtml.listFilter(listMenu,k,id);
//批量修改对应的书签id
@ -343,29 +345,33 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
}
}
//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 {
try {
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(StringUtils.substring(h.getTitle(), 0, 30));
sqBookmark.setUrl(h.getUrl());
sqBookmark.setUrls(ImportHtml.Urlutils(new URL(h.getUrl())));
} catch (MalformedURLException e) {
e.printStackTrace();
logger.info("导入书签,获取host出错!");
if (StringUtils.isBlank(h.getDescription())) {
sqBookmark.setDescription(StringUtils.substring(h.getTitle(), 0, 30));
} else {
sqBookmark.setDescription(StringUtils.substring(h.getDescription(), 0, 40));
}
sqBookmark.setMenuId(Long.valueOf(h.getParentId()));
sqBookmark.setCreateTime(new Date());
sqBookmarkMapper.insertSqBookmark(sqBookmark);
}
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);
}
} catch (MalformedURLException e) {
e.printStackTrace();
logger.info("导入书签,获取出错!");
}
//3.开始计算目录的结构 和 目录的书签数量
bookmarkMenuCount(userID,k);
}
@Override
@ -386,6 +392,35 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
public List<SqBookmark> bookmarkRepetition(Long userId) {
return sqBookmarkMapper.bookmarkRepetition(userId);
}
@Override
public void bookmarkMenuCount(Long userId,Long menuId){
SqMenu sqMenu2 = new SqMenu();
sqMenu2.setUserId(userId);
// sqMenu2.setParentId(menuId);
List<SqMenu> sqs = sqMenuMapper.select(sqMenu2);
for (SqMenu s : sqs) {
SqMenu sq = new SqMenu();
sq.setParentId(s.getMenuId());
List<SqMenu> lists = sqMenuMapper.select(sq);
if (lists!=null&&!lists.isEmpty())
{
int count = sqBookmarkMapper.countBookMakeByMenuId(s.getMenuId());
SqMenu sqMenu = new SqMenu();
sqMenu.setMenuId(s.getMenuId());
sqMenu.setSubordinate(1);
sqMenu.setBookmarkCount(count);
sqMenuMapper.updateSqMenu(sqMenu);
}else{
int count = sqBookmarkMapper.countBookMakeByMenuId(s.getMenuId());
SqMenu sqMenu = new SqMenu();
sqMenu.setMenuId(s.getMenuId());
sqMenu.setSubordinate(0);
sqMenu.setBookmarkCount(count);
sqMenuMapper.updateSqMenu(sqMenu);
}
}
}
}

View File

@ -145,6 +145,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectSqBookmarkVo"/>
where userid=#{userID}
<if test="sousuo == null or sousuo == ''"> and menu_id = #{menuID}</if>
<if test="bookmarkStar != null and bookmarkStar != ''"> and bookmark_star = #{bookmarkStar}</if>
<if test="start != null and start != ''"> and start = #{start}</if>
<if test="sousuo != null and sousuo != ''"> and title like concat('%', #{sousuo}, '%')</if>
order by
<choose>