diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 3c51e09ce..b87de51a3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -7,11 +7,10 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginBody; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.helper.LoginHelper; -import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.service.ISysMenuService; +import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysLoginService; import com.ruoyi.system.service.SysPermissionService; import io.swagger.annotations.Api; @@ -41,6 +40,7 @@ public class SysLoginController { private final SysLoginService loginService; private final ISysMenuService menuService; + private final ISysUserService userService; private final SysPermissionService permissionService; /** @@ -78,7 +78,7 @@ public class SysLoginController { @ApiOperation("获取用户信息") @GetMapping("getInfo") public AjaxResult> getInfo() { - SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + SysUser user = userService.selectUserById(LoginHelper.getUserId()); // 角色集合 Set roles = permissionService.getRolePermission(user); // 权限集合 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 0fa8e1ed1..0a24e7c0d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -5,12 +5,10 @@ import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; @@ -91,7 +89,7 @@ public class SysProfileController extends BaseController { @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") public AjaxResult updatePwd(String oldPassword, String newPassword) { - SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + SysUser user = userService.selectUserById(LoginHelper.getUserId()); String userName = user.getUserName(); String password = user.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index 4651b0051..81e374a5e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -1,10 +1,13 @@ package com.ruoyi.common.core.domain.model; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.helper.LoginHelper; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.List; import java.util.Set; /** @@ -84,6 +87,21 @@ public class LoginUser implements Serializable { */ private String username; + /** + * 部门对象 + */ + private SysDept dept; + + /** + * 角色对象 + */ + private List roles; + + /** + * 数据权限 当前角色ID + */ + private Long roleId; + /** * 获取登录id */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java deleted file mode 100644 index e637f4731..000000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ruoyi.common.core.service; - -import com.ruoyi.common.core.domain.entity.SysUser; - -/** - * 通用 用户业务 - * - * @author Lion Li - */ -public interface UserService { - - /** - * 通过用户名查询用户 - * - * @param userName 用户名 - * @return 用户对象信息 - */ - SysUser selectUserByUserName(String userName); - - /** - * 通过用户ID查询用户 - * - * @param userId 用户ID - * @return 用户对象信息 - */ - SysUser selectUserById(Long userId); - -} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java index 07795d949..24a684754 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java @@ -8,12 +8,12 @@ import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.annotation.DataColumn; import com.ruoyi.common.annotation.DataPermission; import com.ruoyi.common.core.domain.entity.SysRole; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.DataScopeType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.DataPermissionHelper; import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.extern.slf4j.Slf4j; @@ -74,13 +74,13 @@ public class PlusDataPermissionHandler { inavlidCacheSet.add(mappedStatementId); return where; } - SysUser currentUser = DataPermissionHelper.getVariable("user"); + LoginUser currentUser = DataPermissionHelper.getVariable("user"); if (ObjectUtil.isNull(currentUser)) { - currentUser = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + currentUser = LoginHelper.getLoginUser(); DataPermissionHelper.setVariable("user", currentUser); } // 如果是超级管理员,则不过滤数据 - if (ObjectUtil.isNull(currentUser) || currentUser.isAdmin()) { + if (ObjectUtil.isNull(currentUser) || SecurityUtils.isAdmin(currentUser.getUserId())) { return where; } String dataFilterSql = buildDataFilter(dataColumns, isSelect); @@ -108,7 +108,7 @@ public class PlusDataPermissionHandler { StringBuilder sqlString = new StringBuilder(); // 更新或删除需满足所有条件 String joinStr = isSelect ? " OR " : " AND "; - SysUser user = DataPermissionHelper.getVariable("user"); + LoginUser user = DataPermissionHelper.getVariable("user"); StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(beanResolver); DataPermissionHelper.getContext().forEach(context::setVariable); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java index 609c0ac48..bf5625f91 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java @@ -9,14 +9,12 @@ import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.dto.UserOnlineDTO; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.UserType; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ip.AddressUtils; import com.ruoyi.common.utils.redis.RedisUtils; -import com.ruoyi.common.utils.spring.SpringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -44,7 +42,7 @@ public class UserActionListener implements SaTokenListener { if (userType == UserType.SYS_USER) { UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent")); String ip = ServletUtils.getClientIP(); - SysUser user = SpringUtils.getBean(UserService.class).selectUserById(LoginHelper.getUserId()); + LoginUser user = LoginHelper.getLoginUser(); String tokenValue = StpUtil.getTokenValue(); UserOnlineDTO dto = UserOnlineDTO.builder() .ipaddr(ip) @@ -53,7 +51,7 @@ public class UserActionListener implements SaTokenListener { .os(userAgent.getOs().getName()) .loginTime(System.currentTimeMillis()) .tokenId(tokenValue) - .userName(user.getUserName()) + .userName(user.getUsername()) .build(); if (ObjectUtil.isNotNull(user.getDept())) { dto.setDeptName(user.getDept().getDeptName()); 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 118c36ffd..741ae4bc0 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 @@ -3,7 +3,6 @@ package com.ruoyi.system.service; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.service.UserService; import java.util.List; @@ -12,7 +11,7 @@ import java.util.List; * * @author Lion Li */ -public interface ISysUserService extends UserService { +public interface ISysUserService { TableDataInfo selectPageUserList(SysUser user, PageQuery pageQuery); @@ -47,7 +46,6 @@ public interface ISysUserService extends UserService { * @param userName 用户名 * @return 用户对象信息 */ - @Override SysUser selectUserByUserName(String userName); /** @@ -56,7 +54,6 @@ public interface ISysUserService extends UserService { * @param userId 用户ID * @return 用户对象信息 */ - @Override SysUser selectUserById(Long userId); /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java index a19f76d80..a9a6a109c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java @@ -137,6 +137,8 @@ public class SysLoginService { loginUser.setUserType(user.getUserType()); loginUser.setMenuPermission(permissionService.getMenuPermission(user)); loginUser.setRolePermission(permissionService.getRolePermission(user)); + loginUser.setRoles(user.getRoles()); + loginUser.setDept(user.getDept()); return loginUser; } 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 5194046f4..72ec867ed 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 @@ -10,7 +10,6 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; @@ -38,7 +37,7 @@ import java.util.stream.Collectors; @Slf4j @RequiredArgsConstructor @Service -public class SysUserServiceImpl implements ISysUserService, UserService { +public class SysUserServiceImpl implements ISysUserService { private final SysUserMapper baseMapper; private final SysRoleMapper roleMapper;