计算目录下的书签数量

This commit is contained in:
WangHao 2021-02-15 15:33:49 +08:00
parent d655b29ffd
commit ae6d354b6f
9 changed files with 89 additions and 34 deletions

View File

@ -155,12 +155,7 @@ public class SqBookmarkController extends BaseController
{ {
SysUser sysUser=getAuthUser(); SysUser sysUser=getAuthUser();
sqBookmark.setUserid(sysUser.getUserId()); sqBookmark.setUserid(sysUser.getUserId());
try {
sqBookmark.setUrls(ImportHtml.Urlutils(new URL(sqBookmark.getUrl())));
} catch (MalformedURLException e) {
logger.info(sysUser.getUserId()+"新增书签 获取网址的 主机信息 报错"+new Date());
e.printStackTrace();
}
return toAjax(sqBookmarkService.insertSqBookmark(sqBookmark)); return toAjax(sqBookmarkService.insertSqBookmark(sqBookmark));
} }

View File

@ -134,11 +134,11 @@ public class SqMenuController extends BaseController
sqMenuService.updateSqMenu(sqMenu); sqMenuService.updateSqMenu(sqMenu);
// ================修改后=================== // ================修改后===================
if (parentFlag){ if (parentFlag){
String menuus = sqMenuService.addMenuUplinkSeries(menu.getMenuId()); String menuUplinkSeries = sqMenuService.addMenuUplinkSeries(sqMenu.getMenuId());
sqMenuService.updateSqMenu(new SqMenu(sqMenu.getMenuId(),menuus)); sqMenuService.updateSqMenu(new SqMenu(sqMenu.getMenuId(),menuUplinkSeries));
} }
//添加所有上级目录的书签数量 //添加所有上级目录的书签数量
sqMenuService.addMenuByCountAndMenuUplinkSeries(menu.getMenuId()); // sqMenuService.addMenuByCountAndMenuUplinkSeries(menu.getMenuId());
return AjaxResult.success(); return AjaxResult.success();
} }
@ -171,8 +171,8 @@ public class SqMenuController extends BaseController
//删除 //删除
sqMenuService.deleteSqMenuById(menuId,sysUser.getUserId()); sqMenuService.deleteSqMenuById(menuId,sysUser.getUserId());
//批量减少上级所有目录的书签数量 //批量减少上级所有目录的书签数量
sqMenu.setMenuId(menuId); // sqMenu.setMenuId(menuId);
sqMenuService.reduceMenuByCountAndMenuUplinkSeries(sqMenu); // sqMenuService.reduceMenuByCountAndMenuUplinkSeries(sqMenu);
//修改目录下的所有书签状态为 删除状态 //修改目录下的所有书签状态为 删除状态
sqBookmarkService.updateSqBookmarkBymenuId(menuId); sqBookmarkService.updateSqBookmarkBymenuId(menuId);
return toAjax(1); return toAjax(1);

View File

@ -1,5 +1,8 @@
package com.ruoyi.web.test.controller; package com.ruoyi.web.test.controller;
import com.ruoyi.bookmark.domain.SqBookmark;
import com.ruoyi.bookmark.domain.SqMenu;
import com.ruoyi.bookmark.mapper.SqBookmarkMapper;
import com.ruoyi.bookmark.mapper.SqMenuMapper; import com.ruoyi.bookmark.mapper.SqMenuMapper;
import org.apache.velocity.runtime.directive.Foreach; import org.apache.velocity.runtime.directive.Foreach;
import org.junit.Test; import org.junit.Test;
@ -14,10 +17,12 @@ import java.util.List;
* @Date: 2021/02/14 20:41 * @Date: 2021/02/14 20:41
* 功能描述: * 功能描述:
*/ */
public class SqMenu extends BaseSpringBootTest{ public class SqMenuTest extends BaseSpringBootTest{
@Autowired @Autowired
SqMenuMapper sqMenuMapper; SqMenuMapper sqMenuMapper;
@Autowired
SqBookmarkMapper sqBookmarkMapper;
@Test @Test
public void addMenuUplinkSeries() { public void addMenuUplinkSeries() {
@ -46,4 +51,28 @@ public class SqMenu extends BaseSpringBootTest{
} }
} }
} }
/**
* 批量计算新的目录下书签数量
*
* @param
* @return
*/
@Test
public void test2() {
SqMenu sqMenu2 = new SqMenu();
sqMenu2.setUserId(1L);
List<SqMenu> sqs = sqMenuMapper.select(sqMenu2);
for (SqMenu s : sqs) {
int count = sqBookmarkMapper.countBookMakeByMenuId(s.getMenuId());
SqMenu sqMenu = new SqMenu();
sqMenu.setMenuId(s.getMenuId());
sqMenu.setBookmarkCount(count);
sqMenuMapper.updateSqMenu(sqMenu);
}
}
} }

