| @@ -302,15 +302,21 @@ public class MallUserInfoController extends BaseController { | |||||
| MallUserInfo info = getUser(); | MallUserInfo info = getUser(); | ||||
| info.protectInfos(); | info.protectInfos(); | ||||
| // TODO 请用 /menu/nav 获取菜单及权限 | |||||
| /* | |||||
| if(info.getTenantId().equalsIgnoreCase(Constant.FM_SYS_ADMIN)) { | 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); | |||||
| if(info.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { | |||||
| // 富茂系统管理员 | |||||
| } else { | |||||
| // 富茂普通管理员 | |||||
| } | |||||
| } else if (info.getIsAdmin().equals(EnumUserAdmin.ADMIN.getCode())) { | |||||
| // 各商场超管 | |||||
| MallUserInfo q = new MallUserInfo(); | |||||
| q.setId(info.getId()); | |||||
| List<MallPermission> list = mallPermissionService.getUserMenuList(q); | |||||
| String menus = ""; | String menus = ""; | ||||
| for (MallPermission rp : list.getList()) { | |||||
| for (MallPermission rp : list) { | |||||
| menus += rp.getId() + ","; | menus += rp.getId() + ","; | ||||
| } | } | ||||
| if (menus.length() > 0) { | if (menus.length() > 0) { | ||||
| @@ -318,17 +324,15 @@ public class MallUserInfoController extends BaseController { | |||||
| } | } | ||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| } else { | } else { | ||||
| MallUserRole ur = new MallUserRole(); | |||||
| ur.setUid(info.getId()); | |||||
| PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1); | |||||
| if (page.getSize() > 0) { | |||||
| Long roleId = page.getList().get(0).getRoleId(); | |||||
| MallUserRole mur = mallUserRoleService.getByUid(info.getId()); | |||||
| if (mur != null) { | |||||
| Long roleId = mur.getRoleId(); | |||||
| MallRolePermission p = new MallRolePermission(); | MallRolePermission p = new MallRolePermission(); | ||||
| p.setRoleId(roleId); | p.setRoleId(roleId); | ||||
| p.setTenantId(info.getTenantId()); | p.setTenantId(info.getTenantId()); | ||||
| PageInfo<MallRolePermission> listAsPage = mallRolePermissionService.listAsPage(p, 1, 100); | |||||
| List<MallRolePermission> mrpList = mallRolePermissionService.getList(p); | |||||
| String menus = ""; | String menus = ""; | ||||
| for (MallRolePermission rp : listAsPage.getList()) { | |||||
| for (MallRolePermission rp : mrpList) { | |||||
| menus += rp.getPermissionId() + ","; | menus += rp.getPermissionId() + ","; | ||||
| } | } | ||||
| if (menus.length() > 0) { | if (menus.length() > 0) { | ||||
| @@ -337,6 +341,7 @@ public class MallUserInfoController extends BaseController { | |||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| } | } | ||||
| } | } | ||||
| */ | |||||
| return new ResultData(info); | return new ResultData(info); | ||||
| } | } | ||||
| @@ -1,6 +1,5 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.annotation.SystemControllerLog; | import com.iformall.annotation.SystemControllerLog; | ||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| @@ -10,7 +9,8 @@ import com.iformall.domain.po.MallUserInfo; | |||||
| import com.iformall.enums.EnumPermissionType; | import com.iformall.enums.EnumPermissionType; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.service.MallPermissionService; | import com.iformall.service.MallPermissionService; | ||||
| import com.iformall.service.MallUserRoleService; | |||||
| import com.iformall.service.MallUserInfoService; | |||||
| import com.iformall.utils.Constant; | |||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.apache.shiro.authz.annotation.RequiresPermissions; | import org.apache.shiro.authz.annotation.RequiresPermissions; | ||||
| import org.apache.shiro.util.Assert; | import org.apache.shiro.util.Assert; | ||||
| @@ -40,16 +40,17 @@ public class SysMenuController extends BaseController { | |||||
| private MallPermissionService mallPermissionService; | private MallPermissionService mallPermissionService; | ||||
| @Autowired | @Autowired | ||||
| private MallUserRoleService mallUserRoleService; | |||||
| private MallUserInfoService mallUserInfoService; | |||||
| /** | /** | ||||
| * 导航菜单 | * 导航菜单 | ||||
| */ | */ | ||||
| @GetMapping("/nav") | @GetMapping("/nav") | ||||
| public ResultData nav(){ | public ResultData nav(){ | ||||
| logger.debug("[" + getIpAddr() + "] MallPermissionController::nav"); | |||||
| MallUserInfo user = getUser(); | MallUserInfo user = getUser(); | ||||
| List<MallPermission> menuList = mallPermissionService.getUserMenuList(user); | List<MallPermission> menuList = mallPermissionService.getUserMenuList(user); | ||||
| Set<String> permissions = shiroService.getUserPermissions(getUserId()); | |||||
| Set<String> permissions = mallUserInfoService.getUserPermissions(user); | |||||
| Map map = new HashMap<>(); | Map map = new HashMap<>(); | ||||
| map.put("menuList", menuList); | map.put("menuList", menuList); | ||||
| map.put("permissions", permissions); | map.put("permissions", permissions); | ||||
| @@ -66,11 +67,9 @@ public class SysMenuController extends BaseController { | |||||
| @SystemControllerLog(description = "用户管理-权限") | @SystemControllerLog(description = "用户管理-权限") | ||||
| public ResultData getList() { | public ResultData getList() { | ||||
| logger.debug("[" + getIpAddr() + "] MallPermissionController::list"); | 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); | |||||
| MallUserInfo user = getUser(); | |||||
| List<MallPermission> menuList = mallPermissionService.getUserMenuList(user); | |||||
| return new ResultData(Result.SUCCESS, "查询成功", menuList); | |||||
| } | } | ||||
| @PostMapping("add") | @PostMapping("add") | ||||
| @@ -79,7 +78,7 @@ public class SysMenuController extends BaseController { | |||||
| public ResultData createPermission(MallPermission mallPermission) { | public ResultData createPermission(MallPermission mallPermission) { | ||||
| logger.debug("[" + getIpAddr() + "] MallPermissionController::createPermission"); | logger.debug("[" + getIpAddr() + "] MallPermissionController::createPermission"); | ||||
| Assert.notNull(mallPermission.getName(), "用户名不能为空"); | Assert.notNull(mallPermission.getName(), "用户名不能为空"); | ||||
| //数据校验 | |||||
| // 数据校验 | |||||
| verifyForm(mallPermission); | verifyForm(mallPermission); | ||||
| mallPermissionService.saveOrUpdate(mallPermission); | mallPermissionService.saveOrUpdate(mallPermission); | ||||
| @@ -91,7 +90,7 @@ public class SysMenuController extends BaseController { | |||||
| @SystemControllerLog(description = "用户管理-权限更新") | @SystemControllerLog(description = "用户管理-权限更新") | ||||
| public ResultData updatePermission(MallPermission sysPermission) { | public ResultData updatePermission(MallPermission sysPermission) { | ||||
| logger.debug("[" + getIpAddr() + "] MallPermissionController::updatePermission"); | logger.debug("[" + getIpAddr() + "] MallPermissionController::updatePermission"); | ||||
| //数据校验 | |||||
| // 数据校验 | |||||
| verifyForm(sysPermission); | verifyForm(sysPermission); | ||||
| mallPermissionService.saveOrUpdate(sysPermission); | mallPermissionService.saveOrUpdate(sysPermission); | ||||
| @@ -103,15 +102,15 @@ public class SysMenuController extends BaseController { | |||||
| @SystemControllerLog(description = "用户管理-权限删除") | @SystemControllerLog(description = "用户管理-权限删除") | ||||
| public ResultData delete(Long id) { | public ResultData delete(Long id) { | ||||
| logger.debug("[" + getIpAddr() + "] MallPermissionController::delete"); | logger.debug("[" + getIpAddr() + "] MallPermissionController::delete"); | ||||
| if(id <= 100) { | |||||
| // TODO | |||||
| return new ResultData("系统菜单, 不能删除"); | |||||
| if(id <= Constant.SYS_MENU_MAX) { | |||||
| logger.error(ErrorCode.MENU_SYS_NOT_DEL.getMessage()); | |||||
| return new ResultData(ErrorCode.MENU_SYS_NOT_DEL); | |||||
| } | } | ||||
| //判断是否有子菜单或按钮 | //判断是否有子菜单或按钮 | ||||
| List<MallPermission> menuList = mallPermissionService.getByParentId(id); | List<MallPermission> menuList = mallPermissionService.getByParentId(id); | ||||
| if(menuList.size() > 0){ | if(menuList.size() > 0){ | ||||
| // TODO | |||||
| return new ResultData("请先删除子菜单或按钮"); | |||||
| logger.error(ErrorCode.MENU_CHILD_NOT_DEL.getMessage()); | |||||
| return new ResultData(ErrorCode.MENU_CHILD_NOT_DEL); | |||||
| } | } | ||||
| mallPermissionService.deleteById(id); | mallPermissionService.deleteById(id); | ||||
| return new ResultData(Result.SUCCESS, "删除成功"); | return new ResultData(Result.SUCCESS, "删除成功"); | ||||
| @@ -133,18 +132,17 @@ public class SysMenuController extends BaseController { | |||||
| */ | */ | ||||
| private void verifyForm(MallPermission menu){ | private void verifyForm(MallPermission menu){ | ||||
| if(StringUtils.isBlank(menu.getName())){ | if(StringUtils.isBlank(menu.getName())){ | ||||
| // TODO | |||||
| throw new MallinkException("菜单名称不能为空"); | |||||
| throw new MallinkException(ErrorCode.MENU_NAME_EMPTY); | |||||
| } | } | ||||
| if(menu.getParentId() == null){ | if(menu.getParentId() == null){ | ||||
| throw new MallinkException("上级菜单不能为空"); | |||||
| throw new MallinkException(ErrorCode.MENU_PARENT_EMPTY); | |||||
| } | } | ||||
| //菜单 | //菜单 | ||||
| if(menu.getResourceType().equals(EnumPermissionType.MENU.getCode())){ | if(menu.getResourceType().equals(EnumPermissionType.MENU.getCode())){ | ||||
| if(StringUtils.isBlank(menu.getUrl())){ | if(StringUtils.isBlank(menu.getUrl())){ | ||||
| throw new MallinkException("菜单URL不能为空"); | |||||
| throw new MallinkException(ErrorCode.MENU_URL_EMPTY); | |||||
| } | } | ||||
| } | } | ||||
| @@ -159,7 +157,7 @@ public class SysMenuController extends BaseController { | |||||
| if(menu.getResourceType().equals(EnumPermissionType.CATALOG.getCode()) || | if(menu.getResourceType().equals(EnumPermissionType.CATALOG.getCode()) || | ||||
| menu.getResourceType().equals(EnumPermissionType.MENU.getCode())){ | menu.getResourceType().equals(EnumPermissionType.MENU.getCode())){ | ||||
| if(parentType != EnumPermissionType.CATALOG.getCode()){ | if(parentType != EnumPermissionType.CATALOG.getCode()){ | ||||
| throw new MallinkException("上级菜单只能为目录类型"); | |||||
| throw new MallinkException(ErrorCode.MENU_PARENT_NOT_CATEGORY); | |||||
| } | } | ||||
| return ; | return ; | ||||
| } | } | ||||
| @@ -167,7 +165,7 @@ public class SysMenuController extends BaseController { | |||||
| //按钮 | //按钮 | ||||
| if(menu.getResourceType().equals(EnumPermissionType.BUTTON.getCode())){ | if(menu.getResourceType().equals(EnumPermissionType.BUTTON.getCode())){ | ||||
| if(parentType != EnumPermissionType.MENU.getCode()){ | if(parentType != EnumPermissionType.MENU.getCode()){ | ||||
| throw new MallinkException("上级菜单只能为菜单类型"); | |||||
| throw new MallinkException(ErrorCode.MENU_PARENT_NOT_MENU); | |||||
| } | } | ||||
| return ; | return ; | ||||
| } | } | ||||
| @@ -5,7 +5,7 @@ CREATE TABLE `mall_permission` ( | |||||
| `parent_id` bigint(64) DEFAULT NULL COMMENT '父编号ID,一级菜单为0', | `parent_id` bigint(64) DEFAULT NULL COMMENT '父编号ID,一级菜单为0', | ||||
| `available` varchar(1) DEFAULT 'Y' COMMENT '是否可用 Y/N', | `available` varchar(1) DEFAULT 'Y' COMMENT '是否可用 Y/N', | ||||
| `permission` varchar(50) DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:user:list,user:create)', | `permission` varchar(50) DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:user:list,user:create)', | ||||
| `resource_type` tinyint(2) DEFAULT NULL COMMENT '资源类型0:目录 1:菜单 2:按钮', | |||||
| `resource_type` tinyint(2) DEFAULT NULL COMMENT '资源类型0:目录 1:菜单 2:按钮 3:其它', | |||||
| `module_color` varchar(10) DEFAULT NULL COMMENT '菜单背景色-1级菜单使用', | `module_color` varchar(10) DEFAULT NULL COMMENT '菜单背景色-1级菜单使用', | ||||
| `module_color_num` varchar(15) DEFAULT NULL COMMENT '菜单字体颜色-1级菜单使用', | `module_color_num` varchar(15) DEFAULT NULL COMMENT '菜单字体颜色-1级菜单使用', | ||||
| `url` varchar(50) DEFAULT NULL COMMENT '资源路径(user/list or http://localhost/1.html)', | `url` varchar(50) DEFAULT NULL COMMENT '资源路径(user/list or http://localhost/1.html)', | ||||
| @@ -19,16 +19,16 @@ CREATE TABLE `mall_permission` ( | |||||
| INSERT INTO `mall_permission` | INSERT INTO `mall_permission` | ||||
| (`id`,`name`, `parent_id`,`available`,`permission`,`resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`,`sort`) | (`id`,`name`, `parent_id`,`available`,`permission`,`resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`,`sort`) | ||||
| VALUES | VALUES | ||||
| (1, '数据塔台', 0, 'Y', 0, '#EE7653', '238,118,83', null, null, 0, 1), | |||||
| (2, '商户商铺', 0, 'Y', 0, '#51A9C9', '81,169,201', null, null, 0, 2), | |||||
| (3, '合同管理', 0, 'Y', 0, '#5A76BF', '90,118,191', null, null, 0, 3), | |||||
| (4, '账单管理', 0, 'Y', 0, '#3FC496', '63,196,150', null, null, 0, 4), | |||||
| (5, '会员系统', 0, 'Y', 0, '#6B5EC9', '107,94,201', null, null, 0, 5), | |||||
| (6, '营销系统', 0, 'Y', 0, '#C85963', '200,89,99', null, null, 0, 6), | |||||
| (7, '账号管理', 0, 'Y', 0, '#B23D8B', '178,61,139', null, null, 0, 9), | |||||
| (8, '移动端数据塔台', 0, 'Y', '#B23D8B', '178,61,139', null, null, 0, 8), | |||||
| (9, '智能硬件', 0, 'Y', 0, '#E19549', '225,149,73', null, null, 0, 7), | |||||
| (50, '系统管理', 0, 'Y', '#B23D8B', '178,61,139', null, null, 0, 50), | |||||
| (1, '数据塔台', 0, 'Y', null, 0, '#EE7653', '238,118,83', null, null, 0, 1), | |||||
| (2, '商户商铺', 0, 'Y', null, 0, '#51A9C9', '81,169,201', null, null, 0, 2), | |||||
| (3, '合同管理', 0, 'Y', null, 0, '#5A76BF', '90,118,191', null, null, 0, 3), | |||||
| (4, '账单管理', 0, 'Y', null, 0, '#3FC496', '63,196,150', null, null, 0, 4), | |||||
| (5, '会员系统', 0, 'Y', null, 0, '#6B5EC9', '107,94,201', null, null, 0, 5), | |||||
| (6, '营销系统', 0, 'Y', null, 0, '#C85963', '200,89,99', null, null, 0, 6), | |||||
| (7, '账号管理', 0, 'Y', null, 0, '#B23D8B', '178,61,139', null, null, 0, 9), | |||||
| (8, '移动端数据塔台', 0, 'Y', null, 3, '#B23D8B', '178,61,139', null, null, 0, 8), | |||||
| (9, '智能硬件', 0, 'Y', null, 0, '#E19549', '225,149,73', null, null, 0, 7), | |||||
| (50, '系统管理', 0, 'Y', null, 0, '#B23D8B', '178,61,139', null, null, 0, 50), | |||||
| (101, '数据总览', 1, 'Y', null, 1, null, null, 'zonglan', 'icon-fumao-shujuzonglan', 0, 101), | (101, '数据总览', 1, 'Y', null, 1, null, null, 'zonglan', 'icon-fumao-shujuzonglan', 0, 101), | ||||
| (102, '运营数据', 1, 'Y', null, 1, null, null, 'yunying', 'icon-shuju1', 0, 102), | (102, '运营数据', 1, 'Y', null, 1, null, null, 'yunying', 'icon-shuju1', 0, 102), | ||||
| @@ -139,6 +139,6 @@ VALUES | |||||
| (902, '用户数量', 7, 'Y', null, 1, null, null, 'userList', 'icon-yonghuguanli', 0, 902), | (902, '用户数量', 7, 'Y', null, 1, null, null, 'userList', 'icon-yonghuguanli', 0, 902), | ||||
| (951, '广告大屏', 9, 'Y', null, 0, null, null, 'bigScreentList', 'icon-navicon-yhgl', 0, 951), | (951, '广告大屏', 9, 'Y', null, 0, null, null, 'bigScreentList', 'icon-navicon-yhgl', 0, 951), | ||||
| (961, '大屏管理', 951, 'Y', null, 1, null, null, 'bigScreentList', null, 0, 961), | |||||
| (961, '大屏管理', 951, 'Y', null, 1, null, null, 'bigScreentList', null, 0, 961) | |||||
| ; | ; | ||||
| @@ -28,6 +28,16 @@ public enum ErrorCode{ | |||||
| SYS_REPEAT_SUBMIT_EXCEPTION(1013, "请勿重复操作"), | SYS_REPEAT_SUBMIT_EXCEPTION(1013, "请勿重复操作"), | ||||
| REPORT_TYPE_UNKNOWN(1014, "不支持的报表类型"), | REPORT_TYPE_UNKNOWN(1014, "不支持的报表类型"), | ||||
| /** | |||||
| * 菜单 | |||||
| */ | |||||
| MENU_NAME_EMPTY(1020, "菜单名称不能为空"), | |||||
| MENU_PARENT_EMPTY(1021, "上级菜单不能为空"), | |||||
| MENU_URL_EMPTY(1022, "菜单URL不能为空"), | |||||
| MENU_PARENT_NOT_CATEGORY(1023, "上级菜单只能为目录类型"), | |||||
| MENU_PARENT_NOT_MENU(1024, "上级菜单只能为菜单类型"), | |||||
| MENU_SYS_NOT_DEL(1025, "系统菜单, 不能删除"), | |||||
| MENU_CHILD_NOT_DEL(1026, "请先删除子菜单或按钮"), | |||||
| /** | /** | ||||
| * 数据库 | * 数据库 | ||||
| */ | */ | ||||
| @@ -1,6 +1,8 @@ | |||||
| package com.iformall.domain.po; | package com.iformall.domain.po; | ||||
| import com.iformall.enums.EnumUserAdmin; | |||||
| import com.iformall.enums.EnumUserWechat; | import com.iformall.enums.EnumUserWechat; | ||||
| import com.iformall.utils.Constant; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| @@ -273,6 +275,15 @@ public class MallUserInfo implements Serializable { | |||||
| } | } | ||||
| } | } | ||||
| public boolean isFmSuperAdmin() { | |||||
| if(tenantId.equalsIgnoreCase(Constant.FM_SYS_ADMIN)) { | |||||
| if(id.equals(Constant.SUPER_ADMIN) || isAdmin.equals(EnumUserAdmin.ADMIN.getCode())) { | |||||
| return true; | |||||
| } | |||||
| } | |||||
| return false; | |||||
| } | |||||
| public static enum Field | public static enum Field | ||||
| { | { | ||||
| Id_ASC("`id` ASC"),Id_DESC("`id` DESC") | Id_ASC("`id` ASC"),Id_DESC("`id` DESC") | ||||
| @@ -2,14 +2,53 @@ package com.iformall.service; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallPermission; | |||||
| import com.iformall.domain.po.MallUserInfo; | import com.iformall.domain.po.MallUserInfo; | ||||
| import com.iformall.domain.vo.MallUserInfoVo; | import com.iformall.domain.vo.MallUserInfoVo; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Set; | |||||
| public interface MallUserInfoService { | public interface MallUserInfoService { | ||||
| /** | |||||
| //// -------------------- Login ----------------------- //// | |||||
| /** | |||||
| * 根据用户名查询用户对象 | |||||
| * | |||||
| * @param username | |||||
| * @return | |||||
| */ | |||||
| MallUserInfo getByUsername(String username); | |||||
| /** | |||||
| * 根据phone获得实体 | |||||
| * | |||||
| * @param phone | |||||
| * @return | |||||
| */ | |||||
| MallUserInfo getByPhone(String phone, String tenantId); | |||||
| /** | |||||
| * 根据web_open_id获得展示列表 | |||||
| * | |||||
| * @param webOpenId | |||||
| * @return | |||||
| */ | |||||
| List<MallUserInfoVo> getUsersByWebOpenId(String webOpenId); | |||||
| /** | |||||
| * 根据B端OpenId获得实体 | |||||
| * | |||||
| * @param openId | |||||
| * @return | |||||
| */ | |||||
| MallUserInfo getByBOpenId(String openId, String tenantId); | |||||
| //// -------------------- Login end ----------------------- //// | |||||
| /** | |||||
| * 根据实体查询分页列表 | * 根据实体查询分页列表 | ||||
| * | * | ||||
| * @param record | * @param record | ||||
| @@ -17,24 +56,25 @@ public interface MallUserInfoService { | |||||
| * @param pageSize | * @param pageSize | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| PageInfo<MallUserInfo> listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize); | |||||
| PageInfo<MallUserInfo> listAsPage(MallUserInfo record, Integer pageIndex, Integer pageSize); | |||||
| /** | /** | ||||
| * 根据实体查询列表 | * 根据实体查询列表 | ||||
| * | |||||
| * @param record | * @param record | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| int cntUserList(MallUserInfo record); | int cntUserList(MallUserInfo record); | ||||
| /** | |||||
| /** | |||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| * | * | ||||
| * @param id | * @param id | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| MallUserInfo getById(Long id); | MallUserInfo getById(Long id); | ||||
| /** | |||||
| /** | |||||
| * 保存或更新实体 | * 保存或更新实体 | ||||
| * | * | ||||
| * @param record | * @param record | ||||
| @@ -50,34 +90,33 @@ public interface MallUserInfoService { | |||||
| /** | /** | ||||
| * 查询用户名总数,用于校验用户名是否重复 | * 查询用户名总数,用于校验用户名是否重复 | ||||
| * | |||||
| * @param username | * @param username | ||||
| */ | */ | ||||
| int cntByUserName(String username); | int cntByUserName(String username); | ||||
| /** | /** | ||||
| * 查询手机号,用于校验手机号是否重复 | * 查询手机号,用于校验手机号是否重复 | ||||
| * | |||||
| * @param phone | * @param phone | ||||
| */ | */ | ||||
| int cntByUserPhone(String phone); | int cntByUserPhone(String phone); | ||||
| /** | |||||
| * 根据用户名查询用户对象 | |||||
| * @param username | |||||
| * @return | |||||
| */ | |||||
| MallUserInfo getByUsername(String username); | |||||
| /** | /** | ||||
| * 删除用户相关数据(用户记录,角色关联) | * 删除用户相关数据(用户记录,角色关联) | ||||
| * | |||||
| * @param id | * @param id | ||||
| */ | */ | ||||
| void deleteUser(Long id); | void deleteUser(Long id); | ||||
| /** | /** | ||||
| * 检查用户按钮是否有权限 | * 检查用户按钮是否有权限 | ||||
| * | |||||
| * @param userId | * @param userId | ||||
| * @param permission | * @param permission | ||||
| * @return 是否有权限(true: 有| false: 没有) | |||||
| * @return 是否有权限(true : 有 | false : 没有) | |||||
| */ | */ | ||||
| boolean hasButtonPermission(Long userId, String permission); | boolean hasButtonPermission(Long userId, String permission); | ||||
| @@ -90,13 +129,6 @@ public interface MallUserInfoService { | |||||
| boolean checkCodeValid(MallUserInfo user, String code); | boolean checkCodeValid(MallUserInfo user, String code); | ||||
| /** | |||||
| * 根据phone获得实体 | |||||
| * | |||||
| * @param phone | |||||
| * @return | |||||
| */ | |||||
| MallUserInfo getByPhone(String phone, String tenantId); | |||||
| /** | /** | ||||
| * 根据phone获得实体列表 | * 根据phone获得实体列表 | ||||
| @@ -106,14 +138,6 @@ public interface MallUserInfoService { | |||||
| */ | */ | ||||
| List<MallUserInfoVo> getUserByPhone(String phone); | List<MallUserInfoVo> getUserByPhone(String phone); | ||||
| /** | |||||
| * 根据B端OpenId获得实体 | |||||
| * | |||||
| * @param openId | |||||
| * @return | |||||
| */ | |||||
| MallUserInfo getByBOpenId(String openId, String tenantId); | |||||
| void updateBOpenId(MallUserInfo user); | void updateBOpenId(MallUserInfo user); | ||||
| /** | /** | ||||
| @@ -124,16 +148,9 @@ public interface MallUserInfoService { | |||||
| */ | */ | ||||
| List<MallUserInfo> getByWebOpenId(String webOpenId); | List<MallUserInfo> getByWebOpenId(String webOpenId); | ||||
| /** | |||||
| * 根据phone获得展示列表 | |||||
| * | |||||
| * @param webOpenId | |||||
| * @return | |||||
| */ | |||||
| List<MallUserInfoVo> getUsersByWebOpenId(String webOpenId); | |||||
| /** | /** | ||||
| * 根据用户名webOpenId查询用户对象 | * 根据用户名webOpenId查询用户对象 | ||||
| * | |||||
| * @param username | * @param username | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| @@ -147,7 +164,15 @@ public interface MallUserInfoService { | |||||
| /** | /** | ||||
| * 根据条件用户列表 | * 根据条件用户列表 | ||||
| * | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| List<MallUserInfo> findList(MallUserInfo record); | List<MallUserInfo> findList(MallUserInfo record); | ||||
| /** | |||||
| * 用户权限获取 | |||||
| * @param record | |||||
| * @return | |||||
| */ | |||||
| Set<String> getUserPermissions(MallUserInfo record); | |||||
| } | } | ||||
| @@ -33,6 +33,14 @@ public interface MallUserRoleService { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| MallUserRole getById(Long id); | MallUserRole getById(Long id); | ||||
| /** | |||||
| * 根据uid获得实体 | |||||
| * | |||||
| * @param uid | |||||
| * @return | |||||
| */ | |||||
| MallUserRole getByUid(Long uid); | |||||
| /** | /** | ||||
| * 保存或更新实体 | * 保存或更新实体 | ||||
| @@ -57,8 +57,7 @@ public class MallPermissionServiceImpl implements MallPermissionService { | |||||
| @Override | @Override | ||||
| public List<MallPermission> getUserMenuList(MallUserInfo userInfo) { | public List<MallPermission> getUserMenuList(MallUserInfo userInfo) { | ||||
| if(userInfo.getTenantId().equalsIgnoreCase(Constant.FM_SYS_ADMIN) | |||||
| && userInfo.getId().equals(Constant.SUPER_ADMIN)) { | |||||
| if(userInfo.isFmSuperAdmin()) { | |||||
| // 富茂超级管理员,返回所有菜单 | // 富茂超级管理员,返回所有菜单 | ||||
| return getAllMenuList(null); | return getAllMenuList(null); | ||||
| } | } | ||||
| @@ -6,15 +6,18 @@ import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallPermission; | |||||
| import com.iformall.domain.po.MallUserInfo; | import com.iformall.domain.po.MallUserInfo; | ||||
| import com.iformall.domain.po.MallUserRole; | import com.iformall.domain.po.MallUserRole; | ||||
| import com.iformall.domain.po.WxMsgValidationcode; | import com.iformall.domain.po.WxMsgValidationcode; | ||||
| import com.iformall.domain.vo.MallUserInfoVo; | import com.iformall.domain.vo.MallUserInfoVo; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.mapper.MallPermissionMapper; | |||||
| import com.iformall.mapper.MallUserInfoMapper; | import com.iformall.mapper.MallUserInfoMapper; | ||||
| import com.iformall.mapper.MallUserRoleMapper; | import com.iformall.mapper.MallUserRoleMapper; | ||||
| import com.iformall.mapper.WxMsgValidationcodeMapper; | import com.iformall.mapper.WxMsgValidationcodeMapper; | ||||
| import com.iformall.service.MallUserInfoService; | import com.iformall.service.MallUserInfoService; | ||||
| import com.iformall.utils.Constant; | |||||
| import net.sf.saxon.trans.Err; | import net.sf.saxon.trans.Err; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| @@ -23,10 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
| import java.util.Date; | |||||
| import java.util.HashMap; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import java.util.*; | |||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
| @Service | @Service | ||||
| @@ -39,6 +39,9 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { | |||||
| @Autowired | @Autowired | ||||
| MallUserRoleMapper userRoleMapper; | MallUserRoleMapper userRoleMapper; | ||||
| @Autowired | |||||
| MallPermissionMapper mallPermissionMapper; | |||||
| @Autowired | @Autowired | ||||
| WxMsgValidationcodeMapper wxMsgValidationcodeMapper; | WxMsgValidationcodeMapper wxMsgValidationcodeMapper; | ||||
| @@ -233,5 +236,32 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { | |||||
| return mallUserInfoMapper.findList(record); | return mallUserInfoMapper.findList(record); | ||||
| } | } | ||||
| @Override | |||||
| public Set<String> getUserPermissions(MallUserInfo record) { | |||||
| List<String> permsList; | |||||
| if(record.isFmSuperAdmin()) { | |||||
| // 富茂超管 | |||||
| MallPermission q = new MallPermission(); | |||||
| q.setAvailable("Y"); | |||||
| List<MallPermission> menuList = mallPermissionMapper.select(q); | |||||
| permsList = new ArrayList<>(menuList.size()); | |||||
| for(MallPermission menu : menuList){ | |||||
| permsList.add(menu.getPermission()); | |||||
| } | |||||
| } else { | |||||
| permsList = mallUserInfoMapper.queryAllPerms(record.getId()); | |||||
| } | |||||
| //用户权限列表 | |||||
| Set<String> permsSet = new HashSet<>(); | |||||
| for(String perms : permsList){ | |||||
| if(StringUtils.isBlank(perms)){ | |||||
| continue; | |||||
| } | |||||
| permsSet.addAll(Arrays.asList(perms.trim().split(","))); | |||||
| } | |||||
| return permsSet; | |||||
| } | |||||
| } | } | ||||
| @@ -48,6 +48,18 @@ public class MallUserRoleServiceImpl implements MallUserRoleService { | |||||
| return mallUserRoleMapper.selectByPrimaryKey(id); | return mallUserRoleMapper.selectByPrimaryKey(id); | ||||
| } | } | ||||
| @Override | |||||
| public MallUserRole getByUid(Long uid) { | |||||
| try { | |||||
| MallUserRole q = new MallUserRole(); | |||||
| q.setUid(uid); | |||||
| return mallUserRoleMapper.selectOne(q); | |||||
| } catch (Exception e) { | |||||
| logger.error(e.getMessage()); | |||||
| } | |||||
| return null; | |||||
| } | |||||
| @Override | @Override | ||||
| public void saveOrUpdate(MallUserRole record) { | public void saveOrUpdate(MallUserRole record) { | ||||
| if (record.getId() == null) { | if (record.getId() == null) { | ||||
| @@ -3,9 +3,11 @@ package com.iformall.utils; | |||||
| public class Constant { | public class Constant { | ||||
| /** 超级管理员ID */ | /** 超级管理员ID */ | ||||
| public static final Long SUPER_ADMIN = 1; // 富茂超管 | |||||
| public static final Long SUPER_ADMIN = 1L; // 富茂超管 | |||||
| public static final String FM_SYS_ADMIN = "1"; // 富茂管理员 | public static final String FM_SYS_ADMIN = "1"; // 富茂管理员 | ||||
| public static final int SYS_MENU_MAX = 2000; // 系统菜单最大值 | |||||
| // 1小时过期, | // 1小时过期, | ||||
| public final static int H_EXPIRE = 3600000; | public final static int H_EXPIRE = 3600000; | ||||
| @@ -224,6 +224,21 @@ | |||||
| </if> | </if> | ||||
| </select> | </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 mall_user_role ur | |||||
| LEFT JOIN mall_role_permission rp on ur.role_id = rp.role_id | |||||
| where ur.uid = #{userId} | |||||
| </select> | |||||
| <resultMap id="VBaseResultMap" type="com.iformall.domain.vo.MallUserInfoVo"> | <resultMap id="VBaseResultMap" type="com.iformall.domain.vo.MallUserInfoVo"> | ||||
| <id column="id" jdbcType="BIGINT" property="id"/> | <id column="id" jdbcType="BIGINT" property="id"/> | ||||
| @@ -282,19 +297,4 @@ | |||||
| </if> | </if> | ||||
| </select> | </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> | </mapper> | ||||