From d655b29ffdcfc13549246c84813d91dc5235b0dc Mon Sep 17 00:00:00 2001 From: WangHao <43278047@qq.com> Date: Mon, 15 Feb 2021 00:14:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E7=9B=AE=E5=BD=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E6=B7=BB=E5=8A=A0=E7=9B=AE=E5=BD=95=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yunbookmark/SqMenuController.java | 87 +++++++++---------- .../com/ruoyi/web/test/controller/SqMenu.java | 49 +++++++++++ ruoyi-ui/src/assets/icons/svg/app.svg | 1 + ruoyi-ui/src/assets/icons/svg/bank.svg | 1 + .../src/assets/icons/svg/conversation.svg | 1 + ruoyi-ui/src/assets/icons/svg/draw.svg | 1 + ruoyi-ui/src/assets/icons/svg/file.svg | 1 + .../assets/icons/svg/files-and-folders.svg | 1 + ruoyi-ui/src/assets/icons/svg/folder.svg | 1 + ruoyi-ui/src/assets/icons/svg/mails.svg | 1 + ruoyi-ui/src/assets/icons/svg/notebook.svg | 1 + ruoyi-ui/src/assets/icons/svg/notebook_1.svg | 1 + ruoyi-ui/src/assets/icons/svg/notebook_2.svg | 1 + ruoyi-ui/src/assets/icons/svg/paper-plane.svg | 1 + ruoyi-ui/src/assets/icons/svg/print.svg | 1 + ruoyi-ui/src/assets/icons/svg/setup.svg | 1 + ruoyi-ui/src/assets/icons/svg/telegram.svg | 1 + ruoyi-ui/src/assets/icons/svg/test.svg | 1 + ruoyi-ui/src/assets/icons/svg/test_1.svg | 1 + ruoyi-ui/src/views/bookmark/ceshi/index.vue | 5 ++ ruoyi-ui/src/views/bookmark/index/index.vue | 33 ++++--- .../com/ruoyi/bookmark/domain/SqMenu.java | 19 ++++ .../ruoyi/bookmark/mapper/SqMenuMapper.java | 26 ++++++ .../bookmark/service/ISqMenuService.java | 40 +++++++++ .../service/impl/SqMenuServiceImpl.java | 87 ++++++++++++++++++- .../mapper/bookmark/SqMenuMapper.xml | 15 +++- 26 files changed, 315 insertions(+), 63 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenu.java create mode 100644 ruoyi-ui/src/assets/icons/svg/app.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/bank.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/conversation.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/draw.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/file.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/files-and-folders.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/folder.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/mails.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/notebook.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/notebook_1.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/notebook_2.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/paper-plane.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/print.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/setup.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/telegram.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/test.svg create mode 100644 ruoyi-ui/src/assets/icons/svg/test_1.svg diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqMenuController.java index 5061b76d6..e457a678f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yunbookmark/SqMenuController.java @@ -110,6 +110,8 @@ public class SqMenuController extends BaseController @PostMapping public AjaxResult add(@RequestBody SqMenu sqMenu) { + SysUser sysUser=getAuthUser(); + sqMenu.setUserId(sysUser.getUserId()); return toAjax(sqMenuService.insertSqMenu(sqMenu)); } @@ -121,33 +123,22 @@ public class SqMenuController extends BaseController @PutMapping public AjaxResult edit(@RequestBody SqMenu sqMenu) { - //查询当前目录的 所有下级目录ID - Long[] downMenuid = sqMenuService.selectBymenuidsubordinateid(sqMenu.getMenuId()); - - //自身menuId >> 所有下级目录的书签数量 - int bookmarkCount =sqBookmarkService.selectByMenuIdCount(sqMenu.getMenuId()); - for (Long menuId:downMenuid){ - SqMenu menu=new SqMenu(); - menu.setMenuId(menuId); - List menulist= sqMenuService.selectSqMenuList(menu); - bookmarkCount +=menulist.get(0).getBookmarkCount(); - } - - // ================修改前,减少上级所有目录的书签统计数量=================== - //查询书签修改前的所有上级 - Long[] parentMenuidlist = sqMenuService.selectBymenuidParentid(sqMenu.getMenuId()); - if (parentMenuidlist!=null&&parentMenuidlist.length>0){ - sqMenuService.updateCountReduce(parentMenuidlist,bookmarkCount); - } - - //修改 - sqMenuService.updateSqMenu(sqMenu); - // ================修改后,增加上级所有目录的书签统计数量=================== - //查询书签的所有上级 - Long[] parentMenuid = sqMenuService.selectBymenuidParentid(sqMenu.getMenuId()); - if (parentMenuid!=null&&parentMenuid.length>0){ - sqMenuService.updateCountAdd(parentMenuid,bookmarkCount); - } + SysUser sysUser=getAuthUser(); + sqMenu.setUserId(sysUser.getUserId()); + SqMenu menu = sqMenuService.selectSqMenuById(sqMenu.getMenuId()); + //移动目录 更新新的目录串 + Boolean parentFlag =false; + if (!menu.getParentId().toString().equals(menu.getParentId())){ + parentFlag=true; + } + sqMenuService.updateSqMenu(sqMenu); + // ================修改后=================== + if (parentFlag){ + String menuus = sqMenuService.addMenuUplinkSeries(menu.getMenuId()); + sqMenuService.updateSqMenu(new SqMenu(sqMenu.getMenuId(),menuus)); + } + //添加所有上级目录的书签数量 + sqMenuService.addMenuByCountAndMenuUplinkSeries(menu.getMenuId()); return AjaxResult.success(); } @@ -175,11 +166,15 @@ public class SqMenuController extends BaseController SqMenu sqMenu=new SqMenu(); sqMenu.setParentId(menuId); List sqMenuList=sqMenuService.selectSqMenuList(sqMenu); + sqMenu = sqMenuService.selectSqMenuById(menuId); if (sqMenuList==null||sqMenuList.isEmpty()){ - sqMenuService.deleteSqMenuById(menuId,sysUser.getUserId()); + //删除 + sqMenuService.deleteSqMenuById(menuId,sysUser.getUserId()); + //批量减少上级所有目录的书签数量 + sqMenu.setMenuId(menuId); + sqMenuService.reduceMenuByCountAndMenuUplinkSeries(sqMenu); //修改目录下的所有书签状态为 删除状态 sqBookmarkService.updateSqBookmarkBymenuId(menuId); - return toAjax(1); }else{ return AjaxResult.error("删除失败,该目录下级还有目录菜单"); @@ -190,23 +185,23 @@ public class SqMenuController extends BaseController * 批量更新书签的数量 */ - @RequestMapping("/bookmarkcount/{menuId}") - public AjaxResult bookmarkcount(@PathVariable Long menuId) - { - -// Long[] menuIds={1L,2L,3L}; - //所有的父级目录 -// Long[] menuIds= sqMenuService.selectBymenuidParentid(4L); -// sqMenuService.updateCountAdd(menuIds,5); - - Long[] menuIds= sqMenuService.selectBymenuidsubordinateid(menuId); - for (int i=0;i sqMenus = sqMenuMapper.selectbymenuUplinkSeries(); + if (null!=sqMenus&&!sqMenus.isEmpty()) { + for (com.ruoyi.bookmark.domain.SqMenu s:sqMenus) { + StringBuilder menuus = new StringBuilder(); + com.ruoyi.bookmark.domain.SqMenu sqMenu = sqMenuMapper.selectSqMenuById(s.getMenuId()); + Long parentId = sqMenu.getParentId(); + //所有的上级目录ID + List list = new ArrayList<>(); + list.add(s.getMenuId()); + while (parentId.intValue() != 0) { + sqMenu = sqMenuMapper.selectSqMenuById(parentId); + list.add(sqMenu.getMenuId()); + parentId = sqMenu.getParentId(); + } + //倒序 + for (int i = list.size(); i > 0; i--) { + menuus.append(",").append(list.get(i - 1)); + } + menuus.append(","); + System.out.println(menuus.toString()); + sqMenuMapper.updateSqMenu(new com.ruoyi.bookmark.domain.SqMenu(s.getMenuId(),menuus.toString())); + } + } + } +} diff --git a/ruoyi-ui/src/assets/icons/svg/app.svg b/ruoyi-ui/src/assets/icons/svg/app.svg new file mode 100644 index 000000000..c7e41e49c --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/bank.svg b/ruoyi-ui/src/assets/icons/svg/bank.svg new file mode 100644 index 000000000..a2e6a7316 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/conversation.svg b/ruoyi-ui/src/assets/icons/svg/conversation.svg new file mode 100644 index 000000000..08f5c4241 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/conversation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/draw.svg b/ruoyi-ui/src/assets/icons/svg/draw.svg new file mode 100644 index 000000000..6cd4cb505 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/file.svg b/ruoyi-ui/src/assets/icons/svg/file.svg new file mode 100644 index 000000000..3a08941bf --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/files-and-folders.svg b/ruoyi-ui/src/assets/icons/svg/files-and-folders.svg new file mode 100644 index 000000000..28cd069a2 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/files-and-folders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/folder.svg b/ruoyi-ui/src/assets/icons/svg/folder.svg new file mode 100644 index 000000000..dfa6bafac --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/mails.svg b/ruoyi-ui/src/assets/icons/svg/mails.svg new file mode 100644 index 000000000..5f5891ec1 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/mails.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/notebook.svg b/ruoyi-ui/src/assets/icons/svg/notebook.svg new file mode 100644 index 000000000..7c01120ce --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/notebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/notebook_1.svg b/ruoyi-ui/src/assets/icons/svg/notebook_1.svg new file mode 100644 index 000000000..a81cddda0 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/notebook_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/notebook_2.svg b/ruoyi-ui/src/assets/icons/svg/notebook_2.svg new file mode 100644 index 000000000..23505da21 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/notebook_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/paper-plane.svg b/ruoyi-ui/src/assets/icons/svg/paper-plane.svg new file mode 100644 index 000000000..db35800f4 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/paper-plane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/print.svg b/ruoyi-ui/src/assets/icons/svg/print.svg new file mode 100644 index 000000000..410bc155a --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/print.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/setup.svg b/ruoyi-ui/src/assets/icons/svg/setup.svg new file mode 100644 index 000000000..c8b60d19f --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/setup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/telegram.svg b/ruoyi-ui/src/assets/icons/svg/telegram.svg new file mode 100644 index 000000000..14f79d9d3 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/test.svg b/ruoyi-ui/src/assets/icons/svg/test.svg new file mode 100644 index 000000000..af5245657 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/test.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/assets/icons/svg/test_1.svg b/ruoyi-ui/src/assets/icons/svg/test_1.svg new file mode 100644 index 000000000..6bacef1a5 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/svg/test_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ruoyi-ui/src/views/bookmark/ceshi/index.vue b/ruoyi-ui/src/views/bookmark/ceshi/index.vue index cdc32d360..e2d3c8c20 100644 --- a/ruoyi-ui/src/views/bookmark/ceshi/index.vue +++ b/ruoyi-ui/src/views/bookmark/ceshi/index.vue @@ -9,6 +9,11 @@
+ +
+ +
+
diff --git a/ruoyi-ui/src/views/bookmark/index/index.vue b/ruoyi-ui/src/views/bookmark/index/index.vue index 2271ad388..926683f7c 100644 --- a/ruoyi-ui/src/views/bookmark/index/index.vue +++ b/ruoyi-ui/src/views/bookmark/index/index.vue @@ -32,7 +32,7 @@
垃圾桶
导入书签
意见反馈
- +
测试页面
工具箱
@@ -120,26 +120,23 @@
菜单名称
+
菜单图标
- +
+ +
上级菜单
- - - - - - - -
排序(小到大)
-
- -
+ + + + + @@ -391,6 +388,10 @@ }, methods: { + /**图片失败显示**/ + errorHandler() { + return true + }, /**粒子球背景特效**/ backgroundparticle: function () { !function () { @@ -1037,7 +1038,11 @@ this.msgError("不能将上级菜单设置为本身"); return; } - + console.log("this.form.parentId"+this.form.parentId) + if (this.form.parentId!=0&&(this.form.parentId == null||this.form.parentId == ''||'undefined'==this.form.parentId)) { + this.msgError("请选择上级菜单"); + return; + } updateMenu(this.form).then(response => { if (response.code === 200) { diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqMenu.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqMenu.java index b0e9b1d45..1fdb0fcdd 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqMenu.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/domain/SqMenu.java @@ -40,6 +40,11 @@ public class SqMenu @Column(name = "menu_url") private String menuUrl; + /** 目录串 */ + @Excel(name = "目录串") + @Column(name = "menu_uplink_series") + private String menuUplinkSeries; + /** 菜单图标 */ @Excel(name = "菜单图标") @Column(name = "menu_order") @@ -69,6 +74,14 @@ public class SqMenu private Date updateTime; + public String getMenuUplinkSeries() { + return menuUplinkSeries; + } + + public void setMenuUplinkSeries(String menuUplinkSeries) { + this.menuUplinkSeries = menuUplinkSeries; + } + public Integer getBookmarkCount() { return bookmarkCount; } @@ -169,6 +182,7 @@ public class SqMenu .append("bookmarkCount", getBookmarkCount()) .append("createTime", getCreateTime()) .append("updateTime", getUpdateTime()) + .append("menuUplinkSeries", getMenuUplinkSeries()) .toString(); } public SqMenu(){ @@ -181,4 +195,9 @@ public class SqMenu this.parentId = parentId; this.menuIcon = menuIcon; } + + public SqMenu( Long menuId,String menuUplinkSeries) { + this.menuId = menuId; + this.menuUplinkSeries = menuUplinkSeries; + } } diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqMenuMapper.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqMenuMapper.java index eaee7c7a2..9f67a8905 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqMenuMapper.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/mapper/SqMenuMapper.java @@ -100,4 +100,30 @@ public interface SqMenuMapper extends MyMapper * @return */ public void addMenu(@Param("userId")Long userID, @Param("title")String title, @Param("parentId")Long parentId); + + /** + * 查询空目录串的目录 + * + * @param + * @return + */ + public List selectbymenuUplinkSeries(); + + /** + * 根据目录串查询下级的所有menuid + * + * @param menuUplinkSeries 目录串 + * @param menuId 为null表示不包含menuid + * @return + */ + public List listByMenuUplinkSeriesAndMenu(@Param("menuUplinkSeries")String menuUplinkSeries, @Param("menuId")Long menuId); + + /** + * 根据目录串查询下级的所有书签数量 + * + * @param menuUplinkSeries 目录串 + * @param menuId 为null表示不包含menuid + * @return + */ + public int countByMenuUplinkSeriesAndMenu(@Param("menuUplinkSeries")String menuUplinkSeries, @Param("menuId")Long menuId); } diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java index 963a9b352..6b2a1288f 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java @@ -125,4 +125,44 @@ public interface ISqMenuService * @return */ public Long noRepetition(String state, Long userID, Long time); + + + /** + * 根据menuId 生成向上目录串 + * + * @param + * @return + */ + public String addMenuUplinkSeries(Long menuId); + + /** + * 根据目录串查询下级的所有menuid + * + * @param + * @return + */ + public List listByMenuUplinkSeriesAndMenu(String menuUplinkSeries,Long menuId); + /** + * 根据目录串查询下级的所有书签数量 + * + * @param + * @return + */ + public int countByMenuUplinkSeriesAndMenu(String menuUplinkSeries, Long menuId); + + /** + * 批量添加上级 目录的书签数量 + * + * @param menuId + * @return + */ + void addMenuByCountAndMenuUplinkSeries(Long menuId); + + /** + * 批量减少上级 目录的书签数量 + * + * @param sqMenu + * @return + */ + void reduceMenuByCountAndMenuUplinkSeries(SqMenu sqMenu); } diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java index 5186eb421..98b0ecc6f 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java @@ -1,11 +1,16 @@ package com.ruoyi.bookmark.service.impl; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + import com.ruoyi.common.core.redis.RedisUtil; import com.ruoyi.common.utils.DateUtils; +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; +import org.apache.commons.beanutils.ConvertUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.bookmark.mapper.SqMenuMapper; @@ -122,8 +127,20 @@ public class SqMenuServiceImpl implements ISqMenuService @Override public int insertSqMenu(SqMenu sqMenu) { - sqMenu.setCreateTime(DateUtils.getNowDate()); - return sqMenuMapper.insertSqMenu(sqMenu); + sqMenu.setCreateTime(DateUtils.getNowDate()); + String parentId=sqMenu.getParentId().toString(); + int i = sqMenuMapper.insertSqMenu(sqMenu); + //更新新的目录串 + if (i!=0){ + String menuUplinkSeries =""; + if("0".equals(parentId)){ + menuUplinkSeries = ","+sqMenu.getMenuId()+","; + }else{ + menuUplinkSeries = addMenuUplinkSeries(sqMenu.getMenuId()); + } + sqMenuMapper.updateSqMenu(new SqMenu(sqMenu.getMenuId(),menuUplinkSeries)); + } + return i; } /** @@ -188,6 +205,34 @@ public class SqMenuServiceImpl implements ISqMenuService } } + /** + *根据目录 生成向上目录串 + * + * @param menuId + * @return java.lang.String + */ + @Override + public String addMenuUplinkSeries(Long menuId) { + StringBuilder menuus=new StringBuilder(); + SqMenu sqMenu = sqMenuMapper.selectSqMenuById(menuId); + Long parentId = sqMenu.getParentId(); + //所有的上级目录ID + List list= new ArrayList<>(); + list.add(menuId); + while (parentId.intValue()!=0){ + sqMenu = sqMenuMapper.selectSqMenuById(parentId); + list.add(sqMenu.getMenuId()); + parentId=sqMenu.getParentId(); + } + //倒序 + for (int i=list.size();i>0;i--){ + menuus.append(",").append(list.get(i-1)); + } + menuus.append(","); + return menuus.toString(); + } + + /** * 批量减少目录下书签数量 @@ -212,4 +257,42 @@ public class SqMenuServiceImpl implements ISqMenuService public int updateCountAdd(Long[] menuIds,int icount){ return sqMenuMapper.updateCountAdd(menuIds,icount); } + + + @Override + public List listByMenuUplinkSeriesAndMenu(String menuUplinkSeries, Long menuId) { + return sqMenuMapper.listByMenuUplinkSeriesAndMenu(menuUplinkSeries,menuId); + } + + @Override + public int countByMenuUplinkSeriesAndMenu(String menuUplinkSeries, Long menuId) { + return sqMenuMapper.countByMenuUplinkSeriesAndMenu(menuUplinkSeries,menuId); + } + + + @Override + public void addMenuByCountAndMenuUplinkSeries(Long menuId) { + //修改 需要查最新目录串 + SqMenu sqMenu = sqMenuMapper.selectSqMenuById(menuId); + if (!sqMenu.getParentId().toString().equals("0")){ + //所有的上级ID + String[] arrayMenuID = sqMenu.getMenuUplinkSeries().replace(menuId+",","").split(","); + Long[] strArrNum = (Long[]) ConvertUtils.convert(arrayMenuID,Long.class); + //所有上级 添加书签数量 + sqMenuMapper.updateCountAdd(strArrNum,sqMenu.getBookmarkCount()); + } + } + + @Override + public void reduceMenuByCountAndMenuUplinkSeries(SqMenu sqMenu) { + if (!sqMenu.getParentId().toString().equals("0")){ + //所有的上级ID + String[] arrayMenuID = sqMenu.getMenuUplinkSeries().replace(sqMenu.getMenuId()+",","").split(","); + //转换 + Long[] strArrNum = (Long[]) ConvertUtils.convert(arrayMenuID,Long.class); + //所有上级 减少书签数量 + sqMenuMapper.updateCountReduce(strArrNum,sqMenu.getBookmarkCount()); + } + } + } diff --git a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqMenuMapper.xml b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqMenuMapper.xml index 2418e3f28..7adac5757 100644 --- a/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqMenuMapper.xml +++ b/ruoyi-yunbookmark/src/main/resources/mapper/bookmark/SqMenuMapper.xml @@ -15,10 +15,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select menu_id, user_id, menu_name, menu_url, menu_icon, parent_id, menu_order,bookmark_count,create_time,update_time from sq_menu + select menu_id, user_id, menu_name, menu_url, menu_icon, parent_id, menu_order,bookmark_count,create_time,update_time,menu_uplink_series from sq_menu + + +