diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java index 98b9bc7..76229d7 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java @@ -16,11 +16,13 @@ import org.nl.common.utils.RsaUtils; import org.nl.common.utils.dto.CurrentUser; import org.nl.config.RsaProperties; import org.nl.config.language.LangProcess; +import org.nl.system.service.menu.ISysMenuService; import org.nl.system.service.role.ISysRoleService; import org.nl.system.service.secutiry.dto.AuthUserDto; import org.nl.system.service.user.ISysUserService; import org.nl.system.service.user.dao.SysUser; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -30,6 +32,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; +import java.util.Map; /** * @Author: lyd @@ -44,6 +47,8 @@ public class MobileAuthorizationController { private ISysUserService userService; @Autowired private ISysRoleService roleService; + @Autowired + private ISysMenuService menuService; @PostMapping(value = "/login") @SaIgnore @@ -94,4 +99,10 @@ public class MobileAuthorizationController { return ResponseEntity.ok(authInfo); } + + @PostMapping(value = "/authority") + @SaIgnore + public ResponseEntity queryAuthority(@RequestBody Map param) { + return new ResponseEntity<>(menuService.queryAuthority(param), HttpStatus.OK); + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java index 122f786..ef5086d 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java @@ -158,4 +158,10 @@ public interface ISysMenuService extends IService { */ List getMenusByRole(String roleId, String systemType, String category); + /** + * 手持菜单权限 + * @param param + * @return + */ + Map queryAuthority(Map param); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java index 3d7cafc..913b7ea 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.java @@ -1,5 +1,6 @@ package org.nl.system.service.menu.dao.mapper; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; @@ -80,4 +81,6 @@ public interface SysMenuMapper extends BaseMapper { * @return / */ String findAllChild(String pid); + + JSONArray queryPdaAuthority(String accountId, String component, String pid); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml index 2664d38..5e59dee 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/dao/mapper/SysMenuMapper.xml @@ -99,4 +99,42 @@ ) t3 where childId != '0' + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index d6e393f..ed0b58a 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -3,6 +3,8 @@ package org.nl.system.service.menu.impl; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -464,4 +466,42 @@ public class SysMenuServiceImpl extends ServiceImpl impl baseMapper.getMenusByRole(systemType,category); return null; } + + @Override + public Map queryAuthority(Map param) { + String accountId = SecurityUtils.getCurrentUserId(); + JSONObject returnjo = new JSONObject(); + if (StrUtil.isEmpty(accountId)) { + returnjo.put("code", "0"); + returnjo.put("desc", "用户id不能为空!"); + returnjo.put("result", new JSONArray()); + } + //查询一级 + JSONArray pa = baseMapper.queryPdaAuthority(accountId, "0", null); + if(ObjectUtil.isEmpty(pa)){ + throw new BadRequestException("当前用户无菜单权限!"); + } + JSONObject result = new JSONObject(); + for (int i = 0; i < pa.size(); i++) { + JSONObject res = pa.getJSONObject(i); + //查询二级 + JSONArray secondResults = baseMapper.queryPdaAuthority(accountId, "1", res.getString("menu_id")); + //查询三级 + JSONArray roleTree = new JSONArray(); + for (int j = 0; j < secondResults.size(); j++) { + JSONObject row = secondResults.getJSONObject(j); + String menu_id = row.getString("menu_id"); + JSONArray ThirdResults = baseMapper.queryPdaAuthority(accountId, "2", menu_id); + row.put("sonTree", ThirdResults); + roleTree.add(row); + } + res.put("sonTree", roleTree); + result.put("rf_menu" + ("188".equals(res.getString("menu_id"))?1:0), res); + } + + returnjo.put("code", "1"); + returnjo.put("desc", "查询成功!"); + returnjo.put("result", result); + return returnjo; + } }