Ver Fonte

Merge branch 'stabble' into crm

zz há 6 anos atrás
pai
commit
bcc83d6e01

+ 4 - 0
app/Http/Controllers/Wap/Advertises/AdvertiseController.php

@@ -173,6 +173,10 @@ class AdvertiseController extends BaseController
             '2019041614'=>'https://mobile.yangkeduo.com/duo_theme_activity.html?themeId=4274&pid=8585481_60984090&cpsSign=190416_CT8585481_60984090_cd454f3cc9f5eb6e9a26e00bf01a8d03&duoduo_type=2',
             '2019041615'=>'https://mobile.yangkeduo.com/duo_theme_activity.html?themeId=5505&pid=8585481_60984090&cpsSign=190416_CT8585481_60984090_9cc457adb40cf436e8477f06535bb706&duoduo_type=2'
         ];
+        $links  = Redis::get('advertise:pdd');
+        if($links){
+            $links = json_decode($links,1);
+        }
         $link_key = $request->get('link','2019041501');
         if($this->uid){
             try{

+ 8 - 1
app/Http/Controllers/Wap/Pay/OrdersController.php

@@ -130,7 +130,7 @@ class OrdersController extends Controller
             $fromtype = 'main';
         }
 
-        if (!$openid) {
+        if (!$openid && !$p_channel_id && !$suid) {
             $transfer_channel_id = $this->transfer($distribution_channel_id);
             if ($transfer_channel_id) {
                 $p_channel_id = $distribution_channel_id;
@@ -344,6 +344,12 @@ class OrdersController extends Controller
 
         if (!isset($pay_info['appId']) || !isset($pay_info['package'])) {
             //支付异常
+            myLog('order')->info('pay error start---------------------------------');
+            myLog('order')->info($pay_info);
+            myLog('order')->info($request->all());
+            myLog('order')->info('order info  is');
+            myLog('order')->info($init_order);
+            myLog('order')->info('pay error end-----------------------------------');
             $this->payAlert($channel->pay_merchant_id, $trade_no, $pay_info);
         }
         $pay_info['pay_redirect_url'] = urldecode($pay_redirect_url);
@@ -732,6 +738,7 @@ class OrdersController extends Controller
      */
     function wcback_official(Request $request)
     {
+        libxml_disable_entity_loader(true);
         $xml = XML::parse(strval($request->getContent()));
         Log::info('xml is');
         Log::info($xml);

+ 21 - 2
app/Http/Controllers/Wap/User/UserController.php

@@ -283,14 +283,33 @@ class UserController extends BaseController
         return response()->success();
     }
 
-    function logout()
+    function logout(Request $request,$channel_id,$domain)
     {
+        //echo $channel_id.'----';
+        //echo $domain;
+        $domains = ['zhuishuyun','66kshu','iycdm','leyuee'];
+
         setcookie(env('COOKIE_AUTH_WEB_WECHAT'), '', -1);
         setcookie('u', '', -1);
         setcookie('force_show_qrcode', '', -1);
         setcookie('sub_random_num', '', -1);
         setcookie('cpc_ad_status', '', -1);
-        return response('logout');
+        //return response('logout');
+        $param = $request->except('_url');
+        $url_format = '%s://site%s.%s.com/logout?%s';
+        if(in_array($domain,$domains)){
+            $i = 0;
+           foreach ($domains as $k=>$v){
+               if($v == $domain){
+                   $i = $k;
+               }
+           }
+           if(isset($domains[$i+1])){
+               $link = sprintf($url_format,env('PROTOCOL'),$channel_id,$domains[$i+1],http_build_query($param)) ;
+               return redirect()->to($link);
+           }
+        }
+        return  view('help.logout');
     }
 
     function setOrderDelCookie(Request $request){

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

@@ -0,0 +1,62 @@
+<?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 ActivityController extends BaseController
+{
+
+    //渠道自定义活动  可以多少充值
+    public function channelCustomActivity(Request $request){
+        $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
+        $token = $request->input('token');
+        $activity_info = ActivityService::getByToken($token);
+        $img = 'https://cdn-novel.iycdm.com/h5/activity-chanel-custom/btn48.jpg';
+        if ($activity_info && $activity_info->product_id) {
+            $customer_activity_info = DB::table('channel_custom_activity')->where('product_id',$activity_info->product_id)->select('setting')->first();
+            if($customer_activity_info && $customer_activity_info->setting){
+                $img = json_decode($customer_activity_info->setting,1)['img'];
+            }
+            $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);
+            Redis::sadd($uv_key, $this->uid);
+            Redis::hincrby($pv_key, date('Y-m-d'), 1);
+            //$order = Order::where('uid',$this->uid)->where('status','PAID')->where('activity_id',$activity_info->id)->count();
+            //渠道不符合
+            if ($activity_info->distribution_channel_id != $this->distribution_channel_id) {
+                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)]);
+            }
+            //活动未开始
+            if (time() < strtotime($activity_info->start_time)) {
+                return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img, 'code' => -3, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
+            }
+            //活动结束
+            if (time() > strtotime($activity_info->end_time)) {
+                return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img, 'code' => -1, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
+            }
+
+            if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
+                $param = [
+                    'uid' => $this->uid,
+                    'distribution_channel_id' => $this->distribution_channel_id,
+                    'product_id' => $activity_info->product_id,
+                    'activity_id' => $activity_info->id,
+                    'fromtype' => $from,
+                    'limit' => 100,
+                    'pay_redirect_url' => env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person'
+                ];
+                $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
+                return view('pay.activity.ChannelCustomerV1', ['url' => $url, 'img'=>$img, 'code' => 0, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
+            }
+        }
+        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)]);
+    }
+}

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

