From 468d4e74e24242b1a2ddb2815d26ee202926cebe Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 06 二月 2025 16:55:04 +0800
Subject: [PATCH] #

---
 rsf-admin/src/api/auth/index.js                                                               |    8 ++++
 rsf-admin/src/config/authProvider.js                                                          |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java         |   12 ++---
 rsf-admin/src/page/login/index.jsx                                                            |   33 ++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java          |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java          |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java           |    1 
 rsf-admin/src/i18n/zh.js                                                                      |    3 +
 rsf-admin/src/i18n/en.js                                                                      |    3 +
 rsf-admin/src/App.jsx                                                                         |    2 
 11 files changed, 58 insertions(+), 13 deletions(-)

diff --git a/rsf-admin/src/App.jsx b/rsf-admin/src/App.jsx
index 9b38f36..00924d9 100644
--- a/rsf-admin/src/App.jsx
+++ b/rsf-admin/src/App.jsx
@@ -16,7 +16,7 @@
 import DataProvider from "./config/dataProvider";
 import Dashboard from "./page/dashboard/Dashboard";
 import Settings from "./page/settings/Settings";
-import Login from "./page/login/Login";
+import Login from "./page/login";
 import * as Common from './utils/common'
 import { themes } from './themes/themes';
 import { SPA_NAME, SPA_VERSION, DEFAULT_THEME_NAME, DEFAULT_THEME_MODE, DATA_PROVIDER_SPRING } from "./config/setting";
diff --git a/rsf-admin/src/api/auth/index.js b/rsf-admin/src/api/auth/index.js
index 64f5767..2d73737 100644
--- a/rsf-admin/src/api/auth/index.js
+++ b/rsf-admin/src/api/auth/index.js
@@ -1,5 +1,13 @@
 import request from '../../utils/request';
 
+export async function tenants(_params) {
+    const res = await request.get('/tenant/list', _params);
+    if (res.data.code === 200) {
+        return res.data.data;
+    }
+    return Promise.reject(new Error(res.data.msg));
+}
+
 export async function login(_params) {
     const res = await request.post('/login', _params);
     if (res.data.code === 200) {
diff --git a/rsf-admin/src/config/authProvider.js b/rsf-admin/src/config/authProvider.js
index b74bab3..7436b8e 100644
--- a/rsf-admin/src/config/authProvider.js
+++ b/rsf-admin/src/config/authProvider.js
@@ -11,7 +11,7 @@
     const { accessToken, user } = await login({
       username: username,
       password: password,
-      hostId: 1,
+      tenantId: 1,
     });
 
     if (user && accessToken) {
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index d23758b..d8ea362 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -219,6 +219,9 @@
         }
     },
     page: {
+        login: {
+            tenant: 'Tenant',
+        },
     }
 };
 
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index b6e7e5e..522cd05 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -219,6 +219,9 @@
         }
     },
     page: {
+        login: {
+            tenant: '绉熸埛',
+        },
     }
 };
 
diff --git a/rsf-admin/src/page/login/Login.jsx b/rsf-admin/src/page/login/index.jsx
similarity index 82%
rename from rsf-admin/src/page/login/Login.jsx
rename to rsf-admin/src/page/login/index.jsx
index f212d46..634211a 100644
--- a/rsf-admin/src/page/login/Login.jsx
+++ b/rsf-admin/src/page/login/index.jsx
@@ -17,8 +17,10 @@
     useTranslate,
     useLogin,
     useNotify,
+    SelectInput,
 } from 'react-admin';
 import { LOGIN_BACKGROUND } from '@/config/setting';
