Kaynağa Gözat

force guide

zz 6 yıl önce
ebeveyn
işleme
22a6ae8b34

+ 3 - 0
app/Http/Controllers/Wap/BaseController.php

@@ -55,6 +55,8 @@ class BaseController extends Controller
 
     protected $crm = '';
 
+    protected $is_paid = false;
+
     function __construct(Request $request)
     {
         $domain = _domain();
@@ -76,6 +78,7 @@ class BaseController extends Controller
                 $this->uid = $auth_uid;
             }
         }
+        $this->is_paid = (int)Cookie::get('is_paid');
         //$send_order_id = Cookie::get('send_order_id');
 
         if($this->uid){

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

@@ -15,8 +15,10 @@ use App\Modules\Subscribe\Services\CrmChapterOrderDetailService;
 use App\Modules\Subscribe\Services\CustomChapterOrderService;
 use App\Modules\Subscribe\Services\OrderService;
 use App\Modules\Subscribe\Models\Order;
+use App\Modules\User\Services\ForceGuidePersonAccountService;
 use App\Modules\User\Services\ForceSubscribeUserIService;
 use App\Modules\User\Services\ReadRecordStatsService;
+use App\Modules\User\Services\UserBindHkWelfareService;
 use App\Modules\User\Services\UserService;
 use App\Modules\YunQi\Services\BookUserService;
 use Illuminate\Http\Request;
@@ -337,6 +339,7 @@ class ChapterController extends BaseController
             $my_log->info('$uri is: '. $request->path());
         }
 
+
         $this->en_bid = $bid;
 
         $bid = explode(',',$bid)[0];
@@ -382,6 +385,7 @@ class ChapterController extends BaseController
             $my_log->info('chapters-info--is-----------------------');
             $my_log->info($chapter);
         }
+
         //章节被删除
         if (($is_delete = $this->chapterNotExists())) {
             if($special_user_log && $special_user_log == $this->uid){
@@ -392,6 +396,25 @@ class ChapterController extends BaseController
                 'url' => $is_delete
             ]);
         }
+
+        //强制导粉
+        //$force_guide_sites = redisEnv('FORCE_GUIDE_SITES');
+        //$img = redisEnv('GUIDE_PERSONAL_ACCOUNT_OURS_QRCODE');
+        list($force_guide_sites,$img)  = redisEnvMulti('FORCE_GUIDE_SITES','GUIDE_PERSONAL_ACCOUNT_OURS_QRCODE');
+        if($force_guide_sites &&
+            $img &&
+            in_array($this->distribution_channel_id,explode(',',$force_guide_sites)) &&
+             $this->is_paid &&
+            ($this->chapter->sequence == 2 ||  $this->chapter->sequence == 8)&&
+            !UserBindHkWelfareService::isHasGet($this->uid) &&
+            ForceGuidePersonAccountService::isShow($this->uid)
+        ){
+            return response()->error('WAP_DOMAIN_NOT_MATCH', [
+                'url' => sprintf('/force/guide?bid=%s&cid=%s&book_name',$this->en_bid,$cid,$book_info->book_name)
+            ]);
+
+        }
+
         if($special_user_log && $special_user_log == $this->uid){
             $my_log = myLog('special');
             $my_log->info('chapters-----ok---------------------');

+ 18 - 0
app/Http/Controllers/Wap/User/UserController.php

@@ -7,6 +7,7 @@ use App\Modules\Book\Services\BookUrgeUpdateService;
 use App\Modules\Book\Services\SignBookService;
 use App\Modules\Statistic\Services\AdVisitStatService;
 use App\Modules\Subscribe\Services\OrderService;
+use App\Modules\User\Services\ForceGuidePersonAccountService;
 use App\Modules\User\Services\ReadRecordService;
 use App\Modules\User\Services\WapReaderPageFissionService;
 use Illuminate\Http\Request;
@@ -431,5 +432,22 @@ class UserController extends BaseController
     private function bindTelephoneStatus(){
 
     }
+
+    public function guidePersonalAccount(Request $request){
+        //
+        Log::info('in000000000000000000000000000');
+        $img = redisEnv('GUIDE_PERSONAL_ACCOUNT_OURS_QRCODE');
+        $bid = $request->get('bid');
+        $cid = $request->get('cid');
+        $book_name = $request->get('book_name');
+        $bid_no = Hashids::decode($bid)[0];
+        Log::info($bid);
+        Log::info($cid);
+        Log::info($bid_no);
+        ForceGuidePersonAccountService::create($this->uid,$bid_no,$cid);
+
+        $link = sprintf('/reader?bid=%s&cid=%s',$bid,$cid);
+        return view('jump.forceGuidePersonalAccount',['img'=>$img,'link'=>$link,'title'=>$book_name]);
+    }
     
 }

