From 6862664243ec512690bcc5fb2b598c4428b1d227 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 22 Apr 2019 11:41:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/config/ShiroConfig.java | 2 - .../iformall/controller/BaseController.java | 5 + .../iformall/controller/HomeController.java | 2 - .../controller/MallPermissionController.java | 82 -------- .../controller/MallUserInfoController.java | 9 +- .../controller/SysMenuController.java | 177 ++++++++++++++++++ .../com/iformall/shiro/PasswordHelper.java | 4 +- .../iformall/domain/po/MallPermission.java | 10 +- .../iformall/enums/EnumPermissionType.java | 39 ++++ .../iformall/mapper/MallPermissionMapper.java | 7 +- .../iformall/mapper/MallUserInfoMapper.java | 12 ++ .../service/MallPermissionService.java | 52 ++--- .../iformall/service/MallUserRoleService.java | 2 +- .../impl/MallPermissionServiceImpl.java | 93 +++++++-- .../service/impl/MallUserRoleServiceImpl.java | 3 + .../java/com/iformall/utils/Constant.java | 5 + .../resources/mapper/MallPermissionMapper.xml | 14 ++ .../resources/mapper/MallUserInfoMapper.xml | 15 ++ 18 files changed, 399 insertions(+), 134 deletions(-) delete mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/MallPermissionController.java create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/SysMenuController.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumPermissionType.java diff --git a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java index 91f789232..112d749b2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java @@ -31,8 +31,6 @@ import java.util.Map; */ @Configuration public class ShiroConfig { - @Autowired(required = false) - private MallPermissionService resourcesService; @Value("${spring.redis.host}") private String host; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java index 53b6369fd..0deff34ff 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java @@ -45,6 +45,11 @@ public class BaseController { MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); return user; } + + public Long getUserId(){ + Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userId); + return userId; + } public String getTenantId(){ String tenantId = (String)SecurityUtils.getSubject().getSession().getAttribute(UserSession.tenantId); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java index 43e219fe8..54bfe8179 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java @@ -164,8 +164,6 @@ public class HomeController extends BaseController { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); } - - data.data = info; } return data; } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/MallPermissionController.java b/mallinkAdmin/src/main/java/com/iformall/controller/MallPermissionController.java deleted file mode 100644 index 6b7369850..000000000 --- a/mallinkAdmin/src/main/java/com/iformall/controller/MallPermissionController.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.iformall.controller; - -import com.github.pagehelper.PageInfo; -import com.iformall.annotation.SystemControllerLog; -import com.iformall.common.Result; -import com.iformall.common.ResultData; -import com.iformall.domain.po.MallPermission; -import com.iformall.service.MallPermissionService; -import org.apache.shiro.util.Assert; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author chenkx - * @date 2018-01-05. - */ -@RestController -@RequestMapping("permission") -public class MallPermissionController extends BaseController { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - - @Autowired - MallPermissionService mallPermissionService; - - - @GetMapping("alllist") - @SystemControllerLog(description = "用户管理-权限") - public ResultData alllist(String ava) { - logger.debug("[" + getIpAddr() + "] MallPermissionController::alllist"); - MallPermission record = new MallPermission(); - record.setAvailable(ava); - PageInfo permissions = mallPermissionService.listAsPage(record, 1, 10000); - return new ResultData(Result.SUCCESS, "查询成功", permissions.getList()); - } - - @PostMapping("add") - @SystemControllerLog(description = "用户管理-权限添加") - public ResultData createPermission(MallPermission mallPermission) { - logger.debug("[" + getIpAddr() + "] MallPermissionController::createPermission"); - Assert.notNull(mallPermission.getName(), "用户名不能为空"); - mallPermissionService.saveOrUpdate(mallPermission); - return new ResultData(mallPermission.getId()); - } - - @PostMapping("update") - @SystemControllerLog(description = "用户管理-权限更新") - public ResultData updatePermission(MallPermission sysPermission) { - logger.debug("[" + getIpAddr() + "] MallPermissionController::updatePermission"); - mallPermissionService.saveOrUpdate(sysPermission); - return new ResultData(); - } - - @GetMapping("/del") - @SystemControllerLog(description = "用户管理-权限删除") - public ResultData delete(Long id) { - logger.debug("[" + getIpAddr() + "] MallPermissionController::delete"); - mallPermissionService.deleteById(id); - return new ResultData(Result.SUCCESS, "删除成功", null); - } - - @GetMapping("/findById") - @SystemControllerLog(description = "用户管理-权限查找") - public ResultData findById(Long id) { - logger.debug("[" + getIpAddr() + "] MallPermissionController::findById"); - mallPermissionService.getById(id); - return new ResultData(Result.SUCCESS, "成功", null); - } - - @GetMapping("/findByParentId") - @SystemControllerLog(description = "用户管理-子权限查找") - public ResultData findByParentId(Long id) { - logger.debug("[" + getIpAddr() + "] MallPermissionController::findByParentId"); - return new ResultData(Result.SUCCESS, "成功", mallPermissionService.getByParentId(id)); - } - - -} diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java index 73a829591..859b41e1b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java @@ -14,6 +14,8 @@ import com.iformall.enums.EnumUserWechat; import com.iformall.service.*; import com.iformall.shiro.PasswordHelper; import com.iformall.shiro.UserSession; +import com.iformall.utils.Constant; +import com.sun.tools.internal.jxc.ap.Const; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -299,7 +301,12 @@ public class MallUserInfoController extends BaseController { logger.debug("[" + getIpAddr() + "] MallUserInfoController::getUserInfo"); MallUserInfo info = getUser(); info.protectInfos(); - if (info.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { // isAdmin + + if(info.getTenantId().equalsIgnoreCase(Constant.FM_SYS_ADMIN)) { + // 富茂系统管理员 + // 富茂超管 + // 富茂普通管理员 + } else if (info.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { // isAdmin MallPermission q = new MallPermission(); PageInfo list = mallPermissionService.listAsPage(q, 1, 100); String menus = ""; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/SysMenuController.java b/mallinkAdmin/src/main/java/com/iformall/controller/SysMenuController.java new file mode 100644 index 000000000..ad593b6af --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/SysMenuController.java @@ -0,0 +1,177 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.domain.po.MallPermission; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.enums.EnumPermissionType; +import com.iformall.exception.MallinkException; +import com.iformall.service.MallPermissionService; +import com.iformall.service.MallUserRoleService; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.util.Assert; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author Stormeye Wu + * @date 2019-04-20. + */ +@RestController +@RequestMapping("menu") +public class SysMenuController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private MallPermissionService mallPermissionService; + + @Autowired + private MallUserRoleService mallUserRoleService; + + /** + * 导航菜单 + */ + @GetMapping("/nav") + public ResultData nav(){ + MallUserInfo user = getUser(); + List menuList = mallPermissionService.getUserMenuList(user); + Set permissions = shiroService.getUserPermissions(getUserId()); + Map map = new HashMap<>(); + map.put("menuList", menuList); + map.put("permissions", permissions); + return new ResultData(map); + } + + + /** + * 所有菜单列表 + * @return + */ + @GetMapping("list") + @RequiresPermissions("sys:menu:list") + @SystemControllerLog(description = "用户管理-权限") + public ResultData getList() { + logger.debug("[" + getIpAddr() + "] MallPermissionController::list"); + List permissions = mallPermissionService.getByParentId(null); + for(MallPermission permission: permissions) { + List permissions = null; + } + return new ResultData(Result.SUCCESS, "查询成功", permissions); + } + + @PostMapping("add") + @RequiresPermissions("sys:menu:save") + @SystemControllerLog(description = "用户管理-权限添加") + public ResultData createPermission(MallPermission mallPermission) { + logger.debug("[" + getIpAddr() + "] MallPermissionController::createPermission"); + Assert.notNull(mallPermission.getName(), "用户名不能为空"); + //数据校验 + verifyForm(mallPermission); + + mallPermissionService.saveOrUpdate(mallPermission); + return new ResultData(mallPermission.getId()); + } + + @PostMapping("update") + @RequiresPermissions("sys:menu:update") + @SystemControllerLog(description = "用户管理-权限更新") + public ResultData updatePermission(MallPermission sysPermission) { + logger.debug("[" + getIpAddr() + "] MallPermissionController::updatePermission"); + //数据校验 + verifyForm(sysPermission); + + mallPermissionService.saveOrUpdate(sysPermission); + return new ResultData(); + } + + @GetMapping("/del") + @RequiresPermissions("sys:menu:delete") + @SystemControllerLog(description = "用户管理-权限删除") + public ResultData delete(Long id) { + logger.debug("[" + getIpAddr() + "] MallPermissionController::delete"); + if(id <= 100) { + // TODO + return new ResultData("系统菜单, 不能删除"); + } + //判断是否有子菜单或按钮 + List menuList = mallPermissionService.getByParentId(id); + if(menuList.size() > 0){ + // TODO + return new ResultData("请先删除子菜单或按钮"); + } + mallPermissionService.deleteById(id); + return new ResultData(Result.SUCCESS, "删除成功"); + } + + /** + * 菜单信息 + */ + @GetMapping("/findById") + @RequiresPermissions("sys:menu:info") + @SystemControllerLog(description = "用户管理-权限查找") + public ResultData findById(Long id) { + logger.debug("[" + getIpAddr() + "] MallPermissionController::findById"); + return new ResultData(Result.SUCCESS, "成功", mallPermissionService.getById(id)); + } + + /** + * 验证参数是否正确 + */ + private void verifyForm(MallPermission menu){ + if(StringUtils.isBlank(menu.getName())){ + // TODO + throw new MallinkException("菜单名称不能为空"); + } + + if(menu.getParentId() == null){ + throw new MallinkException("上级菜单不能为空"); + } + + //菜单 + if(menu.getResourceType().equals(EnumPermissionType.MENU.getCode())){ + if(StringUtils.isBlank(menu.getUrl())){ + throw new MallinkException("菜单URL不能为空"); + } + } + + //上级菜单类型 + int parentType = EnumPermissionType.CATALOG.getCode(); + if(menu.getParentId() != 0){ + MallPermission parentMenu = mallPermissionService.getById(menu.getParentId()); + parentType = parentMenu.getResourceType(); + } + + //目录、菜单 + if(menu.getResourceType().equals(EnumPermissionType.CATALOG.getCode()) || + menu.getResourceType().equals(EnumPermissionType.MENU.getCode())){ + if(parentType != EnumPermissionType.CATALOG.getCode()){ + throw new MallinkException("上级菜单只能为目录类型"); + } + return ; + } + + //按钮 + if(menu.getResourceType().equals(EnumPermissionType.BUTTON.getCode())){ + if(parentType != EnumPermissionType.MENU.getCode()){ + throw new MallinkException("上级菜单只能为菜单类型"); + } + return ; + } + } + + +} diff --git a/mallinkAdmin/src/main/java/com/iformall/shiro/PasswordHelper.java b/mallinkAdmin/src/main/java/com/iformall/shiro/PasswordHelper.java index 9c59564d0..155fca778 100644 --- a/mallinkAdmin/src/main/java/com/iformall/shiro/PasswordHelper.java +++ b/mallinkAdmin/src/main/java/com/iformall/shiro/PasswordHelper.java @@ -22,8 +22,8 @@ public class PasswordHelper { public static void main(String[] args) { MallUserInfo user = new MallUserInfo(); - user.setUsername("sadmin"); - user.setPassword("sadmin123"); + user.setUsername("fmkjadmin"); + user.setPassword("fmkjadmin790"); PasswordHelper passwordHelper = new PasswordHelper(); passwordHelper.encryptPassword(user); System.out.println(user); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/MallPermission.java b/mallinkService/src/main/java/com/iformall/domain/po/MallPermission.java index 06f577d8d..f3c08e04b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/MallPermission.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/MallPermission.java @@ -35,8 +35,8 @@ public class MallPermission implements Serializable { private String nameLike; @io.swagger.annotations.ApiModelProperty(value="父编号ID,一级菜单为0",name="parentId") private Long parentId; - @io.swagger.annotations.ApiModelProperty(value="是否可用 Y/N",name="available") - private String available; + @io.swagger.annotations.ApiModelProperty(value="是否可用 Y/N",name="permission") + private String available; @io.swagger.annotations.ApiModelProperty(value="授权(多个用逗号分隔,如:user:list,user:create)",name="permission") private String permission; @Transient @@ -69,11 +69,15 @@ public class MallPermission implements Serializable { @Transient private Integer sortLt; + @Transient + @io.swagger.annotations.ApiModelProperty(value="子菜单",name="childs") + private List childs; + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") ,Name_ASC("`name` ASC"),Name_DESC("`name` DESC") - ,ParentId_ASC("`parentId` ASC"),ParentId_DESC("`parentId` DESC") + ,ParentId_ASC("`parent_id` ASC"),ParentId_DESC("`parent_id` DESC") ,Available_ASC("`available` ASC"),Available_DESC("`available` DESC") ,Permission_ASC("`permission` ASC"),Permission_DESC("`permission` DESC") ,ResourceType_ASC("`resource_type` ASC"),ResourceType_DESC("`resource_type` DESC") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumPermissionType.java b/mallinkService/src/main/java/com/iformall/enums/EnumPermissionType.java new file mode 100644 index 000000000..80fb09b5e --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumPermissionType.java @@ -0,0 +1,39 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumPermissionType { + + // 0:目录 1:菜单 2:按钮 + + CATALOG(0, "目录"), + MENU(1, "菜单"), + BUTTON(2,"按钮") + ; + + public static EnumPermissionType getEnum(Integer code) { + for (EnumPermissionType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumPermissionType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/MallPermissionMapper.java b/mallinkService/src/main/java/com/iformall/mapper/MallPermissionMapper.java index a84a5079e..a483bef09 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/MallPermissionMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/MallPermissionMapper.java @@ -9,9 +9,10 @@ import java.util.List; public interface MallPermissionMapper extends CommonMapper { List findList(MallPermission mallPermission); - - List findPermissionByRoleId(Long roleId); - List findPermissionByRoleIds(@Param("roleIds") List roleIds); + + List queryListParentId(Long parentId); + + List queryNotButtonList(); diff --git a/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java index 3d9c36042..337b1bcc1 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java @@ -37,4 +37,16 @@ public interface MallUserInfoMapper extends CommonMapper { List selectUsersByWebOpenId(@Param("webOpenId") String webOpenId); + + /** + * 查询用户的所有权限 + * @param userId 用户ID + */ + List queryAllPerms(Long userId); + + /** + * 查询用户的所有菜单ID + */ + List queryAllMenuId(Long userId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/MallPermissionService.java b/mallinkService/src/main/java/com/iformall/service/MallPermissionService.java index 5e6adec43..1dde3dc27 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallPermissionService.java +++ b/mallinkService/src/main/java/com/iformall/service/MallPermissionService.java @@ -2,11 +2,41 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.MallPermission; +import com.iformall.domain.po.MallUserInfo; import java.util.List; public interface MallPermissionService { + /** + * 获取子菜单 + * @param parentId + * @param menuIdList + * @return + */ + List queryListParentId(Long parentId, List menuIdList); + + + /** + * + * @param parentId + * @return + */ + List queryListParentId(Long parentId); + + + /** + * 所有菜单 + */ + List queryNotButtonList(); + + /** + * 用户菜单 + * @param userInfo + * @return + */ + List getUserMenuList(MallUserInfo userInfo); + /** * 根据实体查询分页列表 * @@ -16,7 +46,7 @@ public interface MallPermissionService { * @return */ PageInfo listAsPage(MallPermission record, Integer pageIndex, Integer pageSize); - + /** * 根据Id获得实体 * @@ -46,25 +76,5 @@ public interface MallPermissionService { * @param id */ void deleteById(Long id); - - /** - * 根据roleId查询菜单和按钮权限 - * @param roleId - * @return - */ - List findPermissionByRoleId(Long roleId); - - /** - * 根据ruleId权限组查找相应权限 - * @param roleIds - * @return - */ - List findPermissionByRoleIds(List roleIds); - - - - - - } diff --git a/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java b/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java index 3b42ddf60..6f66fef1d 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java +++ b/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java @@ -1,13 +1,13 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.MallPermission; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserRole; import java.util.List; public interface MallUserRoleService { - /** * 根据实体查询分页列表 * diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java index e74912ee1..825ca357d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java @@ -2,15 +2,21 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; + import com.iformall.common.IdWorker; import com.iformall.domain.po.MallPermission; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.enums.EnumPermissionType; import com.iformall.mapper.MallPermissionMapper; +import com.iformall.mapper.MallUserInfoMapper; import com.iformall.service.MallPermissionService; +import com.iformall.utils.Constant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; @Service @@ -20,6 +26,76 @@ public class MallPermissionServiceImpl implements MallPermissionService { @Autowired MallPermissionMapper mallPermissionMapper; + @Autowired + MallUserInfoMapper mallUserInfoMapper; + + @Override + public List queryListParentId(Long parentId, List menuIdList) { + List menuList = queryListParentId(parentId); + if(menuIdList == null){ + return menuList; + } + + List userMenuList = new ArrayList<>(); + for(MallPermission menu : menuList){ + if(menuIdList.contains(menu.getId())){ + userMenuList.add(menu); + } + } + return userMenuList; + } + + @Override + public List queryListParentId(Long parentId) { + return mallPermissionMapper.queryListParentId(parentId); + } + + @Override + public List queryNotButtonList() { + return mallPermissionMapper.queryNotButtonList(); + } + + @Override + public List getUserMenuList(MallUserInfo userInfo) { + if(userInfo.getTenantId().equalsIgnoreCase(Constant.FM_SYS_ADMIN) + && userInfo.getId().equals(Constant.SUPER_ADMIN)) { + // 富茂超级管理员,返回所有菜单 + return getAllMenuList(null); + } + //用户菜单列表 + List menuIdList = mallUserInfoMapper.queryAllMenuId(userInfo.getId()); + return getAllMenuList(menuIdList); + } + + /** + * 获取所有菜单列表 + */ + private List getAllMenuList(List menuIdList){ + //查询根菜单列表 + List menuList = queryListParentId(0L, menuIdList); + //递归获取子菜单 + getMenuTreeList(menuList, menuIdList); + + return menuList; + } + + /** + * 递归 + */ + private List getMenuTreeList(List menuList, List menuIdList){ + List subMenuList = new ArrayList(); + + for(MallPermission entity : menuList){ + //目录 + if(entity.getResourceType().equals(EnumPermissionType.CATALOG.getCode())){ + entity.setChilds(getMenuTreeList(queryListParentId(entity.getId(), menuIdList), menuIdList)); + } + subMenuList.add(entity); + } + + return subMenuList; + } + @Override public PageInfo listAsPage(MallPermission record, Integer pageIndex, Integer pageSize) { @@ -45,7 +121,6 @@ public class MallPermissionServiceImpl implements MallPermissionService { @Override public void saveOrUpdate(MallPermission record) { if (record.getId() == null) { - //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); mallPermissionMapper.insertSelective(record); @@ -59,20 +134,4 @@ public class MallPermissionServiceImpl implements MallPermissionService { mallPermissionMapper.deleteByPrimaryKey(id); } - @Override - public List findPermissionByRoleId(Long roleId) { - return mallPermissionMapper.findPermissionByRoleId(roleId); - } - - @Override - public List findPermissionByRoleIds(List roleIds) { - return mallPermissionMapper.findPermissionByRoleIds(roleIds); - } - - - - - - - } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java index 47700e328..523fae954 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java @@ -3,6 +3,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; +import com.iformall.domain.po.MallPermission; import com.iformall.domain.po.MallRolePermission; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserRole; @@ -12,11 +13,13 @@ import com.iformall.mapper.MallPermissionMapper; import com.iformall.mapper.MallRolePermissionMapper; import com.iformall.mapper.MallUserRoleMapper; import com.iformall.service.MallUserRoleService; +import com.iformall.utils.Constant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; @Service diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index 95e58b57b..d1fc03fdd 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -2,6 +2,11 @@ package com.iformall.utils; public class Constant { + /** 超级管理员ID */ + public static final Long SUPER_ADMIN = 1; // 富茂超管 + public static final String FM_SYS_ADMIN = "1"; // 富茂管理员 + + // 1小时过期, public final static int H_EXPIRE = 3600000; diff --git a/mallinkService/src/main/resources/mapper/MallPermissionMapper.xml b/mallinkService/src/main/resources/mapper/MallPermissionMapper.xml index b37ff430b..3cc1e65f8 100644 --- a/mallinkService/src/main/resources/mapper/MallPermissionMapper.xml +++ b/mallinkService/src/main/resources/mapper/MallPermissionMapper.xml @@ -89,5 +89,19 @@ + + + + diff --git a/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml b/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml index d25fb9382..e0b7a5db3 100644 --- a/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml @@ -282,4 +282,19 @@ + + + + + +