+import { tenants } from '@/api/auth';
 
 const Login = () => {
     const [loading, setLoading] = useState(false);
@@ -27,6 +29,22 @@
     const notify = useNotify();
     const login = useLogin();
     const location = useLocation();
+
+    const [tenantList, setTenantList] = React.useState([]);
+    const [tenantId, setTenantId] = React.useState(null);
+
+    React.useEffect(() => {
+        tenants().then(data => {
+            setTenantList(data);
+            if (data.length > 0) {
+                setTenantId(data[0].id);
+            }
+        })
+    }, []);
+
+    React.useEffect(() => {
+        console.log(tenantId);
+    }, [tenantId]);
 
     const handleSubmit = (auth) => {
         setLoading(true);
@@ -123,6 +141,19 @@
                     </Box>
                     <Box sx={{ padding: '0 1em 1em 1em' }}>
                         <Box sx={{ marginTop: '1em' }}>
+                            <SelectInput
+                                label="page.login.tenant"
+                                source="tenantId"
+                                choices={tenantList.map(item => ({
+                                    id: item.id,
+                                    name: item.name
+                                }))}
+                                validate={required()}
+                                value={tenantId}
+                                onChange={e => setTenantId(e.target.value)}
+                            />
+                        </Box>
+                        <Box sx={{ marginTop: '.1em' }}>
                             <TextInput
                                 autoFocus
                                 source="username"
@@ -131,7 +162,7 @@
                                 validate={required()}
                             />
                         </Box>
-                        <Box sx={{ marginTop: '1em' }}>
+                        <Box sx={{ marginTop: '.1em' }}>
                             <TextInput
                                 source="password"
                                 label={translate('ra.auth.password')}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
index 98e297d..034239f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
@@ -42,7 +42,8 @@
                         "sys_host",
                         "sys_user_role",
                         "sys_role_menu",
-                        "sys_menu"
+                        "sys_menu",
+                        "sys_dept"
                 ).contains(tableName);
             }
         };
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
index 366e083..bc22f98 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
@@ -36,6 +36,7 @@
     public static final String[] FILTER_PATH = new String[]{
             "/demo/**",
             "/test/**",
+            "/tenant/list",
             "/login",
             "/druid/**",
             "/swagger-ui.html",
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
index e0eb9aa..78b2069 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
@@ -67,6 +67,11 @@
         return R.ok("Login Success").add(new LoginResult(accessToken, user));
     }
 
+    @GetMapping("/tenant/list")
+    public R tenantList() {
+        return R.ok().add(tenantService.list());
+    }
+
     @GetMapping("/auth/user")
     public R userInfo() {
         return R.ok(userService.getByIdRel(getLoginUserId()));
@@ -78,13 +83,6 @@
 //        return R.ok().add(Utils.toTreeData(menus, 0L, Menu::getParentId, Menu::getId, Menu::setChildren));
         List<MenuVo> voList = menus.stream().map(this::convertToVo).collect(Collectors.toList());
         return R.ok().add(Utils.toTreeData(voList, 0L, MenuVo::getParentId, MenuVo::getId, MenuVo::setChildren));
-    }
-
-
-
-    @GetMapping("/auth/tenant")
-    public R authHost() {
-        return R.ok().add(tenantService.list());
     }
 
     @PreAuthorize("hasAuthority('sys:auth:user')")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java
index b8857c8..93d5725 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserLoginService.java
@@ -8,6 +8,6 @@
 
 public interface UserLoginService extends IService<UserLogin> {
 
-    void saveAsync(Long userId, String token, Integer type, Long hostId, String memo, HttpServletRequest request);
+    void saveAsync(Long userId, String token, Integer type, Long tenantId, String memo, HttpServletRequest request);
 
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java
index 82c1b9e..3d7b485 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserLoginServiceImpl.java
@@ -15,7 +15,7 @@
 
     @Async
     @Override
-    public void saveAsync(Long userId, String token, Integer type, Long hostId, String memo, HttpServletRequest request) {
+    public void saveAsync(Long userId, String token, Integer type, Long tenantId, String memo, HttpServletRequest request) {
         if (userId == null) {
             return;
         }

--
Gitblit v1.9.1