Quellcode durchsuchen

修复快应用加桌

tgz vor 3 Jahren
Ursprung
Commit
23380d1a6c
1 geänderte Dateien mit 55 neuen und 21 gelöschten Zeilen
  1. 55 21
      app/Http/Controllers/QuickApp/Book/ChapterController.php

+ 55 - 21
app/Http/Controllers/QuickApp/Book/ChapterController.php

@@ -139,7 +139,8 @@ class ChapterController extends BaseController
     public function index(Request $request, $bid, $cid)
     {
         $send_order_id   = $request->header('send_order_id', '');
-        \Log::info('charter-index:send_order_id:'.$send_order_id);
+        //每次绑定用户和派单的关系
+        $this->bindSendOrderId($this->uid,$send_order_id);
         $oldbid = $bid;
         $bid    = BookService::decodeBidStatic($bid);
         //获取图书信息
@@ -791,29 +792,62 @@ class ChapterController extends BaseController
     //加桌类型
     private function addDesktopType($bid, $sequence)
     {
-        $force_add_desk_type = 0;
-        \Log::info('force_add_desk_log:uid:'.$this->uid);
-        $send_order_id       = ReadRecordService::getSendOrderId($this->uid);
-        if (!$send_order_id) return $force_add_desk_type;
-        \Log::info('force_add_desk_log:send_order_id:'.$send_order_id);
-        $send_order_info = SendOrderService::getById($send_order_id);
-        if (!$send_order_info) return $force_add_desk_type;
-        \Log::info('force_add_desk_log:book_id:'.$send_order_info->book_id.' bid:'.$bid.' sequence:'.$sequence);
-        if ($send_order_info->book_id == $bid) {
-            \Log::info(' force_add_desk_type:'.$send_order_info->force_add_desk_type);
-            if ($send_order_info->force_add_desk_type == 1 && $send_order_info->force_add_desk_seq) {
-                \Log::info('force_add_desk_seq:'.$send_order_info->force_add_desk_seq);
-                if ($sequence >= $send_order_info->force_add_desk_seq) {
-                    $force_add_desk_type = $send_order_info->force_add_desk_type;
+        $deault_force_add_desk_type = 0;
+        $send_order_id = $this->GetBindSendOrderId($this->uid);
+        if ($send_order_id) {
+            $send_order_info = SendOrderService::getById($send_order_id);
+            if (!$send_order_info) return $deault_force_add_desk_type;
+            if ($send_order_info->book_id == $bid) {
+                // 派单书籍和观看书籍一致,并设置了强加桌,判断当前章节和设置的强加桌章节
+                if ($send_order_info->force_add_desk_type == 1 && $send_order_info->force_add_desk_seq) {
+                    if ($sequence >= $send_order_info->force_add_desk_seq) {
+                        $force_add_desk_type = $send_order_info->force_add_desk_type;
+                        return $force_add_desk_type;
+                    }
                 }
-            }
-            if ($send_order_info->force_add_desk_type == 2) {
-                if ($sequence >= $this->book_info->force_subscribe_chapter_seq && $sequence <= $this->book_info->force_subscribe_chapter_seq + 3) {
-                    $force_add_desk_type = $send_order_info->force_add_desk_type;
+                if ($send_order_info->force_add_desk_type == 2) {
+                    if ($sequence >= $this->book_info->force_subscribe_chapter_seq && $sequence <= $this->book_info->force_subscribe_chapter_seq + 3) {
+                        $force_add_desk_type = $send_order_info->force_add_desk_type;
+                        return $force_add_desk_type;
+                    }
                 }
             }
         }
-        \Log::info('force_add_desk_type_bid:'.$bid.' return_force_add_desk_type:'.$force_add_desk_type);
-        return $force_add_desk_type;
+        //无派单,或者派单书籍与 此次书籍不一致,直接使用 原书籍的默认强关章节
+        $book_info = BookConfigService::getBookById($bid);
+        if ($book_info && $book_info->force_subscribe_chapter_seq) {
+            if ($sequence >= $book_info->force_subscribe_chapter_seq) {
+                return 1;
+            }
+        }
+        return $deault_force_add_desk_type;
+    }
+    /**
+     * [bindSendOrderId description]
+     * @param  [type] $uid           [description]
+     * @param  [type] $send_order_id [description]
+     * @return [type]                [description]
+     */
+    public function bindSendOrderId($uid, $send_order_id)
+    {
+        if ($send_order_id) {
+            $res = Redis::hset('book_read_chapter:' . $uid,'send_order_id', $send_order_id);
+        }
+    }
+
+    /**
+     * [bindSendOrderId description]
+     * @param  [type] $uid           [description]
+     * @param  [type] $send_order_id [description]
+     * @return [type]                [description]
+     */
+    public function GetBindSendOrderId($uid)
+    {
+        try {
+            $send_order_id = Redis::hget('book_read_chapter:' . $uid, 'send_order_id');
+            if ($send_order_id)
+                return (int)$send_order_id;
+        } catch (\Exception $e) {
+        }
     }
 }