@@ -95,12 +95,6 @@ class WelcomeController extends BaseController
         $adTargetId = false;
         if ($ad_status) {
             $adTargetId = $this->cpcAd();
-            if($adTargetId && !$is_show_activity){
-                $pdd_ad = $this->pddAd();
-                $is_show_activity = 1;
-                $url = isset($pdd_ad['url'])?$pdd_ad['url']:'';
-                $activity_img = isset($pdd_ad['img'])?$pdd_ad['img']:'';
-            }
         }
         //广告frame
         $is_show_ad_frame_setting = env('IS_SHOW_AD_FRAME_SETTING', '123');
@@ -142,7 +136,7 @@ class WelcomeController extends BaseController
         $share_switch = ($this->appad())?1:0;
         //突出包年的充值页面
         $outstanding_year_order = $this->outstandingYearOrder();
-
+        $pdd_ad = $this->pddAd();
         $options = json_encode([
             'distribution_channel_id' => (int)$this->distribution_channel_id,
             'send_order_id' => $send_order_id,
@@ -181,7 +175,9 @@ class WelcomeController extends BaseController
             'appad_url'=>$add_ad_status['appad_url'],
             'outstanding_year_order'=>$outstanding_year_order,
             'share_domain'=>env('share_domain_url'),
-            'share_switch'=>$share_switch
+            'share_switch'=>$share_switch,
+            'pdd_ad'=>$pdd_ad,
+            'special_pay_template'=>$this->isMiWan()  //米玩站点特殊充值页面
         ]);
         if ($this->uid == env('SPECIAL_USER_LOG', 2)) {
             myLog('special')->info('welcome --------------------------');
@@ -529,30 +525,21 @@ class WelcomeController extends BaseController
     }
 
     private function pddAd(){
-        $links = [
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041501.jpg','url'=>'/advertise/pdd?link=2019041501'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041502.jpg','url'=>'/advertise/pdd?link=2019041502'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041601.jpg','url'=>'/advertise/pdd?link=2019041601'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041602.jpg','url'=>'/advertise/pdd?link=2019041602'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041603.jpg','url'=>'/advertise/pdd?link=2019041603'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041604.jpg','url'=>'/advertise/pdd?link=2019041604'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041605.jpg','url'=>'/advertise/pdd?link=2019041605'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041606.jpg','url'=>'/advertise/pdd?link=2019041606'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041607.jpg','url'=>'/advertise/pdd?link=2019041607'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041608.jpg','url'=>'/advertise/pdd?link=2019041608'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041609.jpg','url'=>'/advertise/pdd?link=2019041609'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041610.jpg','url'=>'/advertise/pdd?link=2019041610'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041611.jpg','url'=>'/advertise/pdd?link=2019041611'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041612.jpg','url'=>'/advertise/pdd?link=2019041612'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041613.jpg','url'=>'/advertise/pdd?link=2019041613'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041614.jpg','url'=>'/advertise/pdd?link=2019041614'],
-            ['img'=>'https://cdn-novel.iycdm.com/h5/ad/pdd/2019041615.jpg','url'=>'/advertise/pdd?link=2019041615']
-        ];
-        //$key = random_int(1,17);
-        return collect($links)->random(1)->first();
-        //return $links[$key];
+        $result = Redis::get('advertise:pdd');
+        if(!$result){
+            return [];
+        }
+        $result = json_decode($result,1);
+        return array_keys($result);
+    }
+
 
