ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/UserShop.java
@@ -37,5 +37,5 @@ * 角色id */ @TableField("role_id") private Integer roleId; private Long roleId; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -27,6 +27,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -73,6 +74,9 @@ @Resource private TokenService tokenService; @Autowired private ISysMenuService menuService; @@ -122,12 +126,21 @@ } user.setCreateBy(SecurityUtils.getUsername()); user.setPassword(SecurityUtils.encryptPassword("a123456")); user.setRoleType(1); user.setRoleType(sysUser1.getRoleType()); userService.insertUser(user); SysUserRole sysUserRole = new SysUserRole(); sysUserRole.setRoleId(user.getRoleId()); sysUserRole.setUserId(user.getUserId()); userRoleService.insertSysUserRole(sysUserRole); //添加门店员工关系数据 if(2 == user.getRoleType()){ UserShop userShop = new UserShop(); userShop.setUserId(user.getUserId()); userShop.setShopId(user.getObjectId()); userShop.setRoleType(2); userShop.setRoleId(user.getRoleId()); userShopService.save(userShop); } return AjaxResult.success(); } @@ -215,6 +228,17 @@ user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateTime(new Date()); userService.updateUser(user); //添加门店员工关系数据 if(2 == user.getRoleType()){ userShopService.remove(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId())); UserShop userShop = new UserShop(); userShop.setUserId(user.getUserId()); userShop.setShopId(user.getObjectId()); userShop.setRoleType(2); userShop.setRoleId(user.getRoleId()); userShopService.save(userShop); } return success(); } @@ -312,7 +336,7 @@ } // 角色集合 Set<String> roles = permissionService.getRolePermission(sysUser); // 权限集合 // 权限集合getRolePermission Set<String> permissions = permissionService.getMenuPermission(sysUser); LoginUser sysUserVo = new LoginUser(); sysUserVo.setSysUser(sysUser); @@ -592,7 +616,7 @@ @ResponseBody @GetMapping("/switchShop") @ApiOperation(value = "切换门店", tags = {"门店后台-首页"}) public R switchShop(@PathVariable("shopId") Integer shopId){ public R<Set<String>> switchShop(@PathVariable("shopId") Integer shopId){ Long userid = tokenService.getLoginUser().getUserid(); UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, userid).eq(UserShop::getShopId, shopId)); if(null == one){ @@ -601,6 +625,9 @@ SysUser sysUser = userService.getById(userid); sysUser.setObjectId(shopId); userService.updateById(sysUser); return R.ok(); //查询用户权限列表 Long roleId = one.getRoleId(); Set<String> rolePerms = menuService.selectMenuPermsByRoleId(roleId); return R.ok(rolePerms); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.domain.SysUserRole; import java.util.List; @@ -36,7 +37,7 @@ * @param userId 用户ID * @return 权限列表 */ public Set<String> selectRolePermissionByUserId(Long userId); public Set<String> selectRolePermissionByUserId(SysUser user); /** * 查询所有角色 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java
@@ -1,13 +1,17 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.UserShop; import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysPermissionService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.UserShopService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -26,6 +30,9 @@ @Autowired private ISysMenuService menuService; @Resource private UserShopService userShopService; /** * 获取角色数据权限 * @@ -43,7 +50,7 @@ } else { roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId())); roles.addAll(roleService.selectRolePermissionByUserId(user)); } return roles; } @@ -78,7 +85,12 @@ } else { if(user.getRoleType() == 1){ perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); }else{ UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId())); perms.addAll(menuService.selectMenuPermsByRoleId(one.getRoleId())); } } } return perms; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; @@ -9,6 +10,7 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.UserShop; import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysUserRole; @@ -17,10 +19,12 @@ import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.UserShopService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; /** @@ -41,6 +45,12 @@ @Autowired private SysRoleDeptMapper roleDeptMapper; @Resource private UserShopService userShopService; /** * 根据条件分页查询角色数据 @@ -82,14 +92,24 @@ * @return 权限列表 */ @Override public Set<String> selectRolePermissionByUserId(Long userId) { List<SysRole> perms = roleMapper.selectRolePermissionByUserId(userId); public Set<String> selectRolePermissionByUserId(SysUser user) { Set<String> permsSet = new HashSet<>(); if(user.getRoleType() == 1){ List<SysRole> perms = roleMapper.selectRolePermissionByUserId(user.getUserId()); for (SysRole perm : perms) { if (StringUtils.isNotNull(perm)) { permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); } } }else{ List<UserShop> list = userShopService.list(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()) .eq(UserShop::getShopId, user.getObjectId())); for (UserShop userShop : list) { if (StringUtils.isNotNull(userShop)) { permsSet.add(userShop.getRoleId() + ""); } } } return permsSet; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -14,6 +14,7 @@ import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.UserShop; import com.ruoyi.system.api.query.ChangeUserQuery; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; @@ -30,10 +31,7 @@ import javax.annotation.Resource; import javax.validation.Validator; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.*; import java.util.stream.Collectors; /** @@ -78,6 +76,9 @@ @Lazy @Resource private ISysDeptService deptService; @Resource private UserShopService userShopService; /** @@ -449,7 +450,20 @@ // userRoleMapper.deleteUserRole(userIds); // // 删除用户与岗位关联 // userPostMapper.deleteUserPost(userIds); return userMapper.deleteUserByIds(userIds); int i = userMapper.deleteUserByIds(userIds); List<SysUser> sysUsers = this.listByIds(Arrays.asList(userIds)); for (SysUser user : sysUsers) { if(2 == user.getRoleType()){ userShopService.remove(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId())); UserShop userShop = new UserShop(); userShop.setUserId(user.getUserId()); userShop.setShopId(user.getObjectId()); userShop.setRoleType(2); userShop.setRoleId(user.getRoleId()); userShopService.save(userShop); } } return i; } /** ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -127,6 +127,7 @@ userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShop.setRoleId(2L); userShopClient.saveUserShop(userShop); } }else{ @@ -150,6 +151,7 @@ userShop.setUserId(userId); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShop.setRoleId(2L); userShopClient.saveUserShop(userShop); } return R.ok(); @@ -243,6 +245,7 @@ userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShop.setRoleId(2L); userShopClient.saveUserShop(userShop); } }else{ @@ -266,6 +269,7 @@ userShop.setUserId(userId); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShop.setRoleId(2L); userShopClient.saveUserShop(userShop); } return R.ok();