Bläddra i källkod

新增书架书籍推荐接口和新增获取最新阅读接口

wangzq 2 år sedan
förälder
incheckning
27a475ae93

+ 17 - 0
app/Http/Controllers/QuickApp/Book/BookController.php

@@ -609,4 +609,21 @@ class BookController extends BaseController
         $books = BookConfigService::getBooksByIds($bid,[],false);
         return response()->collection(new BookTransformer(), $books);
     }
+
+    public function shelfRecom(Request $request)
+    {
+
+        $category_id = $request->input('category_id');
+        $bid         = $request->input('bid');
+        $package     = $request->header('x-package', '');
+        if (empty($package) || $package != 'com.beidao.kuaiying.yueai') {
+            return response()->success([]);
+        }
+        $bid =  [58238,60534,63220,12587,63221,60490,14022,4553,63179,61596,61701];
+        $bid = array_random($bid,4);
+        $books = BookConfigService::getBooksByIds($bid,[],false);
+        return response()->collection(new BookTransformer(), $books);
+    }
+
+
 }

+ 73 - 0
app/Http/Controllers/QuickApp/User/ReadRecordController.php

@@ -126,7 +126,80 @@ class ReadRecordController extends BaseController
         return response()->collection(new ReadRecordTransformer(), array_to_object($res));
     }
 
+    /***
+     * 获取上次阅读记录
+     * name: lastReadRecord
+     * @param Request $request
+     * @return mixed
+     * date 2022/08/17 15:07
+     */
+    public function lastReadRecord(Request $request)
+    {
+        $res  = ReadRecordService::getReadRecord($this->uid);
+        $package = $request->header('x-package', '');
+        //补充操作:如果该用户未订阅该下架的书籍则删除其阅读记录(书架不予显示)
+        //判断是否属于包年用户
+        $year_account = YearOrderService::getRecord($this->uid);
 
+        if ($res) {
+            $bids = array_column($res,'bid');
+            $channel_id = ($package === 'com.beidao.kuaiying.zsy') ? 7477 : 0;
+            $book = BookConfigService::getBooksByIds($bids, [], false);//下架图书最近阅读可看到
+            $book = array_column(($book->toArray()),null,'bid');
+            foreach ($res as  &$value) {
+                $value['cover']        = '';
+                $value['last_chapter'] = 0;
+                $value['intro'] = '';
+                $value['status'] = '';
+                $value['size'] = 0;
+                $value['author'] = '';
+                if(isset($book[$value['bid']])){
+                    $info = $book[$value['bid']];
+                    $value['book_name']    = $info['book_name'];
+                    $value['cover']        =  $info['cover'];
+                    $value['last_chapter'] = $info['last_chapter'];
+                    $value['intro'] =  $info['intro'];
+                    $value['status'] =  $info['status'];
+                    $value['size'] =  $info['size'];
+                    $value['author'] =  $info['author'];
+                    if($channel_id === 7477){
+                        $hidden = getHiddenCp();
+                    }else{
+                        $hidden = array_merge(getHiddenCp(),['lianshang']);
+                    }
+                    if((!$year_account && !in_array( $info['is_on_shelf'],[1,2])) || in_array( $info['cp_source'],$hidden)){
+                        //获取书籍充值类型
+                        $charge_type =  $info['charge_type'];
+                        if($charge_type == 'BOOK'){
+                            //是否购买过该书,购买过则不删除
+                            $result = BookOrderService::getRecordByuidBid($this->uid, $info['bid']);
+                        }elseif($charge_type == 'CHAPTER'){
+                            //是否购买过该书章节,购买过则不删除
+                            $result = ChapterOrderService::checkBookIsOrdered($this->uid,$info['bid']);
+                        }else{
+                            $result = false;
+                        }
+                        if (!$result) {
+                            unset($value);
+                            ReadRecordService::delReadRecordStatic($this->uid,[$info['bid']]);
+                        }
+                    }
+                }else{
+                    unset($value);
+                }
+            }
+            unset($value);
+        }
+
+        usort($res, function ($a, $b) {
+            if ($a['time'] >= $b['time']) return -1;
+            return 1;
+        });
+        if (count($res) >  0){
+            return response()->success((new ReadRecordTransformer())->transform(array_to_object($res[0])));
+        }
+        return response()->success();
+    }
     /**
      * @apiVersion 1.0.0
      * @apiDescription 添加阅读记录

+ 6 - 0
app/Http/Routes/QuickApp/QuickAppRoutes.php

@@ -73,6 +73,8 @@ Route::group(['domain' => env('QUICKAPP_DOMAIN'), 'namespace' => 'App\Http\Contr
         Route::get('books/recommen', 'Book\BookController@recommen');
         // 阅爱小说任务页面书籍位置
         Route::get('books/recommen_yueai', 'Book\BookController@recommenYueAi');
+        // 书籍推荐书籍
+        Route::get('books/shelf_recom', 'Book\BookController@shelfRecom');
         //阅读完后的推荐
         Route::get('books/readOverRecommend', 'Book\BookController@readOverRecommend');
         //图书详情
@@ -209,6 +211,8 @@ Route::group(['domain' => env('QUICKAPP_BACK_DOMAIN'), 'namespace' => 'App\Http\
         Route::get('books/recommen', 'Book\BookController@recommen');
         // 阅爱小说任务页面书籍位置
         Route::get('books/recommen_yueai', 'Book\BookController@recommenYueAi');
+        // 书籍推荐书籍
+        Route::get('books/shelf_recom', 'Book\BookController@shelfRecom');
         //阅读完后的推荐
         Route::get('books/readOverRecommend', 'Book\BookController@readOverRecommend');
         //图书详情
@@ -257,6 +261,8 @@ Route::group(['domain' => env('QUICKAPP_BACK_DOMAIN'), 'namespace' => 'App\Http\
         Route::get('userShelfBooks/isonshelf', 'User\UserShelfBooksController@isOnshelf');
         //阅读记录
         Route::get('readrecord', 'User\ReadRecordController@index');
+        // 最后阅读
+        Route::get('lastreadrecord', 'User\ReadRecordController@lastReadRecord');
         //添加阅读记录
         Route::post('readrecord', 'User\ReadRecordController@addReadRecord');
         //删除阅读记录