15313670163 1 miesiąc temu
rodzic
commit
17207b5b01
2 zmienionych plików z 23 dodań i 11 usunięć
  1. 8 4
      app/JsonRpc/FooterService.php
  2. 15 7
      app/JsonRpc/LinkService.php

+ 8 - 4
app/JsonRpc/FooterService.php

@@ -9,6 +9,7 @@ use App\Model\Web;
 use Hyperf\RpcServer\Annotation\RpcService;
 use App\Tools\Result;
 use Hyperf\DbConnection\Db;
+use PhpParser\Node\Expr\Clone_;
 
 #[RpcService(name: "FooterService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
 class FooterService implements FooterServiceInterface
@@ -28,13 +29,16 @@ class FooterService implements FooterServiceInterface
             array_push($where, ['footer_category.name','like','%'.$data['name'].'%']);
         }
         $query = FooterCategory::when(!empty($where), function ($query) use ($where) {
-            $query->where($where);
+            $query->where($where)
+            ->leftJoin("website","website.id","footer_category.website_id")
+            ->select("footer_category.*","website.website_name","website.id as website_id");
         });
-        $rep = $query->leftJoin("website","website.id","footer_category.website_id")
-        ->select("footer_category.*","website.website_name","website.id as website_id")
+        $count = $query->count();
+        $query = clone $query;
+        $rep = $query    
         ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize'])->orderBy("updated_at","desc")
         ->get();
-        $count = $query->count();
+        // $count = $query->count();
         // var_dump($where);
         $result  = [];
         $result = [

+ 15 - 7
app/JsonRpc/LinkService.php

@@ -28,20 +28,28 @@ class LinkService implements LinkServiceInterface
         // return Result::success($where);
         if(!empty($where)){
             $query = Link::where($where);
+            $count = $query->count();
         }else{
             $query = Link::query();
+            $count = $query->count();
         }
-        $rep = $query
-            ->leftJoin("website", "website.id", "link.website_id")
-            ->select("link.*", "website.website_name")
-            ->limit($data['pageSize'])->offset(($data['page'] - 1) * $data['pageSize'])
-            ->orderBy("sort", "asc")
-            ->get();
-        $count = $query->count();
+// 重新构建查询,避免 $query 已经被修改
+
+$rep = $query
+    ->leftJoin("website", "website.id", "link.website_id")
+    ->select("link.*", "website.website_name")
+    ->limit($data['pageSize'])->offset(($data['page'] - 1) * $data['pageSize'])
+    ->orderBy("sort", "asc")
+    ->get();
+// $countQuery = clone $query;
+// $count = $countQuery->count();
         $result = [
             'rows'=>$rep,
             'count'=>$count
         ];
+        if(empty($result)){
+            return Result::error("没有查到数据");
+        }
         return $result?Result::success($result):Result::error("没有查到数据");
     }