wzq 5 年之前
父節點
當前提交
d13f8d5c0d
共有 4 個文件被更改,包括 83 次插入6 次删除
  1. 24 0
      app/Models/VideoGroup.php
  2. 19 0
      app/Models/VideoGroupInfo.php
  3. 26 6
      app/Repositories/FloorRepository.php
  4. 14 0
      app/Traits/UserTrait.php

+ 24 - 0
app/Models/VideoGroup.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/19
+ * Time: 15:26
+ */
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\SoftDeletes;
+
+class VideoGroup extends Model
+{
+    //
+    use SoftDeletes;
+    protected $table = 'video_group';
+    protected $guarded = [];
+
+    public function info()
+    {
+        return $this->hasMany('App\Models\VideoGroupInfo', 'id', 'video_group_id');
+    }
+}

+ 19 - 0
app/Models/VideoGroupInfo.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019/6/19
+ * Time: 15:27
+ */
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\SoftDeletes;
+
+class VideoGroupInfo extends Model
+{
+    //
+    use SoftDeletes;
+    protected $table = 'video_group_info';
+    protected $guarded = [];
+}

+ 26 - 6
app/Repositories/FloorRepository.php

@@ -3,6 +3,8 @@ namespace App\Repositories;
 use App\Models\Floor;
 use App\Models\TopicGroup;
 use App\Models\TopicGroupInfo;
+use App\Models\VideoGroup;
+use App\Models\VideoGroupInfo;
 use App\Traits\UserTrait;
 use Illuminate\Support\Facades\Log;
 use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -21,10 +23,14 @@ class FloorRepository
 {
     use UserTrait;
     public function __construct(Floor $floor,
+                                VideoGroup $videoGroup,
+                                VideoGroupInfo $videoGroupInfo,
                                 TopicGroup $topicGroup,
                                 TopicGroupInfo $topicGroupInfo)
     {
         $this->floor = $floor;
+        $this->videoGroup = $videoGroup;
+        $this->videoGroupInfo = $videoGroupInfo;
         $this->topicGroup = $topicGroup;
         $this->topicGroupInfo = $topicGroupInfo;
     }
@@ -64,6 +70,20 @@ class FloorRepository
                 //user
             }elseif($item->floor_type == 2){
                 //video
+                $videoIds = $this->videoGroup
+                    ->join('video_group_info', 'video_group_info.video_group_id', '=', 'video_group.id')
+                    ->where('video_group.id', $item->group_ids)
+                    ->limit(20)
+                    ->pluck('video_group_info.post_id')
+                    ->toArray();
+                if(!$videoIds) continue;
+                $videoIds = implode($videoIds, ',');
+                $video = $this->getPostVideo($videoIds);
+                if(!$video) continue;
+                $data[$item->floor_location] = [
+                    'show_type' => 'video',
+                    'data' => $video
+                ];
             }elseif($item->floor_type == 3){
                 //topic
                 $topicIds = $this->topicGroup
@@ -72,14 +92,14 @@ class FloorRepository
                     ->limit(20)
                     ->pluck('topic_group_info.topic_id')
                     ->toArray();
+                if(!$topicIds) continue;
                 $topicIds = implode($topicIds, ',');
                 $topic = $this->getTopic($topicIds);
-                if($topic){
-                    $data[$item->floor_location] = [
-                        'show_type' => 'topic',
-                        'data' => $topic
-                    ];
-                }
+                if(!$topic) continue;
+                $data[$item->floor_location] = [
+                    'show_type' => 'topic',
+                    'data' => $topic
+                ];
             }
         }
         return $data;

+ 14 - 0
app/Traits/UserTrait.php

@@ -54,6 +54,20 @@ trait UserTrait
 
     }
 
+    public function getPostVideo($ids) {
+        try {
+            $sign = generateSign([], config('customer.app_secret'));
+            $url = config("customer.app_service_url").'/community/post/video/group';
+            $array = [
+                'json' => ['sign' => $sign, 'ids' => $ids], 'query' => [], 'http_errors' => false,'headers'=>['Authorization'=>"Bearer ".JWTAuth::getToken()]
+            ];
+            return http($url,$array,'get');
+        } catch (\Exception $e) {
+            return [];
+        }
+
+    }
+
     public function getFollowStatus($uid, $followUid) {
         try {
             $sign = generateSign([], config('customer.app_secret'));