From 0a4e55b1cbeb7b81dfa51ebcee2ce83f303dad91 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 28 九月 2025 18:43:04 +0800
Subject: [PATCH] app用户登录,后台用户登录

---
 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