lip 2 недель назад
Родитель
Сommit
5bb8d4da7a
2 измененных файлов с 36 добавлено и 0 удалено
  1. 6 0
      app/Http/Controllers/admin/User.php
  2. 30 0
      app/Models/UserSession.php

+ 6 - 0
app/Http/Controllers/admin/User.php

@@ -19,6 +19,7 @@ use App\Services\AddressService;
 
 use Illuminate\Http\JsonResponse;
 use App\Models\User as UserModel;
+use App\Models\UserSession;
 
 class User extends Controller
 {
@@ -30,6 +31,11 @@ class User extends Controller
                 'is_banned' => ['required', 'integer', 'in:0,1'],
             ]);
             UserModel::where('member_id', $params['member_id'])->update(['is_banned' => $params['is_banned']]);
+            if ($params['is_banned'] == 1) {
+                //如果用户被禁用,删除所有会话
+                UserSession::where('user_id', $params['member_id'])->delete();
+                return $this->success();
+            }
         } catch (ValidationException $e) {
             return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
         } catch (Exception $e) {

+ 30 - 0
app/Models/UserSession.php

@@ -0,0 +1,30 @@
+<?php
+
+
+namespace App\Models;
+
+
+// // 关键:导入正确的 Builder 类(Eloquent 构建器)
+use Illuminate\Database\Eloquent\Builder;
+
+class UserSession extends BaseModel
+{
+    protected $table = 'user_session';
+    protected $fillable = ['user_id', 'token', 'expire_time'];
+    
+    
+    public function newQuery($excludeDeleted = true): Builder
+    {
+        // 1. 获取原生 Eloquent 查询构建器
+        $query = parent::newQuery($excludeDeleted);
+        
+        // 2. 强制清空当前连接的表前缀(从根源阻止拼接)
+        $this->getConnection()->setTablePrefix('');
+        
+        // 3. 强制指定查询的表名为 la_user_session(覆盖所有拼接逻辑)
+        $query->from('la_user_session');
+        
+        return $query;
+    }
+}
+