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