From fdc311475ee8b50b7d15011779e3afea1c129f7a Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 14 二月 2025 09:55:43 +0800
Subject: [PATCH] #

---
 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java   |    5 ++
 rsf-server/src/main/resources/application.yml                                           |    2 
 rsf-admin/src/page/login/Login.jsx                                                      |   67 ++++++++++++++++-----------------
 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java |    2 
 4 files changed, 39 insertions(+), 37 deletions(-)

diff --git a/rsf-admin/src/page/login/Login.jsx b/rsf-admin/src/page/login/Login.jsx
index b86c9d4..a532631 100644
--- a/rsf-admin/src/page/login/Login.jsx
+++ b/rsf-admin/src/page/login/Login.jsx
@@ -26,7 +26,7 @@
     const notify = useNotify();
     const login = useLogin();
     const location = useLocation();
-    const { systemInfo, tenantList } = props;
+    const { systemInfo: { mode }, tenantList } = props;
 
     const { control, handleSubmit, watch, setValue, getValues, setError, clearErrors } = useForm();
 
@@ -83,35 +83,37 @@
                 component="form" onSubmit={handleSubmit(onSubmit)} noValidate
             >
                 <Stack spacing={2}>
-                    {/* <Controller
-                        name="tenantId"
-                        control={control}
-                        rules={{ required: true }}
-                        defaultValue={tenantList.length > 0 ? tenantList[0].id : ''}
-                        render={({ field: { onChange, value, ref } }) => {
-                            const selectedTenant = tenantList.find(tenant => tenant.id === value) || null;
-                            return (
-                                <Autocomplete
-                                    options={tenantList}
-                                    getOptionLabel={(option) => option.name}
-                                    value={selectedTenant}
-                                    onChange={(_, newValue) => {
-                                        const newTenantId = newValue ? newValue.id : '';
-                                        onChange(newTenantId);
-                                        localStorage.setItem('remember_tenantId', newTenantId);
-                                    }}
-                                    renderInput={(params) => (
-                                        <TextField
-                                            {...params}
-                                            label={translate("page.login.tenant")}
-                                            variant="standard"
-                                            inputRef={ref}
-                                        />
-                                    )}
-                                />
-                            );
-                        }}
-                    /> */}
+                    {mode === 'OFFLINE' && (
+                        <Controller
+                            name="tenantId"
+                            control={control}
+                            rules={{ required: true }}
+                            defaultValue={tenantList.length > 0 ? tenantList[0].id : ''}
+                            render={({ field: { onChange, value, ref } }) => {
+                                const selectedTenant = tenantList.find(tenant => tenant.id === value) || null;
+                                return (
+                                    <Autocomplete
+                                        options={tenantList}
+                                        getOptionLabel={(option) => option.name}
+                                        value={selectedTenant}
+                                        onChange={(_, newValue) => {
+                                            const newTenantId = newValue ? newValue.id : '';
+                                            onChange(newTenantId);
+                                            localStorage.setItem('remember_tenantId', newTenantId);
+                                        }}
+                                        renderInput={(params) => (
+                                            <TextField
+                                                {...params}
+                                                label={translate("page.login.tenant")}
+                                                variant="standard"
+                                                inputRef={ref}
+                                            />
+                                        )}
+                                    />
+                                );
+                            }}
+                        />
+                    )}
 
                     <Controller
                         name="username"
@@ -170,10 +172,7 @@
                     <Button
                         type="submit"
                         variant="contained"
-                        disabled={loading || !(true && username && password)}
-                        sx={{
-                            // backgroundColor: "#3D4BA7"
-                        }}
+                        disabled={loading || !((mode === 'OFFLINE' ? tenantId : true) && username && password)}
                     >
                         {loading && <CircularProgress size={25} thickness={2} />}
                         {translate('page.login.button.login')}
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 b38af13..8941f46 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
@@ -1,5 +1,6 @@
 package com.vincent.rsf.server.system.controller;
 
+import com.vincent.rsf.common.enums.SystemModeType;
 import com.vincent.rsf.common.utils.Utils;
 import com.vincent.rsf.framework.common.BaseRes;
 import com.vincent.rsf.framework.common.Cools;
@@ -62,7 +63,9 @@
     @PostMapping("/login")
     public R login(@RequestBody LoginParam param, HttpServletRequest request) {
         String username = param.getUsername();
-        User user = userService.getByUsername(username, null);
+        User user = userService.getByUsername(username
+                , configProperties.getSystemMode().equals(SystemModeType.OFFLINE) ? param.getTenantId() : null
+        );
         if (user == null) {
             return R.parse(BusinessRes.USERNAME_NOT_EXIST);
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java
index 65cd62a..20cff7c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java
@@ -16,6 +16,6 @@
 
     private String password;
 
-//    private Long tenantId;
+    private Long tenantId;
 
 }
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index f2bd85e..2d0e854 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -30,7 +30,7 @@
 config:
   system-name: @pom.artifactId@
   system-version: @pom.version@
-  system-mode: OFFLINE
+  system-mode: ONLINE
   token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2
   super-username: root
   code-length: 6

--
Gitblit v1.9.1