| @@ -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; | |||
| @@ -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); | |||
| @@ -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; | |||
| } | |||
| @@ -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<MallPermission> 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)); | |||
| } | |||
| } | |||
| @@ -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<MallPermission> list = mallPermissionService.listAsPage(q, 1, 100); | |||
| String menus = ""; | |||
| @@ -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<MallPermission> menuList = mallPermissionService.getUserMenuList(user); | |||
| Set<String> 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<MallPermission> permissions = mallPermissionService.getByParentId(null); | |||
| for(MallPermission permission: permissions) { | |||
| List<MallPermission> 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<MallPermission> 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 ; | |||
| } | |||
| } | |||
| } | |||
| @@ -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); | |||
| @@ -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") | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -9,9 +9,10 @@ import java.util.List; | |||
| public interface MallPermissionMapper extends CommonMapper<MallPermission, String> { | |||
| List<MallPermission> findList(MallPermission mallPermission); | |||
| List<MallPermission> findPermissionByRoleId(Long roleId); | |||
| List<MallPermission> findPermissionByRoleIds(@Param("roleIds") List<Long> roleIds); | |||
| List<MallPermission> queryListParentId(Long parentId); | |||
| List<MallPermission> queryNotButtonList(); | |||
| @@ -37,4 +37,16 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> { | |||
| List<MallUserInfoVo> selectUsersByWebOpenId(@Param("webOpenId") String webOpenId); | |||
| /** | |||
| * 查询用户的所有权限 | |||
| * @param userId 用户ID | |||
| */ | |||
| List<String> queryAllPerms(Long userId); | |||
| /** | |||
| * 查询用户的所有菜单ID | |||
| */ | |||
| List<Long> queryAllMenuId(Long userId); | |||
| } | |||
| @@ -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<MallPermission> queryListParentId(Long parentId, List<Long> menuIdList); | |||
| /** | |||
| * | |||
| * @param parentId | |||
| * @return | |||
| */ | |||
| List<MallPermission> queryListParentId(Long parentId); | |||
| /** | |||
| * 所有菜单 | |||
| */ | |||
| List<MallPermission> queryNotButtonList(); | |||
| /** | |||
| * 用户菜单 | |||
| * @param userInfo | |||
| * @return | |||
| */ | |||
| List<MallPermission> getUserMenuList(MallUserInfo userInfo); | |||
| /** | |||
| * 根据实体查询分页列表 | |||
| * | |||
| @@ -16,7 +46,7 @@ public interface MallPermissionService { | |||
| * @return | |||
| */ | |||
| PageInfo<MallPermission> 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<MallPermission> findPermissionByRoleId(Long roleId); | |||
| /** | |||
| * 根据ruleId权限组查找相应权限 | |||
| * @param roleIds | |||
| * @return | |||
| */ | |||
| List<MallPermission> findPermissionByRoleIds(List<Long> roleIds); | |||
| } | |||
| @@ -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 { | |||
| /** | |||
| * 根据实体查询分页列表 | |||
| * | |||
| @@ -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<MallPermission> queryListParentId(Long parentId, List<Long> menuIdList) { | |||
| List<MallPermission> menuList = queryListParentId(parentId); | |||
| if(menuIdList == null){ | |||
| return menuList; | |||
| } | |||
| List<MallPermission> userMenuList = new ArrayList<>(); | |||
| for(MallPermission menu : menuList){ | |||
| if(menuIdList.contains(menu.getId())){ | |||
| userMenuList.add(menu); | |||
| } | |||
| } | |||
| return userMenuList; | |||
| } | |||
| @Override | |||
| public List<MallPermission> queryListParentId(Long parentId) { | |||
| return mallPermissionMapper.queryListParentId(parentId); | |||
| } | |||
| @Override | |||
| public List<MallPermission> queryNotButtonList() { | |||
| return mallPermissionMapper.queryNotButtonList(); | |||
| } | |||
| @Override | |||
| public List<MallPermission> getUserMenuList(MallUserInfo userInfo) { | |||
| if(userInfo.getTenantId().equalsIgnoreCase(Constant.FM_SYS_ADMIN) | |||
| && userInfo.getId().equals(Constant.SUPER_ADMIN)) { | |||
| // 富茂超级管理员,返回所有菜单 | |||
| return getAllMenuList(null); | |||
| } | |||
| //用户菜单列表 | |||
| List<Long> menuIdList = mallUserInfoMapper.queryAllMenuId(userInfo.getId()); | |||
| return getAllMenuList(menuIdList); | |||
| } | |||
| /** | |||
| * 获取所有菜单列表 | |||
| */ | |||
| private List<MallPermission> getAllMenuList(List<Long> menuIdList){ | |||
| //查询根菜单列表 | |||
| List<MallPermission> menuList = queryListParentId(0L, menuIdList); | |||
| //递归获取子菜单 | |||
| getMenuTreeList(menuList, menuIdList); | |||
| return menuList; | |||
| } | |||
| /** | |||
| * 递归 | |||
| */ | |||
| private List<MallPermission> getMenuTreeList(List<MallPermission> menuList, List<Long> menuIdList){ | |||
| List<MallPermission> subMenuList = new ArrayList<MallPermission>(); | |||
| 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<MallPermission> 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<MallPermission> findPermissionByRoleId(Long roleId) { | |||
| return mallPermissionMapper.findPermissionByRoleId(roleId); | |||
| } | |||
| @Override | |||
| public List<MallPermission> findPermissionByRoleIds(List<Long> roleIds) { | |||
| return mallPermissionMapper.findPermissionByRoleIds(roleIds); | |||
| } | |||
| } | |||
| @@ -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 | |||
| @@ -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; | |||
| @@ -89,5 +89,19 @@ | |||
| <include refid="dynamicWhereConditions"/> | |||
| </select> | |||
| <select id="queryListParentId" parameterType="long" resultMap="BaseResultMap"> | |||
| select | |||
| <include refid="allColumns"/> | |||
| from mall_permission | |||
| where 1=1 and `parent_id` = #{value} and available = 'Y' order by sort asc | |||
| </select> | |||
| <select id="queryNotButtonList" resultMap="BaseResultMap"> | |||
| select | |||
| <include refid="allColumns"/> | |||
| from mall_permission | |||
| where 1=1 and `resource_type` != 2 and `available` = 'Y' order by sort asc | |||
| </select> | |||
| </mapper> | |||
| @@ -282,4 +282,19 @@ | |||
| </if> | |||
| </select> | |||
| <!-- 查询用户的所有权限 --> | |||
| <select id="queryAllPerms" resultType="string"> | |||
| select p.permission from mall_user_role ur | |||
| LEFT JOIN mall_role_permission rp on ur.role_id = rp.role_id | |||
| LEFT JOIN mall_permission p on rp.permission_id = p.id | |||
| where ur.uid = #{userId} | |||
| </select> | |||
| <!-- 查询用户的所有菜单ID --> | |||
| <select id="queryAllMenuId" resultType="long"> | |||
| select distinct rp.permission_id from sys_user_role ur | |||
| LEFT JOIN mall_role_permission rp on ur.role_id = rp.role_id | |||
| where ur.uid = #{userId} | |||
| </select> | |||
| </mapper> | |||