浏览代码

Merge branch 'stabble' of iqiyoo:zhuishuyun_wap

onlinetest 6 年之前
父节点
当前提交
665a063e88

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

@@ -1796,6 +1796,15 @@ class ChapterController extends BaseController
         //付费用户没有广告
         if(OrderService::isPaidUser($this->uid))  return ;
         //如果下一张已经付费,广告不显示
+        $exists = AdVisitStatService::getByUid($this->uid);
+        if(!$exists){
+            if($this->uid %2 == 0){
+                DataAnalysisSelectUserService::create($this->uid,$this->distribution_channel_id,'AD_TEST_3',-1,'unshow');
+                return ;
+            }else{
+                DataAnalysisSelectUserService::create($this->uid,$this->distribution_channel_id,'AD_TEST_3',-1,'show');
+            }
+        }
         //广告都显示
         $this->chapter->is_visiable_ad = 1;
         AdVisitStatService::create($this->uid,$this->book_info->bid,$this->cid,'EXPOSURE');

+ 44 - 28
app/Http/Controllers/Wap/Order/OrdersController.php

@@ -12,6 +12,7 @@ use App\Modules\OfficialAccount\Services\ForceSubscribeService;
 use App\Modules\Statistic\Services\AdVisitStatService;
 use App\Modules\Statistic\Services\DataAnalysisSelectUserService;
 use App\Modules\User\Services\ForceSubscribeUserIService;
+use App\Modules\User\Services\UserDivisionCpcPropertyService;
 use App\Modules\User\Services\UserDivisionPropertyService;
 use App\Modules\User\Services\UserService;
 use App\Modules\Book\Services\BookService;
@@ -208,44 +209,19 @@ class OrdersController extends BaseController
         $book_config = null;
         if ($bid) {
             $bid = Hashids::decode($bid)[0];
-            //$book = BookService::getBookById($bid);
             $book_config = BookConfigService::getBookById($bid);
         }
         if ($template_id == 2) { //模板2只有在长篇小说过来的用户才显示
             //部分渠道需要2元模板不管哪个入口进来都展示
             $exclude_channels = explode(',', env('PRICE_TWO_SHOW_ALL_CHANNEL'));
-
             if(!in_array($this->distribution_channel_id,$exclude_channels))
             {
                 if($book_config){
                     if($book_config->charge_type == 'BOOK') $template_id = 1;
-                }else{
-                    //$template_id = 1;
                 }
-                /*if ($bid) {
-                    $bid = Hashids::decode($bid)[0];
-                    \Log::info('order:$bid:' . $bid);
-                    $book = BookService::getBookById($bid);
-                    \Log::info('order:$$book:' . json_encode($book));
-                    if ($book->size < 200000) {
-                        $template_id = 1;
-                    }
-                } else {
-                    $template_id = 1;
-                }*/
             }
         }
-        /*if($temp){
-            $temp_bid = 0;
-            try{
-                $temp_bid =  Hashids::decode($temp)[0];
-            }catch (\Exception $e){}
 
-            $t = $this->recordFirstIntoPayPage($temp_bid);
-            if ($t) {
-                $template_id = $t;
-            }
-        }*/
 
         //男频站点 支付模板
         if (($male_site_template = $this->maleSite($this->distribution_channel_id))) {
@@ -253,6 +229,11 @@ class OrdersController extends BaseController
             $template_id = $male_site_template;
         }
 
+        if($book_config && $book_config->charge_type == 'BOOK'){
+            if( ($compare_id = $this->templateCompareV3()) ){
+                $template_id = $compare_id;
+            }
+        }
         /*if( ($compare_id = $this->templateCompare()) ){
             $template_id = $compare_id;
         }*/
@@ -736,6 +717,40 @@ class OrdersController extends BaseController
         return $template_id;
     }
 
