From 32669be76452de43294b3c94f040a82d83840b5b Mon Sep 17 00:00:00 2001 From: hellcat <> Date: Wed, 11 Jun 2025 11:49:51 +0800 Subject: [PATCH] no message --- app/Models/Book.php | 50 ++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/app/Models/Book.php b/app/Models/Book.php index edce7d48..c7c0ae07 100755 --- a/app/Models/Book.php +++ b/app/Models/Book.php @@ -79,41 +79,42 @@ class Book extends Model $oSelf = self::where("path", $sPath)->where("is_del", $iIsDel); - if (isset($aRagOption["where"])) { - $oSelf = $oSelf->whereRaw($aRagOption["where"]); - } - if ($oParentRag->sort) { - $aSort = explode("_", $oParentRag->sort); - $oSelf = $oSelf->where($aSort[0], $aSort[1]); - } - - if ($oParentRag->order == "rank_todo") { - $sTodoOrder = BookOption::_hit("order_rank_todo"); - $aOrder = explode(",", $sTodoOrder); + // where + if ($iPage !== "all") { - if ($iPage !== "all") { + // sort覆盖特殊规则 + if ($oParentRag->sort) { + + $aSort = explode("_", $oParentRag->sort); + $oSelf = $oSelf->where($aSort[0], $aSort[1]); + + } else { + + if (isset($aRagOption["where"])) { + $oSelf = $oSelf->whereRaw($aRagOption["where"]); + } if (isset($aRagOption["todo_show_type"])) { - - if ($aRagOption["todo_show_type"] == "A") { - $oSelf = $oSelf->where("rank", "!=", "done"); - $oSelf = $oSelf->where("rank", "!=", "block"); - } else if ($aRagOption["todo_show_type"] == "B") { - $oSelf = $oSelf->whereIn("rank", ["done", "block"]); - } else if ($aRagOption["todo_show_type"] == "AB") { - - } - + $oSelf = $oSelf->where("rank", "!=", "done"); + $oSelf = $oSelf->where("rank", "!=", "block"); } } + } + + if ($oParentRag->order == "rank_todo") { + + $sTodoOrder = BookOption::_hit("order_rank_todo"); + $aOrder = explode(",", $sTodoOrder); + $oSelf = $oSelf->orderByRaw("rank IS NULL, FIELD(rank, " . $sTodoOrder . ") ".$sOrderType); $oSelf = $oSelf->orderByRaw("fire IS NULL, fire ASC"); $sOrder = "no"; $sOrderType = "asc"; + } $oSelf = $oSelf->orderBy($sOrder, $sOrderType); @@ -121,12 +122,15 @@ class Book extends Model $oSelf = $oSelf->orderBy("updated_at", "desc"); if ($iPage == "all") { + $oSelf = $oSelf->get(); + } else { + $oSelf = $oSelf->paginate($iLimit, ['*'], 'page', $iPage); + } - return $oSelf; }