LiuJ пре 4 месеци
родитељ
комит
8714f73603
1 измењених фајлова са 36 додато и 13 уклоњено
  1. 36 13
      app/JsonRpc/WebsiteService.php

+ 36 - 13
app/JsonRpc/WebsiteService.php

@@ -1528,11 +1528,21 @@ class WebsiteService implements WebsiteServiceInterface
                     WebsiteCategory::where('id', $value['id'])->update([
                         'real_category_arr_id' => json_encode($validPids),
                         'real_pid' => $pid,
+                        'path' => WebsiteCategory::where('website_id', $website_id)
+                            ->orderByRaw('FIELD(category_id, ' . implode(',', $validPids) . ')')
+                            ->whereIn('category_id', $validPids)
+                            ->pluck('aLIas_pinyin')
+                            ->implode('/'),
                     ]);
                 } else {
                     WebsiteCategory::where('id', $value['id'])->update([
                         'real_category_arr_id' => null,
                         'real_pid' => null,
+                        'path' => WebsiteCategory::where('website_id', $website_id)
+                            ->orderByRaw('FIELD(category_id, ' . implode(',', $validPids) . ')')
+                            ->whereIn('category_id', $validPids)
+                            ->pluck('aLIas_pinyin')
+                            ->implode('/'),
                     ]);
                 }
             }
@@ -1823,10 +1833,30 @@ class WebsiteService implements WebsiteServiceInterface
         //        if (isset($data['city_id']) && !empty($data['city_id'])) {
         //            array_push($where, ['category.city_id', '=', $data['city_id']]);
         //        }
+        $result_real = WebsiteCategory::where($where)
+            ->where('website_category.is_show', 1) //显示
+            ->whereNotNull('website_category.real_pid') //只显示顶级
+            ->leftJoin("category", 'website_category.category_id', 'category.id')
+            ->select(
+                "website_category.*",
+                DB::raw('real_pid AS pid'),
+                DB::raw('real_category_arr_id AS category_arr_id'),
+                "category.name as name"
+            )
+            ->orderBy("sort", "asc")
+            ->orderBy("updated_at", "desc")
+            ->get()->toArray();
         $result = WebsiteCategory::where($where)
             ->where('website_category.is_show', 1) //显示
+            ->whereNull('website_category.real_pid') //只显示顶级
             ->leftJoin("category", 'website_category.category_id', 'category.id')
-            ->select("website_category.*", "category.name as name")
+            ->select(
+                "website_category.*",
+                // DB::raw('real_pid AS pid'),
+                // DB::raw('real_category_arr_id AS category_arr_id'),
+
+                "category.name as name"
+            )
             //            ->leftJoin("category", 'website_category.category_id', 'category.id')
             //            ->leftJoin("department", 'category.department_id', 'department.id')
             //            ->leftJoin("district", 'category.city_id', 'district.id')
@@ -1834,22 +1864,15 @@ class WebsiteService implements WebsiteServiceInterface
             //            ->limit($data['pageSize'])->offset(($data['page'] - 1) * $data['pageSize'])
             ->orderBy("sort", "asc")
             ->orderBy("updated_at", "desc")
-            ->get();
-
-        //        $count = WebsiteCategory::where($where)
-        //            ->leftJoin("category", 'website_category.category_id', 'category.id')
-        //            ->leftJoin("department", 'category.department_id', 'department.id')
-        //            ->leftJoin("district", 'category.city_id', 'district.id')
-        //            ->count();
+            ->get()->toArray();
+        $result = array_merge($result, $result_real);
+        var_dump($result, '-----------1-');
         if (empty($result)) {
             return Result::error("没有数据", 0);
         }
-        //        $data = [
-        //            'rows' => $result->toArray(),
-        //            'count' => $count,
-        //        ];
+
         if ($result) {
-            return Result::success($result->toArray());
+            return Result::success($result);
         } else {
             return Result::error("查询失败", 0);
         }