getByPermissions(String permissions);
}
diff --git a/opsli-api/src/main/java/org/opsli/api/wrapper/system/menu/MenuModel.java b/opsli-api/src/main/java/org/opsli/api/wrapper/system/menu/MenuModel.java
index dd328391..78521f79 100644
--- a/opsli-api/src/main/java/org/opsli/api/wrapper/system/menu/MenuModel.java
+++ b/opsli-api/src/main/java/org/opsli/api/wrapper/system/menu/MenuModel.java
@@ -15,6 +15,8 @@
*/
package org.opsli.api.wrapper.system.menu;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -38,81 +40,70 @@ public class MenuModel extends ApiWrapper {
/** 父级主键 */
@ApiModelProperty(value = "父级主键")
- @ExcelProperty(value = "父级主键", order = 1)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgsLenMax(20)
private String parentId;
- /** 菜单编号 */
- @ApiModelProperty(value = "编号")
- @ExcelProperty(value = "编号", order = 2)
- @ExcelInfo
- @ValidationArgs({ValiArgsType.IS_NOT_NULL,ValiArgsType.IS_GENERAL})
+ /** 权限编号 */
+ @ApiModelProperty(value = "权限编号")
+ @ExcelIgnore
+ @ValidationArgs({ValiArgsType.IS_GENERAL})
@ValidationArgsLenMax(50)
- private String menuCode;
+ private String permissions;
/** 菜单名称 */
@ApiModelProperty(value = "名称")
- @ExcelProperty(value = "名称", order = 3)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgs({ValiArgsType.IS_NOT_NULL,ValiArgsType.IS_GENERAL_WITH_CHINESE})
@ValidationArgsLenMax(50)
private String menuName;
/** 图标 */
@ApiModelProperty(value = "图标")
- @ExcelProperty(value = "图标", order = 4)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgsLenMax(50)
private String icon;
/** 项目类型: 1-菜单 2-按钮 3-链接 */
@ApiModelProperty(value = "项目类型")
- @ExcelProperty(value = "项目类型", order = 5)
- @ExcelInfo(dictType = "menu_type")
+ @ExcelIgnore
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
@ValidationArgsLenMax(20)
private String type;
/** url地址 */
@ApiModelProperty(value = "url地址")
- @ExcelProperty(value = "url地址", order = 6)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgsLenMax(200)
private String url;
/** 组件 - vue 对应组件 */
@ApiModelProperty(value = "组件")
- @ExcelProperty(value = "组件", order = 7)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgsLenMax(200)
private String component;
/** 重定向 */
@ApiModelProperty(value = "重定向")
- @ExcelProperty(value = "重定向", order = 8)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgsLenMax(200)
private String redirect;
/** 排序 */
@ApiModelProperty(value = "排序")
- @ExcelProperty(value = "排序", order = 8)
- @ExcelInfo
+ @ExcelIgnore
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
private Integer sortNo;
/** 是否隐藏 0为否 1为是 */
@ApiModelProperty(value = "是否隐藏")
- @ExcelProperty(value = "是否隐藏", order = 8)
- @ExcelInfo(dictType = "no_yes")
+ @ExcelIgnore
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
private String hidden;
/** 是否总是显示 0为否 1为是 */
@ApiModelProperty(value = "是否隐藏")
- @ExcelProperty(value = "是否隐藏", order = 8)
- @ExcelInfo(dictType = "no_yes")
+ @ExcelIgnore
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
private String alwaysShow;
diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/enums/MsgArgsType.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/enums/MsgArgsType.java
index b4d7f38b..12bdeca9 100644
--- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/enums/MsgArgsType.java
+++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/enums/MsgArgsType.java
@@ -42,11 +42,6 @@ public enum MsgArgsType {
/** 用户数据*/
USER_MODEL_DATA,
- /** 菜单编号 */
- MENU_CODE,
- /** 菜单数据*/
- MENU_MODEL_DATA,
-
/** 组织 用户ID */
ORG_USER_ID,
/** 组织 用户数据 */
diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/handler/MenuHandler.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/handler/MenuHandler.java
deleted file mode 100644
index 9c98b62e..00000000
--- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/handler/MenuHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright 2020 OPSLI 快速开发平台 https://www.opsli.com
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.opsli.core.cache.pushsub.handler;
-
-import com.alibaba.fastjson.JSONObject;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.opsli.common.constants.CacheConstants;
-import org.opsli.core.cache.local.CacheUtil;
-import org.opsli.core.cache.pushsub.enums.MsgArgsType;
-import org.opsli.core.cache.pushsub.enums.PushSubType;
-import org.opsli.core.utils.MenuUtil;
-import org.opsli.plugins.cache.EhCachePlugin;
-import org.springframework.beans.factory.annotation.Autowired;
-
-/**
- * @BelongsProject: opsli-boot
- * @BelongsPackage: org.opsli.core.cache.pushsub.handler
- * @Author: Parker
- * @CreateTime: 2020-09-15 16:24
- * @Description: 菜单消息处理
- */
-@Slf4j
-public class MenuHandler implements RedisPushSubHandler{
-
- @Autowired
- private EhCachePlugin ehCachePlugin;
-
- @Override
- public PushSubType getType() {
- return PushSubType.MENU;
- }
-
- @Override
- public void handler(JSONObject msgJson) {
- // 菜单刷新
- this.menuHandler(msgJson);
- }
-
- /**
- * 用户数据处理
- * @param msgJson
- */
- private void menuHandler(JSONObject msgJson){
- JSONObject data = msgJson.getJSONObject(MsgArgsType.MENU_MODEL_DATA.toString());
- // 数据为空则不执行
- if(data == null){
- return;
- }
-
- // 获得菜单编号
- String menuCode = (String) msgJson.get(MsgArgsType.MENU_CODE.toString());
- if(StringUtils.isEmpty(menuCode)){
- return;
- }
-
- String cacheKey = CacheUtil.handleKey(MenuUtil.PREFIX_CODE + menuCode);
-
- // 先删除
- ehCachePlugin.delete(CacheConstants.EHCACHE_SPACE, cacheKey);
- }
-
-
-}
diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/msgs/MenuMsgFactory.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/msgs/MenuMsgFactory.java
deleted file mode 100644
index 848a0f5b..00000000
--- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/cache/pushsub/msgs/MenuMsgFactory.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Copyright 2020 OPSLI 快速开发平台 https://www.opsli.com
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.opsli.core.cache.pushsub.msgs;
-
-import com.alibaba.fastjson.JSONObject;
-import lombok.Data;
-import lombok.experimental.Accessors;
-import org.opsli.api.wrapper.system.menu.MenuModel;
-import org.opsli.core.cache.pushsub.enums.MsgArgsType;
-import org.opsli.core.cache.pushsub.enums.PushSubType;
-import org.opsli.core.cache.pushsub.receiver.RedisPushSubReceiver;
-import org.opsli.plugins.redis.pushsub.entity.BaseSubMessage;
-
-/**
- * @BelongsProject: opsli-boot
- * @BelongsPackage: org.opsli.core.cache.pushsub.msgs
- * @Author: Parker
- * @CreateTime: 2020-09-15 16:50
- * @Description: 菜单消息
- */
-
-@Data
-@Accessors(chain = true)
-public final class MenuMsgFactory extends BaseSubMessage{
-
- /** 通道 */
- private static final String CHANNEL = RedisPushSubReceiver.BASE_CHANNEL+RedisPushSubReceiver.CHANNEL;
-
- private MenuMsgFactory(){}
-
- /**
- * 构建消息 - 菜单
- */
- public static BaseSubMessage createMenuMsg(MenuModel menuModel){
- BaseSubMessage baseSubMessage = new BaseSubMessage();
- // 数据
- JSONObject jsonObj = new JSONObject();
- jsonObj.put(MsgArgsType.MENU_CODE.toString(), menuModel.getMenuCode());
- jsonObj.put(MsgArgsType.MENU_MODEL_DATA.toString(), menuModel);
-
- // 菜单
- baseSubMessage.build(CHANNEL,PushSubType.MENU.toString(),jsonObj);
- return baseSubMessage;
- }
-
-
-}
diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/LogUtil.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/LogUtil.java
index 8795ceb2..49b2502a 100644
--- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/LogUtil.java
+++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/LogUtil.java
@@ -162,7 +162,7 @@ public final class LogUtil {
List menuListByUserId = UserUtil.getMenuListByUserId(user.getId());
if(menuListByUserId != null){
// 根据当前controller权限 获得对应权限数据
- MenuModel permsModel = MenuUtil.getMenuByCode(perms);
+ MenuModel permsModel = MenuUtil.getMenuByPermissions(perms);
if(permsModel != null){
// 依次获得菜单全名
StringBuilder logTitleBuf = new StringBuilder();
diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/MenuUtil.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/MenuUtil.java
index 4c7ecb11..33bbb059 100644
--- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/MenuUtil.java
+++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/MenuUtil.java
@@ -50,13 +50,13 @@ public class MenuUtil {
/**
- * 根据 menuCode 获得菜单
- * @param menuCode
+ * 根据 权限 获得菜单
+ * @param permissions
* @return
*/
- public static MenuModel getMenuByCode(String menuCode){
+ public static MenuModel getMenuByPermissions(String permissions){
// 缓存Key
- String cacheKey = PREFIX_CODE + menuCode;
+ String cacheKey = PREFIX_CODE + permissions;
// 先从缓存里拿
MenuModel menuModel = CacheUtil.getTimed(MenuModel.class, cacheKey);
@@ -86,7 +86,7 @@ public class MenuUtil {
}
// 查询数据库
- ResultVo resultVo = menuApi.getByCode(menuCode);
+ ResultVo resultVo = menuApi.getByPermissions(permissions);
if(resultVo.isSuccess()){
menuModel = resultVo.getData();
// 存入缓存
@@ -117,21 +117,21 @@ public class MenuUtil {
* @return
*/
public static boolean refreshMenu(MenuModel menu){
- if(menu == null || StringUtils.isEmpty(menu.getMenuCode())){
+ if(menu == null || StringUtils.isEmpty(menu.getPermissions())){
return true;
}
// 计数器
int count = 0;
- MenuModel model = CacheUtil.getTimed(MenuModel.class, PREFIX_CODE + menu.getMenuCode());
- boolean hasNilFlag = CacheUtil.hasNilFlag(PREFIX_CODE + menu.getMenuCode());
+ MenuModel model = CacheUtil.getTimed(MenuModel.class, PREFIX_CODE + menu.getPermissions());
+ boolean hasNilFlag = CacheUtil.hasNilFlag(PREFIX_CODE + menu.getPermissions());
// 只要不为空 则执行刷新
if (hasNilFlag){
count++;
// 清除空拦截
- boolean tmp = CacheUtil.delNilFlag(PREFIX_CODE + menu.getMenuCode());
+ boolean tmp = CacheUtil.delNilFlag(PREFIX_CODE + menu.getPermissions());
if(tmp){
count--;
}
@@ -140,7 +140,7 @@ public class MenuUtil {
if(model != null){
count++;
// 先删除
- boolean tmp = CacheUtil.del(PREFIX_CODE + menu.getMenuCode());
+ boolean tmp = CacheUtil.del(PREFIX_CODE + menu.getPermissions());
if(tmp){
count--;
}
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java
index fb10b9d5..d6e34a4c 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java
@@ -32,6 +32,12 @@ public enum SystemMsg implements BaseMsg {
EXCEPTION_LOCK_DATA(20000,"内置数据只有超级管理员可以更改"),
+ /**
+ * 菜单
+ */
+ EXCEPTION_MENU_PERMISSIONS_UNIQUE(20050,"权限重复,该权限编号已存在"),
+
+
/**
* 数据字典
*/
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/entity/SysMenu.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/entity/SysMenu.java
index db7c925f..417acd4d 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/entity/SysMenu.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/entity/SysMenu.java
@@ -37,8 +37,8 @@ public class SysMenu extends BaseEntity {
/** 父级主键 */
private String parentId;
- /** 菜单编号 */
- private String menuCode;
+ /** 权限编号 */
+ private String permissions;
/** 菜单名称 */
private String menuName;
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/IMenuService.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/IMenuService.java
index d189cfb6..8c0bbd6a 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/IMenuService.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/IMenuService.java
@@ -31,10 +31,10 @@ public interface IMenuService extends CrudServiceInterface {
/**
- * 根据菜单编号 获得菜单
- * @param menuCode
+ * 根据菜单权限 获得菜单
+ * @param permissions
* @return
*/
- MenuModel getByCode(String menuCode);
+ MenuModel getByPermissions(String permissions);
}
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/impl/MenuServiceImpl.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/impl/MenuServiceImpl.java
index 322ba07f..d19b991a 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/impl/MenuServiceImpl.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/service/impl/MenuServiceImpl.java
@@ -54,6 +54,9 @@ import java.util.List;
@Service
public class MenuServiceImpl extends CrudServiceImpl implements IMenuService {
+ /** 按钮类型 */
+ private static final String BUTTON_TYPE = "2";
+
@Autowired(required = false)
private MenuMapper mapper;
@Autowired
@@ -62,10 +65,10 @@ public class MenuServiceImpl extends CrudServiceImpl queryBuilder = new GenQueryBuilder<>();
QueryWrapper queryWrapper = queryBuilder.build();
- queryWrapper.eq("menu_code", menuCode);
+ queryWrapper.eq("permissions", permissions);
List sysMenus = super.findList(queryWrapper);
if(sysMenus != null && !sysMenus.isEmpty()){
return transformT2M(sysMenus.get(0));
@@ -80,11 +83,11 @@ public class MenuServiceImpl extends CrudServiceImpl 0){
// 重复
- throw new ServiceException(SystemMsg.EXCEPTION_ROLE_UNIQUE);
+ throw new ServiceException(SystemMsg.EXCEPTION_MENU_PERMISSIONS_UNIQUE);
}
// 如果上级ID 为空 则默认为 0
@@ -124,11 +127,11 @@ public class MenuServiceImpl extends CrudServiceImpl 0){
// 重复
- throw new ServiceException(SystemMsg.EXCEPTION_ROLE_UNIQUE);
+ throw new ServiceException(SystemMsg.EXCEPTION_MENU_PERMISSIONS_UNIQUE);
}
MenuModel menuModel = super.update(model);
@@ -186,30 +189,6 @@ public class MenuServiceImpl extends CrudServiceImpl wrapper = new QueryWrapper<>();
-
- // code 唯一
- wrapper.eq(MyBatisConstants.FIELD_DELETE_LOGIC, DictType.NO_YES_NO.getValue())
- .eq("menu_code", model.getMenuCode());
-
- // 重复校验排除自身
- if(StringUtils.isNotEmpty(model.getId())){
- wrapper.notIn(MyBatisConstants.FIELD_ID, model.getId());
- }
-
- return super.count(wrapper);
- }
-
/**
* 逐级删除子数据
@@ -236,6 +215,35 @@ public class MenuServiceImpl extends CrudServiceImpl wrapper = new QueryWrapper<>();
+
+ // code 唯一
+ wrapper.eq(MyBatisConstants.FIELD_DELETE_LOGIC, DictType.NO_YES_NO.getValue())
+ .eq("permissions", model.getPermissions())
+ .eq("type", BUTTON_TYPE);
+
+ // 重复校验排除自身
+ if(StringUtils.isNotEmpty(model.getId())){
+ wrapper.notIn(MyBatisConstants.FIELD_ID, model.getId());
+ }
+
+ return super.count(wrapper);
+ }
+
/**
* 清除缓存
* @param menuModel
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java
index b3f0dae2..ec62ea2c 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java
@@ -52,6 +52,8 @@ import org.opsli.core.utils.UserUtil;
import org.opsli.modulars.system.SystemMsg;
import org.opsli.modulars.system.menu.entity.SysMenu;
import org.opsli.modulars.system.menu.service.IMenuService;
+import org.opsli.modulars.system.user.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
@@ -74,17 +76,20 @@ import java.util.Map;
public class MenuRestController extends BaseRestController
implements MenuApi {
+ @Autowired
+ private IUserService iUserService;
+
private static final String SORT_FIELD = "order";
/** 菜单排除字段 */
private static final String[] EXCLUSION_FIELDS = {
"createBy", "createTime", "updateBy", "updateTime",
- "deleted", "menuCode", "menuName", "ts", "encryptData",
+ "deleted", "permissions", "menuName", "ts", "encryptData",
"hidden", "version", "sortNo", "url", "icon"
};
/**
- * 根据 获得用户 菜单 - 权限
+ * 根据 获得用户 菜单 - 按钮权限 不是高频率
* 判断是否是超级管理员,如果是 则显示全部菜单 否则显示有权限菜单
*
* @return ResultVo
@@ -95,7 +100,7 @@ public class MenuRestController extends BaseRestController menuModelList = UserUtil.getMenuListByUserId(user.getId());
+ List menuModelList = iUserService.getMenuAllListByUserId(user.getId());
if(CollUtil.isEmpty(menuModelList)){
// 用户暂无角色菜单,请设置后登录
throw new ServiceException(SystemMsg.EXCEPTION_USER_MENU_NOT_NULL);
@@ -105,21 +110,9 @@ public class MenuRestController extends BaseRestController MenuConstants.MENU.equals(menuModel.getType()) &&
(StringUtils.isEmpty(menuModel.getComponent()) ||
- StringUtils.isEmpty(menuModel.getMenuCode()) ||
StringUtils.isEmpty(menuModel.getUrl())
));
- // 获得当前用户权限
- List perms = UserUtil.getUserAllPermsByUserId(user.getId());
- if(CollUtil.isNotEmpty(perms)){
- QueryBuilder queryBuilder = new GenQueryBuilder<>();
- QueryWrapper wrapper = queryBuilder.build();
- wrapper.in("menu_code", perms);
- List sysMenus = IService.findList(wrapper);
- List menuModels = WrapperUtil.transformInstance(sysMenus, MenuModel.class);
- menuModelList.addAll(menuModels);
- }
-
// 获得菜单树
List> treeNodes = getMenuTrees(menuModelList);
@@ -127,7 +120,7 @@ public class MenuRestController extends BaseRestController MenuConstants.MENU.equals(menuModel.getType()) &&
(StringUtils.isEmpty(menuModel.getComponent()) ||
- StringUtils.isEmpty(menuModel.getMenuCode()) ||
StringUtils.isEmpty(menuModel.getUrl())
));
@@ -357,13 +349,13 @@ public class MenuRestController extends BaseRestController getByCode(String menuCode) {
- MenuModel menu = IService.getByCode(menuCode);
+ public ResultVo getByPermissions(String permissions) {
+ MenuModel menu = IService.getByPermissions(permissions);
if(menu == null){
ResultVo.error("暂无数据");
}
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/UserMapper.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/UserMapper.java
index 39446779..37160b6d 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/UserMapper.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/UserMapper.java
@@ -66,6 +66,13 @@ public interface UserMapper extends BaseMapper {
*/
List findMenuListByUserId(String userId);
+ /**
+ * 根据用户ID 获得全部菜单集合
+ * @param userId
+ * @return
+ */
+ List findMenuAllListByUserId(String userId);
+
/**
* 修改密码
* @param userPassword
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/xml/UserMapper.xml b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/xml/UserMapper.xml
index 09b16f01..6ecbd44a 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/xml/UserMapper.xml
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/mapper/xml/UserMapper.xml
@@ -51,7 +51,7 @@
select
- a.menu_code
+ a.permissions
from
sys_menu a,
sys_role_menu_ref b,
@@ -91,7 +91,7 @@
select
c.id,
c.parent_Id,
- c.menu_code,
+ c.permissions,
c.menu_name,
c.redirect,
c.type,
@@ -116,6 +116,34 @@
group by c.id
+
+
+
update sys_user
set
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/IUserService.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/IUserService.java
index 524f2d16..fb7561ba 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/IUserService.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/IUserService.java
@@ -72,6 +72,13 @@ public interface IUserService extends CrudServiceInterface {
*/
List getMenuListByUserId(String userId);
+ /**
+ * 根据用户ID 获得全部菜单集合
+ * @param userId
+ * @return
+ */
+ List getMenuAllListByUserId(String userId);
+
/**
* 修改密码
diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/impl/UserServiceImpl.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/impl/UserServiceImpl.java
index ae5267ee..6146598c 100644
--- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/impl/UserServiceImpl.java
+++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/user/service/impl/UserServiceImpl.java
@@ -450,7 +450,7 @@ public class UserServiceImpl extends CrudServiceImpl menuList = iMenuService.findList(queryWrapper);
for (SysMenu sysMenu : menuList) {
- perms.add(sysMenu.getMenuCode());
+ perms.add(sysMenu.getPermissions());
}
}else{
perms = mapper.queryAllPerms(userId);
@@ -485,6 +485,31 @@ public class UserServiceImpl extends CrudServiceImpl getMenuAllListByUserId(String userId) {
+
+ UserModel userModel = this.get(userId);
+ if(userModel == null){
+ return new ArrayList<>();
+ }
+
+ List menuList;
+
+ // 判断是否是超级管理员 如果是超级管理员 则默认享有全部权限
+ if(StringUtils.equals(UserUtil.SUPER_ADMIN, userModel.getUsername())){
+ QueryBuilder queryBuilder = new GenQueryBuilder<>();
+ QueryWrapper queryWrapper = queryBuilder.build();
+ queryWrapper.notIn("parent_id", -1);
+ queryWrapper.in("type", '1', '3');
+ queryWrapper.eq("hidden", '0');
+ menuList = iMenuService.findList(queryWrapper);
+ }else{
+ menuList = mapper.findMenuAllListByUserId(userId);
+ }
+
+ return WrapperUtil.transformInstance(menuList, MenuModel.class);
+ }
+
@Override
public Page findPage(Page page) {
UserModel currUser = UserUtil.getUser();