From d241b67a5728d4f2bb0d33e4921229a4bf15e250 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期四, 05 六月 2025 14:11:42 +0800 Subject: [PATCH] 付款登记功能开发 --- src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java | 31 +++++++++++++++++++++++++++---- 1 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java b/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java index d48c4c9..53cca34 100644 --- a/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java +++ b/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java @@ -1,17 +1,23 @@ package com.ruoyi.framework.security.service; +import com.ruoyi.project.system.mapper.SysDeptMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.stereotype.Service; import com.ruoyi.common.enums.UserStatus; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.service.ISysUserService; + +import java.util.Map; /** * 鐢ㄦ埛楠岃瘉澶勭悊 @@ -32,6 +38,9 @@ @Autowired private SysPermissionService permissionService; + @Autowired + private SysDeptMapper deptMapper; + @Override public UserDetails loadUserByUsername(String username) { @@ -39,19 +48,33 @@ if (StringUtils.isNull(user)) { log.info("鐧诲綍鐢ㄦ埛锛歿} 涓嶅瓨鍦�.", username); - throw new ServiceException("鐧诲綍鐢ㄦ埛锛�" + username + " 涓嶅瓨鍦�"); + throw new ServiceException(MessageUtils.message("user.not.exists")); } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍒犻櫎.", username); - throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛�" + username + " 宸茶鍒犻櫎"); + throw new ServiceException(MessageUtils.message("user.password.delete")); } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍋滅敤.", username); - throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛�" + username + " 宸插仠鐢�"); + throw new ServiceException(MessageUtils.message("user.blocked")); } + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + // 鑾峰彇 details + Object details = authentication.getDetails(); + Long factoryId = null; + if (details instanceof Map) { + factoryId = (Long) ((Map<?, ?>) details).get("factoryId"); + if(null != factoryId){ + // 鏌ヨ绉熸埛 + Long teantId = deptMapper.maxLevelDeptId(factoryId); + user.setCurrentDeptId(factoryId); + user.setTenantId(teantId.intValue()); + } + } + // 鑾峰彇鐢ㄦ埛褰撳墠鐧诲綍閮ㄩ棬锛屽苟鏌ヨ绉熸埛id passwordService.validate(user); return createLoginUser(user); @@ -59,6 +82,6 @@ public UserDetails createLoginUser(SysUser user) { - return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + return new LoginUser(user.getUserId(), user.getDeptIds(), user, user.getTenantId(),user.getCurrentDeptId(), permissionService.getMenuPermission(user)); } } -- Gitblit v1.9.3