+    //进入4593的心注册用户,若当前阅读的是短篇书籍,则根据注册id的奇偶分别进入AB两个充值模板。
+    //测试3天(测试时长看数据分析组建议)后,分别统计两个模板下的用户数、付费用户数和充值总额.
+    private function templateCompareV3()
+    {
+        $start_time = redisEnv('TEMPLATE_COMPARE_START_TIME', 0);
+        if (!$start_time) {
+            return 0;
+        }
+
+        $template_compare_sites = redisEnv('TEMPLATE_COMPARE_SITES',0);
+
+        if (!in_array($this->distribution_channel_id, explode(',',$template_compare_sites))) {
+            return 0;
+        }
+        $user = $this->_user_info;
+        if (strtotime($user->created_at) < $start_time) {
+            return 0;
+        }
+
+        $user = DataAnalysisSelectUserService::getByUidAndType($this->uid, 'TEMPLATE_COMPAREV3');
+        if ($user) {
+            $template_id = $user->attach;
+        } else {
+            $template_id = $this->uid % 2 == 0 ? 1 : 9;
+            DataAnalysisSelectUserService::create(
+                $this->uid,
+                $this->distribution_channel_id,
+                'TEMPLATE_COMPAREV3',
+                -1, $template_id);
+        }
+
+        return $template_id;
+    }
+
     private function maleSite($distribution_channel_id)
     {
         $info = ChannelService::getChannelCompanyInfo($distribution_channel_id);
@@ -782,7 +797,8 @@ class OrdersController extends BaseController
             return false;
         }
 
-        $userDivisionProperty = UserDivisionPropertyService::getUserProperty($uid);
+        //$userDivisionProperty = UserDivisionPropertyService::getUserProperty($uid);
+        $userDivisionProperty = UserDivisionCpcPropertyService::getUserProperty($uid);
         if (!$userDivisionProperty) return false;
 
         if ($userDivisionProperty != 'high') return false;
@@ -795,7 +811,7 @@ class OrdersController extends BaseController
             $template_id = 2;
         }
 
-        $exist = DataAnalysisSelectUserService::getByUidAndType($uid, 'OUTSTANDING_YEAR_ORDER');
+        $exist = DataAnalysisSelectUserService::getByUidAndType($uid, 'OUTSTANDING_YEAR_ORDER_V2');
         if($exist) return  $is_show_outstanding_year_order;
 
 
@@ -803,7 +819,7 @@ class OrdersController extends BaseController
         DataAnalysisSelectUserService::create(
             $uid,
             $this->distribution_channel_id,
-            'OUTSTANDING_YEAR_ORDER',
+            'OUTSTANDING_YEAR_ORDER_V2',
             -1, $template_id);
         return $is_show_outstanding_year_order;
     }

+ 10 - 7
app/Http/Controllers/Wap/User/CoflController.php

@@ -140,14 +140,17 @@ class CoflController extends Controller
         $activity = ActivityService::getByToken($token);
         if($activity){
             $user = $this->getUsers($openid);
-            if($user[0]){
-                $url_format = '%s://site%s.%s.com%s';
-                $url = sprintf($url_format, env('PROTOCOL'), encodeDistributionChannelId($user[1]),
-                    env('CUSTOM_HOST'),
-                    $activity->activity_page
-                );
-                return redirect()->to($url);
+            $distribution_channel_id = (isset($user[1]) && !empty($user[1]))?$user[1]:123;
+            $url_format = '%s://site%s.%s.com%s';
+            $activity_page = $activity->activity_page ;
+            if($activity->id == 6000){
+                $activity_page = '/activity/common?token=LNyAqbFMgvkmvnHP8PXV3DYPIIhQm3oe';
             }
+            $url = sprintf($url_format, env('PROTOCOL'), encodeDistributionChannelId($distribution_channel_id),
+                env('CUSTOM_HOST'),
+                $activity_page
+            );
+            return redirect()->to($url);
         }
         $default_ink = $this->getLink();
         return redirect()->to($default_ink);

+ 49 - 0
app/Http/Controllers/Wap/Web/ActivityController.php

@@ -59,4 +59,53 @@ class ActivityController extends BaseController
         }
         return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img, 'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
     }
