AI 1 mês atrás
pai
commit
d86111e909
1 arquivos alterados com 43 adições e 15 exclusões
  1. 43 15
      app/JsonRpc/NewsService.php

+ 43 - 15
app/JsonRpc/NewsService.php

@@ -114,7 +114,7 @@ class NewsService implements NewsServiceInterface
      */
     public function addCategory(array $data): array
     {
-        if(isset($data['id'])){
+        if (isset($data['id'])) {
             unset($data['id']);
         }
         $id = Category::insertGetId($data);
@@ -566,15 +566,33 @@ class NewsService implements NewsServiceInterface
             $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
             $where = [
                 'status' => 1,
-                'level' => $data['level'],
             ];
+            var_dump($data, 'data-----------------');
+
+            //如果是4:热点资讯 5:资讯推荐;
+            var_dump($where, 'where-----------------');
+
             $result = Article::where($where)
                 ->whereIn("catid", $category)
                 ->where(function ($query) use ($data) {
                     $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                         ->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)
                 ->limit($data['pageSize'])
                 ->get();
@@ -605,14 +623,13 @@ class NewsService implements NewsServiceInterface
             $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
             // 级别:0:未分类 1:头条 2:轮播图 3:推荐图 4:热点资讯 5:资讯推荐
             if ($data['level'] == 1) {
-                $level = [
-                    0 => '1',
-                    1 => '4',
-                    2 => '5',
-                    3 => '0',
-                ];
+
                 $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) {
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                             ->orWhereNull("ignore_ids");
@@ -624,7 +641,11 @@ class NewsService implements NewsServiceInterface
             } elseif ($data['level'] == 2) {
                 $level = '2';
                 $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) {
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                             ->orWhereNull("ignore_ids");
@@ -637,7 +658,11 @@ class NewsService implements NewsServiceInterface
             } else {
                 $level = '3';
                 $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) {
                         $query->whereRaw("JSON_CONTAINS(ignore_ids, '" . intval($data['website_id']) . "') = 0")
                             ->orWhereNull("ignore_ids");
@@ -751,8 +776,8 @@ class NewsService implements NewsServiceInterface
         }
         $result['category_id'] = $category['category_id'];
         $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);
     }
 
@@ -899,8 +924,11 @@ class NewsService implements NewsServiceInterface
                     if (empty($choice)) {
                         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("参数必填!");