Переглянути джерело

网站管理-搜索修改

rkljw 5 місяців тому
батько
коміт
4bdced194d
1 змінених файлів з 19 додано та 21 видалено
  1. 19 21
      app/JsonRpc/WebsiteService.php

+ 19 - 21
app/JsonRpc/WebsiteService.php

@@ -33,30 +33,28 @@ class WebsiteService implements WebsiteServiceInterface
      */
     public function getWebsitetList(array $data): array
     {
-        $where = [];
-        if (isset($data['keyword']) && !empty($data['keyword'])) {
-            array_push($where, ['website.website_name', 'like', '%' . $data['keyword'] . '%']);
-        }
-        if (isset($data['website_column_id']) && !empty($data['website_column_id'])) {
-            array_push($where, ['website.website_column_id', '=', $data['website_column_id']]);
-        }
-        if (isset($data['city_id']) && !empty($data['city_id'])) {
-            array_push($where, ['website.city_id', '=', $data['city_id']]);
-        }
-
-        $result = Website::where($where)
-            ->leftJoin("website_column", "website.website_column_id", "website_column.id")
-            ->leftJoin("district", "district.id", "website.city_id")
-            ->select("website.*", "website_column.column_name", "district.name as city_name")
-            ->limit($data['pageSize'])->offset(($data['page'] - 1) * $data['pageSize'])->orderBy("website.id", "desc")->get();
-
-        $count = Website::where($where)->count();
+        $resultWwhere = Website::when($data,function ($query) use ($data){
+            if(isset($data['keyword']) && !empty($data['keyword'])){
+                $query->where('website.website_name','like','%'.$data['keyword'].'%');
+            }
+            if(isset($data['website_column_id']) && !empty($data['website_column_id'])){
+                $query->whereJsonContains("website.website_column_arr_id", intval($data['website_column_id']));
+            }
+            if(isset($data['city_id']) && !empty($data['city_id'])){
+                $query->whereJsonContains("website.city_arr_id", intval($data['city_id']));
+            }
+        });
+        $result =  $resultWwhere->leftJoin("website_column","website.website_column_id","website_column.id")
+            ->leftJoin("district","district.id","website.city_id")
+            ->select("website.*","website_column.column_name","district.name as city_name")
+            ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize'])->orderBy("website.id","desc")->get();
+        $count = $resultWwhere->count();
         if (empty($result)) {
-            return Result::error("没有数据", 0);
+            return Result::error("没有数据",0);
         }
         $data = [
-            'rows' => $result->toArray(),
-            'count' => $count
+            'rows'=>$result->toArray(),
+            'count'=>$count
         ];
         return Result::success($data);
     }