zz 5 gadi atpakaļ
vecāks
revīzija
5d3e354448

+ 58 - 19
app/Http/Controllers/Wap/User/UserController.php

@@ -296,7 +296,9 @@ class UserController extends BaseController
         //修改签到页面,version=v2
         $fee_pool = [0,30,50,120,50,50,50,150];
         list($sign,$sign_count) = ReadRecordService::getByMultiField($this->uid,'sign_day','sign_counts');
-
+        $read_record = $this->getSignPageReadRecord($all_bid);
+        $user = $this->_user_info;
+        $recommend_book = $this->getSignRecomandBook($user->sex,$all_bid);
         if ($sign && $sign == date('Y-m-d')) {
             if ($sign_count % 7 == 1 && $sign_count<=7) {
                 $fee = 30;
@@ -314,16 +316,16 @@ class UserController extends BaseController
             if($day == 0){
                 $day = 7;
             }
-            $day = 5;
-            $user = $this->_user_info;
+
             //签过到了
             $name = $user->nickname;
             $head_img = $user->head_img;
             $balance = $user->balance;
             $data = ['sign_count'=>$sign_count,'fee'=>$fee,'fee_pool'=>$fee_pool,
-                'day'=>$day,'is_alert'=>0,'read_record'=>$this->getSignPageReadRecord(),'name'=>$name,
+                'day'=>$day,'is_alert'=>0,'read_record'=>$read_record,'name'=>$name,
                 'head_img'=>$head_img,
-                'balance'=>$balance
+                'balance'=>$balance,
+                'recommend_book'=>$recommend_book
             ];
             return view('wap.signv3',$data);
         }
@@ -339,36 +341,35 @@ class UserController extends BaseController
         if($day == 0){
             $day = 7;
         }
-        $day = 5;
-        $user = $this->_user_info;
         //签过到了
         $name = $user->nickname;
         $head_img = $user->head_img;
         $balance = $user->balance;
         $data = ['sign_count'=>$sign_count,'fee'=>$fee,'fee_pool'=>$fee_pool,
-            'day'=>$day,'is_alert'=>1,'read_record'=>$this->getSignPageReadRecord(),
+            'day'=>$day,'is_alert'=>1,'read_record'=>$read_record,
             'name'=>$name,
             'head_img'=>$head_img,
-            'balance'=>$balance
+            'balance'=>$balance,
+            'recommend_book'=>$recommend_book
         ];
         return view('wap.signv3',$data);
     }
 
