Prechádzať zdrojové kódy

'新增点击广告统计'

zhuchengjie 2 rokov pred
rodič
commit
d610432549

+ 56 - 14
app/Http/Controllers/QuickApp/Book/BookController.php

@@ -11,6 +11,7 @@ use App\Modules\RecommendBook\Services\QappRecommendService;
 use App\Modules\RecommendBook\Services\RecommendService;
 use App\Modules\Book\Services\RecoBannerService;
 use App\Modules\Trade\Services\OrderService;
+use App\Modules\User\Models\ChannelAdUser;
 use App\Modules\User\Models\QappPackage;
 use App\Modules\User\Services\QappUserService;
 
@@ -207,6 +208,7 @@ class BookController extends BaseController
                 $result    = $this->getBidCidFromUrl($item->redirect_url);
                 $item->bid = $result['bid'];
                 $item->cid = $result['cid'];
+                $item->id  = Hashids::encode($item->id);
                 if ($result['cid']) {
                     $item->redirect_url = "views/Reader";
                 } else {
@@ -572,6 +574,7 @@ class BookController extends BaseController
             $result    = $this->getBidCidFromUrl($item->redirect_url);
             $item->bid = $result['bid'];
             $item->cid = $result['cid'];
+            $item->id  = Hashids::encode($item->id);
             if ($result['cid']) {
                 $item->redirect_url = "views/Reader";
             } else {
@@ -607,6 +610,7 @@ class BookController extends BaseController
             $result    = $this->getBidCidFromUrl($item->redirect_url);
             $item->bid = $result['bid'];
             $item->cid = $result['cid'];
+            $item->id  = Hashids::encode($item->id);
             if ($result['cid']) {
                 $item->redirect_url = "views/Reader";
             } else {
@@ -682,9 +686,9 @@ class BookController extends BaseController
      */
     public function recommendBooks(Request $request)
     {
-        $package = $request->header('x-package','');
+        $distribution_id = $this->distribution_channel_id;
         $bid = $request->get('bid',0);
-        if(empty($package)){
+        if(empty($distribution_id)){
             \Log::info('recommendBooks:1');
             return response()->success([]);
         }
@@ -695,14 +699,14 @@ class BookController extends BaseController
         }
 
         //判断包是否存在
-        $package_info = QappPackage::getPackageByPackage($package);
+        $package_info = QappPackage::getPackage($distribution_id);
         if(empty($package_info) || !isset($package_info->channel_id)){
             \Log::info('recommendBooks:3');
             return response()->success([]);
         }
 
         //包对应有没有配置开启推荐书单
-        $config = ChannelRecommendBookConfigService::getRecommendConfigs($package_info->channel_id);
+        $config = ChannelRecommendBookConfigService::getRecommendConfigs($distribution_id);
         if(empty($config) || !isset($config->status) || $config->status == 0){
             \Log::info('recommendBooks:4');
             return response()->success([]);
@@ -715,10 +719,10 @@ class BookController extends BaseController
             return response()->success([]);
         }
 
-        $list = ChannelRecommendBooksService::getRecommendBooks($package_info->channel_id,$bid);
+        $list = ChannelRecommendBooksService::getRecommendBooks($distribution_id,$bid);
         if(!$list->isEmpty()){
             foreach($list as $key => $item){
-                $this->incrRecommendNum($package_info->channel_id,$item->bid);
+                $this->incrRecommendNum($distribution_id,$item->bid);
             }
             \Log::info('recommendBooks:6');
             return response()->collection(new BookTransformer(), $list);
@@ -734,26 +738,22 @@ class BookController extends BaseController
      */
     public function clickRecommendBooks(Request $request)
     {
-        $package = $request->header('x-package','');
+        $distribution_id = $this->distribution_channel_id;
         $bid = $request->get('bid','');
         if(empty($bid)){
             return response()->success();
         }
 
         //判断包是否存在
-        $package_info = QappPackage::getPackageByPackage($package);
+        $package_info = QappPackage::getPackage($distribution_id);
         if(empty($package_info) || !isset($package_info->channel_id)){
             return response()->success([]);
         }
         $date = date('Ymd');
         $bid = Hashids::decode($bid)[0];
 
-        $cacheKey = 'recommend:click:'.$date.':'.$package_info->channel_id.$bid;
-        if(!Redis::exists($cacheKey)){
-            Redis::set($cacheKey,1);
-        }else{
-            Redis::incrBy($cacheKey, 1);
-        }
+        $cacheKey = 'recommend:click:'.$date.':'.$distribution_id.$bid;
+        $this->incrRedisKey($cacheKey);
         return response()->success();
     }
 
@@ -844,6 +844,48 @@ class BookController extends BaseController
     {
         $date = date('Ymd');
         $cacheKey = 'recommend:sum:'.$date.':'.$channel_id.$bid;
+        $this->incrRedisKey($cacheKey);
+    }
+
+    /**
+     * 点击广告统计
+     * @param Request $request
+     * @return mixed
+     */
+    public function getCheckAdvertisement(Request $request)
+    {
+        $type = $request->get('type','');
+        $id = $request->get('id','');
+        $distribution_id = $this->distribution_channel_id;
+        if(empty($type) || empty($id) || empty($distribution_id)){
+            return response()->success();
+        }
+
+        $id = Hashids::decode($id)[0];
+        if(!$id){
+            return response()->success();
+        }
+
+        if($type == 'default'){
+            //默认原表reco_banners广告,区分跟新表channel_advert的id
+            $id = -$id;
+        }
+
+        $where = ['channel_ad_id' => $id, 'uid' => $this->uid, 'distribution_id' => $distribution_id];
+        ChannelAdUser::firstOrCreate($where);
+
+        $date = date('Ymd');
+        $cacheKey = 'advertisement:pv:'.$date.':'.$distribution_id.$id;
+        $this->incrRedisKey($cacheKey);
+        return response()->success();
+    }
+
+    /**
+     * redis新增
+     * @param $cacheKey
+     */
+    protected function incrRedisKey($cacheKey)
+    {
         if(!Redis::exists($cacheKey)){
             Redis::set($cacheKey,1);
         }else{

+ 1 - 0
app/Http/Routes/QuickApp/QuickAppRoutes.php

@@ -81,6 +81,7 @@ Route::group(['domain' => env('QUICKAPP_DOMAIN'), 'namespace' => 'App\Http\Contr
         //新书籍推荐
         Route::get('books/recommend_books', 'Book\BookController@recommendBooks');
         Route::get('books/clickRecommendBooks', 'Book\BookController@clickRecommendBooks');
+        Route::get('books/checkAdvertisement', 'Book\BookController@getCheckAdvertisement');
 
         //阅爱小说返回推荐书单
         Route::get('books/back_recom_yueai', 'Book\BookController@yueaiBackRecom');

+ 1 - 1
app/Modules/Book/Services/RecoBannerService.php

@@ -19,7 +19,7 @@ class RecoBannerService
             ->where('start_time', '<=', date('Y-m-d H:i:s'))
             ->where('end_time', '>=', date('Y-m-d H:i:s'))
             ->where('type', $type)
-            ->select('redirect_url', 'banner_url')
+            ->select('id','redirect_url', 'banner_url')
             ->get();
     }
 }

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

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Modules\User\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class ChannelAdUser extends Model
+{
+    protected $table = 'channel_ad_users';
+    protected $fillable = ['uid','channel_ad_id','distribution_id'];
+}