Parcourir la source

Merge branch '20250210_lj_zhanqun' into dev

AI il y a 1 mois
Parent
commit
1b87fd6bef
1 fichiers modifiés avec 66 ajouts et 38 suppressions
  1. 66 38
      app/JsonRpc/NewsService.php

+ 66 - 38
app/JsonRpc/NewsService.php

@@ -121,7 +121,7 @@ class NewsService implements NewsServiceInterface
      */
      */
     public function addCategory(array $data): array
     public function addCategory(array $data): array
     {
     {
-        if(isset($data['id'])){
+        if (isset($data['id'])) {
             unset($data['id']);
             unset($data['id']);
         }
         }
         $id = Category::insertGetId($data);
         $id = Category::insertGetId($data);
@@ -264,7 +264,6 @@ class NewsService implements NewsServiceInterface
         var_dump($data, '----------12-----------1');
         var_dump($data, '----------12-----------1');
         var_dump($data, '----------12-----------1');
         var_dump($data, '----------12-----------1');
         unset($data['user_type']);
         unset($data['user_type']);
-        // unset($data['web_site_id']);
         unset($data['nav_add_pool_id']);
         unset($data['nav_add_pool_id']);
         // $data['cat_arr_id'] = is_string($data['cat_arr_id']) ? json_encode($data['cat_arr_id']) : '';
         // $data['cat_arr_id'] = is_string($data['cat_arr_id']) ? json_encode($data['cat_arr_id']) : '';
         Db::beginTransaction();
         Db::beginTransaction();
@@ -277,8 +276,9 @@ class NewsService implements NewsServiceInterface
             unset($data['is_survey']);
             unset($data['is_survey']);
             unset($data['survey_name']);
             unset($data['survey_name']);
             unset($data['suvey_array']);
             unset($data['suvey_array']);
-            unset($data['website_id']);
-            $data['web_site_id'] = is_array($data['web_site_id']) ? json_encode($data['web_site_id']) : ($data['web_site_id']);
+            // unset($data['website_id']);
+            // unset($data['web_site_id']);
+            // $data['web_site_id'] = is_array($data['web_site_id']) ? json_encode($data['web_site_id']) : ($data['web_site_id']);
             if ($data['hits'] == '') {
             if ($data['hits'] == '') {
                 $data['hits'] = 0;
                 $data['hits'] = 0;
             }
             }
@@ -578,15 +578,33 @@ class NewsService implements NewsServiceInterface
             $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
             $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
             $where = [
             $where = [
                 'status' => 1,
                 'status' => 1,
-                'level' => $data['level'],
             ];
             ];
+            var_dump($data, 'data-----------------');
+
+            //如果是4:热点资讯 5:资讯推荐;
+            var_dump($where, 'where-----------------');
+
             $result = Article::where($where)
             $result = Article::where($where)
                 ->whereIn("catid", $category)
                 ->whereIn("catid", $category)
                 ->where(function ($query) use ($data) {
                 ->where(function ($query) use ($data) {
                     $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                     $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                         ->orWhereNull("ignore_ids");
                         ->orWhereNull("ignore_ids");
                 })
                 })
-                ->orderBy("updated_at", "desc")
+            //$data['level'] == 4 || $data['level'] == 5 查询随机
+                ->when($data['level'] == 5, function ($query) {
+                    $query->inRandomOrder()
+                    //updated_at最近三十天;
+                        ->where('updated_at', '>', date("Y-m-d H:i:s", strtotime("-30 day")));
+                })
+                ->when($data['level'] != 5, function ($query) {
+                    $query->orderBy("updated_at", "desc");
+                })
+                ->when(!empty($data['level']), function ($query) use ($data) {
+                    if ($data['level'] != 4 && $data['level'] != 5) {
+                        $query->whereRaw("JSON_CONTAINS(level, '" . intval($data['level']) . "') = 1")
+                            ->orWhereNull("level");
+                    }
+                })
                 ->offset($placeid)
                 ->offset($placeid)
                 ->limit($data['pageSize'])
                 ->limit($data['pageSize'])
                 ->get();
                 ->get();
@@ -617,14 +635,13 @@ class NewsService implements NewsServiceInterface
             $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
             $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
             // 级别:0:未分类 1:头条 2:轮播图 3:推荐图 4:热点资讯 5:资讯推荐
             // 级别:0:未分类 1:头条 2:轮播图 3:推荐图 4:热点资讯 5:资讯推荐
             if ($data['level'] == 1) {
             if ($data['level'] == 1) {
-                $level = [
-                    0 => '1',
-                    1 => '4',
-                    2 => '5',
-                    3 => '0',
-                ];
+
                 $result = Article::where($where)
                 $result = Article::where($where)
-                    ->whereIn('level', $level)
+                    ->where(function ($query) use ($data) {
+                        $query->whereRaw("JSON_CONTAINS(level, '" . intval($data['level']) . "') = 1")
+                            ->orWhereNull("level")
+                            ->orWhereRaw("level = '[]'");
+                    })
                     ->where(function ($query) use ($data) {
                     ->where(function ($query) use ($data) {
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                             ->orWhereNull("ignore_ids");
                             ->orWhereNull("ignore_ids");
@@ -636,7 +653,11 @@ class NewsService implements NewsServiceInterface
             } elseif ($data['level'] == 2) {
             } elseif ($data['level'] == 2) {
                 $level = '2';
                 $level = '2';
                 $result = Article::where($where)
                 $result = Article::where($where)
-                    ->where('level', $level)
+                    ->where(function ($query) use ($data) {
+                        $query->whereRaw("JSON_CONTAINS(level, '" . intval($data['level']) . "') = 1")
+                            ->orWhereNull("level")
+                            ->orWhereRaw("level = '[]'");
+                    })
                     ->where(function ($query) use ($data) {
                     ->where(function ($query) use ($data) {
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                             ->orWhereNull("ignore_ids");
                             ->orWhereNull("ignore_ids");
@@ -649,7 +670,11 @@ class NewsService implements NewsServiceInterface
             } else {
             } else {
                 $level = '3';
                 $level = '3';
                 $result = Article::where($where)
                 $result = Article::where($where)
-                    ->where('level', $level)
+                    ->where(function ($query) use ($data) {
+                        $query->whereRaw("JSON_CONTAINS(level, '" . intval($data['level']) . "') = 1")
+                            ->orWhereNull("level")
+                            ->orWhereRaw("level = '[]'");
+                    })
                     ->where(function ($query) use ($data) {
                     ->where(function ($query) use ($data) {
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                             ->orWhereNull("ignore_ids");
                             ->orWhereNull("ignore_ids");
@@ -703,14 +728,15 @@ class NewsService implements NewsServiceInterface
                 }
                 }
             }
             }
         })
         })
-        ->where(function ($query) use ($data) {
-            $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
-                  ->orWhereNull("ignore_ids");
-        })
-        ->orderBy("updated_at", "desc")
-        ->limit($data['pageSize'])
-        ->offset(($data['page'] - 1) * $data['pageSize'])
-        ->get();
+            ->where(function ($query) use ($data) {
+                $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
+                    ->orWhereNull("ignore_ids");
+            })
+            ->orderBy("updated_at", "desc")
+            ->limit($data['pageSize'])
+            ->offset(($data['page'] - 1) * $data['pageSize'])
+            ->get();
+
         $count = Article::where(function ($query) use ($where) {
         $count = Article::where(function ($query) use ($where) {
             foreach ($where as $condition) {
             foreach ($where as $condition) {
                 if ($condition[1] === 'in') {
                 if ($condition[1] === 'in') {
@@ -743,15 +769,14 @@ class NewsService implements NewsServiceInterface
             'article.id' => $data['id'],
             'article.id' => $data['id'],
             'article.status' => 1,
             'article.status' => 1,
         ];
         ];
-
-        $result = Article::where($where)->leftJoin("article_data","article.id","article_data.article_id")
-        ->where(function ($query) use ($data) {
-            $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
-                  ->orWhereNull("ignore_ids");
-        })
-        ->first();
-        if(empty($result)){
-            return Result::error("暂无此新闻!",0);
+        $result = Article::where($where)->leftJoin("article_data", "article.id", "article_data.article_id")
+            ->where(function ($query) use ($data) {
+                $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
+                    ->orWhereNull("ignore_ids");
+            })
+            ->first();
+        if (empty($result)) {
+            return Result::error("暂无此新闻!", 0);
         }
         }
         $category = WebsiteCategory::leftJoin('website', 'website.id', '=', 'website_category.website_id')
         $category = WebsiteCategory::leftJoin('website', 'website.id', '=', 'website_category.website_id')
             ->select('website_category.*', 'website.website_name', 'website.suffix')
             ->select('website_category.*', 'website.website_name', 'website.suffix')
@@ -763,8 +788,8 @@ class NewsService implements NewsServiceInterface
         }
         }
         $result['category_id'] = $category['category_id'];
         $result['category_id'] = $category['category_id'];
         $result['cat_name'] = $category['alias'];
         $result['cat_name'] = $category['alias'];
-        $result['website_name'] = $category['website_name']??"";
-        $result['suffix'] = $category['suffix']??"";
+        $result['website_name'] = $category['website_name'] ?? "";
+        $result['suffix'] = $category['suffix'] ?? "";
         return Result::success($result);
         return Result::success($result);
     }
     }
     /**
     /**
@@ -911,8 +936,11 @@ class NewsService implements NewsServiceInterface
                     if (empty($choice)) {
                     if (empty($choice)) {
                         return Result::error("请选择已有的选项!", 0);
                         return Result::error("请选择已有的选项!", 0);
                     }
                     }
+                    $retult_survey = ArticleSurvey::where('website_id', $data['website_id'])
+                        ->where('sur_id', $data['sur_id'])
+                        ->get();
 
 
-                    return Result::success($choice);
+                    return Result::success($retult_survey);
 
 
                 }
                 }
                 return Result::error("参数必填!");
                 return Result::error("参数必填!");
@@ -943,7 +971,7 @@ class NewsService implements NewsServiceInterface
             array_push($where, ['is_survey', '=', $data['is_survey']]);
             array_push($where, ['is_survey', '=', $data['is_survey']]);
         }
         }
         // return Result::success($where);
         // return Result::success($where);
-        
+
         if (!empty($where)) {
         if (!empty($where)) {
             $query = Article::where($where)->where(function ($q) {
             $query = Article::where($where)->where(function ($q) {
                 $q->whereNotNull('survey_name')->where('survey_name', '!=', '');
                 $q->whereNotNull('survey_name')->where('survey_name', '!=', '');
@@ -953,7 +981,7 @@ class NewsService implements NewsServiceInterface
                 $q->whereNotNull('survey_name')->where('survey_name', '!=', '');
                 $q->whereNotNull('survey_name')->where('survey_name', '!=', '');
             });
             });
         }
         }
-        
+
         $count = $query->count();
         $count = $query->count();
         $survey = $query->orderByDesc('id')
         $survey = $query->orderByDesc('id')
             ->limit($data['pageSize'])
             ->limit($data['pageSize'])
@@ -1017,7 +1045,7 @@ class NewsService implements NewsServiceInterface
         return Result::success($result);
         return Result::success($result);
     }
     }
 
 
-     /**
+    /**
      * 前端-搜索新闻列表
      * 前端-搜索新闻列表
      * @param array $data
      * @param array $data
      * @return array
      * @return array