-    private function getSignPageReadRecord(){
+    private function getSignPageReadRecord(&$all_id){
         $res = ReadRecordService::getReadRecord($this->uid);
         if($res){
             $id_arr = [];
             foreach ($res as $key => $value) {
-                if($key >= 2){
-                    break;
+                if($key < 2){
+                    $id_arr[] = $value['bid'];
                 }
-                $id_arr[] = $value['bid'];
+                $all_id[] = $value['bid'];
             }
 
             $book = BookConfigService::getBooksByIds($id_arr);
             foreach ($res as $key => &$value) {
                 $value['cover'] = '';
-                $value['url'] = sprintf('/reader?bid=%s&cid=%s&source=wechatmsg&fromtype=sign_recommend',Hashids::encode($value['bid']),$value['cid']);;
+                $value['url'] = sprintf('/reader?bid=%s&cid=%s',Hashids::encode($value['bid']),$value['cid']);
                 $value['last_chapter'] = 0;
                 $value['update_count'] = 0;
                 foreach ($book as  $val) {
@@ -382,14 +383,52 @@ class UserController extends BaseController
         }
         return $res;
     }
-    private function getSignRecomandBook()
+    private function getSignRecomandBook(int $sex,array $all_bid):array
     {
-        $bids = Cookie::get('sign_recomand_bids');
-        if($bids){
-            $bid_array = explode(',',$bids);
+        if($sex == 1){
+            $set_key = 'male_high_reco_bids';
         }else{
-
+            $set_key = 'female_high_reco_bids';
+        }
+        $bids = Cookie::get('sign_recomand_bids');
+        if(!$bids){
+            $bid_array = Redis::Srandmember($set_key,16);
+            Log::info($bid_array);
+            $time = strtotime(date('Y-m-d',time()+86400))-time();
+            $new_bid_array = [];
+            foreach ($bid_array as $item){
+                if(in_array($item,$all_bid)){
+                    array_unshift($new_bid_array,$item);
+                }else{
+                    array_push($new_bid_array,$item);
+                }
+            }
+            $bids = implode(',',$new_bid_array);
+            Cookie::queue('sign_recomand_bids',$bids,$time);
+        }
+        Log::info($bids);
+        $result =  DB::select(sprintf('select book_configs.book_name,intro,bid,books.category_name,book_configs.cover,first_cid,
+(select GROUP_CONCAT(tags) from book_tags where bid = book_configs.bid) as tag from book_configs 
+left join books on books.id = book_configs.bid left join book_categories on book_categories.id = books.category_id 
+where bid in (%s) and is_on_shelf =2 ORDER  by field(book_configs.bid,%s)',$bids,$bids));
+        $data = [];
+        foreach ($result as $item){
+            $tag_list = [];
+            if($item->tag){
+                $tag_list = explode(',',$item->tag);
+            }
+            $data[] = [
+                'book_name'=>$item->book_name,
+                'intro'=>$item->intro,
+                'bid'=>$item->bid,
+                'category_name'=>$item->category_name,
+                'cover'=>$item->cover,
+                'tag'=>$item->tag,
+                'tag_list'=>$tag_list,
+                'url'=>sprintf('/reader?bid=%s&cid=%s&source=wechatmsg&fromtype=sign_recommend',Hashids::encode($item->bid),$item->first_cid),
+            ];
         }
+        return $data;
 
     }
 

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

@@ -27,6 +27,7 @@ class EncryptCookies extends BaseEncrypter
         'crm_flag',
         'is_paid',
         'crm_person_img',
-        'crm_person_name'
+        'crm_person_name',
+        'sign_recomand_bids'
     ];
 }

+ 29 - 21
resources/views/wap/signV3.blade.php

@@ -249,10 +249,7 @@
     <div class="top_info">
         <div class="user_info">
             @if($head_img)
-                <img
-                        src="{{$head_img}}"
-                        alt=""
-                />
+                <img src="{{$head_img}}" alt=""/>
             @endif
             <div class="user_name">
                 <div>{{$name}}</div>
@@ -315,25 +312,27 @@
     </div>
     <div class="read_record">
         <div class="title"><span></span>精选推荐</div>
-        <div class="book_box book_box-featured">
-            <img
-                src="https://cdn-novel.iycdm.com/book/cover/201901221445344027.jpeg?x-oss-process=image/resize,w_200/format,jpg"
-                alt=""
-            />
-            <div class="book_info">
-                <div class="book_name">
-                    <span>何以笙箫默</span><span>霸道总裁</span>
-                </div>
-                <div class="book_details">
-                    有人说,七年是一个轮回。  舞轻尘用七年时光,自以为修成正果,终于嫁给心爱男人,却不料,新婚夜,他将她狠狠踏入尘埃。  七年后,她携滔天恨意归来,一步一个血印,他的万里江山,他的如花美眷,她要一样样给他揉碎了!
-                </div>
-                <div class="book_category">
-                    <span>先混厚爱</span>
-                    <span>死去活来</span>
-                    <span>死去活来</span>
+        @foreach($recommend_book as $item_book)
+            <div class="book_box book_box-featured">
+                <a href="{{$item_book['url']}}"><img src="{{$item_book['cover']}}" alt=""/></a>
+                <div class="book_info">
+                    <div class="book_name">
+                        <span>{{$item_book['book_name']}}</span><span>{{$item_book['category_name']}}</span>
+                    </div>
+                    <div class="book_details">
+                        {{$item_book['intro']}}
+                    </div>
+                    <div class="book_category">
+                        @if($item_book['tag_list'])
+                            @foreach($item_book['tag_list'] as $tag)
+                                <span>{{$tag}}</span>
+                            @endforeach
+                        @endif
+                    </div>
                 </div>
             </div>
-        </div>
+        @endforeach
+
     </div>
     <div class="dialog {{$is_alert? '':'hide'}}" >
         <img src="https://cdn-novel.iycdm.com/h5/sign/sign_v3_alert.png" class="dialog_content" />
@@ -342,6 +341,15 @@
 </main>
 </body>
 <script>
+    var _hmt = _hmt || [];
+    (function() {
+        var hm = document.createElement("script");
+        hm.src = "https://hm.baidu.com/hm.js?a027c0fdf2b6e70f1892dbd8227cbb2b";
+        var s = document.getElementsByTagName("script")[0];
+        s.parentNode.insertBefore(hm, s);
+    })();
+</script>
+<script>
     var dialogClose = document.querySelector(".dialog_close");
     var dialog = document.querySelector(".dialog");
     function dialogBehavior() {