+ 17 - 6
app/Http/Controllers/Wap/Web/WelcomeController.php

@@ -95,7 +95,8 @@ class WelcomeController extends BaseController
         if (!$crm) {
             $crm = Cookie::get('crm') ? Cookie::get('crm') : '';
         }
-
+        //设置用户是否充值
+        $this->setIsPaid();
         $channel_activities_flag = $this->judgeChannelActivity($user);
         //最近阅读页面 推荐
         $latest_read_rec_books = $this->latest_read_rec_books($channel, $user->sex);
@@ -2130,11 +2131,7 @@ class WelcomeController extends BaseController
         if($get_info){
             return '';
         }
-        $charge = Order::where('uid',$this->uid)
-            ->where('status','PAID')->
-            where('created_at','>=',date('Y-m-d H:i:s',$guide_personal_account_start_time))
-            ->select('id')
-            ->first();
+        $charge = $this->is_paid;
         if($this->distribution_channel_id == 6687){
             $charge = true;
         }
@@ -2148,6 +2145,20 @@ class WelcomeController extends BaseController
         return  '';
     }
 
+    private function setIsPaid(){
+        $charge = Order::where('uid',$this->uid)
+            ->where('status','PAID')
+            ->select('id')
+            ->first();
+        if($charge){
+            Cookie::queue('is_paid', 1);
+            $this->is_paid = true;
+        }else{
+            Cookie::queue('is_paid', 0);
+            $this->is_paid = false;
+        }
+    }
+
     //统计ua
     private function recordUA($ua)
     {

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

@@ -267,6 +267,8 @@ Route::group(['domain'=>env('WAP_DOMAIN'),'namespace'=>'App\Http\Controllers\Wap
 
         Route::get('sign','User\UserController@signi');
 
+        Route::get('force/guide','User\UserController@guidePersonalAccount');
+
         //随机每日领5-15书币
         Route::get('randSign','User\UserController@day_rand_sign');
 

+ 11 - 0
app/Modules/User/Models/ForceGuidePersonAccount.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Modules\User\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class ForceGuidePersonAccount extends Model
+{
+    protected $table = 'force_guide_person_account';
+    protected $fillable = ['uid','day','bid','cid'];
+}

+ 54 - 0
app/Modules/User/Services/ForceGuidePersonAccountService.php

@@ -0,0 +1,54 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/7/2
+ * Time: 14:47
+ */
+
+namespace App\Modules\User\Services;
+
+use App\Modules\User\Models\ForceGuidePersonAccount;
+use Carbon\Carbon;
+
+class ForceGuidePersonAccountService
+{
+    public static function isShow($uid)
+    {
+        $model = new ForceGuidePersonAccount();
+        $result = $model->where('uid', $uid)->where('day', date('Y-m-d'))->select('bid', 'cid', 'created_at')->get();
+        if ($result->isEmpty()) {
+            $yesterday = $model->where('uid', $uid)
+                ->where('day', date('Y-m-d', time() - 86400))
+                ->select('bid', 'cid', 'created_at')
+                ->orderBy('id', 'desc')
+                ->first();
+            if (!$yesterday) {
+                return true;
+            }
+            $now = Carbon::now()->timestamp;
+            if ($now - $yesterday->created_at->timestamp <= 6 * 3600) {
+                return false;
+            }
+            return true;
+        }
+        if ($result->count() >= 2) {
+            return false;
+        }
+        return true;
+    }
+
+    public static function create($uid,$bid,$cid){
+        $model = new ForceGuidePersonAccount();
+        $day = date('Y-m-d');
+        $result = $model->where('uid', $uid)
+            ->where('day', date('Y-m-d'))
+            ->where('bid',$bid)
+            ->where('cid',$cid)
+            ->select('bid', 'cid', 'created_at')
+            ->first();
+        if($result) return false;
+        $model->create(compact('uid','day','bid','cid'));
+        return true;
+    }
+}

+ 136 - 0
resources/views/jump/forceGuidePersonalAccount.blade.php

@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8" />
+    <meta
+            name="viewport"
+            content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
+    />
+    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
+    <title>{{$title or '阅读福利'}}</title>
+    <style>
+        html,
+        body {
+            margin: 0 auto;
+            padding: 0.2rem 0.4rem;
+            max-width: 450px;
+            font-family: -apple-system-font, BlinkMacSystemFont, "Helvetica Neue",
+            "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI",
+            "Microsoft YaHei", Arial, sans-serif;
+        }
+        a{
+            text-decoration: none;
+        }
+        .title {
+            font-size: 22px;
+            line-height: 1.4;
+            margin-bottom: 15px;
+        }
+
+        .title .name {
+            margin-top: 15px;
+            font-size: 16px;
+        }
+
+        .small_title {
+            color: #c00000;
+            font-size: 28px;
+            text-align: center;
+            margin-top: 10px;
+            letter-spacing: 5px;
+        }
+
+        .qrcode_box {
+            text-align: center;
+            margin-top: 10px;
+        }
+
+        .qrcode {
+            width: 300px;
+        }
+
+        .qrcode_tips {
+            margin-top: 15px;
+            text-align: center;
+            font-size: 18px;
+            line-height: 30px;
+        }
+
+        .add_tips {
+            color: red;
+            letter-spacing: normal;
+            max-width: 100% !important;
+            margin-bottom: 10px;
+            font-size: 17px;
+        }
+
+        .notice {
+            font-size: 13px;
+            color: #333;
+            line-height: 1.5;
+            background: #f7f7f7;
+            padding: 10px;
+        }
+
+        .notice p {
+            margin: 0;
+        }
+
+        .notice .title {
+            font-size: 15px;
+            margin-bottom: 10px;
+        }
+
+        .notice i {
+            font-style: normal;
+            color: #ff6060;
+        }
+
+        .ignore {
+            text-align: right;
+            color: #0094ff;
+            font-size: 13px;
+            margin-top: 10px;
+        }
+        .ignore a{
+            color: #0094ff ;
+            font-size: 13px;
+        }
+        /*# sourceMappingURL=jt.css.map */
+    </style>
+</head>
+
+<body>
+<main class="main_box">
+    <strong>
+        <div class="small_title">扫一扫 赠送200书币</div>
+    </strong>
+    <div class="qrcode_box">
+        <img
+                src="{{$img}}"
+                class="qrcode"
+        />
+    </div>
+    <div class="qrcode_tips">
+        <p>客服号微信</p>
+        <p>(长按图片,识别二维码)</p>
+    </div>
+    <div class="notice">
+        <p class="title">我是微信小管家:</p>
+        <p class="line">
+            1. <i>免费书币</i>:成功添加微信好友即可赠送200书币;
+        </p>
+        <p class="line">
+            2. <i>优先答疑</i>:找不到看过的书啦?看书没钱啦?我都可以帮您哦!
+        </p>
+        <p class="line">
+            3.
+            <i>帮您找书</i
+            >:总裁豪门、婚恋出轨、甜蜜宠文等,提供最新最优质小说,拒绝书荒!
+        </p>
+        <p class="line">4. <i>书币福利</i>:每月获得免费书币,不要钱!</p>
+    </div>
+    <div class="ignore"><a href="{{$link}}">点击忽略,继续阅读下一章&gt;&gt;</a></div>
+</main>
+</body>
+</html>