15313670163 4 mesiacov pred
rodič
commit
a5f924ebb4

+ 91 - 0
app/JsonRpc/NewsService.php

@@ -4,6 +4,7 @@ namespace App\JsonRpc;
 use App\Model\Article;
 use App\Model\Article;
 use App\Model\ArticleData;
 use App\Model\ArticleData;
 use App\Model\Category;
 use App\Model\Category;
+use App\Model\WebsiteCategory;
 use Hyperf\DbConnection\Db;
 use Hyperf\DbConnection\Db;
 use Hyperf\RpcServer\Annotation\RpcService;
 use Hyperf\RpcServer\Annotation\RpcService;
 use App\Tools\Result;
 use App\Tools\Result;
@@ -278,4 +279,94 @@ class NewsService implements NewsServiceInterface
             return Result::error("查询失败",0);
             return Result::error("查询失败",0);
         }
         }
     }
     }
+    /**
+     *  获取新闻
+     * @param array $data
+     * @return array
+    */
+    public function getWebsiteArticlett(array $data): array   
+    {
+    
+       $category = WebsiteCategory::where('website_id',$data['website_id'])->select('category_id')->get();
+       $category = $category->toArray();
+       $result= [];
+       if($category){
+            $category_ids = [];
+            foreach($category as $val){
+                array_push($category_ids,$val['category_id']);
+            }
+            if(isset($data['placeid'])){
+                $placeid=$data['placeid']-1;
+                $result=Article::where('status',1)->where('level',$data['level'])->whereIn("catid",$category_ids)->orderBy("created_at","desc")->offset($placeid)->limit($data['pageSize'])->get();
+            }else{
+                $result=Article::where('status',1)->where('level',$data['level'])->whereIn("catid",$category_ids)->orderBy("created_at","desc")->offset(0)->limit($data['pageSize'])->get();
+            }
+            if(empty($result)){
+                return Result::error("暂无头条新闻",0);
+            }            
+            return Result::success($result); 
+        }else{
+            return Result::error("本网站下暂无相关栏目",0);
+        }
+    }
+    /**
+     * 获取模块新闻
+     * @param array $data
+     * @return array
+    */
+   
+    public function getWebsiteModelArticles(array $data): array    
+    {
+        $catid=$data['catid'];
+        $category = WebsiteCategory::where('website_id',$data['website_id'])->where('category_id',$catid)->select('category_id')->get();
+        $category = $category->toArray();
+        if(!empty($category)){
+            $where=[
+                'status' => 1,
+                'catid' => $catid
+            ];
+            if($data['level']==1){
+                $level=[
+                    0=>'1',
+                    1=>'4',
+                    2=>'5'
+                ];
+                $result = Article::where($where)->whereIn('level',$level)->orderBy("created_at","desc")->limit($data['pagesize'])->get();
+            }elseif($data['level']==2){
+                $level='2';
+                $result = Article::where($where)->where('level',$level)->orderBy("created_at","desc")->limit($data['pagesize'])->get();
+
+            }else{
+                $level='3';
+                $result = Article::where($where)->where('level',$level)->orderBy("created_at","desc")->limit($data['pagesize'])->get();
+            }
+            $result= $result->toArray();
+            if(!empty($result) && isset($data['placeid']) && !empty($data['placeid'])){
+                $placeid=$data['placeid']-1;
+                if($level==2 || $level==3){
+                    $where =[
+                        'level' => $level
+                    ];
+                    $result = Article::where($where)
+                    ->orderBy("created_at","desc")
+                    ->offset($placeid)
+                    ->limit($data['pagesize'])->get();
+                }else{
+                    $result = Article::where($where)
+                    ->whereIn('level',$level)
+                    ->offset($placeid)
+                    ->orderBy("created_at","desc")
+                    ->limit($data['pagesize'])->get();
+                } 
+            }
+            if(empty($result)){
+                return Result::error("此栏目暂无相关新闻",0);
+            }
+        }else{
+            return Result::error("此网站暂无此栏目",0);
+        
+        }
+        return Result::success($result);  
+        
+    }
 }
 }

+ 10 - 0
app/JsonRpc/NewsServiceInterface.php

@@ -74,5 +74,15 @@ interface NewsServiceInterface
      * @return array
      * @return array
      */
      */
     public function upArticleStatus(array $data):array;
     public function upArticleStatus(array $data):array;
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getWebsiteArticlett(array $data):array;
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getWebsiteModelArticles(array $data):array;
 
 
 }
 }

+ 27 - 0
app/Model/Web.php

@@ -0,0 +1,27 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class Web extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'web';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 0
app/Model/WebsiteCategory.php

@@ -0,0 +1,27 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class WebsiteCategory extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'website_category';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}