+    private function isMiWan(){
+        $miwan_channel_ids = redisEnv('MIWAN_CHANNEL_ID');
+        if(!$miwan_channel_ids) return false;
+        return in_array($this->distribution_channel_id,explode(',',$miwan_channel_ids));
     }
+
     /**
      * 获取客服图片
      */

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

@@ -229,6 +229,9 @@ Route::group(['domain'=>env('WAP_DOMAIN'),'namespace'=>'App\Http\Controllers\Wap
         Route::get('sale/greatcold','Web\WelcomeController@greatColdActivity');
         Route::get('sale/vernalequinox','Web\WelcomeController@vernalEquinoxActivity');
         Route::get('sale/customvip','Web\WelcomeController@channelYearActivity');
+
+        Route::get('activity/channel','Web\ActivityController@channelCustomActivity');
+
         //继续阅读
         Route::get('continue','User\ReadRecordController@latestRead');
         //分享站内跳转

+ 2 - 1
app/Libs/Helpers.php

@@ -603,6 +603,7 @@ function specialChannelAuthInfoV2(){
         '5663'=>'wx8653757301ed2591',
         '5690'=>'wxbdbb2b13eea80db9',
         '5691'=>'wx8b2e50da113c673c',
-        '5692'=>'wxb51a74837aa2f1c4'
+        '5692'=>'wxb51a74837aa2f1c4',
+        '5764'=>'wxdb47c48bbfa19cb7'
     ];
 }

+ 12 - 2
app/Modules/OfficialAccount/Services/ForceSubscribeService.php

@@ -267,6 +267,12 @@ class ForceSubscribeService
                     UserService::updateInfo($user['id'],$user);
                     // UserService::addUser($user);
 
+                    // 新关统计
+                    \Log::info('addForceSubscribeUsers_redis_new:'.$forceSubscribeUsersPrams['uid']);
+                    $sub_key = 'gzh_new_sub:'.$forceSubscribeUsersPrams['appid'].':'.date('Y-m-d');
+                    Redis::SADD($sub_key,$forceSubscribeUsersPrams['uid']);
+                    Redis::EXPIRE($sub_key,24*3600*3);
+
                     return 1;
 
                 } else {
@@ -293,9 +299,13 @@ class ForceSubscribeService
                     //\Log::info($user);
                     UserService::updateInfo($user['id'],$user);
 
-                    return 1;
-
+                    // 老关统计
+                    \Log::info('addForceSubscribeUsers_redis_old:'.$forceSubscribeUsersPrams['uid']);
+                    $sub_key = 'gzh_old_sub:'.$forceSubscribeUsersPrams['appid'].':'.date('Y-m-d');
+                    Redis::SADD($sub_key,$forceSubscribeUsersPrams['uid']);
+                    Redis::EXPIRE($sub_key,24*3600*3);
 
+                    return 1;
                 }
 
             }

+ 34 - 0
resources/views/help/logout.blade.php

