peterguo há 6 dias atrás
pai
commit
f7d96800d2
1 ficheiros alterados com 10 adições e 6 exclusões
  1. 10 6
      app/Http/Controllers/API/FolderController.php

+ 10 - 6
app/Http/Controllers/API/FolderController.php

@@ -253,7 +253,11 @@ class FolderController extends Controller
         $name = $request->get('name');
 
         $folderId = $request->get("id", 0);
-        $orderBy=$request->get('order_by','desc');
+        $orderBy=$request->get('order_by','updated_at desc');
+        $parts = explode(' ', $orderBy, 2); // 限制分割次数为2,防止过多分割
+        $orderByFiled = $parts[0] ?? 'updated_at'; // 设置默认字段
+        $orderByType = $parts[1] ?? 'desc'; // 设置默认排序方式
+
         if ($folderId > 0) {
             $folder = Folder::query()->findOrFail($folderId);
             $objectType = $folder->object_type;
@@ -278,7 +282,7 @@ class FolderController extends Controller
             ->when($folderId, fn($query) => $query->where("parent_id", $folderId))
             ->when(! $folderId, fn($query) => $query->where("parent_id", 0))
             ->when($namingRuleIds, fn($query) => $query->whereIn("naming_rule_id", $namingRuleIds))
-            ->orderBy('updated_at', $orderBy)
+            ->orderBy($orderByFiled, $orderByType)
             ->paginate($pageSize);
         $folders_total = $folders->total();
         $sonFolderCount=Folder::query()
@@ -310,16 +314,15 @@ class FolderController extends Controller
             ->with('bimFile')
             ->where("folder_id", $folderId)
             ->where("is_latest_version", 1)
+            ->when($name, fn($query) => $query->where("title", "like", "%$name%"))
             ->when($docStages, fn($query) => $query->whereIn('doc_stage', $docStages))
             ->when($docTypes, fn($query) => $query->whereIn('doc_type', $docTypes))
             ->when($namingRuleIds, fn($query) => $query->whereIn('naming_rule_id', $namingRuleIds))
-            ->when($name, fn($query) => $query->where("title", "like", "%$name%"))
-            ->orderBy('updated_at', $orderBy)
+            ->orderBy($orderByFiled, $orderByType)
             ->get();
 
         $files_total = $files->count();
 
-        $total = $files_total + $folders_total;
         //分页
         if ($folders_total < $pageSize * $page){
             $offset = $pageSize * $page - $folders_total <= $pageSize ?  0 : $pageSize  * $page - $pageSize * ($page - 1) - $folders_total ; // 查看当前页面是否有包含文件夹
@@ -329,10 +332,11 @@ class FolderController extends Controller
                 ->with('bimFile')
                 ->where("folder_id", $folderId)
                 ->where("is_latest_version", 1)
+                ->when($name, fn($query) => $query->where("title", "like", "%$name%"))
                 ->when($docStages, fn($query) => $query->whereIn('doc_stage', $docStages))
                 ->when($docTypes, fn($query) => $query->whereIn('doc_type', $docTypes))
                 ->when($namingRuleIds, fn($query) => $query->whereIn('naming_rule_id', $namingRuleIds))
-                ->orderBy('updated_at', $orderBy)
+                ->orderBy($orderByFiled, $orderByType)
                 ->offset($offset)
                 ->limit($limit)
                 ->get();