新增客户端菜单查询功能
This commit is contained in:
parent
70dd48564b
commit
1e4087bb35
@ -2,11 +2,9 @@ package ink.wgink.login.oauth2.client.controller.route;
|
|||||||
|
|
||||||
import ink.wgink.common.component.SecurityComponent;
|
import ink.wgink.common.component.SecurityComponent;
|
||||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||||
import ink.wgink.interfaces.menu.IMenuBaseService;
|
import ink.wgink.login.oauth2.client.service.menu.IMenuService;
|
||||||
import ink.wgink.interfaces.role.IRoleMenuBaseService;
|
|
||||||
import ink.wgink.pojo.bos.UserInfoBO;
|
import ink.wgink.pojo.bos.UserInfoBO;
|
||||||
import ink.wgink.pojo.dtos.menu.MenuDTO;
|
import ink.wgink.pojo.dtos.menu.MenuDTO;
|
||||||
import ink.wgink.pojo.dtos.role.RoleSimpleDTO;
|
|
||||||
import ink.wgink.properties.oauth2.client.OAuth2ClientProperties;
|
import ink.wgink.properties.oauth2.client.OAuth2ClientProperties;
|
||||||
import ink.wgink.properties.oauth2.client.OAuth2ClientServerProperties;
|
import ink.wgink.properties.oauth2.client.OAuth2ClientServerProperties;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -16,7 +14,9 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
import org.springframework.web.servlet.view.RedirectView;
|
import org.springframework.web.servlet.view.RedirectView;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When you feel like quitting. Think about why you started
|
* When you feel like quitting. Think about why you started
|
||||||
@ -37,10 +37,8 @@ public class IndexRouteController {
|
|||||||
private OAuth2ClientServerProperties oAuth2ClientServerProperties;
|
private OAuth2ClientServerProperties oAuth2ClientServerProperties;
|
||||||
@Autowired
|
@Autowired
|
||||||
private OAuth2ClientProperties oAuth2ClientProperties;
|
private OAuth2ClientProperties oAuth2ClientProperties;
|
||||||
@Autowired(required = false)
|
@Autowired
|
||||||
private IMenuBaseService menuBaseService;
|
private IMenuService menuService;
|
||||||
@Autowired(required = false)
|
|
||||||
private IRoleMenuBaseService roleMenuBaseService;
|
|
||||||
|
|
||||||
@GetMapping("index")
|
@GetMapping("index")
|
||||||
public ModelAndView goIndex() {
|
public ModelAndView goIndex() {
|
||||||
@ -64,32 +62,14 @@ public class IndexRouteController {
|
|||||||
// 先加载系统短标题,没有加载主标题,没有加载配置文件系统标题
|
// 先加载系统短标题,没有加载主标题,没有加载配置文件系统标题
|
||||||
mv.addObject("systemTitle", oAuth2ClientServerProperties.getSystemTitle());
|
mv.addObject("systemTitle", oAuth2ClientServerProperties.getSystemTitle());
|
||||||
mv.addObject("ws", oAuth2ClientServerProperties.getWs());
|
mv.addObject("ws", oAuth2ClientServerProperties.getWs());
|
||||||
if (menuBaseService != null) {
|
|
||||||
List<MenuDTO> menus;
|
List<MenuDTO> menus;
|
||||||
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
|
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
|
||||||
// 管理员
|
menus = menuService.list(oAuth2ClientProperties.getClient().getClientId(), ISystemConstant.ADMIN);
|
||||||
List<String> menuIds = roleMenuBaseService.listMenuId(ISystemConstant.ADMIN);
|
|
||||||
if (menuIds.isEmpty()) {
|
|
||||||
menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER);
|
|
||||||
} else {
|
} else {
|
||||||
menus = menuBaseService.listAllByParentIdAndIds(IMenuBaseService.MENU_UNIFIED_USER, menuIds);
|
menus = menuService.list(oAuth2ClientProperties.getClient().getClientId(), securityComponent.getCurrentUser().getRoles());
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 普通用户
|
|
||||||
List<RoleSimpleDTO> roleSimpleDTOs = securityComponent.getCurrentUser().getRoles();
|
|
||||||
if (roleSimpleDTOs.isEmpty()) {
|
|
||||||
menus = new ArrayList<>();
|
|
||||||
} else {
|
|
||||||
List<String> roleIds = new ArrayList<>();
|
|
||||||
for (RoleSimpleDTO roleSimpleDTO : roleSimpleDTOs) {
|
|
||||||
roleIds.add(roleSimpleDTO.getRoleId());
|
|
||||||
}
|
|
||||||
List<String> menuIds = roleMenuBaseService.listMenuId(roleIds);
|
|
||||||
menus = menuBaseService.listAllByParentIdAndIds(IMenuBaseService.MENU_UNIFIED_USER, menuIds);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
mv.addObject("menus", menus);
|
mv.addObject("menus", menus);
|
||||||
}
|
|
||||||
return mv;
|
return mv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package ink.wgink.login.oauth2.client.service.menu;
|
package ink.wgink.login.oauth2.client.service.menu;
|
||||||
|
|
||||||
|
import ink.wgink.pojo.dtos.menu.MenuDTO;
|
||||||
|
import ink.wgink.pojo.dtos.role.RoleSimpleDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName: IMenuService
|
* @ClassName: IMenuService
|
||||||
* @Description: 菜单业务
|
* @Description: 菜单业务
|
||||||
@ -8,4 +13,22 @@ package ink.wgink.login.oauth2.client.service.menu;
|
|||||||
* @Version: 1.0
|
* @Version: 1.0
|
||||||
*/
|
*/
|
||||||
public interface IMenuService {
|
public interface IMenuService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单列表
|
||||||
|
*
|
||||||
|
* @param clientId 客户端ID
|
||||||
|
* @param roleId 角色ID
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<MenuDTO> list(String clientId, String roleId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单列表
|
||||||
|
*
|
||||||
|
* @param clientId 客户端ID
|
||||||
|
* @param roles 角色列表
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<MenuDTO> list(String clientId, List<RoleSimpleDTO> roles);
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
package ink.wgink.login.oauth2.client.service.menu.impl;
|
package ink.wgink.login.oauth2.client.service.menu.impl;
|
||||||
|
|
||||||
import ink.wgink.common.base.DefaultBaseService;
|
import ink.wgink.common.base.DefaultBaseService;
|
||||||
|
import ink.wgink.login.oauth2.client.remote.menu.IMenuRemoteService;
|
||||||
import ink.wgink.login.oauth2.client.service.menu.IMenuService;
|
import ink.wgink.login.oauth2.client.service.menu.IMenuService;
|
||||||
|
import ink.wgink.module.oauth2.manager.OAuth2ClientTokenManager;
|
||||||
|
import ink.wgink.pojo.dtos.menu.MenuDTO;
|
||||||
|
import ink.wgink.pojo.dtos.role.RoleSimpleDTO;
|
||||||
|
import ink.wgink.properties.ApiPathProperties;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName: MenuServiceImpl
|
* @ClassName: MenuServiceImpl
|
||||||
* @Description: 菜单业务
|
* @Description: 菜单业务
|
||||||
@ -14,6 +22,26 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class MenuServiceImpl extends DefaultBaseService implements IMenuService {
|
public class MenuServiceImpl extends DefaultBaseService implements IMenuService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMenuRemoteService menuRemoteService;
|
||||||
|
@Autowired
|
||||||
|
private ApiPathProperties apiPathProperties;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MenuDTO> list(String clientId, String roleId) {
|
||||||
|
return menuRemoteService.list(apiPathProperties.getUserCenter(), clientId, roleId, OAuth2ClientTokenManager.getInstance().getAccessToken().getAccessToken());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MenuDTO> list(String clientId, List<RoleSimpleDTO> roles) {
|
||||||
|
StringBuilder roleIdsSB = new StringBuilder();
|
||||||
|
for (RoleSimpleDTO role : roles) {
|
||||||
|
if (roleIdsSB.length() > 0) {
|
||||||
|
roleIdsSB.append(",");
|
||||||
|
}
|
||||||
|
roleIdsSB.append(role.getRoleId());
|
||||||
|
}
|
||||||
|
return menuRemoteService.list(apiPathProperties.getUserCenter(), clientId, roleIdsSB.toString(), OAuth2ClientTokenManager.getInstance().getAccessToken().getAccessToken());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user