@@ -0,0 +1,34 @@
+<!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>
+    <style>
+        .main{
+            height: 300px;
+            text-align: center;
+        }
+        p{
+            margin-top: 130px;
+            font-size: 30px;
+            line-height: 30px;
+            text-align: center;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="main">
+           <p>退出成功</p>
+    </div>
+</body>
+
+<script>
+    window.onload=function () {
+        localStorage.clear();
+    }
+</script>
+</html>

+ 112 - 0
resources/views/pay/activity/ChannelCustomerV1.blade.php

@@ -0,0 +1,112 @@
+<!--
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/4/17
+ * Time: 19:48
+ */
+-->
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <link rel=icon type=image/png href="data:image/png;base64,iVBORw0KGgo=">
+    <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: #ff3432;
+        }
+
+        .main_box {
+            font-size: 0;
+            position: relative;
+        }
+
+        .main_box img {
+            width: 100%;
+        }
+
+        .time {
+            font-size: .14rem;
+            font-weight: bold;
+            text-align: center;
+            color: #fff;
+        }
+
+        .recharge-item {
+            font-size: 0;
+            width: 90%;
+            margin: .3rem auto;
+        }
+
+        .recharge_box_one {
+            width: 95%;
+            margin: 0 auto;
+        }
+
+        .rule-box {
+            font-size: 0;
+            width: 90%;
+            margin: .3rem auto 0;
+        }
+
+        .main_box img,
+        a {
+            -webkit-tap-highlight-color: transparent;
+        }
+
+        .d_none {
+            display: none;
+        }
+    </style>
+</head>
+
+<body>
+<main class="main_box">
+    <img src="https://cdn-novel.iycdm.com/h5/activity-chanel-custom/banner.jpg" alt="" />
+    <p class="time">活动有效期:{{$start_time or '-'}}至{{$end_time or '-'}}</p>
+    <div class="recharge-item">
+        <img src="{{$img}}" alt="">
+    </div>
+    <div class="recharge_box_one">
+    @if($code == 0)
+        <!-- 活动进行中 -->
+            <a href="{{$url}}" class="beginning">
+                <img src="https://cdn-novel.iycdm.com/h5/activity-chanel-custom/doing.jpg" alt="">
+            </a>
+    @elseif($code == -3)
+        <!-- 活动未开始 -->
+            <a href="#" class="un_begin">
+                <img src="https://cdn-novel.iycdm.com/h5/activity-chanel-custom/undone.jpg" alt="">
+            </a>
+    @elseif($code == -1)
+        <!-- 活动结束 -->
+            <a href="javascript:void(0)" class="over">
+                <img src="https://cdn-novel.iycdm.com/h5/activity-chanel-custom/over.jpg" alt="">
+            </a>
+    @elseif($code == -2)
+        <!-- 活动已充值 -->
+            <a href="javascript:void(0)" class="done">
+                <img src="https://cdn-novel.iycdm.com/h5/long_done.png" alt="">
+            </a>
+        @endif
+
+    </div>
+    <div class="rule-box">
+        <img src="https://cdn-novel.iycdm.com/h5/activity-chanel-custom/rule68.jpg" alt="">
+    </div>
+</main>
+</body>
+
+</html>

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

@@ -9,7 +9,7 @@
     <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-4-16/css/app.2a9329608a25d895a3f804336939dd81.css rel=stylesheet>
+    <link href=https://cdn-novel.iycdm.com/static2019-4-18/css/app.db01a7343f839a273b896090cceaeeea.css rel=stylesheet>
 </head>
 <body>
 <div id=app></div>
@@ -32,8 +32,8 @@
     })();</script>
 <script id=options>window.options = {!! $options!!};</script>
 <script type=text/javascript
-        src=https://cdn-novel.iycdm.com/static2019-4-16/js/manifest.4f1a03f32b96424a3203.js></script>
-<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-4-16/js/vendor.ffff3089fc2f18220e2f.js></script>
-<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-4-16/js/app.c83f2f5af67c42a0d949.js></script>
+        src=https://cdn-novel.iycdm.com/static2019-4-18/js/manifest.130839fbf386161936e3.js></script>
+<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-4-18/js/vendor.ffff3089fc2f18220e2f.js></script>
+<script type=text/javascript src=https://cdn-novel.iycdm.com/static2019-4-18/js/app.487370f8befbbac44e43.js></script>
 </body>
 </html>

Diff do ficheiro suprimidas por serem muito extensas
+ 18 - 2
resources/views/wap/subscribeV3.blade.php