fly 5 tahun lalu
induk
melakukan
afc5bb0720

+ 18 - 10
app/Http/Controllers/QuickApp/User/ReadRecordController.php

@@ -2,16 +2,16 @@
 
 namespace App\Http\Controllers\QuickApp\User;
 
+use App\Consts\SysConsts;
 use Illuminate\Http\Request;
 use App\Http\Controllers\QuickApp\BaseController;
 use App\Modules\Book\Services\BookConfigService;
 use App\Modules\Book\Services\UserShelfBooksService;
 use App\Http\Controllers\QuickApp\User\Transformers\ReadRecordTransformer;
 use App\Modules\Book\Services\BookService;
+use App\Modules\ShareFree\Services\ShareUsersService;
 use App\Modules\User\Services\ReadRecordService;
-use Hashids;
 use Redis;
-use Log;
 
 class ReadRecordController extends BaseController
 {
@@ -65,7 +65,9 @@ class ReadRecordController extends BaseController
      */
     public function index(Request $request)
     {
-        $res = ReadRecordService::getReadRecord($this->uid);
+        $user = $this->user_info;
+        $is_check_from_db = (time() - strtotime($user->created_at) > 5 * 30 * SysConsts::ONE_DAY_SECONDS);
+        $res = ReadRecordService::getReadRecord($this->uid, $is_check_from_db);
         if ($res) {
             $id_arr = [];
             foreach ($res as $key => $value) {
@@ -74,6 +76,8 @@ class ReadRecordController extends BaseController
 
             $book = BookConfigService::getBooksByIds($id_arr);
             foreach ($res as $key => &$value) {
+                $value['cover'] = '';
+                $value['last_chapter'] = 0;
                 foreach ($book as  $val) {
                     if ($value['bid'] == $val->bid) {
                         $value['cover'] = $val->cover;
@@ -100,6 +104,14 @@ class ReadRecordController extends BaseController
         });
         $res = json_encode($res);
         $res = json_decode($res);
+        foreach ($res as $key => &$each) {
+            $rec = ShareUsersService::getUnlocked($this->uid, $each->bid);
+            if ($rec) {
+                $each->is_advertise_sub = 1;
+            } else {
+                $each->is_advertise_sub = 0;
+            }
+        }
         return response()->collection(new ReadRecordTransformer(), $res);
     }
 
@@ -134,13 +146,9 @@ class ReadRecordController extends BaseController
             return response()->error('LACK_PARAM');
         }
         $param['uid'] = $this->uid;
-        $param['bid'] = Hashids::decode($param['bid'])[0];
-        $record_info = Redis::hget('book_read:' . $this->uid, $param['bid']);
-        $param['book_name'] = 'unknown';
-        if ($record_info) {
-            $param['book_name'] = explode('_', $record_info)[1];
-        }
-
+        $param['bid'] = BookService::decodeBidStatic($param['bid']);
+        Redis::hget('book_read:' . $this->uid, $param['bid']);
+        $param['book_name'] = '';
         ReadRecordService::addReadRecord($param);
         return response()->success();
     }

+ 5 - 2
app/Http/Controllers/QuickApp/User/Transformers/ReadRecordTransformer.php

@@ -1,7 +1,9 @@
 <?php
 
 namespace App\Http\Controllers\QuickApp\User\Transformers;
+
 use Hashids;
+
 class ReadRecordTransformer
 {
     public function transform($res)
@@ -14,7 +16,8 @@ class ReadRecordTransformer
             'time' => $res->time,
             'cover' => $res->cover,
             'last_chapter' => $res->last_chapter,
-            'is_on_user_shelf'=>$res->is_on_user_shelf
+            'is_on_user_shelf' => $res->is_on_user_shelf,
+            'is_advertise_sub' => isset($res->is_advertise_sub) ? $res->is_advertise_sub : 0
         ];
     }
-}
+}