getone($referral_id); //检查内推外派,内推不导粉 $ref_info = UrlService::instance()->getReferralModel()->getone($referral_id,false); if(isset($ref_info['push']) && $ref_info['push']){ $df_config['clear_data'] = 3; return $df_config; } if($guide){ $df_config['clear_data'] = $this->chapter_clear_data($chapter_idx, $guide); return $df_config; } } $redis = Redis::instance(); $df_config = model('AdminConfig')->getAdminInfoAll($urlChannelId); $df_config['clear_data'] = ''; if ($df_config['subscribe_method'] == 3) {//subscribe_method 1 强关 2 引导 3 不关注 $df_config['clear_data'] = 3; return $df_config; } if(empty($admin_id)){ //网站全局导粉章节数 $web_guide = config('site.book_guide_chapter_idx'); if ($web_guide) { $df_config['clear_data'] = $this->chapter_clear_data($chapter_idx, $web_guide); return $df_config; } // $df_config; } if ($admin_id != $urlChannelId) { //判断代理商还是渠道商 $guide = 0; //guide表导粉章节数 代理商导粉 $key = 'GUIDE:' . $admin_id; if ($redis->exists($key)) { $guide = (int)$redis->hget($key, $book_id); } else { if($admin_id){ $db_data = collection($this->field('book_id,chapter_idx')->where('admin_id=' . $admin_id)->select())->toArray(); if(empty($db_data)){ $redis->hset($key, 1, 1); }else { $redis->hdel($key, 1); foreach ($db_data as $value) { if ($value['book_id'] == $book_id) { $guide = $value['chapter_idx']; } $redis->hset($key, $value['book_id'], $value['chapter_idx']); } } $redis->expire($key, 86400); } } if ($guide) { $df_config['clear_data'] = $this->chapter_clear_data($chapter_idx, $guide); return $df_config; } } $guidechannel = 0; //渠道商guide $key = 'GUIDE:' . $urlChannelId; if($redis->exists($key)){ $guidechannel = (int)$redis->hget($key, $book_id); } else { if($urlChannelId){ $db_data = collection($this->field('book_id,chapter_idx')->where('admin_id=' . $urlChannelId)->select())->toArray(); if(empty($db_data)){ $redis->hset($key, 1, 1); }else{ $redis->hdel($key, 1); foreach ($db_data as $value) { if($value['book_id'] == $book_id){ $guidechannel = $value['chapter_idx']; } $redis->hset($key, $value['book_id'], $value['chapter_idx']); } } $redis->expire($key,86400); } } if ($guidechannel) { $df_config['clear_data'] = $this->chapter_clear_data($chapter_idx, $guidechannel); return $df_config; } //渠道商全局导粉章节数 if ($df_config['book_guide_chapter_idx']) { $df_config['clear_data'] = $this->chapter_clear_data($chapter_idx, $df_config['book_guide_chapter_idx']); return $df_config; } //网站全局导粉章节数 $web_guide = config('site.book_guide_chapter_idx'); if ($web_guide) { $df_config['clear_data'] = $this->chapter_clear_data($chapter_idx, $web_guide); return $df_config; } // $df_config; } /* * 返回第几章导粉 * @param admin_id * @param book_id * @return */ public function getGuideChapter($admin_id, $book_id,$referral_id=0,$urlChannelId) { if(empty($admin_id)){ $admin_id = $urlChannelId; } $redis = Redis::instance(); $df_config = model('AdminConfig')->getAdminInfoAll($urlChannelId); if(empty($admin_id)){ //网站全局导粉章节数 $web_guide = config('site.book_guide_chapter_idx'); if ($web_guide) return $web_guide; } //链接导粉 if ($referral_id) { $guide = model('Referral')->getone($referral_id); if($guide) return $guide; } if ($admin_id != $urlChannelId) { //判断代理商还是渠道商 $guide = 0; //guide表导粉章节数 代理商导粉 $key = 'GUIDE:' . $admin_id; if ($redis->exists($key)) { $guide = (int)$redis->hget($key, $book_id); } else { if($admin_id){ $db_data = collection($this->field('book_id,chapter_idx')->where('admin_id=' . $admin_id)->select())->toArray(); if(empty($db_data)){ $redis->hset($key, 1, 1); }else { $redis->hdel($key, 1); foreach ($db_data as $value) { if ($value['book_id'] == $book_id) { $guide = $value['chapter_idx']; } $redis->hset($key, $value['book_id'], $value['chapter_idx']); } } $redis->expire($key, 86400); } } if ($guide) return $guide; } $guidechannel = 0; //渠道商guide $key = 'GUIDE:' . $urlChannelId; if($redis->exists($key)){ $guidechannel = (int)$redis->hget($key, $book_id); } else { if($urlChannelId){ $db_data = collection($this->field('book_id,chapter_idx')->where('admin_id=' . $urlChannelId)->select())->toArray(); if(empty($db_data)){ $redis->hset($key, 1, 1); }else{ $redis->hdel($key, 1); foreach ($db_data as $value) { if($value['book_id'] == $book_id){ $guidechannel = $value['chapter_idx']; } $redis->hset($key, $value['book_id'], $value['chapter_idx']); } } $redis->expire($key,86400); } } if ($guidechannel) return $guidechannel; //渠道商全局导粉章节数 if ($df_config['book_guide_chapter_idx']) return $df_config['book_guide_chapter_idx']; //网站全局导粉章节数 $web_guide = config('site.book_guide_chapter_idx'); if ($web_guide) return $web_guide; } public function chapter_clear_data($chapter_idx, $guide) { //未导粉章 if ($chapter_idx < $guide) { $clear_data = 4; } //如果是当前章 if ($guide - $chapter_idx == 1) { $clear_data = 1; } //导粉后 if ($chapter_idx >= $guide) { $clear_data = 2; } return $clear_data; } }