系统菜单搜索优化
parent
c1668d0569
commit
028ad38f45
|
@ -8,6 +8,7 @@ import com.muyu.common.log.annotation.Log;
|
||||||
import com.muyu.common.log.enums.BusinessType;
|
import com.muyu.common.log.enums.BusinessType;
|
||||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
|
import com.muyu.common.system.domain.SysUser;
|
||||||
import com.muyu.system.domain.SysMenu;
|
import com.muyu.system.domain.SysMenu;
|
||||||
import com.muyu.system.domain.resp.RoleMenuTreeResp;
|
import com.muyu.system.domain.resp.RoleMenuTreeResp;
|
||||||
import com.muyu.system.service.SysMenuService;
|
import com.muyu.system.service.SysMenuService;
|
||||||
|
@ -15,7 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单信息
|
* 菜单信息
|
||||||
|
@ -35,10 +38,12 @@ public class SysMenuController extends BaseController {
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public Result list (SysMenu menu) {
|
public Result list (SysMenu menu) {
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SecurityUtils.getUserId();
|
||||||
List<SysMenu> menus = menuService.selectMenuList(menu, userId);
|
List<SysMenu> sysMenus = menuService.selectMenuList(menu, userId);
|
||||||
return success(menus);
|
return success(sysMenus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据菜单编号获取详细信息
|
* 根据菜单编号获取详细信息
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -135,4 +135,6 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,4 +158,6 @@ public interface SysMenuService extends IService<SysMenu> {
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public boolean checkMenuNameUnique (SysMenu menu);
|
public boolean checkMenuNameUnique (SysMenu menu);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,17 +60,40 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
||||||
|
List<SysMenu> allSysMenu=null;
|
||||||
List<SysMenu> menuList = null;
|
List<SysMenu> menuList = null;
|
||||||
|
boolean admin = SysUser.isAdmin(userId);
|
||||||
// 管理员显示所有菜单信息
|
// 管理员显示所有菜单信息
|
||||||
if (SysUser.isAdmin(userId)) {
|
if (admin) {
|
||||||
menuList = menuMapper.selectMenuList(menu);
|
menuList = menuMapper.selectMenuList(menu);
|
||||||
} else {
|
} else {
|
||||||
menu.getParams().put("userId", userId);
|
menu.getParams().put("userId", userId);
|
||||||
menuList = menuMapper.selectMenuListByUserId(menu);
|
menuList = menuMapper.selectMenuListByUserId(menu);
|
||||||
}
|
}
|
||||||
|
if(menuList.size()==1){
|
||||||
|
SysMenu sysMenu = menuList.get(0);
|
||||||
|
//调用查询ParentId父类id
|
||||||
|
this.selectMenuParentId1(menuList,sysMenu);
|
||||||
|
SysMenu sysMenu1 = new SysMenu();
|
||||||
|
sysMenu1.setPerms(menu.getPerms());
|
||||||
|
allSysMenu = admin ?menuMapper.selectMenuList(null):menuMapper.selectMenuListByUserId(sysMenu1);
|
||||||
|
List<SysMenu> childList = this.getChildList(allSysMenu, sysMenu);
|
||||||
|
menuList.addAll(childList);
|
||||||
|
}
|
||||||
return menuList;
|
return menuList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void selectMenuParentId1(List<SysMenu> list,SysMenu menu) {
|
||||||
|
if(menu.getParentId().equals(0L)){
|
||||||
|
return;
|
||||||
|
}else {
|
||||||
|
SysMenu sysMenu = this.selectMenuById(menu.getParentId());
|
||||||
|
list.add(sysMenu);
|
||||||
|
selectMenuParentId1(list,sysMenu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户ID查询权限
|
* 根据用户ID查询权限
|
||||||
*
|
*
|
||||||
|
@ -321,6 +344,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
return UserConstants.UNIQUE;
|
return UserConstants.UNIQUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取路由名称
|
* 获取路由名称
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue