zz 6 年之前
父节点
当前提交
64ae109b3d

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

@@ -309,6 +309,13 @@ class ChapterController extends BaseController
         //获取图书信息
         $book_info = BookConfigService::getBookById($bid);
 
+        //是否开启全站按章模式
+        $global_charge_by_chapter_channels = explode(',',env('GLOBAL_CHARGE_BY_CHAPTER_CHANNEL'));
+        if(in_array($this->distribution_channel_id,$global_charge_by_chapter_channels))
+        {
+            $book_info->charge_type = 'CHAPTER';
+        }
+
         if (empty($book_info)) return response()->error('WAP_SYS_ERROR');
         $this->book_info = $book_info;
         $this->cid = $cid;
@@ -338,6 +345,14 @@ class ChapterController extends BaseController
         //用户是否强关
         $this->is_had_subscribe = $is_had_subscribe = $inter_not_need_sub ? true : $this->getSubscribe();
 
+        //判断当前是否有强制显示服务号信息的cookie、已经关注 跳转到服务号信息引导页
+        if(Cookie::get('force_show_qrcode') && $is_had_subscribe)
+        {
+            $force_read_url = '/subscribe/getFromUser';//服务号信息引导页
+            $force_read_data = ['src' => $force_read_url];
+            return response()->error('WAP_NOT_SUBSCRIBE', $force_read_data);
+        }
+        
         //获取强关章节数
         $subscribe_seq = $this->getSubscribeChapterNum($book_info);
         //章节是否需要强关 TRUE:不需要,false:需要
@@ -369,6 +384,7 @@ class ChapterController extends BaseController
             $this->getChapter();
             return response()->item(new ChapterTransformer, $this->chapter);
         }
+
         //需要强制关注 不是vip章节 已经关注了
         if (!$force_subscribe && $chapter->is_vip == 0 && $is_had_subscribe) {
             $this->getChapter();
@@ -676,6 +692,11 @@ class ChapterController extends BaseController
         return false;
     }
 
+    private function getOfficialAccountForceReadNotice()
+    {
+
+    }
+
     //强关页面的统计
     private function subscribeStats()
     {

+ 36 - 0
app/Http/Controllers/Wap/Subscribe/SubscribeController.php

@@ -7,6 +7,7 @@ use GuzzleHttp\Client;
 use App\Http\Controllers\Wap\BaseController;
 use Redis;
 use App\Modules\OfficialAccount\Services\OfficialAccountService;
+use App\Modules\OfficialAccount\Services\ForceSubscribeService;
 use Cookie;
 use Hashids;
 use Log;
@@ -103,4 +104,39 @@ class SubscribeController extends BaseController
 
         return false;
     }
+
+    //获取用户的强关信息
+    function getFromUser()
+    {
+        Cookie::queue('force_show_qrcode', 1, -1);
+        $uid = $this->uid;
+        $user_info = ForceSubscribeService::forceSubscribeUsersByUid(compact('uid'));
+        if(isset($_GET['d']))
+        {
+        dump($user_info);
+            }
+        if($user_info)
+        {
+            $appid = $user_info->appid;
+            $official_account = OfficialAccountService::officialAccountByAppid(compact('appid'));
+            if(isset($_GET['d']))
+            {
+                dump($official_account);
+            }
+            $title = $official_account->nickname;
+            $img = 'https://open.weixin.qq.com/qr/code?username='.$official_account->name;
+        }else{
+            return redirect()->to('/recent');
+        }
+
+        $head_img_pool = [
+            'https://cdn-novel.iycdm.com/h5/subscribe/headimg/1.png',
+            'https://cdn-novel.iycdm.com/h5/subscribe/headimg/2.png',
+            'https://cdn-novel.iycdm.com/h5/subscribe/headimg/3.png'
+        ];
+
+        $head_img = array_random($head_img_pool);
+
+        return view('wap.userSubInfo',compact('head_img','img','title'));
+    }
 }

+ 6 - 0
app/Http/Controllers/Wap/Web/RedirectController.php

@@ -109,6 +109,12 @@ class RedirectController extends Controller
                 $uv = Redis::hget('send_order_uv_' . $param, $key);
                 $this->updateSendOrderTime($param, $uv);
             }
+
+            //判断是否强制到服务号阅读
+            if($link->force_show_qrcode)
+            {
+                Cookie::queue('force_show_qrcode', 1, 1);
+            }
             //
             $redirect_path = $request->get('redirect_path');
            if($redirect_path){

+ 4 - 1
app/Http/Controllers/Wap/Web/WelcomeController.php

@@ -98,6 +98,8 @@ class WelcomeController extends BaseController
         if($show_title_in_reader_setting && in_array($this->distribution_channel_id,explode(',',$show_title_in_reader_setting))){
             $show_title_in_reader = true;
         }
+        $hide_chapter_channels = explode(',',env('HIDE_CHAPTER_CONSUME_CHANNEL'));
+        $is_hide_chapter_consume = in_array($this->distribution_channel_id,$hide_chapter_channels) ? 1 : 0;
 
         $options = json_encode([
             'distribution_channel_id' => (int)$this->distribution_channel_id,
@@ -127,7 +129,8 @@ class WelcomeController extends BaseController
             'adTargetId'=>$adTargetId,
             'ad_type'=>'1',
             'is_show_ad_frame'=>$is_show_ad_frame,
-            'show_title_in_reader'=>$show_title_in_reader
+            'show_title_in_reader'=>$show_title_in_reader,
+            'is_hide_chapter_consume'=>$is_hide_chapter_consume
         ]);
         if($this->uid == env('SPECIAL_USER_LOG',2)){
             myLog('special')->info('welcome --------------------------');

+ 2 - 1
app/Http/Middleware/EncryptCookies.php

@@ -20,6 +20,7 @@ class EncryptCookies extends BaseEncrypter
         'force_subscribe_name',
         'sub_random_num',
         'reader_share_bid',
-        'reader_share_cid'
+        'reader_share_cid',
+        'force_show_qrcode'
     ];
 }

+ 3 - 0
app/Http/Routes/Wap/WapRoutes.php

@@ -186,6 +186,9 @@ Route::group(['domain'=>env('WAP_DOMAIN'),'namespace'=>'App\Http\Controllers\Wap
         //继续阅读
         Route::get('continue','User\ReadRecordController@latestRead');
 
+        //用户强关信息页
+        Route::any('subscribe/getFromUser','Subscribe\SubscribeController@getFromUser');
+
         Route::any('{slug}','Web\WelcomeController@index')->where('slug', '(.*)?');
 
     });

+ 2 - 1
app/Modules/SendOrder/Models/SendOrder.php

@@ -43,7 +43,8 @@ class SendOrder extends Model
         'send_time',
         'charge_type',
         'pre_send_date',
-        'promotion_point'
+        'promotion_point',
+        'force_show_qrcode'
     ];
 
     /**

+ 1 - 1
app/Modules/SendOrder/Services/SendOrderService.php

@@ -274,7 +274,7 @@ class SendOrderService
      */
     static function getRedirectUrlById($id)
     {
-        return SendOrder::where('id', $id)->select('redirect_url', 'book_id', 'send_time', 'distribution_channel_id', 'name','promotion_point')->first();
+        return SendOrder::where('id', $id)->select('redirect_url', 'book_id', 'send_time', 'distribution_channel_id', 'name','promotion_point','force_show_qrcode')->first();
     }
 
     /**

+ 1 - 1
resources/views/pay/order/index.blade.php

@@ -89,7 +89,7 @@
                 "timeStamp":"{{ $pay_info['timeStamp'] }}",         //时间戳,自1970年以来的秒数
                 "nonceStr":"{{ $pay_info['nonceStr'] }}", //随机串
                 "package":"{{ $pay_info['package'] }}",
-                "signType":"MD5",         //微信签名方式:
+                "signType":"{{ $pay_info['signType'] }}",         //微信签名方式:
                 "paySign":"{{ $pay_info['paySign'] }}" //微信签名
             },
             function(res){

+ 8 - 8
resources/views/wap/index.blade.php

@@ -4,12 +4,12 @@
     <meta charset=utf-8>
     <meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
     <link rel=icon type=image/png href="data:image/png;base64,iVBORw0KGgo=">
-    <script src=https://cdn-novel.iycdm.com/static/errOptions.js></script>
-    <script src=https://cdn-novel.iycdm.com/static/vue.min.js></script>
-    <script src=https://cdn-novel.iycdm.com/static/vue-router.min.js></script>
-    <script type=text/javascript src=https://cdn-novel.iycdm.com/static/vue-lazyload.js></script>
+    <script>window.errOptions || document.write('<script src="https://cdn-novel.iycdm.com/static/errOptions.js"><\/script>')</script>
+    <script>window.Vue || document.write('<script src="https://cdn-novel.iycdm.com/static/vue.min.js"><\/script>')</script>
+    <script>window.VueRouter || document.write('<script src="https://cdn-novel.iycdm.com/static/vue-router.min.js"><\/script>')</script>
+    <script>(window.Vue && window.VueLazyload) || document.write('<script src="https://cdn-novel.iycdm.com/static/vue-lazyload.js"><\/script>')</script>
     <title>{{$title}}</title>
-    <link href=https://cdn-novel.iycdm.com/static2019-1-10/css/app.9501d4c5a44303dc106b2244b6e2c6e1.css rel=stylesheet>
+    <link href=https://cdn-novel.iycdm.com/static2019-1-14/css/app.ae099fb8db0b00af2f460e7a9d12f3fb.css rel=stylesheet>
 </head>
 <body>
 <div id=app></div>
@@ -32,9 +32,9 @@
     })();</script>
 <script>window.options = {!! $options!!};</script>
 <script type=text/javascript
-        src=https://cdn-novel.iycdm.com/static2019-1-10/js/manifest.1a58f63fb80d5ec79770.js></script>
-<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-1-10/js/vendor.ef6f589527f41af98f5c.js></script>
-<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-1-10/js/app.91c7339c87d6e16ca59f.js></script>
+        src=https://cdn-novel.iycdm.com/static2019-1-14/js/manifest.56610a6284ec0df97410.js></script>
+<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-1-14/js/vendor.ef6f589527f41af98f5c.js></script>
+<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-1-14/js/app.0e2f31110cefd647cd0f.js></script>
 </body>
 <script src=//cdn.ipadview.com/jssdk/combo.bundle.js></script>
 </html>

文件差异内容过多而无法显示
+ 484 - 471
resources/views/wap/subscribeV2.blade.php


文件差异内容过多而无法显示
+ 450 - 0
resources/views/wap/userSubInfo.blade.php