+
+
+    public function commonActivity(Request $request)
+    {
+        $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
+        $token = $request->input('token');
+        $activity_info = ActivityService::getByToken($token);
+        if ($activity_info && isset($activity_info->setting) && empty(!$activity_info->setting)) {
+            $imgs = json_decode($activity_info->setting, 1);
+            $from = $request->input('fromtype', 'main');
+            $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
+            $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
+            $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
+            $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
+
+            $redirect_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person';
+            if ($request->input('redirect_url')) {
+                $redirect_url = $request->input('redirect_url');
+                $redirect_url = urldecode($redirect_url);
+            }
+            $product_id = $activity_info->product_id;
+            if($activity_info->id == 6000){
+                $imgs['page_bd_img'] = 'https://cdn-novel.iycdm.com/h5/activity-2019-04-29/bg2.jpg';
+                $product_id = 5788;
+            }
+            if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
+                Redis::sadd($uv_key, $this->uid);
+                Redis::hincrby($pv_key, date('Y-m-d'), 1);
+                $param = [
+                    'uid' => $this->uid,
+                    'distribution_channel_id' => $this->distribution_channel_id,
+                    'product_id' => $product_id,
+                    'activity_id' => $activity_info->id,
+                    'fromtype' => $from,
+                    'pay_redirect_url' => $redirect_url,
+                    'limit' => 100,
+                ];
+                $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
+
+                return view('pay.order.common', ['url' => $url, 'code' => 0, 'img' => $imgs]);
+            } else if (time() <= strtotime($activity_info->start_time)) {
+                return view('pay.order.common', ['url' => [], 'code' => 1, 'img' => $imgs]);
+            } else {
+                return view('pay.order.common', ['url' => [], 'code' => 2, 'img' => $imgs]);
+            }
+        }
+        $default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
+        return redirect()->to($default_url);
+    }
 }

+ 19 - 10
app/Http/Controllers/Wap/Web/WelcomeController.php

@@ -2,7 +2,6 @@
 
 namespace App\Http\Controllers\Wap\Web;
 
-use App\Admin\Models\Product;
 use App\Jobs\SendStatisticsList;
 use App\Jobs\SendTexts;
 use App\Modules\Activity\Services\ActivitySwitchService;
@@ -14,6 +13,7 @@ use App\Modules\OfficialAccount\Services\ForceSubscribeService;
 use App\Modules\Statistic\Services\DataAnalysisSelectUserService;
 use App\Modules\Subscribe\Services\OrderService;
 use App\Modules\User\Services\ForceSubscribeUserIService;
+use App\Modules\User\Services\UserDivisionCpcPropertyService;
 use App\Modules\User\Services\UserDivisionPropertyService;
 use App\Modules\User\Services\UserService;
 use Illuminate\Http\Request;
@@ -101,7 +101,7 @@ class WelcomeController extends BaseController
         $ad_status = env('AD_STATUS', 1);
         $adTargetId = false;
         if ($ad_status) {
-            $adTargetId = $this->cpcAd();
+            $adTargetId = $this->cpcAd($user->openid);
         }
         //广告frame
         $is_show_ad_frame_setting = env('IS_SHOW_AD_FRAME_SETTING', '123');
@@ -270,7 +270,8 @@ class WelcomeController extends BaseController
         $outstanding_year_order = false;
         if( in_array($this->distribution_channel_id,explode(',',env('OUTSTANDING_YEAR_ORDER_SITE'))) ){
             if($this->uid%2 == 0){
-                $userDivisionProperty = UserDivisionPropertyService::getUserProperty($this->uid);
+                //$userDivisionProperty = UserDivisionPropertyService::getUserProperty($this->uid);
+                $userDivisionProperty = UserDivisionCpcPropertyService::getUserProperty($this->uid);
                 \Log::info('$userDivisionProperty is :'.$userDivisionProperty);
                 $userDivisionProperty && $userDivisionProperty == 'high' && $outstanding_year_order = true;
             }
@@ -522,11 +523,16 @@ class WelcomeController extends BaseController
     }
 
     //CPC广告的优化逻辑