View File

@ -88,8 +88,19 @@ public class SqBookmark
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
@Transient
private Long parentId;
private List<Map<String,Object>> sqTags; private List<Map<String,Object>> sqTags;
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public List<Map<String, Object>> getSqTags() { public List<Map<String, Object>> getSqTags() {
return sqTags; return sqTags;

View File

@ -85,4 +85,12 @@ public interface SqBookmarkMapper extends MyMapper<SqBookmark>
* @return 结果 * @return 结果
*/ */
public List<SqBookmark> selectByUseridList(Long userId); public List<SqBookmark> selectByUseridList(Long userId);
/**
* 根据MenuId查询当前目录下 有多少书签数量
*
* @param menuId
* @return 结果
*/
public int countBookMakeByMenuId(Long menuId);
} }

View File

@ -111,11 +111,23 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
@Override @Override
public int insertSqBookmark(SqBookmark sqBookmark) public int insertSqBookmark(SqBookmark sqBookmark)
{ {
//获取官网urls
try {
sqBookmark.setUrls(ImportHtml.Urlutils(new URL(sqBookmark.getUrl())));
} catch (MalformedURLException e) {
logger.info("用户ID:"+sqBookmark.getUserid()+",新增书签"+sqBookmark.getUrl()+"获取网址的 主机信息 报错 -"+new Date());
}
if(null==sqBookmark.getDescription()||"".equals(sqBookmark.getDescription())){ if(null==sqBookmark.getDescription()||"".equals(sqBookmark.getDescription())){
sqBookmark.setDescription(sqBookmark.getTitle()); sqBookmark.setDescription(sqBookmark.getTitle());
} }
//转换传入的父级ID
sqBookmark.setMenuId(sqBookmark.getParentId());
int i= sqBookmarkMapper.insertSqBookmark(sqBookmark);
//给对应目录 +1
sqMenuMapper.updateCountAdd(new Long[]{sqBookmark.getMenuId()},1);
int i= sqBookmarkMapper.insertSqBookmark(sqBookmark);
//传入的标签 //传入的标签
List<Map<String, Object>> listmap = sqBookmark.getSqTags(); List<Map<String, Object>> listmap = sqBookmark.getSqTags();
if (listmap==null||listmap.isEmpty()||listmap.size()==0){ if (listmap==null||listmap.isEmpty()||listmap.size()==0){
@ -151,11 +163,6 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
bookamrktag.setTagId(tag.getKey()); bookamrktag.setTagId(tag.getKey());
sqBookmarkTagMapper.insertSqBookmarkTag(bookamrktag); sqBookmarkTagMapper.insertSqBookmarkTag(bookamrktag);
} }
//给对应目录 +1
Long[] menuIds= new Long[1];
menuIds[0]=sqBookmark.getMenuId();
sqMenuMapper.updateCountAdd(menuIds,1);
return i; return i;
} }
@ -171,6 +178,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
// String deletetag = ""; // String deletetag = "";
// //新增的书签ID // //新增的书签ID
// String addtag = ""; // String addtag = "";
//未修改前的信息
SqBookmark sqbm=sqBookmarkMapper.selectSqBookmarkById(sqBookmark.getBookmarkId());
//传入的标签 //传入的标签
int i =sqBookmarkMapper.updateSqBookmark(sqBookmark); int i =sqBookmarkMapper.updateSqBookmark(sqBookmark);
List<Map<String, Object>> listmap = sqBookmark.getSqTags(); List<Map<String, Object>> listmap = sqBookmark.getSqTags();
@ -178,6 +187,14 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
return i; return i;
} }
//是否移动目录
if (!sqbm.getMenuId().toString().equals(sqBookmark.getMenuId().toString())){
//给原目录 -1
sqMenuMapper.updateCountReduce(new Long[]{sqBookmark.getMenuId()},1);
//新目录 +1
sqMenuMapper.updateCountAdd(new Long[]{sqBookmark.getMenuId()},1);
}
//给文章添加标签 //给文章添加标签
@ -281,14 +298,8 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
@Override @Override
public int selectByMenuIdCount(Long menuId) public int selectByMenuIdCount(Long menuId)
{ {
SqBookmark sqBookmark=new SqBookmark(); return sqBookmarkMapper.countBookMakeByMenuId(menuId);
sqBookmark.setMenuId(menuId);
List<SqBookmark> sqBookmarks=sqBookmarkMapper.select(sqBookmark);
if (sqBookmarks!=null&&!sqBookmarks.isEmpty()){
return sqBookmarks.size();
}else {
return 0;
}
} }
/** /**

View File

@ -132,12 +132,7 @@ public class SqMenuServiceImpl implements ISqMenuService
int i = sqMenuMapper.insertSqMenu(sqMenu); int i = sqMenuMapper.insertSqMenu(sqMenu);
//更新新的目录串 //更新新的目录串
if (i!=0){ if (i!=0){
String menuUplinkSeries =""; String menuUplinkSeries = addMenuUplinkSeries(sqMenu.getMenuId());
if("0".equals(parentId)){
menuUplinkSeries = ","+sqMenu.getMenuId()+",";
}else{
menuUplinkSeries = addMenuUplinkSeries(sqMenu.getMenuId());
}
sqMenuMapper.updateSqMenu(new SqMenu(sqMenu.getMenuId(),menuUplinkSeries)); sqMenuMapper.updateSqMenu(new SqMenu(sqMenu.getMenuId(),menuUplinkSeries));
} }
return i; return i;
@ -216,6 +211,10 @@ public class SqMenuServiceImpl implements ISqMenuService
StringBuilder menuus=new StringBuilder(); StringBuilder menuus=new StringBuilder();
SqMenu sqMenu = sqMenuMapper.selectSqMenuById(menuId); SqMenu sqMenu = sqMenuMapper.selectSqMenuById(menuId);
Long parentId = sqMenu.getParentId(); Long parentId = sqMenu.getParentId();
//顶级目录
if("0".equals(parentId.toString())){
return ","+sqMenu.getMenuId()+",";
}
//所有的上级目录ID //所有的上级目录ID
List<Long> list= new ArrayList<>(); List<Long> list= new ArrayList<>();
list.add(menuId); list.add(menuId);

View File

@ -126,7 +126,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where userid = #{userId} and idelete = 0 order by create_time desc where userid = #{userId} and idelete = 0 order by create_time desc
</select> </select>
<select id="countBookMakeByMenuId" parameterType="Long" resultType="java.lang.Integer">
select count(*) FROM sq_bookmark where menu_id =#{menuId}
</select>
<select id="selectBymenuIdUserID" parameterType="SqBookmark" resultMap="SqBookmarkResult"> <select id="selectBymenuIdUserID" parameterType="SqBookmark" resultMap="SqBookmarkResult">
<include refid="selectSqBookmarkVo"/> <include refid="selectSqBookmarkVo"/>

View File

@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select menu_id from sq_menu where menu_uplink_series like '#{menuUplinkSeries}%' select menu_id from sq_menu where menu_uplink_series like '#{menuUplinkSeries}%'
<if test="menuId != null "> and menu_id != #{menuId}</if> <if test="menuId != null "> and menu_id != #{menuId}</if>
</select> </select>
<select id="countByMenuUplinkSeriesAndMenu" parameterType="java.lang.Integer"> <select id="countByMenuUplinkSeriesAndMenu" resultType="java.lang.Integer">
select sum(bookmark_count) from sq_menu where menu_uplink_series like '#{menuUplinkSeries}%' select sum(bookmark_count) from sq_menu where menu_uplink_series like '#{menuUplinkSeries}%'
<if test="menuId != null "> and menu_id != #{menuId}</if> <if test="menuId != null "> and menu_id != #{menuId}</if>
</select> </select>