Browse Source

'快应用首页包展示调整'

zhuchengjie 3 years ago
parent
commit
dcde47d5a0

+ 25 - 30
app/Http/Controllers/QuickApp/Book/BookController.php

@@ -4,8 +4,10 @@ namespace App\Http\Controllers\QuickApp\Book;
 
 use App\Libs\Utils;
 use App\Modules\Book\Services\BookAuditService;
+use App\Modules\RecommendBook\Services\QappRecommendService;
 use App\Modules\RecommendBook\Services\RecommendService;
 use App\Modules\Book\Services\RecoBannerService;
+use App\Modules\User\Models\QappPackage;
 use App\Modules\User\Services\QappUserService;
 use Illuminate\Http\Request;
 use App\Http\Controllers\QuickApp\BaseController;
@@ -193,54 +195,47 @@ class BookController extends BaseController
             }
             return $item;
         });
+
+        //新判断: 根据包名来获取对应所需的bid
+        $qapp_package = QappPackage::getPackageByPackage($package);
+        if($qapp_package){
+            $package_id = $qapp_package->id;
+        }else{
+            $package_id = 0;
+        }
+
         $user =  (new QappUserService)->getGolableUser();
         if(isset($user->uid) && !empty($user->uid)){
-
             if(!$this->send_order_id || $this->send_order_id == 0 ){
                 \Log::info('un_send_order_book:uid:'.$this->uid);
-                $result = $this->getCheckBids($channel,$books);
+                $result = $this->getCheckBids($channel,$books,$package_id);
                 return response()->success($result);
+            }else{
+                $package_id = 0;
             }
-            $hotBids   = RecommendService::getRecommendIdsStatic($channel, 'hot');
-            $liveBids  = RecommendService::getRecommendIdsStatic($channel, 'live');
-            $recomBids = RecommendService::getRecommendIdsStatic($channel, 'recom');
-            $newBids   = RecommendService::getRecommendIdsStatic($channel, 'new_recom');
-
-            $result = [
-                ['type' => 'reco_banner', 'lable' => '首页banner', 'books' => $books],
-                ['type' => 'hot', 'lable' => '热门推荐', 'books' => collectionTransform(new BookTransformer, BookConfigService::getBooksByIds($hotBids))],
-                ['type' => 'zhibo', 'lable' => '神书直播', 'books' => collectionTransform(new BookTransformer, BookConfigService::getBooksByIds($liveBids))],
-                ['type' => 'recom', 'lable' => '编辑推荐', 'books' => collectionTransform(new BookTransformer, BookConfigService::getBooksByIds($recomBids))],
-                ['type' => 'new_recom', 'lable' => '新书推荐', 'books' => collectionTransform(new BookTransformer, BookConfigService::getBooksByIds($newBids))],
-            ];
-            return response()->success($result);
+        }else{
+            $package_id = 0;
         }
 
-        $result = $this->getCheckBids($channel,$books);
+        $result = $this->getCheckBids($channel,$books,$package_id);
         return response()->success($result);
 
     }
 
     /**
-     *
+     * 根据包名
      * @param $channel
      * @param $books
+     * @param $package_id
      * @return array
      */
-    private function getCheckBids($channel,$books)
+    private function getCheckBids($channel,$books,$package_id)
     {
-        if($channel == 1){
-            $hotBids = [13577,16712,13336,12717,15103,13928];
-            $liveBids = [14793,12708,13286,13002,14004,13073];
-            $recomBids = [15121,13929,13275,13254,14072,10313];
-            $newBids = [3483,13278,12693,4098,10378,3526];
-        }else{
-            $hotBids   = RecommendService::getRecommendIdsStatic($channel, 'hot');
-            $liveBids  = RecommendService::getRecommendIdsStatic($channel, 'live');
-            $recomBids = RecommendService::getRecommendIdsStatic($channel, 'recom');
-            $newBids   = RecommendService::getRecommendIdsStatic($channel, 'new_recom');
-            $newBids   = array_replace($newBids,[array_search('13563',$newBids) => 10721]);
-        }
+        $hotBids   = QappRecommendService::getRecommendByPacketId($channel, 'hot',$package_id);
+        $liveBids  = QappRecommendService::getRecommendByPacketId($channel, 'live',$package_id);
+        $recomBids = QappRecommendService::getRecommendByPacketId($channel, 'recom',$package_id);
+        $newBids   = QappRecommendService::getRecommendByPacketId($channel, 'new_recom',$package_id);
+
         return array_filter([
             ['type' => 'reco_banner', 'lable' => '首页banner', 'books' => $books],
             ['type' => 'hot', 'lable' => '热门推荐', 'books' => collectionTransform(new BookTransformer, BookConfigService::getBooksByIds($hotBids))],

+ 18 - 0
app/Modules/RecommendBook/Models/QappRecommend.php

@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Created by PhpStorm.
+ * User: admin
+ * Date: 2018/8/17
+ * Time: 11:02
+ */
+
+namespace App\Modules\RecommendBook\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class QappRecommend extends Model
+{
+    protected $table = 'qapp_recommend_books';
+    protected $fillable = ['id', 'bid', 'channel', 'sequence', 'version_id', 'subject', 'is_show','qapp_packet_id'];
+}

+ 27 - 0
app/Modules/RecommendBook/Services/QappRecommendService.php

@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * Created by PhpStorm.
+ * User: admin
+ * Date: 2018/8/20
+ * Time: 10:42
+ */
+
+namespace App\Modules\RecommendBook\Services;
+
+use App\Modules\RecommendBook\Models\QappRecommend;
+
+class QappRecommendService
+{
+    public static function getRecommendByPacketId(int $channel, string $type, int $packet_id)
+    {
+        return QappRecommend::where([
+            ['is_show', '=', 1],
+            ['channel', '=', $channel],
+            ['qapp_packet_id', '=', $packet_id],
+            ['subject', '=', $type]
+        ])->orderBy('sequence', 'asc')
+            ->pluck('bid')
+            ->all();
+    }
+}