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