批量更新租户规则

This commit is contained in:
2026-03-09 23:00:20 +08:00
parent e09b4c639c
commit e27cc8f457
45 changed files with 579 additions and 314 deletions
+9 -8
View File
@@ -11,10 +11,11 @@ use think\facade\Cache;
use think\response\Json;
use app\service\JwtService;
use app\model\AdminUser;
use app\model\AdminUserGroup;
use app\model\System\AdminUser;
use app\model\System\AdminUserGroup;
use app\model\System\SystemSiteSettings;
use app\model\Tenant\Tenant;
use app\model\System\OperationLog;
class LoginController extends BaseController
{
@@ -76,12 +77,12 @@ class LoginController extends BaseController
'msg' => '租户不存在或已禁用'
]);
}
$tenant_id = $tenant->id;
$tid = $tenant->id;
$tenant_name = $tenant->tenant_name;
// 5. 查询用户(新增:关联租户ID,确保用户属于该租户)
$user = AdminUser::where('account', $data['account'])
->where('tenant_id', $tenant_id) // 核心:验证用户所属租户
->where('tid', $tid) // 核心:验证用户所属租户
->where('status', 1)
->find();
@@ -121,7 +122,7 @@ class LoginController extends BaseController
'account' => $user['account'],
'name' => $user['name'],
'group_id' => $user['group_id'],
'tenant_id' => $tenant_id, // 新增:租户ID
'tid' => $tid, // 新增:租户ID
'tenant' => $tenant // 新增:租户名称
];
@@ -146,7 +147,7 @@ class LoginController extends BaseController
// 11. 写入用户数据缓存(核心:缓存包含租户信息,示例用Redis,可根据你的缓存工具调整)
try {
$cacheKey = 'admin_user_' . $user['id'] . '_' . $tenant_id; // 缓存键加入租户ID,避免多租户冲突
$cacheKey = 'admin_user_' . $user['id'] . '_' . $tid; // 缓存键加入租户ID,避免多租户冲突
$cacheExpire = 86400 * 7; // 缓存7天,可根据需求调整
// 写入缓存(这里假设你使用thinkphp的Cache类,若用其他工具可替换)
\think\facade\Cache::set($cacheKey, $userInfo, $cacheExpire);
@@ -159,7 +160,7 @@ class LoginController extends BaseController
try {
$this->logSuccess('登录管理', '登录', [
'id' => $user['id'],
'tenant_id' => $tenant_id,
'tid' => $tid,
'tenant' => $tenant
], $userInfo);
} catch (\Exception $e) {
@@ -209,7 +210,7 @@ class LoginController extends BaseController
if ($userInfo && isset($userInfo['id'])) {
$this->logSuccess('登录管理', '退出登录', ['result' => 'success'], $userInfo);
} else {
\app\model\OperationLog::create([
OperationLog::create([
'user_id' => 0,
'user_account' => '',
'user_name' => '未知用户',