疯狂的狮子li
2022-01-26 0da30f462392664ba7a76d47de7e67560046d486
update 优化 查询登录用户数据 统一走缓存
已修改8个文件
已删除1个文件
86 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -7,11 +7,10 @@
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 @@
    private final SysLoginService loginService;
    private final ISysMenuService menuService;
    private final ISysUserService userService;
    private final SysPermissionService permissionService;
    /**
@@ -78,7 +78,7 @@
    @ApiOperation("获取用户信息")
    @GetMapping("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);
        // æƒé™é›†åˆ
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -5,12 +5,10 @@
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 @@
    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
    @PutMapping("/updatePwd")
    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 password = user.getPassword();
        if (!SecurityUtils.matchesPassword(oldPassword, password)) {
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;
/**
@@ -85,6 +88,21 @@
    private String username;
    /**
     * éƒ¨é—¨å¯¹è±¡
     */
    private SysDept dept;
    /**
     * è§’色对象
     */
    private List<SysRole> roles;
    /**
     * æ•°æ®æƒé™ å½“前角色ID
     */
    private Long roleId;
    /**
     * èŽ·å–ç™»å½•id
     */
    public String getLoginId() {
ruoyi-common/src/main/java/com/ruoyi/common/core/service/UserService.java
ÎļþÒÑɾ³ý
ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java
@@ -8,12 +8,12 @@
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 @@
            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 @@
        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);
ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java
@@ -9,14 +9,12 @@
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 @@
        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 @@
                .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());
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -3,7 +3,6 @@
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 @@
 *
 * @author Lion Li
 */
public interface ISysUserService extends UserService {
public interface ISysUserService {
    TableDataInfo<SysUser> selectPageUserList(SysUser user, PageQuery pageQuery);
@@ -47,7 +46,6 @@
     * @param userName ç”¨æˆ·å
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    @Override
    SysUser selectUserByUserName(String userName);
    /**
@@ -56,7 +54,6 @@
     * @param userId ç”¨æˆ·ID
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    @Override
    SysUser selectUserById(Long userId);
    /**
ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
@@ -137,6 +137,8 @@
        loginUser.setUserType(user.getUserType());
        loginUser.setMenuPermission(permissionService.getMenuPermission(user));
        loginUser.setRolePermission(permissionService.getRolePermission(user));
        loginUser.setRoles(user.getRoles());
        loginUser.setDept(user.getDept());
        return loginUser;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -10,7 +10,6 @@
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 @@
@Slf4j
@RequiredArgsConstructor
@Service
public class SysUserServiceImpl implements ISysUserService, UserService {
public class SysUserServiceImpl implements ISysUserService {
    private final SysUserMapper baseMapper;
    private final SysRoleMapper roleMapper;