diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/BaseActionController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/BaseActionController.java index 63bc362..18302f6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/BaseActionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/BaseActionController.java @@ -53,14 +53,24 @@ public class BaseActionController { @OperLog(operModul = "功能按钮管理", operType = "查询", operDesc = "查询菜单下的按钮权限CODE") @ApiOperation(value = "查询菜单下的按钮权限CODE", notes = "查询菜单下的按钮权限CODE", httpMethod="POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "menuId", value = "menuId", paramType = "form"), - }) + @ApiImplicitParam(name = "menuId", value = "menuId", paramType = "body") @PostMapping("/codeList") public Result> getMenuCode(@ApiIgnore @RequestBody Map map) { return Result.success(baseActionService.getMenuCode(MapUtils.getString(map,"menuId"))); } - + + /** + * 用户查询自身菜单按钮权限列表 + * @return + */ + @OperLog(operModul = "功能按钮管理", operType = "查询", operDesc = "用户查询自身菜单按钮权限列表") + @ApiOperation(value = "用户查询自身菜单按钮权限列表", notes = "用户查询自身菜单按钮权限列表" , httpMethod="POST") + @ApiImplicitParam(name = "menuId", value = "菜单ID", paramType = "body", required = true, dataType = "Long") + @PostMapping(value = "/queryBySelf") + public Result> queryBySelf(@ApiIgnore @RequestBody Map map) { + return Result.success(baseActionService.queryBySelf(MapUtils.getLong(map,"menuId"))); + } + /** * 添加 * @param baseAction diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/BaseActionMapper.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/BaseActionMapper.java index f51fa8d..6652f3f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/BaseActionMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/BaseActionMapper.java @@ -27,9 +27,9 @@ public interface BaseActionMapper extends BaseMapper { List getComapnyUserActionList(Map param); - Set getActionCodes(@Param("accountType") Integer accountType); + List getActionCodes(@Param("accountType") Integer accountType); - Set getActionCodeByRole(@Param("roleId") Long roleId); + List getActionCodeByRole(@Param("roleId") Long roleId); Set getMenuCode(@Param("menuId") String menuId); diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseActionMapper.xml b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseActionMapper.xml index 54ac77b..2a7bd04 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseActionMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/BaseActionMapper.xml @@ -39,14 +39,14 @@ - + SELECT * FROM base_action WHERE status = 1 AND EXISTS( SELECT * FROM base_menu WHERE EXISTS( SELECT module_id FROM base_module WHERE module_type = #{accountType})) - + SELECT * FROM base_action WHERE status = 1 AND EXISTS( SELECT * FROM base_menu WHERE EXISTS( SELECT menu_id FROM system_role_menu WHERE role_id = #{roleId})) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/IBaseActionService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/IBaseActionService.java index dd47152..87c30e5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/IBaseActionService.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/IBaseActionService.java @@ -24,6 +24,8 @@ public interface IBaseActionService extends IService { Set getMenuCode(String menuId); + Set queryBySelf(Long menuId); + void addBaseAction(BaseAction baseAction); void editBaseAction(BaseAction baseAction); diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseActionServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseActionServiceImpl.java index 839b7ec..ec47c8e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseActionServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/BaseActionServiceImpl.java @@ -1,19 +1,26 @@ package com.zhgd.xmgl.modules.basicdata.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.modules.basicdata.entity.BaseAction; +import com.zhgd.xmgl.modules.basicdata.entity.SystemUserRole; import com.zhgd.xmgl.modules.basicdata.mapper.BaseActionMapper; +import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserRoleMapper; import com.zhgd.xmgl.modules.basicdata.service.IBaseActionService; +import com.zhgd.xmgl.security.SecurityUser; +import com.zhgd.xmgl.security.SecurityUtil; import com.zhgd.xmgl.util.MessageUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * @Description: 系统资源-功能操作 @@ -26,6 +33,9 @@ import java.util.Set; public class BaseActionServiceImpl extends ServiceImpl implements IBaseActionService { @Autowired private BaseActionMapper baseActionMapper; + + @Autowired + private SystemUserRoleMapper systemUserRoleMapper; // @Autowired // private IBaseAuthorityService baseAuthorityService; @@ -43,6 +53,24 @@ public class BaseActionServiceImpl extends ServiceImpl queryBySelf(Long menuId) { + SecurityUser user = SecurityUtil.getUser(); + Set actionCodes = new HashSet<>(); + if (user.isManager()) { + actionCodes = baseActionMapper.getActionCodes(user.getAccountType()).stream().filter(a -> a.getMenuId().equals(menuId)) + .map(a -> a.getActionCode()).collect(Collectors.toSet()); + } else { + SystemUserRole systemUserRole = systemUserRoleMapper.selectOne(Wrappers.lambdaQuery().eq(SystemUserRole::getUserId, user.getUserId())); + if (systemUserRole != null) { + Long roleId = systemUserRole.getRoleId(); + actionCodes = baseActionMapper.getActionCodeByRole(roleId).stream().filter(a -> a.getMenuId().equals(menuId)) + .map(a -> a.getActionCode()).collect(Collectors.toSet()); + } + } + return actionCodes; + } + @Override public void addBaseAction(BaseAction aciton) { if (aciton.getPriority() == null) { diff --git a/src/main/java/com/zhgd/xmgl/security/MyUserDetailsImpl.java b/src/main/java/com/zhgd/xmgl/security/MyUserDetailsImpl.java index 84861c9..b1f191f 100644 --- a/src/main/java/com/zhgd/xmgl/security/MyUserDetailsImpl.java +++ b/src/main/java/com/zhgd/xmgl/security/MyUserDetailsImpl.java @@ -17,6 +17,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Component; import java.util.*; +import java.util.stream.Collectors; /** * @program: devManage @@ -48,12 +49,12 @@ public class MyUserDetailsImpl implements UserDetailsService { } Set actionCodes = new HashSet<>(); if (user.getIsManager()) { - actionCodes = baseActionMapper.getActionCodes(user.getAccountType()); + actionCodes = baseActionMapper.getActionCodes(user.getAccountType()).stream().map(a -> a.getActionCode()).collect(Collectors.toSet()); } else { SystemUserRole systemUserRole = systemUserRoleMapper.selectOne(Wrappers.lambdaQuery().eq(SystemUserRole::getUserId, user.getUserId())); if (systemUserRole != null) { Long roleId = systemUserRole.getRoleId(); - actionCodes = baseActionMapper.getActionCodeByRole(roleId); + actionCodes = baseActionMapper.getActionCodeByRole(roleId).stream().map(a -> a.getActionCode()).collect(Collectors.toSet()); } } Collection grantedAuthorityList = AuthorityUtils