From dc31792dc1b8ad1658e49ba8fce9a1be924e6fbb Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期四, 30 十一月 2023 08:44:04 +0800
Subject: [PATCH] 理片笼测试修改

---
 springboot-vue3/src/main/java/com/example/springboot/service/impl/MenuListServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/impl/MenuListServiceImpl.java b/springboot-vue3/src/main/java/com/example/springboot/service/impl/MenuListServiceImpl.java
new file mode 100644
index 0000000..4de2090
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/impl/MenuListServiceImpl.java
@@ -0,0 +1,73 @@
+package com.example.springboot.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.springboot.entity.vo.MenuListVo;
+import com.example.springboot.mapper.MenuListMapper;
+import com.example.springboot.mapper.RoleMenuListMapper;
+import com.example.springboot.security.util.SecurityUtil;
+import com.example.springboot.service.MenuListService;
+import com.example.springboot.service.RoleService;
+import com.example.springboot.entity.MenuList;
+import com.example.springboot.entity.Role;
+import com.example.springboot.entity.RoleMenuList;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class MenuListServiceImpl extends ServiceImpl<MenuListMapper, MenuList> implements MenuListService {
+    @Autowired
+    private RoleService roleService;
+    @Autowired
+    private RoleMenuListMapper roleMenuListDao;
+
+    @Override
+    public IPage<MenuList> selectPage(MenuListVo menuListVO) {
+        return lambdaQuery()
+                .like(StrUtil.isNotBlank(menuListVO.getName()), MenuList::getName, menuListVO.getName())
+                .eq(null != menuListVO.getState(), MenuList::getState, menuListVO.getState())
+                .between(null != menuListVO.getStartTime() && null != menuListVO.getEndTime(), MenuList::getCreateTime, menuListVO.getStartTime(), menuListVO.getEndTime())
+                .orderByAsc(MenuList::getParentId).last(",create_time desc")
+                .page(new Page<>(menuListVO.getPageNum(), menuListVO.getPageSize()));
+    }
+
+    @Override
+    public List<MenuList> selectList(Long roleId) {
+        List<Role> roles = roleService.selectRoles(roleId == null ? SecurityUtil.getCurrentUser().getRoleId() : roleId, true);
+        List<Long> ids = roles.stream().map(Role::getId).collect(Collectors.toList());
+        List<RoleMenuList> roleMenuLists = roleMenuListDao.selectList(new QueryWrapper<RoleMenuList>().lambda()
+                .in(RoleMenuList::getRoleId, ids));
+        List<Long> collect = roleMenuLists.stream().map(RoleMenuList::getMenuListId).collect(Collectors.toList());
+        if (CollectionUtil.isEmpty(collect)) return new ArrayList<>();
+        List<MenuList> menuLists = lambdaQuery()
+                .or(menuListLambdaQueryWrapper -> menuListLambdaQueryWrapper.isNull(MenuList::getParentId).or().eq(MenuList::getParentId, ""))
+                .in(MenuList::getId, collect)
+                .list();
+        for (MenuList menuList : menuLists) {
+            List<MenuList> list = selectByParentId(menuList.getId(), collect);
+            menuList.setMenuLists(list);
+        }
+        return menuLists;
+    }
+
+    @Override
+    public List<MenuList> selectByParentId(Long parentId, List<Long> ids) {
+        List<MenuList> list = lambdaQuery().eq(MenuList::getParentId, parentId).in(MenuList::getId, ids).list();
+        if (CollectionUtil.isEmpty(list)) return null;
+        for (MenuList menuList : list) {
+            List<MenuList> menuLists = selectByParentId(menuList.getId(), ids);
+            menuList.setMenuLists(menuLists);
+        }
+        return list;
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0