Commit 72c7a7fc by guojuxing

权限过滤修改

parent c749c365
......@@ -87,4 +87,13 @@ public interface TabSysMenuItemMapper {
List<TabSysMenuItem> listMenuItemByMenuId(@Param("menuId") Integer menuId);
List<TabSysMenuItem> listMenuItemByMenuIdList(@Param("list") List<Integer> menuIdList);
/**
* 获取所有的配置在权限项内的操作项
* @Title: getOperationItemIdList

* @Description:

 * @author guojuxing 

* @return java.util.List<java.lang.Integer>


 */
List<Integer> getOperationItemIdList();
}
\ No newline at end of file
......@@ -44,4 +44,15 @@ public interface MenuItemService {
List<TabSysMenuItem> listMenuItemByMenuId(Integer menuId);
List<TabSysMenuItem> listMenuItemByMenuId(List<Integer> menuIdList);
/**
* 获取所有的配置在权限项内的操作项
* @Title: getOperationItemIdList

* @Description:

 * @author guojuxing 

* @return java.util.List<java.lang.Integer>


 */
List<Integer> getOperationItemIdList();
}
......@@ -41,4 +41,9 @@ public class MenuItemServiceImpl implements MenuItemService{
}
return tabSysMenuItemMapper.listMenuItemByMenuIdList(menuId);
}
@Override
public List<Integer> getOperationItemIdList() {
return tabSysMenuItemMapper.getOperationItemIdList();
}
}
......@@ -2,8 +2,6 @@ package com.gic.auth.service.outer.impl;
import java.util.*;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.open.api.service.AppTokenApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -28,9 +26,11 @@ import com.gic.auth.service.*;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.enterprise.utils.valid.ValidParamsUtils;
import com.gic.open.api.dto.ApplicationDTO;
import com.gic.open.api.dto.ServePropDTO;
import com.gic.open.api.service.AppTokenApiService;
import com.gic.open.api.service.ApplicationApiService;
@Service("menuApiService")
......@@ -39,8 +39,6 @@ public class MenuApiServiceImpl implements MenuApiService {
@Autowired
private MenuService menuService;
@Autowired
private AuthCodeApiService authCodeApiService;
@Autowired
private ApplicationApiService applicationApiService;
@Autowired
private MenuItemService menuItemService;
......@@ -73,14 +71,12 @@ public class MenuApiServiceImpl implements MenuApiService {
MenuListQO params = new MenuListQO();
params.setMenuType(MenuTypeEnum.PAGE.getCode());
temp.addAll(this.menuService.listMenu(params));
params.setMenuType(MenuTypeEnum.OPERATION.getCode());
temp.addAll(this.menuService.listMenu(params));
result = EntityUtil.changeEntityListNew(MenuDTO.class, temp);
} else {
List<TabSysMenu> menuList = getUserMenuList(userId);
result = EntityUtil.changeEntityListNew(MenuDTO.class, menuList);
ServiceResponse<List<MenuDTO>> tempResult = getUserOperationItem(userId, MenuProjectConstants.ALL_CODE);
ServiceResponse<List<MenuDTO>> tempResult = getNoAuthOperationItem(userId, MenuProjectConstants.ALL_CODE);
result.addAll(tempResult.getResult());
}
......@@ -93,8 +89,8 @@ public class MenuApiServiceImpl implements MenuApiService {
}
@Override
public ServiceResponse<List<MenuDTO>> getUserOperationItemOfGic(Integer userId) {
return getUserOperationItem(userId, MenuProjectConstants.DEFAULT_PROJECT_CODE);
public ServiceResponse<List<MenuDTO>> getNoAuthOperationItemOfGic(Integer userId) {
return getNoAuthOperationItem(userId, MenuProjectConstants.DEFAULT_PROJECT_CODE);
}
@Override
......@@ -718,6 +714,19 @@ public class MenuApiServiceImpl implements MenuApiService {
}
/**
* 获取配置在权限项内的操作项数据
* @Title: getOperationItemOfAuthItem

* @Description:

 * @author guojuxing 

* @return java.util.List<com.gic.auth.dto.MenuDTO>


 */
private List<MenuDTO> getOperationItemOfAuthItem() {
List<Integer> operationItemIdList = menuItemService.getOperationItemIdList();
List<TabSysMenu> operationItemList = menuService.selectByIds(operationItemIdList);
return EntityUtil.changeEntityListNew(MenuDTO.class, operationItemList);
}
/**
* 查询用户拥有的权限菜单(页面、权限项)
* @Title: getUserMenuList

* @Description:
......@@ -800,15 +809,15 @@ public class MenuApiServiceImpl implements MenuApiService {
}
/**
* 获取操作项
* @Title: getUserOperationItem

* 获取用户没有权限的操作项
* @Title: getNoAuthOperationItem

* @Description:

 * @author guojuxing
* @param userId
* @param projectCode

* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.auth.dto.MenuDTO>>


 */
private ServiceResponse<List<MenuDTO>> getUserOperationItem(Integer userId, int projectCode) {
private ServiceResponse<List<MenuDTO>> getNoAuthOperationItem(Integer userId, int projectCode) {
TabSysUser tabSysUser = userService.getUserById(userId);
if (tabSysUser == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "用户不存在");
......@@ -835,17 +844,22 @@ public class MenuApiServiceImpl implements MenuApiService {
}
List<MenuDTO> resultList = new ArrayList<>();
Map<Integer, Object> operationItemMap = new HashMap<>(16);
//查询用户拥有的操作项
List<TabSysMenuItem> menuItemList = menuItemService.listMenuItemByMenuId(authItemIdList);
if (CollectionUtils.isNotEmpty(menuItemList)) {
List<Integer> menuItemIdList = new ArrayList<>(menuItemList.size());
for (TabSysMenuItem menuItem : menuItemList) {
menuItemIdList.add(menuItem.getItemId());
operationItemMap.put(menuItem.getItemId(), "1");
}
}
List<MenuDTO> operationItemListOfAuthItem = getOperationItemOfAuthItem();
for (MenuDTO menuDTO : operationItemListOfAuthItem) {
if (!operationItemMap.containsKey(menuDTO.getMenuId())) {
//如果不存在,说明是没有权限的操作项
resultList.add(menuDTO);
}
resultList.addAll(EntityUtil.changeEntityListNew(MenuDTO.class, menuService.selectByIds(menuItemIdList)));
}
//查询没有配置在权限项内的操作项,默认有权限
resultList.addAll(getDefaultOperationItem(projectCode));
return ServiceResponse.success(resultList);
}
}
......@@ -148,4 +148,12 @@
#{item}
</foreach>
</select>
<select id="getOperationItemIdList" resultType="integer">
select
item_id
from tab_sys_menu_item
where status = 1
GROUP by item_id
</select>
</mapper>
\ No newline at end of file
......@@ -40,7 +40,7 @@ public class MenuController {
@RequestMapping("login-user-operation-item")
public RestResponse loginUserOperationItem() {
Integer userId = UserDetailUtils.getUserDetail().getUserId();
return ResultControllerUtils.commonResult(this.menuApiService.getUserOperationItemOfGic(userId),
return ResultControllerUtils.commonResult(this.menuApiService.getNoAuthOperationItemOfGic(userId),
UserOperationItemAuthVO.class);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment