新增客户端菜单查询功能
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.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.interfaces.menu.IMenuBaseService;
|
||||
import ink.wgink.interfaces.role.IRoleMenuBaseService;
|
||||
import ink.wgink.login.oauth2.client.service.menu.IMenuService;
|
||||
import ink.wgink.pojo.bos.UserInfoBO;
|
||||
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.OAuth2ClientServerProperties;
|
||||
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.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
|
||||
@ -37,10 +37,8 @@ public class IndexRouteController {
|
||||
private OAuth2ClientServerProperties oAuth2ClientServerProperties;
|
||||
@Autowired
|
||||
private OAuth2ClientProperties oAuth2ClientProperties;
|
||||
@Autowired(required = false)
|
||||
private IMenuBaseService menuBaseService;
|
||||
@Autowired(required = false)
|
||||
private IRoleMenuBaseService roleMenuBaseService;
|
||||
@Autowired
|
||||
private IMenuService menuService;
|
||||
|
||||
@GetMapping("index")
|
||||
public ModelAndView goIndex() {
|
||||
@ -64,32 +62,14 @@ public class IndexRouteController {
|
||||
// 先加载系统短标题,没有加载主标题,没有加载配置文件系统标题
|
||||
mv.addObject("systemTitle", oAuth2ClientServerProperties.getSystemTitle());
|
||||
mv.addObject("ws", oAuth2ClientServerProperties.getWs());
|
||||
if (menuBaseService != null) {
|
||||
List<MenuDTO> menus;
|
||||
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
|
||||
// 管理员
|
||||
List<String> menuIds = roleMenuBaseService.listMenuId(ISystemConstant.ADMIN);
|
||||
if (menuIds.isEmpty()) {
|
||||
menus = menuBaseService.listAllByParentId(IMenuBaseService.MENU_UNIFIED_USER);
|
||||
} else {
|
||||
menus = menuBaseService.listAllByParentIdAndIds(IMenuBaseService.MENU_UNIFIED_USER, menuIds);
|
||||
}
|
||||
} 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);
|
||||
|
||||
List<MenuDTO> menus;
|
||||
if (StringUtils.equalsIgnoreCase(ISystemConstant.ADMIN, userInfoBO.getUserUsername())) {
|
||||
menus = menuService.list(oAuth2ClientProperties.getClient().getClientId(), ISystemConstant.ADMIN);
|
||||
} else {
|
||||
menus = menuService.list(oAuth2ClientProperties.getClient().getClientId(), securityComponent.getCurrentUser().getRoles());
|
||||
}
|
||||
mv.addObject("menus", menus);
|
||||
return mv;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,10 @@
|
||||
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
|
||||
* @Description: 菜单业务
|
||||
@ -8,4 +13,22 @@ package ink.wgink.login.oauth2.client.service.menu;
|
||||
* @Version: 1.0
|
||||
*/
|
||||
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;
|
||||
|
||||
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.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 java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: MenuServiceImpl
|
||||
* @Description: 菜单业务
|
||||
@ -14,6 +22,26 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
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