-    private function cpcAd(){
+    private function cpcAd($openid){
         if(in_array($this->distribution_channel_id,[2,5,8,14,123,146,148,155,160,196,202,211,255,256,266,271,273,318,691,695,722,4025,4053,4174,4236,4237,4241,4334,4364,4426,4427,4487,4488,4593,4742,4889,4891,5204])){
             $cookie_ad_status = Cookie::get('cpc_ad_status');
             if($cookie_ad_status) return $cookie_ad_status == 'show';
-            if(UserService::isCpcUser($this->uid)){
+            $property = UserDivisionCpcPropertyService::userLevel($openid);
+            /*if(UserService::isCpcUser($this->uid)){
+                Cookie::queue('cpc_ad_status', 'show');
+                return true;
+            }*/
+            if($property  &&  $property->property == 'none'){
                 Cookie::queue('cpc_ad_status', 'show');
                 return true;
             }
@@ -2027,16 +2033,19 @@ class WelcomeController extends BaseController
 
 
     private function userPproperty($openid){
+        $old = UserDivisionCpcPropertyService::userLevel($openid);
+        if(!$old) return ;
+        if($old->type != 'NEW') return ;
+        $send_data = array(
+            'type' => 'visit',
+            'data' => ['openid'=>$openid,'uid'=>$this->uid]
+        );
         try {
-            $send_data = array(
-                'type' => 'visit',
-                'data' => ['openid'=>$openid,'uid'=>$this->uid]
-            );
             $send = new SendStatisticsList($send_data);
             $job = ($send)->onConnection('rabbitmq')->delay(0)->onQueue('send_statistics_list');
             dispatch($job);
         } catch (\Exception $e) {
-            Log::info($e);
+            \Log::info($e);
         }
     }
 }

+ 58 - 0
app/Http/Controllers/Wap/Web/WelfareController.php

@@ -0,0 +1,58 @@
+<?php
+
+namespace App\Http\Controllers\Wap\Web;
+
+use App\Modules\Activity\Services\ActivityService;
+use Illuminate\Http\Request;
+use App\Http\Controllers\Wap\BaseController;
+use Redis;
+use DB;
+
+class WelfareController extends BaseController
+{
+
+    //书币赠送
+    public function giving(Request $request){
+
+        $uid = $this->uid;
+        $distribution_channel_id = $this->distribution_channel_id;
+        $info = '';
+        $token = trim($request->input('token'));
+        if(!$token)
+        {
+            return response('参数有误');
+        }
+
+        $giving = DB::table('book_coin_givings')->where('token',$token)->first();
+        if(!$giving || $giving->distribution_channel_id != $distribution_channel_id)
+        {
+            return response('参数有误');
+        }
+
+        //判断是否结束
+        if(time() > strtotime($giving->end_time))
+        {
+            $info = '活动已结束';
+        }else{
+            $has_got = DB::table('book_coin_giving_users')->where('giving_id',$giving->id)->where('uid',$uid)->first();
+
+            if($has_got)
+            {
+                $info = '书币已领过,去看书吧';
+            }else{
+                $ntime = date("Y-m-d H:i:s");
+                $data = [
+                    'uid'=>$uid,
+                    'giving_id'=>$giving->id,
+                    'created_at'=>$ntime,
+                    'updated_at'=>$ntime
+                ];
+                DB::table('book_coin_giving_users')->insert($data);
+                DB::update("update users set balance = balance + {$giving->amount},reward_balance =reward_balance+{$giving->amount} where id ={$uid} ");
+                $info = "成功领取{$giving->amount}书币!";
+            }
+        }
+
+        return view('wap.welfare.giving', compact('info'));
+    }
+}

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

@@ -241,6 +241,9 @@ Route::group(['domain'=>env('WAP_DOMAIN'),'namespace'=>'App\Http\Controllers\Wap
         Route::get('sale/customvip','Web\WelcomeController@channelYearActivity');
 
         Route::get('activity/channel','Web\ActivityController@channelCustomActivity');
+        Route::get('activity/common','Web\ActivityController@commonActivity');
+
+        Route::get('welfare/giving','Web\WelfareController@giving');
 
         //继续阅读
         Route::get('continue','User\ReadRecordController@latestRead');

+ 2 - 2
app/Jobs/SendStatisticsList.php

@@ -36,9 +36,9 @@ class SendStatisticsList extends Job implements ShouldQueue
         if($this->data['type'] == 'order_info'){
             $this->orderInfo($this->data['data']);
         }elseif($this->data['type'] == 'visit'){
-            $this->visit($this->data['openid']);
+            $this->visit($this->data['data']['openid']);
         }elseif($this->data['type'] == 'subscribe'){
-            $this->subscribe($this->data['uid']);
+            $this->subscribe($this->data['data']['uid']);
         }
         else{
             $this->subscribe_info($this->data['data']);

+ 2 - 2
app/Libs/Helpers.php

@@ -243,7 +243,7 @@ function ImageNewsToArray($datas){
  * 加密site id
  */
 function encodeDistributionChannelId($id){
-    $encrypt_pool = ['14'=>'xyvz5mexll52mzn4','13'=>'laosiji','4372'=>'qhyeyue','365'=>'vciam5tg71','384'=>'sdxisd'];
+    $encrypt_pool = ['14'=>'xyvz5mexll52mzn4','13'=>'laosiji','4372'=>'qhyeyue','365'=>'vciam5tg71','384'=>'sdxisd', '5795'=>'gyp23fzu'];
     if(isset($encrypt_pool[$id])){
         return $encrypt_pool[$id];
     }
@@ -264,7 +264,7 @@ function encodeDistributionChannelId($id){
  * 解密密site id
  */
 function decodeDistributionChannelId($code){
-    $encrypt_pool = ['xyvz5mexll52mzn4'=>'14','laosiji'=>'13','qhyeyue'=>'4372','vciam5tg71'=>'365','sdxisd'=>'384'];
+    $encrypt_pool = ['xyvz5mexll52mzn4'=>'14','laosiji'=>'13','qhyeyue'=>'4372','vciam5tg71'=>'365','sdxisd'=>'384', 'gyp23fzu'=>'5795'];
     if(isset($encrypt_pool[$code])){
         return $encrypt_pool[$code];
     }

+ 4 - 0
app/Modules/Statistic/Services/AdVisitStatService.php

@@ -27,4 +27,8 @@ class AdVisitStatService
     public static function getInfoV2($uid,$cid,$type){
         return AdVisitStat::where('uid',$uid)->where('cid',$cid)->whereIn('type',$type)->first();
     }
+
+    public static function getByUid($uid){
+        return AdVisitStat::where('uid',$uid)->select('id','type')->where('id','<=',12723415)->first();
+    }
 }

+ 2 - 2
app/Modules/User/Services/ReadRecordService.php

@@ -57,7 +57,7 @@ class ReadRecordService
         $read_bids = Redis::hgetall('book_read:' . $uid);
         $res = [];
         $i = 0;
-        self::delBookNameAndChapter($uid);
+        //self::delBookNameAndChapter($uid);
         foreach ($read_bids as $key => $v) {
             if(in_array($key,self::$not_uid_key)){
                 continue;
@@ -279,7 +279,7 @@ class ReadRecordService
      * @param $record
      */
     public static function delBookNameAndChapter($uid){
-        //Redis::hset('book_base:' . $uid, 'last_read', "{$bid}_{$cid}_{$book_name}_{$chapter_name}_" . time());
+        //Redis::hset('book_base:' . $uid, 'last_read', "{$bid}_{$cid}_{$book_name}_{$chapter_name}_" . time()) ;
         $base_record = Redis::hget('book_base:' . $uid, 'last_read');
         if($base_record){
             $record_arr = explode('_',$base_record);

+ 11 - 2
app/Modules/User/Services/UserDivisionCpcPropertyService.php

@@ -15,7 +15,16 @@ class UserDivisionCpcPropertyService
 {
 
     public static function userLevel($openid){
-        return UserDivisionCpcProperty::where('openid',$openid)->where('is_enable',1)->select('property','earliest_subscribe_time')->first();
+        return UserDivisionCpcProperty::where('openid',$openid)->where('is_enable',1)->select('property','earliest_subscribe_time','type')->first();
+    }
+
+    public static function getUserProperty($uid){
+        $result = UserDivisionCpcProperty::join('users','users.openid','=','user_division_cpc_property.openid')
+            ->where('users.id',$uid)
+            ->select('user_division_cpc_property.property')->first();
+        if($result)
+            return $result->property;
+        return '';
     }
 
     public static function getUserSubscribeAndChargeInfoByUid($uid){
@@ -84,7 +93,7 @@ WHERE u.openid ='%s'";
                 $amount = max($subscribe_no_three_day_info);
             else
                 $amount = 0;
-            if($amount>50){
+            if($amount>=50){
                 $result['property'] = 'high';
             }elseif($amount >2){
                 $result['property'] = 'medium';

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

@@ -32,7 +32,7 @@
             position: absolute;
             width: 80%;
             height: 0.75rem;
-            top: 72%;
+            top: 63%;
             left: 50%;
             transform: translateX(-50%);
             z-index: 999;

+ 225 - 0
resources/views/wap/welfare/giving.blade.php

@@ -0,0 +1,225 @@
+<!--
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/4/11
+ * Time: 15:33
+ */
+
+-->
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8" />
+    <link rel=icon type=image/png href="data:image/png;base64,iVBORw0KGgo=">
+    <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>
+    <style>
+        html,
+        body {
+            margin: 0 auto;
+            padding: 0;
+            max-width: 450px;
+            font-size: 100px;
+        }
+
+        html {
+            background: #ff3628;
+        }
+
+        p {
+            margin: 0;
+        }
+
+        i {
+            font-style: normal;
+        }
+        a {
+            text-decoration: none;
+        }
+
+        .container {
+            position: relative;
+            padding-bottom: 0.17rem;
+        }
+
+        .container .wrap {
+            font-size: 0;
+            width: 95%;
+            margin: 2rem auto 0;
+            background: -webkit-gradient(
+                    linear,
+                    left bottom,
+                    left top,
+                    from(white),
+                    to(#fffbe8)
+            );
+            background: linear-gradient(0deg, white, #fffbe8);
+            -webkit-box-shadow: 0px 0px 0.1rem 0px rgba(0, 0, 0, 0.08);
+            box-shadow: 0px 0px 0.1rem 0px rgba(0, 0, 0, 0.08);
+            border-radius: 2px;
+        }
+
+        .wrap .text-container {
+            font-size: 0.18rem;
+            padding: 0.2rem;
+        }
+
+        .container .wrap img {
+            width: 100%;
+        }
+
+        .button-wrap {
+            margin-top: 0.2rem;
+        }
+
+        .button-wrap .to_get {
+            display: block;
+            background: #ffdb5f;
+            color: #8a4b18;
+            font-size: 0.17rem;
+            font-weight: bold;
+            width: 85%;
+            margin: 0 auto 0.15rem;
+            padding: 0.15rem 0;
+            text-align: center;
+            border-radius: 40px;
+        }
+
+        .button-wrap .get-coin {
+            background: #fffbe8;
+        }
+
+        .container .wrap .get_notice {
+            font-size: 0.12rem;
+            color: #666;
+            text-align: center;
+        }
+
+        .container .wrap .help_wrap {
+            background: white;
+            border: 1px solid #d6cea5;
+            border-radius: 2px;
+            width: 90%;
+            margin: 0.54rem auto 0;
+            padding: 0.16rem 0 0.44rem;
+            font-size: 0.13rem;
+            color: #666;
+        }
+
+        .container .wrap .help_wrap p {
+            padding: 0 0.18rem;
+        }
+
+        .container .wrap .help_wrap .title {
+            color: #333;
+            font-size: 0.15rem;
+            font-weight: bold;
+            margin-bottom: 0.15rem;
+        }
+
+        .container .wrap .help_wrap .item {
+            line-height: 1.8;
+        }
+
+        .container .wrap .help_wrap .item i {
+            color: #ff4930;
+            font-size: 0.15rem;
+            font-weight: bold;
+        }
+
+        .alert {
+            width: 100%;
+            height: 100%;
+            position: absolute;
+            z-index: 100;
+            left: 0;
+            top: 0;
+            overflow: hidden;
+            background: rgba(0, 0, 0, 0.4);
+        }
+
+        .alert .content {
+            width: 80%;
+            height: 2rem;
+            position: absolute;
+            font-size: 0.11rem;
+            left: 50%;
+            top: 50%;
+            margin-left: -40%;
+            margin-top: -40%;
+            text-align: center;
+            background: #f7f7f7;
+            border-radius: 4px;
+            overflow: hidden;
+        }
+
+        .content .title {
+            height: 50px;
+            line-height: 50px;
+            font-size: 0.16rem;
+            text-align: center;
+            position: relative;
+            border-bottom: 1px solid #f7f7f7;
+            background: #ff4930;
+            color: #fff;
+        }
+
+        .content .title img {
+            width: 0.32rem;
+            height: 0.32rem;
+            position: absolute;
+            right: 4%;
+            top: 50%;
+            transform: translateY(-50%);
+        }
+
+        .content .content-text {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            flex-direction: column;
+            height: calc(100% - 50px);
+        }
+
+        .content-text p {
+            width: 100%;
+        }
+
+        .content .notice1 {
+            font-size: 0.18rem;
+            margin-bottom: 0.2rem;
+        }
+
+        .content .notice2 {
+            font-size: 0.16rem;
+            color: #666;
+        }
+
+        .show {
+            display: block;
+        }
+        .hide {
+            display: none;
+        }
+        /*# sourceMappingURL=main.css.map */
+    </style>
+</head>
+
+<body>
+<main class="container">
+    <div class="wrap">
+        <div class="text-container">
+            {{ $info }}
+        </div>
+    </div>
+    <div class="button-wrap">
+        <a class="to_get get-coin" href="/recent">去看书</a>
+    </div>
+</main>
+</body>
+</html>