From f54abfeda8e95d2afd8ac5c30727900435330399 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 21 十月 2025 16:04:32 +0800
Subject: [PATCH] 修改bug
---
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java | 92 +++++++++++++++++++++++++++++++++-------------
1 files changed, 66 insertions(+), 26 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
index 5dcdf90..60ed72e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
@@ -1,19 +1,25 @@
package com.ruoyi.framework.web.service;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.entity.TAppUserResp;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.domain.model.LoginUserApplet;
+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.system.model.TAppUser;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.TAppUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
-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.system.service.ISysUserService;
/**
* 用户验证处理
@@ -27,7 +33,9 @@
@Autowired
private ISysUserService userService;
-
+ @Autowired
+ private TAppUserService appUserService;
+
@Autowired
private SysPasswordService passwordService;
@@ -37,30 +45,62 @@
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
{
- SysUser user = userService.selectUserByUserName(username);
- if (StringUtils.isNull(user))
- {
- log.info("登录用户:{} 不存在.", username);
- throw new ServiceException(MessageUtils.message("user.not.exists"));
- }
- else if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
- {
- log.info("登录用户:{} 已被删除.", username);
- throw new ServiceException(MessageUtils.message("user.password.delete"));
- }
- else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
- {
- log.info("登录用户:{} 已被停用.", username);
- throw new ServiceException(MessageUtils.message("user.blocked"));
- }
+ String[] split = username.split("_");
+ username = split[0];
+ String type = split[1];
+ if("1".equals(type)){
+ SysUser user = userService.selectUserByUserName(username);
+ if (StringUtils.isNull(user))
+ {
+ log.info("登录用户:{} 不存在.", username);
+ throw new ServiceException(MessageUtils.message("user.not.exists"));
+ }
+ else if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
+ {
+ log.info("登录用户:{} 已被删除.", username);
+ throw new ServiceException(MessageUtils.message("user.password.delete"));
+ }
+ else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
+ {
+ log.info("登录用户:{} 已被停用.", username);
+ throw new ServiceException(MessageUtils.message("user.blocked"));
+ }
- passwordService.validate(user);
+ passwordService.validate(user);
- return createLoginUser(user);
+ return createLoginUser(user);
+ }else {
+ TAppUser user = appUserService.getOne(Wrappers.<TAppUser>lambdaQuery().eq(TAppUser::getAccount,username));
+ if (StringUtils.isNull(user))
+ {
+ log.info("登录用户:{} 不存在.", username);
+ throw new ServiceException(MessageUtils.message("user.not.exists"));
+ }
+ else if (user.getDisabled())
+ {
+ log.info("登录用户:{} 已被删除.", username);
+ throw new ServiceException(MessageUtils.message("user.password.delete"));
+ }
+ else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
+ {
+ log.info("登录用户:{} 已被停用.", username);
+ throw new ServiceException(MessageUtils.message("user.blocked"));
+ }
+ passwordService.validateApp(user);
+
+ TAppUserResp appUserResp = new TAppUserResp();
+ BeanUtils.copyProperties(user,appUserResp);
+
+ return createLoginUserApp(appUserResp);
+ }
}
public UserDetails createLoginUser(SysUser user)
{
return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
}
+ public UserDetails createLoginUserApp(TAppUserResp user)
+ {
+ return new LoginUserApplet(user.getId(), null, user, null);
+ }
}
--
Gitblit v1.7.1