diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java index 9811a0e..57720e2 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysUserController.java @@ -1,12 +1,17 @@ package com.muyu.system.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.muyu.common.core.constant.CacheConstants; +import com.muyu.common.core.constant.SecurityConstants; import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.JwtUtils; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.redis.service.RedisService; import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; @@ -18,14 +23,19 @@ import com.muyu.system.domain.resp.AuthRoleResp; import com.muyu.system.domain.resp.UserDetailInfoResp; import com.muyu.system.domain.resp.UserInfoResp; import com.muyu.system.service.*; +import io.jsonwebtoken.Claims; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.server.ServerHttpRequest; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -55,6 +65,10 @@ public class SysUserController extends BaseController { @Autowired private SysConfigService configService; + @Autowired + private HttpServletRequest request; + @Autowired + private RedisService redisService; /** * 获取用户列表 @@ -130,27 +144,7 @@ public class SysUserController extends BaseController { return Result.success(userService.registerUser(sysUser)); } - /** - * 获取用户信息 - * - * @return 用户信息 - */ - @GetMapping("getInfo") - public Result getInfo () { - SysUser user = userService.selectUserById(SecurityUtils.getUserId()); - // 角色集合 - Set roles = permissionService.getRolePermission(user); - // 权限集合 - Set permissions = permissionService.getMenuPermission(user); - return Result.success( - UserInfoResp.builder() - .user(user) - .roles(roles) - .permissions(permissions) - .build() - ); - } /** * 根据用户编号获取详细信息 @@ -227,6 +221,7 @@ public class SysUserController extends BaseController { return toAjax(userService.deleteUserByIds(userIds)); } + /** * 重置密码 */ @@ -241,6 +236,30 @@ public class SysUserController extends BaseController { return toAjax(userService.resetPwd(user)); } + + + + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("getInfo") + public Result getInfo () { + SysUser user = userService.selectUserById(SecurityUtils.getUserId()); + // 角色集合 + Set roles = permissionService.getRolePermission(user); + // 权限集合 + Set permissions = permissionService.getMenuPermission(user); + return Result.success( + UserInfoResp.builder() + .user(user) + .roles(roles) + .permissions(permissions) + .build() + ); + } /** * 状态修改 */ diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java index 8ceaaa0..57f91b0 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java @@ -12,6 +12,10 @@ import java.util.List; * @author muyu */ public interface SysMenuMapper extends BaseMapper { + + List selectMenuByMenuIdList(@Param("longStream") List longStream); + + List selectMenuByparentList(@Param("collect") List collect); /** * 查询系统菜单列表 * diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java index f4c6167..b450f7f 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysUserService.java @@ -11,6 +11,7 @@ import java.util.List; * @author muyu */ public interface SysUserService extends IService { + /** * 根据条件分页查询用户列表 * diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index e4e2ec8..3af6106 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -17,6 +17,7 @@ import com.muyu.system.mapper.SysRoleMenuMapper; import com.muyu.system.service.SysMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; @@ -64,11 +65,81 @@ public class SysMenuServiceImpl extends ServiceImpl impl // 管理员显示所有菜单信息 if (SysUser.isAdmin(userId)) { menuList = menuMapper.selectMenuList(menu); + } else { menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } - return menuList; + /** + * 去重,并获取查询到的菜单parentId 集合 + */ + List list = list(menuList); + List collect = menuList.stream().distinct() + .map(SysMenu::getParentId) + .collect(Collectors.toList()); + System.out.println(collect); + /* + *如果没有parentID 集合就返回 菜单表 + */ +// if (collect.size()==0){ +// return menuList; +// } + /** + * 根据parentID 集合获取 所有父类菜单 + */ + List sysMenus=menuMapper.selectMenuByparentList(collect); + List finalMenuList = menuList; + /** + *把所有查到的 父类放入 菜单列表中 + */ + sysMenus.forEach(sysMenu -> { + finalMenuList.add(sysMenu); + }); + + /** + * 菜单列表 去重 防止重复 并在获取所有的parentID 获取更高一级的菜单 + */ + List collect2 = finalMenuList.stream().distinct() + .map(SysMenu::getParentId) + .collect(Collectors.toList()); + /** + * 再次根据 parentID 查询 菜单 防止遗漏 + */ + List sysMenus1 = menuMapper.selectMenuByparentList(collect2); + sysMenus1.forEach(sysMenu -> { + finalMenuList.add(sysMenu); + }); + /** + * 去重 防止重复 , 并转为菜单列表 + */ + List collect1 = finalMenuList + .stream() + .distinct() + .collect(Collectors.toList()); + + + collect1.addAll(list); + List collect3 = collect1.stream().distinct().collect(Collectors.toList()); + return collect3; + + } + + public List list(List menuList){ + List collect = menuList.stream().distinct() + .map(SysMenu::getMenuId).collect(Collectors.toList()); + if (collect.size()==0){ + return null; + } + List sysMenus = menuMapper.selectMenuByMenuIdList(collect); + + if (sysMenus==null){ + return null; + } + List list = list(sysMenus); + if (list!=null){ + sysMenus.addAll(list); + } + return sysMenus; } /** diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java index ab88e1c..2cd4699 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java @@ -1,12 +1,15 @@ package com.muyu.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.exception.ServiceException; +import com.muyu.common.core.utils.JwtUtils; import com.muyu.common.core.utils.SpringUtils; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.bean.BeanValidators; import com.muyu.common.datascope.annotation.DataScope; +import com.muyu.common.redis.service.RedisService; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.SysRole; import com.muyu.common.system.domain.SysUser; @@ -23,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.servlet.http.HttpServletRequest; import javax.validation.Validator; import java.util.ArrayList; import java.util.List; @@ -51,6 +55,7 @@ public class SysUserServiceImpl extends ServiceImpl impl @Autowired private SysConfigService configService; + /** * 根据条件分页查询用户列表 * diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml index 1dac5c4..4b03939 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -185,6 +185,28 @@ where menu_name=#{menuName} and parent_id = #{parentId} limit 1 + + update sys_menu