Преглед изворни кода

增加强制用户到服务号阅读逻辑判断,如果用户看过这本书,进入到公众号内点击继续阅读,继续之前的记录往下看,否则从这条推广链接设置的章节开始看

songdb пре 6 година
родитељ
комит
3cdcaadb64

+ 10 - 0
app/Http/Controllers/Wap/Book/ChapterController.php

@@ -348,6 +348,16 @@ class ChapterController extends BaseController
         //判断当前是否有强制显示服务号信息的cookie、已经关注 跳转到服务号信息引导页
         if(Cookie::get('force_show_qrcode') && $is_had_subscribe)
         {
+            //如果用户看过这本书,进入到公众号内点击继续阅读,继续之前的记录往下看
+            if($last_bid_read_record = ReadRecordService::getRecordByUidBid($this->uid,$bid))
+            {
+                //更新last_read
+                ReadRecordService::updateLastReadRecord(['uid' => $this->uid, 'last_read'=>$last_bid_read_record]);
+            }else{
+                //阅读记录
+                ReadRecordService::addReadRecord(['uid' => $this->uid, 'bid' => $bid, 'book_name' => $book_info->book_name,
+                    'cid' => $cid, 'chapter_name' => $chapter->name]);
+            }
             $force_read_url = '/subscribe/getFromUser';//服务号信息引导页
             $force_read_data = ['src' => $force_read_url];
             return response()->error('WAP_NOT_SUBSCRIBE', $force_read_data);

+ 15 - 2
app/Modules/User/Services/ReadRecordService.php

@@ -125,6 +125,19 @@ class ReadRecordService
     }
 
     /**
+     * 更新最近一条阅读记录
+     * @param $param
+     */
+    public static function updateLastReadRecord($param)
+    {
+        $uid = $param['uid'];
+        $last_read = $param['last_read'];
+
+        Redis::hset('book_read:' . $uid, $last_read);
+
+    }
+
+    /**
      * 删除
      * @param $uid
      * @param $bid
@@ -330,8 +343,8 @@ class ReadRecordService
             return $res;
         }
         foreach ($read_bids as $key => $v) {
-            if(in_array($key,self::$not_uid_key)){
-            	continue;
+            if(in_array($key,self::$not_uid_key)){
+            	continue;
             }
             array_push($res,$key);
         }