diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index 232c5fa..2fc25bc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -1,18 +1,5 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -30,6 +17,16 @@ import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; +import java.util.StringJoiner; +import java.util.stream.Collectors; /** * 角色信息 @@ -244,6 +241,23 @@ public class SysRoleController extends BaseController public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { roleService.checkRoleDataScope(roleId); + // 当授权成为仓库管理员前先判断此用户是否是物资管理员(必须先为物资管理员,才可成为仓库管理员) + StringJoiner joiner = new StringJoiner(","); + if (roleId == 102L) { + // 根据userIds查询用户信息 + List userList = userService.listUser(Arrays.asList(userIds)); + for (SysUser user : userList) { + List roleIds = user.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()); + if (!roleIds.contains(107L)) { + // 如果不是物资管理员那么不能授权成为仓库管理员,记录一下不能成为仓库管理员的用户名 + joiner.add(user.getNickName()); + } + } + } + if (joiner.toString().length() != 0) { + return AjaxResult.error(joiner.toString() + "不是物资管理员,因此不能成为仓库管理员!"); + } + return toAjax(roleService.insertAuthUsers(roleId, userIds)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index af50681..6412adc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.system; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; @@ -138,6 +139,15 @@ public class SysUserController extends BaseController } user.setCreateBy(getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); + List roleIdList = Arrays.asList(user.getRoleIds()); + // 判断角色中是否仓库管理员 + if (roleIdList.contains(102L)) { + // 如果包含了仓库管理员那么判断是否包含物资管理员 + if (!roleIdList.contains(107L)) { + // 如果不包含物资管理员,那么返回错误提示,必须先为物资管理员,才可为仓库管理员 + return AjaxResult.error("必须先为物资管理员,才可为仓库管理员!"); + } + } return toAjax(userService.insertUser(user)); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 76e1c79..975f220 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -51,6 +51,13 @@ public interface SysUserMapper */ public SysUser selectUserById(Long userId); + /** + * 通过多个用户id查询用户信息 + * @param userIdList 用户ID集合 + * @return + */ + List listUser(List userIdList); + /** * 新增用户信息 * @@ -124,4 +131,5 @@ public interface SysUserMapper * @return 结果 */ public SysUser checkEmailUnique(String email); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 10bc2ab..ff56a63 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -50,6 +50,13 @@ public interface ISysUserService */ public SysUser selectUserById(Long userId); + /** + * 通过多个用户id查询用户信息 + * @param userIdList 用户ID集合 + * @return + */ + public List listUser(List userIdList); + /** * 根据用户ID查询用户所属角色组 * @@ -203,4 +210,5 @@ public interface ISysUserService * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index b371060..ecbf940 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -124,6 +124,16 @@ public class SysUserServiceImpl implements ISysUserService return userMapper.selectUserById(userId); } + /** + * 通过多个用户id查询用户信息 + * @param userIdList 用户ID集合 + * @return + */ + @Override + public List listUser(List userIdList) { + return userMapper.listUser(userIdList); + } + /** * 查询用户所属角色组 * diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 15bdfe1..d1ac990 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -147,7 +147,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + insert into sys_user( user_id,